世纪电源网社区logo
社区
Datasheet
标题
返回顶部
未解决

6804读取GPIO电压问题

[复制链接]
查看: 1831 |回复: 7
1
zhaojiayoua
  • 积分:164
  • |
  • 主题:5
  • |
  • 帖子:20
积分:164
LV2
本网技师
  • 2017-9-3 14:12:10
10问答币
spi_wakeup();  
        delay_1ms();
        LTC6804_wrcfg();
        delay_1ms();
//        i=LTC6804_rdcfg();
//    LTC6804_clraux();
        set_adc(0x10, 0x00,0x00,0x00 );  //ADC初始化
        
        
        while(1)
        {
        LTC6804_adax();     //ADC开始转换
                delay_nms(5) ;      //延时5ms            
           LTC6804_rdaux_reg(1,0x98);  //读辅助寄存器B中的某个GPIO电压
       delay_nms(5);
        
        }
大家帮看看这个程序读回GPIO口的电压,读回的数据都是0xff,写配置寄存器和读配置寄存器都没有问题
liuxiaofei126
  • 积分:2922
  • |
  • 主题:4
  • |
  • 帖子:846
积分:2922
LV8
副总工程师
  • 2017-9-3 15:10:14
  • 倒数6
 
你看看寄存器配置对不和ad转换这块
zhaojiayoua
  • 积分:164
  • |
  • 主题:5
  • |
  • 帖子:20
积分:164
LV2
本网技师
  • 2017-9-3 21:59:05
  • 倒数5
 
cmd[0] = 0x98;  //地址命令,配置寄存器
  cmd[1] = 0x01;
  cmd[2] = 0xd2;  //PEC[0]
  cmd[3] = 0x4a;  //PEC[1]
       
//  cmd[0] = 0x00;  //广播命令,配置寄存器
//  cmd[1] = 0x01;
//  cmd[2] = 0x3d;  //PEC[0]
//  cmd[3] = 0x6e;  //PEC[1]

  //2
  LT6804cfgr[0]= 0xfc;   
  LT6804cfgr[1]= 0x00;
  LT6804cfgr[2]= 0x00;
  LT6804cfgr[3]= 0x00;
  LT6804cfgr[4]= 0x00;   
  LT6804cfgr[5]= 0x00;
这是寄存器的配置,确定已经写到6804里面了!
void LTC6804_adax()
{
  uint8_t cmd[4],cmd_index;
  uint16_t temp_pec;

  cmd[0] = ADAX[0];
  cmd[1] = ADAX[1];
  temp_pec = pec_calc(2, ADAX);
  cmd[2] = (uint8_t)(temp_pec >> 8);
  cmd[3] = (uint8_t)(temp_pec);

  spi_wakeup(); //This will guarantee that the LTC6804 isoSPI port is awake. This command can be removed.
       
  GPIO_ResetBits(GPIOA,GPIO_Pin_4);// CS电平拉低,开始数据传输
       
  for(cmd_index=0;cmd_index<4;cmd_index++)
  {

        SPI1_ReadWriteByte(cmd[cmd_index]);
  }

   GPIO_SetBits( GPIOA,GPIO_Pin_4); // CS电平拉高,数据传输结束

}
这是AD转换

liguanghui2588
  • 积分:9171
  • |
  • 主题:55
  • |
  • 帖子:2435
积分:9171
版主
  • 2017-10-7 22:46:29
  • 倒数2
 
6804是哪个系列的单片机啊
zhaojiayoua
  • 积分:164
  • |
  • 主题:5
  • |
  • 帖子:20
积分:164
LV2
本网技师
  • 2017-9-3 22:00:02
  • 倒数4
 
void set_adc(uint8_t MD, //ADC Mode
             uint8_t DCP, //Discharge Permit
             uint8_t CH, //Cell Channels to be measured
             uint8_t CHG //GPIO Channels to be measured
            )
{
  uint8_t md_bits;

  md_bits = (MD & 0x02) >> 1;
  ADCV[0] = md_bits + 0x02;
  md_bits = (MD & 0x01) << 7;
  ADCV[1] =  md_bits + 0x60 + (DCP<<4) + CH;

  md_bits = (MD & 0x02) >> 1;
  ADAX[0] = md_bits + 0x04;
  md_bits = (MD & 0x01) << 7;
  ADAX[1] = md_bits + 0x60 + CHG ;

}
这是AD的初始化,麻烦您给看看吧,谢谢啦

liuxiaofei126
  • 积分:2922
  • |
  • 主题:4
  • |
  • 帖子:846
积分:2922
LV8
副总工程师
  • 2017-9-4 13:09:42
  • 倒数3
 
我也只能给你提示,6804没用过
plf891128
  • 积分:107
  • |
  • 主题:0
  • |
  • 帖子:1
积分:107
LV2
本网技师
最新回复
  • 2020-6-12 08:47:07
  • 倒数1
 
你好,请问问题解决了吗  我现在也遇到这种情况了   能加qq聊下吗   182428293
热门技术、经典电源设计资源推荐

世纪电源网总部

地 址:天津市南开区黄河道大通大厦8层

电 话:400-022-5587

传 真:(022)27690960

邮 编:300110

E-mail:21dy#21dianyuan.com(#换成@)

世纪电源网分部

广 东:(0755)82437996 /(138 2356 2357)

北 京:(010)69525295 /(15901552591)

上 海:(021)24200688 /(13585599008)

香 港:HK(852)92121212

China(86)15220029145

网站简介 | 网站帮助 | 意见反馈 | 联系我们 | 广告服务 | 法律声明 | 友情链接 | 清除Cookie | 小黑屋 | 不良信息举报 | 网站举报

Copyright 2008-2024 21dianyuan.com All Rights Reserved    备案许可证号为:津ICP备10002348号-2   津公网安备 12010402000296号