KDocs 研发资料库
  • IOT(BLE-AD-MCU)资料链接入口汇总
  • BLE硬件设计指南
  • BLE 认证汇总
  • AD系列入门到进阶开发指导文档
  • AC75开发指导文档
  • AW31开发指导文档
  • AW33开发指导文档
  • AC63NN开发指导文档
  • HID相关资料入口
  • HID问题汇总

AC75N系列问题及处理方法汇总

📎 原始文档:https://www.kdocs.cn/l/chR0Wfy1Hjj4 AC75N系列问题及处理方法汇总

运放默认态导致I/O耦合问题

问题原因:

内部运放结构图
image

运放两种工作模式
image 运放默认处于NFA模式,此时OP0、OP1、OP2 的P端通过片内电阻连接到VREF0节点,即PA0、PA7、PA10三个I/O之间通过片内电阻(输入电阻+反馈电阻≈15kΩ)连接在一起,I/O上电状态存在相互影响的情况。

解决方案:

芯片跑起来后会立即把运放设置为OPA模式,断开三个I/O之间的耦合路径。具体代码如下图:
image

不可避免的从芯片上电到设置为OPA模式这小段时间(大约30ms),还是存在三个I/O相互耦合的状态,硬件设计时需注意该因素。
(芯片处于pdown,poff,softoff 三种低功耗模式下,会保持住运放状态)

受影响版本:

V1.0.0 patch03(包含)及之前版本。

使用高压IO进行ADC采集原理解释

AC75N的高压IO口(PC4、PC5、PC6)可采集1/2输入的电压,需要开启内部200K下拉电阻,才能正确采集到1/2分压。内部采样点如下图所示:
注意点:
1. 信号源内阻应远小于200K,减少分压效应 2. 高压IO输入电压不大于5.5V image

//开启IO200K下拉,并设置为ADC模式    
gpio_set_mode(IO_PORT_SPILT(IO_PORTC_06), PORT_INPUT_PULLDOWN_100K);
gpio_set_function(IO_PORT_SPILT(IO_PORTC_06), PORT_FUNC_GPADC);
//使用block采集电压,取8次均值
unsigned short pc6_voltage = adc_get_voltage_by_blocking(adc_io2ch(IO_PORTC_06), 8);
printf("pc6_voltage = %d mV\n", pc6_voltage * 2);