差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
ext_osc [2017/03/28 21:28]
group001 [原理图说明]
ext_osc [2017/03/28 23:00] (当前版本)
group001 [测试报告及说明]
行 20: 行 20:
 3.通过四路模拟开关对衰减的信号进行x10.x5.x2 x1进行相应的比例放大,以满足ADC采样电路的输入为1vpp。 3.通过四路模拟开关对衰减的信号进行x10.x5.x2 x1进行相应的比例放大,以满足ADC采样电路的输入为1vpp。
 4.8位高速ADC对模拟信号进行数字量化,通过FPGA对数据进行相应的处理以驱动OLED显示波形。 4.8位高速ADC对模拟信号进行数字量化,通过FPGA对数据进行相应的处理以驱动OLED显示波形。
-5.OLED采用4线SPI与FPGA通信。 ​                                                                                 +5.OLED采用4线SPI与FPGA通信。 
 + 
 +{{:​aaaa.png?​nolink|}} ​            ​{{:​b.png?​nolink|}} ​                ​{{:​cccc.png?​nolink|}} 
 +{{:​dddd.png?​nolink|}} ​           {{:​eeee.png?​nolink|}} ​                                                         ​
 ===== PCB布局布线 ===== ===== PCB布局布线 =====
 .PCB部分设计:根据板框和装配要求,器件按信号流行模块化布局,规则设置要满足厂家生产工艺要求及电气规则,高速器件走线进行阻抗匹配,模数地分割,丝印不盖住过孔和元器件外形轮廓等等 .PCB部分设计:根据板框和装配要求,器件按信号流行模块化布局,规则设置要满足厂家生产工艺要求及电气规则,高速器件走线进行阻抗匹配,模数地分割,丝印不盖住过孔和元器件外形轮廓等等
行 33: 行 36:
 问题和解决方法:SMA射频头信号有所失真,通过调节补偿电容改善。 问题和解决方法:SMA射频头信号有所失真,通过调节补偿电容改善。
 ===== FPGA逻辑实现 ===== ===== FPGA逻辑实现 =====
-ADC采样速率高总线传输速率低为保系统正常工作,AD转换器与FPGA之间必须采用FIFO作为缓冲器。我们利用Diamond工具生一个4k*位数据宽度的缓块。 +1.在顶层我们设计的模块有adc9283、FIFO_DC、Baud、send_ctrl、Uart_Tx、Generater_100mbps(ram_for_oled、oled_by_ram)顶层模块名uart_my3 
-FIFO的输入信号有数据输入信号,直接和A/​D转换器的输入相连下;写信号和写使能信号,写信号和上述率选择信号相连,可以以合适速率将数据写入FIFO,写使能设置永远有效;读信号和读使能信号这都有FPGA发出控制信号给;异步清零信号则在每次写FIFO前将其清空。输出信号有数据信号驱动OLED;满标志信号当有效停止对FIFO写操作;空标志信号,当有效停止对FIFO的读操作。 +uart_my3模块和Generater_100mbps是同时设计的过后将两个模块连接在一起实验功能。之所以使用串口模块是因为方便调试,将FIFO输出数据通过串口发送到PC端用串口调试助手观察波形。 
 +adc9283:给AD9283提供时钟输入 
 +FIFO_DC:使用4K的FIFO缓存AD转换后的数字量数据 
 +Baud:波特率发生模块 
 +send_ctrl:波特率选择模块 
 +Uart_Tx:串口数据发送 
 +ram_for_oled:128x64的RAM IP核模块,于存放FIFO发送的数据 
 +oled_by_ram:通过SPI将数据发送到OLED上进行显示、控制OLED刷新和屏幕的驱动 
 +2.关键模块实现 
 +比较关键的代码主要有AD9283串行输入数据转换8并行数据输出、FIFO数据的缓存、双口RAM模块、屏幕驱动模块。 
 +8位并行数据输入:根据AD9283时钟以此读取输入的模拟信号,输入AD9283的时钟是12Mhz系统时钟进行8分后进行模拟数据采集,采集后的数据输出给FIFO。 
 +FIFO数据的缓存:使用Dimond中的IP核,容量4KB输入数据为AD9283数据,输出数据送入RAM中,FIFO数据的时钟和AD9283的时钟是同步的 
 +双口RAM模块:使用Dimond中的IP核,容量为128x64,输入数据为FIFO的输出数据,输出数据送入屏幕驱动模块系统300分频为串口的波特率、RAM的数据写钟和FIFO的读时钟。 
 +屏幕驱动模块:将RAM中读出的数据通过OLED驱动模块显示到屏幕上。
  
 +3.关键知识点、难点
 +    整个代码中比较复杂的就是OLED屏幕驱动控制部分的数字逻辑的代码比较难实现
 ===== 测试报告及说明 ===== ===== 测试报告及说明 =====
  
 +{{:​图片1.png?​nolink|}} ​
 +
 +
 +
 + 
 +{{:​图片2.png?​nolink|}} ​                    
 ===== 相关文档 ===== ===== 相关文档 =====