主题中讨论的其他器件:TM4C1292NCPDT、
您好!
我们通过 SPI 将 TM4C1292NCPDT 与 AD1158相连。
我将按如下方式初始化 ADC:
//在这里、我们将开始根据数据表中的配置指南部分来配置芯片
//最多步骤5。 在调用驱动程序启动之前、我们不会实际启动转换器。
// 1. 复位 SPI 接口
chipSelectPin.SetHigh();
// 2. 停止转换器
startPin.SetLow();
// 3. 重置转换器
resetPin.SetLow();
TclkDelay (3);//脉冲复位线至少保持2个 fclk 周期
resetPin.SetHigh();
// 4. 配置寄存器...
//启用芯片选择
chipSelectPin.SetLow();
TclkDelay (4);//等待芯片选择建立时间、至少2.5 fclk 周期
RegisterWrite (ADS1158_ADR_CONFIG0、CONFIG0);
RegisterWrite (ADS1158_ADR_CONFIG1、CONFIG.CONFIG1);
RegisterWrite (ADS1158_ADR_MUXSG0、CONFIG.MUXSG0);
RegisterWrite (ADS1158_ADR_MUXSG1、config.MUXSG1);
//将浮动输入引脚更改为低输出
RegisterWrite (ADS1158_ADR_GPIOC、0x00);
RegisterWrite (ADS1158_ADR_GPIOD、0x00);
// 5. 验证寄存器数据...
D_ASSERT (RegisterRead (ADS1158_ADR_CONFIG0)= CONFIG0);
D_ASSERT (RegisterRead (ADS1158_ADR_CONFIG1)= CONFIG1);
D_ASSERT (RegisterRead (ADS1158_ADR_MUXSG0)= CONFIG.MUXSG0);
D_ASSERT (RegisterRead (ADS1158_ADR_MUXSG1)= CONFIG.MUXSG1);
D_ASSERT (RegisterRead (ADS1158_ADR_GPIOC)= 0x00);
D_ASSERT (RegisterRead (ADS1158_ADR_GPIOD)= 0x00);
初始化失败、并且在某些电路板中随机抛出断言(这不会持续发生)。
我尝试添加1秒延迟、认为进入 ADC 的 Vref 需要一些时间才能稳定。
在固件方面、我还可以做什么来微调代码(添加重试次数)?
请提供任何建议。
谢谢、此致、
Vamsi