您好!
我正在尝试使 ADC 在 AM65xx_IDK 评估板上运行。 现在、我只在中找到了一个示例 /packages/ti/diag/adc. 是否有任何其他源、甚至是二进制文件? 我无法通过这个示例获取任何二进制文件进行调试。
到目前为止、我在源代码中执行以下操作(代码主要是从复制的 /packages/ti/diag/adc/src/adc_test_v2.c:
-使用 ADC0的基址调用"BoardDIAG_initADC"。 它本身调用 ADCCIntrlearStatus()、ADCPowerUp (baseAddr、True)和 ADCInit (baseAddress、false、0U、0U)
-调用 ADCEnableIntr (adcBaseConf.baseAddress、(ADC_INTR_SRC_END_TO_SEQUENCE | ADC_INTR_SRC_OUT_OUT_RANGE))
调用
adcConfig.mode = adc_operation_mode_single_shot; adcConfig.openDelay = 0x1U; adcConfig.samplpleDelay = 0U; adcConfig.rangeCheckEnable = 0U; adcConfig.Averaging= adc_Averaging_none; adcConfig.fifoNum = ADC_FIFO_NUM_0; adcConfig.channel = STATIC_cast (通道); configStatus = ADCSetStepParams (adcBaseConf.baseAddress、 adcConfig.channel、adcConfig);
其中通道是我要读取的通道。 首先、我只想读取一个通道
然后我开始转换:
-调用 ADCStepEnable (baseAddress、channel、true); adcStart (baseAddress);
然后、我想读取该值一段时间:
-致电
intrStatus = ADCGetIntrStatus (ADC[I].baseAddress); while (!(ADC_INTR_SRC_END_TO_SEQUENCE ==(intrStatus & ADC_INTR_SRC_END_TO_SEQUENCE)) ){ IntraStatus = ADCGetIntraStatus (.baseAddress); } fifoWordCnt = ADCGetFIFOWordCount (baseAddress、ADC_FIFO_NUM_0); fifoData = ADCGetFIFOData (baseAddress、ADC_FIFO_NUM_0);
此实施是否正确? 或者我需要调用其他东西吗?
接线:
我将一个 poti 的中间引脚连接到 ADC0_Ch0。 Poti 连接到 GNC 和1.8V。 现在、我没有连接基准电压。 Poti 配置为在 GND 和1.8V 之间提供中间值。
是否需要将基准电压连接到引脚接头? 或者 SoC 是否内部获得一些基准电压?
我假设我应该得到至少一些数字变化。 但根据 poti 状态、我只得到0或 FFF。 但它更像是迟滞。
此外、我不理解 ADC 的"步骤"。 在这种情况下是什么? 这些是渠道吗? 如果你能在手册中写更多的内容就更好了!!
重新分级
Andreas