硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3795|回复: 2
收起左侧

[有问必答] AD7606移植读取数据有误

[复制链接]

4

主题

5

回帖

4

积分

新手上路

敬胜怠,义胜欲!

积分
4
发表于 2017-5-7 20:16:36 | 显示全部楼层 |阅读模式
我把AD7606模块移植到STM32F407VET6上面,改了几个接口,然后使用的是MCU的fsmc的bank1区域1,但是现在情况是读取出来的值全部都是8176,4080这类奇怪的值,现在总线地址设置的是0x60000000;然后输入引脚接的是3.3v电压,引脚浮空输入的时候值也不变,很奇怪,求大家解答!谢谢大家!
下面是FSMC配置的程序:
     static void AD7606_FSMCConfig(void)
{
   
//寄存器清零   NE1
      FSMC_Bank1->BTCR[0]=0X00000000;    //BCR0
      FSMC_Bank1->BTCR[1]=0X00000000;    //BTR1
      FSMC_Bank1E->BWTR[0]=0X00000000;    //BWTR1

    /*
        AD7606规格书要求(3.3V时):RD读信号低电平脉冲宽度最短21ns,高电平脉冲最短宽度15ns。

        按照如下配置 读数均正常。为了和同BANK的LCD配置相同,选择3-0-6-1-0-0
        3-0-5-1-0-0  : RD高持续75ns, 低电平持续50ns.  1us以内可读取8路样本数据到内存。
        1-0-1-1-0-0  : RD高75ns,低电平执行12ns左右,下降沿差不多也12ns.  数据读取正确。
    */
    /* FSMC_Bank1_NORSRAM1 configuration */
      //BTR1
       FSMC_Bank1->BTCR[1] |= 0<<28;  //模式A
       FSMC_Bank1->BTCR[1] |=3<<0;   //高电平持续时间18ns
       FSMC_Bank1->BTCR[1] |=6<<8;    //低电平持续时间36ns   
      //BCR1
      FSMC_Bank1->BTCR[0]|=0<<12; //存储器写不使能
      FSMC_Bank1->BTCR[0]|=1<<14; //读写使用不同的时序
      FSMC_Bank1->BTCR[0]|=6<<4; //存储器数据宽度为 16bit
      //BWTR
      FSMC_Bank1E->BWTR[0]|=0<<28; //模式 A
      FSMC_Bank1E->BWTR[0]|=3<<0; //地址建立时间(ADDSET)为 3 个 HCLK=18ns
      FSMC_Bank1E->BWTR[0]|=6<<8; //数据保存时间(DATAST)为 6ns*6个 HCLK36ns
      //使能blank1  区域1
      FSMC_Bank1->BTCR[0]|=1<<0; //使能 BANK1,区域 1
}
这是总线的地址:
/* AD7606 FSMC总线地址,只能读,无需写 */
#define AD7606_RESULT()       *((__IO uint16_t* )0x60000000)

接口IO按照历程配置为复用推挽输出:
回复

使用道具 举报

4

主题

5

回帖

4

积分

新手上路

敬胜怠,义胜欲!

积分
4
 楼主| 发表于 2017-5-7 23:29:09 | 显示全部楼层
可不可以帮忙看一下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107546
QQ
发表于 2017-5-8 00:32:55 | 显示全部楼层
寄存器配置看着太麻烦了,没法看你的配置是怎么设置的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-5 10:27 , Processed in 0.275795 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表