你(们)好
当传感器控制器正在使用ADC,而Cortex-M3也希望使用它时,Cortex M3如何检查传感器控制器是否正在使用ADC?
巴西
Anders Lange
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你(们)好
当传感器控制器正在使用ADC,而Cortex-M3也希望使用它时,Cortex M3如何检查传感器控制器是否正在使用ADC?
巴西
Anders Lange
您好Anders:
问得好。 我还没有亲自测试这一点,但这应该是可能的。
有两个注意事项:
1) PIN共享和/或配置。
TI-RTOS驱动程序使用TI-RTOS PIN驱动程序。 如果两个实现对ADC使用相同的输入引脚,则可能会导致冲突,除非小心,因为对ADCCC26XX_OPEN的TI-RTOS驱动程序调用将重新配置选定的引脚。
2)通过信号量共享ADC外设。
AUX ADC有一个指定的硬件信号(AUX_SMPH中的AUX_SMPH_2)。 TI-RTOS驱动程序在ADCCC26XX_CONVERT()中同步此信号,但如果您使用相同的输入引脚(如上所述),则在打开TI-RTOS ADC驱动程序之前,您需要手动执行此操作。 您还应考虑在两者之间控制传感器控制器任务(停止/启动),以便更好地控制/概述。 请查看以下两个传感器控制器示例项目,其中显示了其中的一些元素:
建议的解决方案:
传感器控制器:
在传感器控制器工作室项目中启用"外设共享"并添加:
fwAcquirePeripheral(Tperipheral_ADC); adcEnable() adcSelectGpioInput();... ADC代码... adcDisable() fwReleasePeripheral(Tperipheral_ADC);
TI-RTOS:
获取ADC信号孔,打开驱动程序
AUXSMPHTryAcquire (AUX_SMPH_2);
ADCCC26XX_OPEN
... ADC代码...
如果您使用相同的输入引脚,请关闭TI-RTOS ADC驱动器,重新配置传感器控制器的引脚并释放信号量:
//关闭TI-RTOS ADC驱动 程序ADCCC26XX_CLOSE (); //将ADC输入IO引脚放回传感器控制 器scifReinitTaskIo (BV (SCIF_<ADC_TASK_NAME>_TASK_ID); /*释放ADC HW信号器*/ AUXSMPHRelease(AX_SMPH_2);
请参阅 驱动程序ADCCC26XX_CONVERT中的实现,了解如何使用sempahore:
C:\TI\simplelink_cc2640r2_SDK_1_30_00_25\SOURCE\ti\drivers\ADC\ADC26XX.c
我很乐意跟进。 我没有对此进行测试,因此可能需要进行一些更正。