VHDL ADS8364采集程序

该程序基于AVR通讯和PWM控制,存在8364 EOC信号低电平时间过短导致状态机无法正确响应的问题。程序设计包括ADC时钟、PWM和LED控制等,目前正处在改进阶段,提供参考。
摘要由CSDN通过智能技术生成

这个程序是在上一篇和AVR通讯 以及PWM控制的基础之上写的,这个程序是有问题的,具体问题在8364的EOC信号低电平时间只有不到1us,时间很短,而他的时钟信号不能超过5M,这个eoc信号触发外部中断来读取数据没有问题,但是在这个程序的第二第三个状态机中病没有检测到这个信号,所以出现的状况就是一直卡在第二个状态机。

 

另外由于每个状态机可能有不同的延迟,通过仿真发现毛刺现象比较突出,现在正在写改进的程序,这个程序仅作参考。

 

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

 

entity kbctest is

port(

rst,clk : in std_logic; --时钟和复位信号

--avr 读写相关信号线

ale,rd,wr : in std_logic; --地址锁存、读、写信号

ad : inout std_logic_vector(7 downto 0); --地址数据信号线

--指示灯

led1,led2 : out std_logic;

--pwm

pwm1,pwm2 : out std_logic;

--ad8364信号线

adc_d:       in    std_logic_vector(15 downto 0);

adc_a:       out   std_logic_vector(2 downto 0);   --a2,a1,a0 

adc_reset:   out   std_logic;

adc_cs:      out   std_logic;

adc_wr:      out   std_logic;

adc_rd:      out   std_logic;

adc_hold:    out   std_logic_vector(2 downto 0); --只用两路ad 开启一路hold信号

adc_eoc:     in    std_logic; 

adcclk_out: out   std_logic;

statepoint: out std_logic_vector(3 downto 0)--用来指示处于第几个状态,方便调试

--放大增益控制

);

end kbctest;

 

architecture art of  kbctest is

------------------------------------------------全局信号定义-------------------------------------------------------------------

--avr访问操作相关信号

signal adr :   std_logic_vector(7 downto 0);  --地址寄存器

signal data_buf :   std_logic_vector(7 downto 0);

signal data_outctl : std_logic;

 

 

--pwm部分相关寄存器定义 寄存器暂时定义为8位

signal pwmfreq_reg : std_logic_vector(7 downto 0);

signal pwmocr1_reg : std_logic_vector(7 downto 0);

signal pwmocr2_reg : std_logic_vector(7 downto 0);

 

signal pwm_cnt : std_logic_vector(7 downto 0);

 

--时钟分频相关变量

signal clkcnt : std_logic_vector(16 downto 0);

signal adc_clk : std_logic; --adc时钟信号

s

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值