大家好、
我正在尝试使用 ADS1278设置数据采集系统。 数据通过 ADS1278的 SPI 接口和32位微控制器读出。 由于微控制器的 SPI 库还不够高、因此数据通过位拆裂读取。 在我开始回答问题之前、下面是 ADS1278的一些设置:
格式:{Interface Protocol=SPI;DOUT Mode = TDM;Data Position = Dynamic}
MODE:低速(CLKDIV=1)
活动通道数:8.
现在、我的理解问题:
1) !DRDY 引脚连接到微控制器的中断控制 GPIO,该 GPIO 对下降沿作出反应。
问题:
当数据转换完成时,ADS1278的!DRDY 引脚上的信号会切换到低电平。
2) 在!DRDY 中断 GPIO 的中断服务例程中,我生成串行时钟(SCLK),并逐一读取所有192位(24*NumberChannels)。
问题:
ADS1278会将 SCLK 下降沿的位推出、以便微控制器必须在上升沿之后读取数据?
因此、在"伪代码:"中、
void ISR !DRDY
{
for (idxChannel=0;idxChannel<8;idxChannel++)
{
for (i=0;i<24;i++)
{
SCLK =低电平
SCLK =高电平
ADS1278_SingleBit =读取(DOUT_GPIO)
ADS127_32bit_value=ADS127_32位和位移(ADS12778_SingleBit)
}
ADS1278_data_array_of_all_8_channels[idxChannel]=ADS1278_32bit_value
}
}
问题:
在!DRDY 中断之前或之后 SCLK 必须达到什么级别? 这是“低”还是“高”?
3) 根据数据表、ADS1278可与!SYNC 电平同步。 必须在微控制器的相应 GPIO 上生成哪一个电平? 有时、当我对时序/电平图进行否定时、我会对其感到恼怒。 我以这种方式理解它。
"伪代码:"
void sync () { SYNC_PIN=low WAIT_A_BIT //考虑数据表 中的最短时间 SYNC_PIN=HIGH }
我会很高兴得到答案!
您好!
图格鲁尔
已通过 www.DeepL.com/Translator 进行翻译