TI中文支持网
TI专业的中文技术问题搜集分享网站

ADC124S051的驱动CLK问题

我在用stm32F103RCT6驱动ADC124S051,可以驱动读数正确没有问题。

问题是:如果想达到500Khz的采样率(单通道工作),必须给ADC的clk提供8Mhz,我按照datasheet时序写的代码无法达到驱动时钟8Mhz,我的代码如下:是不是我给定时钟的方式不对,还是说有其他的驱动方式。

uint32_t ADC_read_signal_channel(uint8_t chipselect,uint8_t ADC_channel)
{
uint8_t i = 0;
uint32_t ADC_DATA = 0;
HAL_GPIO_WritePin(GPIOB, SCLK, 0);        //ADC的时钟先置0
HAL_GPIO_WritePin(GPIOA, chipselect, 0); //片选拉低

//——————————
for (int i = 0; i < 16; i++)     //一共16个clk完成一次采样转换,前4个clk写入读哪个通道寄存器
{
HAL_GPIO_WritePin(GPIOB, DATAOUT, (ADC_channel & 0x80) >> 7); //写入ADC control register
ADC_channel = ADC_channel << 1;
HAL_GPIO_WritePin(GPIOB, SCLK, 1);     //clk拉高

if((i >= 4) && (i <= 15)) //从SCLK的第5个sclk开始读数据
{
if (HAL_GPIO_ReadPin(GPIOB, DATAIN)) //如果读到的状态是1
ADC_DATA |= (1 << (15-i));
}
HAL_GPIO_WritePin(GPIOB, SCLK, 0);
}
//———————————–
HAL_GPIO_WritePin(GPIOA, chipselect, 1);   //拉高片选
return ADC_DATA;
}

user151383853:

给ADC的clk提供8Mhz,对于 STM32 的芯片, 不是问题呀

xyz549040622:

你可以看看这个帖子,单纯IO翻转的速度想要达到8M也是不容易的,建议你用SPI接口。
blog.csdn.net/…/42109643

Amy Luo:

您好,

关于STM32F103RCT6无法输出8MHZ的问题,建议您咨询ST公司STM32相应的技术支持。

赞(0)
未经允许不得转载:TI中文支持网 » ADC124S051的驱动CLK问题
分享到: 更多 (0)