|
使用OPA1的 BUFFER 模式 用ADC检测外部的电压 ,
使用时,测试测试结果不对, 始终为 2.47V 或 0.2V ,ADC 读取其他不经过OPA buffer 的内外部电压正常 .
其中PC4 设置代码是 :
GPIO_DisablePinOpendrain(HAL1_EN_PORT, HAL1_EN_PIN);
GPIO_SetPinMode(HAL1_EN_PORT,HAL1_EN_PIN,GPIO_MODE_OUTPUT);
GPIO_ResetOutputPin(HAL2_EN_PORT,HAL2_EN_PIN|HAL1_EN_PIN);
GPIO_DisablePinAnalog(HAL1_EN_PORT,HAL1_EN_PIN);
GPIO_DisablePinRemap(HAL1_EN_PORT,HAL1_EN_PIN);
GPIO_DisablePinInput(HAL1_EN_PORT,HAL1_EN_PIN);
OPA1 设置代码是 (OPA时钟已打开)
OPA1->CR = (OPA_CR_BUFFEN_Msk|OPA_CR_MOD_Msk|OPA_CR_EN_Msk)
测试发现 ,原因是 OPA1的输出在芯片内部连接到了 OPA1的输出脚上( PC4 ) , PC4上的电压直接反映到了 ADC的输入上,导致 检测结果不正常 .
必须将PC4 上的 连接断开 , 并将PC4设置为输入状态 且 关闭PC4的输入功能, 此时ADC读取OPA buffer 输出正常
综上 : 逻辑上的解释应该是 :
芯片内部OPA1 Out 和PC4脚直接连接 , 无法关断?
一旦使用OPA1 则OPA 输出脚必须悬空,不能使用 , 是否有配置可以避免这个问题 ?
|
|