
最近做一个项目,STM32F407 ADC采样。STM32F407电源电压和参考电压是都是2.5V(两个独立电源),因为设计需要(换挡采样,测试小量程,调大增益),采样电压可能会超出2.5V。STM32F407 ADC口无法实现钳位。比如测量小于2.5V电压信号,ADC值正常,测量等于2.5或稍微大于2.5V信号,输出的值是0xFFFF,满量程,正常。但是当测试离2.5V较大时(比如4.2V),输出的是小于0XFFFF(比如可能是0X1455什么的),好像输入信号越大,ADC值越小(没有具体观察过) 下图是官方文档中ADC接口的图纸: ![]() 应该是有钳位电路,为啥不管用。我这边手头有同样电路,仅仅MCU不一样,是STM32F103的,电压可以牵制在3.4V左右,当输入ADC电压是4.1左右,ADC采样值是0xFFFF,正常, 比较奇怪是为啥STM32F103可以实现钳位,而STM32F407不行。哪位大神帮忙解惑下,谢谢! 我的ADC电路如下: ![]() 是一个有源滤波电路,AIN3_SENSOR接运放,AIN3接MCU的ADC口。比如STM32F407的板子的AIN3和AIN3_SENSOR,总是保持一致,比如信号是4V,前后一样。 而STM32F103的板子的前端是4V,后端(AIN3)就是3.4V顺利钳位。 |
NUCLEO-F401RE板卡,连接USB,在KEIL下可以找到ST-LINK仿真器,也可以下载代码。在电脑上看不到NODE_F401RE的磁盘,有知道是什么原因?
STM32CUBEIDE
STM32407 使用串口闲时中断+DMA方式接收最大接收字节是多少
USB_CDC_HOST 标准库里边USBH_DeAllocate_AllChannel()函数的疑问?
STM32部署机器学习算法硬件至少要使用哪个系列的芯片?
重新配置SCB->VTOR = 0x08010000后,再次复位,程序异常,发现不进tick中断,IIC读数卡死在准备查询循环中。
uboot初始化IIC1,跳转到应用程序中后,先读一字节AT24C04的数据,然后初始化IIC1(未复位),再读一字节AT24C04时,有概率一直检测到IIC处于busy状态。
STM32F407的flash读写问题
keil调试阶段无法进行仿真,能进到仿真界面,但是无法执行程序,这个怎么解决?
STM32F4的IO口5V容忍问题
你可以用万用表量一下ADC引脚对VDD的二极管。
如果你输入高压建议IO口串电阻,并且使用外部大功率的钳位二极管。
谢谢你的回复
我在AIN3和MCU AD口之间已经加了一个470R的电阻,限流作为,可以没有任何反应,并且MCU也换新的
有道理,超过电源电压会有机会烧毁引脚的。同时超过模拟电压源会引起注入电流干扰ADC工作,所以得到的转换值也不会准确的
已经在AIN3和MCU之间串了一个电阻,470R,还是不行。
理论上,STM32F407ADC的内部有一个钳位二极管,AIN3经过470R限流,然后被钳位到3.1左右,实际还是一样