微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 利用双通道示波器展示传输线行为的方法

利用双通道示波器展示传输线行为的方法

时间:06-26 来源:电子产品世界 点击:

三个相位累加器采用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)))
  ;

  // take the SS pin high to de-select the chip:
  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 总结

通常使用示波器的目的是获得不移动的显示,而本文利用受控的移动图像展现信号在传输线中的真实情况。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top