打印

DSP2812,XINTF外扩AD7864

[复制链接]
6278|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 clint1207 于 2012-6-6 11:10 编辑

耽误大侠们点时间,问点问题呵。


DSP2812的XINTF外扩一片AD7864.(硬件已完成)





问题:
1,1,XINT应用在扩展外置AD的编程思路是否正确?
AD的片选信号直接接地,一直选通。可以把AD看做成一个外置RAM,地址只有一个(任意一个,因为只有这一个外设。地址是DSP2812,XINTF接口在CPU映射ZONE0到7中的任意一个区域的任意一个单元)。DSP控制AD,相当于,往RAM里,写数据;DSP读取转换结果,相当于,读RAM里的值。这样理解对吧?!
问题:
1,XINTF编程使用,是否还有问题?!(见高亮部分)
初始化InitXintf(),地址选择ZONE1区,配置了读写的建立,激活,跟踪时间(这些时间应该是与外置AD的时序图相关吧?!)
void InitXintf(void)
{
    EALLOW;//是否必要
   //选择建立、激活和跟踪的定时转换操作的基本时钟
   XintfRegs.XINTCNF2.bit.XTIMCLK = 1;
       XintfRegs.XINTCNF2.bit.CLKOFF=1;
       XintfRegs.XINTCNF2.bit.WRBUFF=0;
       XintfRegs.XTIMING1.bit.X2TIMING=1;
       XintfRegs.XTIMING1.bit.USEREADY=0;
       XintfRegs.XTIMING1.bit.XSIZE=3;
   // Zone :
       XintfRegs.XTIMING1.bit.XWRTRAIL= 1;    //写周期的跟踪时间为*XTIMCLK周期
       XintfRegs.XTIMING1.bit.XWRACTIVE= 3;   //写周期的激活等待时间为*XTIMCLK周期
       XintfRegs.XTIMING1.bit.XWRLEAD= 1;     //写周期的建立时间为*XTIMCLK周期


       XintfRegs.XTIMING1.bit.USEREADY= 0;    //区访问时,忽略XREADY信号
       XintfRegs.XTIMING1.bit.XRDLEAD= 1;     //读周期的建立时间为*XTIMCLK周期
       XintfRegs.XTIMING1.bit.XRDACTIVE= 3;   //读周期的激活等待时间为*XTIMCLK周期
       XintfRegs.XTIMING1.bit.XRDTRAIL= 1;    //读周期的跟踪时间为*XTIMCLK


       EDIS;


}     


主程序:
unsigned int *AD7864Start=(unsigned int *)0x00004009;//声明AD的在CPU中映射的地址
float data;


void main(void)
{     
   unsigned int i;


       i=0;
   InitSysCtrl();  //初始化系统函数


       DINT;
       IER= 0x0000;   //禁止CPU中断
       IFR= 0x0000;   //清除CPU中断标志


       InitPieCtrl();  //初始化PIE控制寄存器


       InitPieVectTable();//初始化PIE中断向量表



       InitPeripherals();
       InitXintf();


      *(AD7864Start)=0xf004;// 0xf004是对AD的控制信号(选择转换通道),直接把值写到这个地址里,这个数据就被发到XD0-XD15的数据总线上了吧?!
       NOP;
       NOP;
       NOP;
   *(AD7864Start)=0xe004;//想把通过数据线XD13,由高到低的下降沿来启动AD,能这样赋值么?之前往地址里0xf004,然后再0xe004
       for(i=0;i<20;i++);//等待转化
       data=*(AD7864Start);//读转结果(?!)


}
实验现象:
1*(AD7864Start)=0xf004;,用万用表量XD0上的电平,都是高电平,就是说0xf004并没有发到XD数据总线上??



谢谢各位,敬请赐教~

AD7864.JPG (59.06 KB )

AD7864.JPG

相关帖子

沙发
clint1207|  楼主 | 2012-6-7 08:58 | 只看该作者
自己回答下吧。
问题1,这样理解应该可以。
问题2,启动AD转化,需要用GPIO。这种“之前往地址里0xf004,然后再0xe004”不可以。

硬件接得着实不怎样,不能在不太懂的时候,照着PDF或者文献瞎练。

使用特权

评论回复
板凳
myyule| | 2012-7-15 18:54 | 只看该作者
楼主,你好,你的问题解决了吗?我最近也在研究这个XINTF,16位地址线直接连接到TFT液晶模块的16位地址线,还没弄出个想要的结果来.....

使用特权

评论回复
地板
小凡的挚爱| | 2013-1-4 13:41 | 只看该作者
我用AD7864和28335连接,eoc始终是高电平,不知道怎么回事,请指教一下啊!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

13

帖子

2

粉丝