*wrctrl=0x1fc; //0001 1111 1100
首先 *rst_ft245bm=0x0;//初始化,将很多触发器复位
然后先DSP向写控制寄存器写入 0001 1111 1100
地址为0x4010,地址选中wrctrl,使得WRCTRL置零
M5RST是第三位,M7RST是第四位,都为1.
INIT_D信号最开始为高,然后拉低
M5RST=1,INT_D=1,触发器复位,WRREG=0
然后INT_D=0,触发器恢复工作状态
最开始INT_D=1,WRREG=0,触发器复位。然后INT_D=0,触发器恢复工作状态
当BC4为高电平时触发,输出1,下一个触发器时钟是DCLK信号,也就是说,BC4=1的时候,WRREG=1
NVM有数据的时候是高电平,NVM=1,WRREG=0时,处于复位状态,每一次时钟过来,BC[4…0]就会加1 ,当16次后,BC4=1,WRREG=1,高电平将他复位,也就是说,这是一个16次的计数器。
每16个DCLK时钟周期,WEREG=1.
串并转换,每个DCLK的时钟周期就会移动一位,到SROUT[15…0]。
移动16次就是一个完整的数据,16个时钟周期,他也会有一个WRREG信号
当WRREG=1时,将D[16…0]的数据存入FIFO中,存满了之后就会有FF信号,不为空时也会输出信号FE
当RDDATA信号时,就会从DOUT[16…0]输出到数据线上
status_edib=*rdstatus;
if(checkbit16(status_edib,1)==0)
DSP读取rdstatus,第二位FE为0时,将进入判断
temp=*rdm2fifo;选 中M5_SEL数据线上是M5通道的数据 同理M2,M7