利用双通道示波器展示传输线行为的方法
三个相位累加器采用16的位计数器,计数器递增是通过一个中断程序来实现,中断程序由处理器中的一个定时器来触发。每32µs (1/31.25kHz)中断一次。利用LUT将两个相位累加器值(生成F1和F3)转换为正弦值并然后送给DAC的两个通道。将第三个相位累加器(生成F2)的两个最高有效位发送至第三个DAC通道,产生一个4节拍的示波器触发信号。通过改变触发电平,可选择想要驻波的相位去进行开路或短路端接仿真。
Arduino SPI库中的数据传输程序太慢,导致中断程序的运行时间超过了中断周期。因此,改用直接写至AVR SPI硬件的代码。
中断程序代码:
//******************************************************************
// Timer2 Interrupt Service at 31372.550 Hz = 32uSec
// this is the timebase REFCLOCK for the DDS generator
// FOUT = (M (REFCLK)) / (2 exp 32)
ISR(TIMER2_OVF_vect) {
// set the SS line low
PORTB &= (0xFF ^ 4);
// send in the address and value via SPI:
SPDR = CODEA;
// update phase accumulators while waiting
phaccu_a += tword_a;
phaccu_b += tword_b;
phaccu_c += tword_c;
while (!(SPSR & _BV(SPIF)))
;
// do the table lookup based on accum 'a' high-order byte
SPDR = pgm_read_byte_near(sine256 + highByte(phaccu_a));
while (!(SPSR & _BV(SPIF)))
;
SPDR = 0;
while (!(SPSR & _BV(SPIF)))
;
// set the SS line high
PORTB |= 4;
// set the sS line low for the second SPI transfer
PORTB &= (0xFF ^ 4);
// do the second SPI transfer
//SPDR = CODEB_LOADALL;
SPDR = CODEB;
while (!(SPSR & _BV(SPIF)))
;
// do table lookup based on accum 'b'
SPDR = pgm_read_byte_near(sine256 + highByte(phaccu_b));
while (!(SPSR & _BV(SPIF)))
;
SPDR = 0;
while (!(SPSR & _BV(SPIF)))
;
PORTB |= 4;
// set the sS line low for the third SPI transfer
PORTB &= (0xFF ^ 4);
SPDR = CODEC_LOADALL;
while (!(SPSR & _BV(SPIF)))
;
// Four stairsteps on output C
SPDR = highByte(phaccu_c) & 0xC0;
while (!(SPSR & _BV(SPIF)))
;
SPDR = 0;
while (!(SPSR & _BV(SPIF)))
;
// take the SS pin high to de-select the chip:
PORTB |= 4;
}
Arduino和MAX5715之间的连接如图6所示。
MAX5715焊接在适配器电路板上,然后连接至Arduino Uno 样板“shield”(图7)(“Shields”是为Arduino系统提供各种附加功能的电路板)。
4 数字示波器上的显示
如上所述,该演示在模拟示波器上效果最佳,因为根据数字示波器的刷新率不同,显示可能发生跳动。但数字示波器模拟长余辉显示的能力能够非常好地显示驻波图案,如图8所示。
5 总结
通常使用示波器的目的是获得不移动的显示,而本文利用受控的移动图像展现信号在传输线中的真实情况。
示波器 驻波 Maxim Arduino AVR 201407 相关文章:
- 用数字荧光示波器对开关电源功率损耗进行精确分析(11-04)
- 数字荧光示波器结构融合模拟示波器和数字示波器的优势(03-03)
- 秘密武器助你从容应对噪声检测难题(03-29)
- 使用采样示波器对PCB进行串扰分析(11-06)
- 具有可调触发灵敏度的示波器可有效提高电路检测质量(01-11)
- 在手持式示波表上捕捉间歇性信号(01-25)