主题中讨论的其他器件:TMDSCNCD28379D、 TMS320F2812
大家好、
我将 TMDSCNCD28379D controlCARD 用于一个新项目、但我有两个问题。
第一个涉及输入模式下的 GPIO:
- 当涉及 GPIO A 或 GPIO B 时、没有问题(例如、将 GPIO30配置为输入)
GpioCtrlRegs.GPAPUD.bit.GPIO30 = 0;//在 GPIO30 GpioCtrlRegs.GPAMUX2.bit.GPIO30上启用上拉;//在 GPIO30 GpioCtrlRegs.GPADIR.bit.GPIO30上启用 GPIO = 0;//将 GPIO30配置为输出
- 但当涉及 GPIO C 时、我需要禁用上拉电阻(例如、将 GPIO74配置为输入)
GpioCtrlRegs.GPCPUD.bit.GPIO74 = 1;//禁用 GPIO74 GpioCtrlRegs.GPCMUX1.bit.GPIO74 = 0;// GPIO74 = GPIO74 GpioCtrlRegs.GPCDIR.bit.GPIO74 = 0;// GPIO74 =输入
这是硬件问题吗?
第二点不是问题,而是问题:
之前,我使用 TMS320F2812;要进行连续的 ADC 转换,我可以执行以下操作:
-开始 SEQ1转换:
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;
- 等待 EOS 上的中断(序列结束):
while (AdcRegs.ADCST.bit.INT_SEQ1 = 0)
-清除 SEQ1中断标志位:
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;
-转换再次开始。
现在、对于28379D、我想使用软件触发器(INT1)。 我的工作方式如下:
ADC 配置:
AdcaRegs.ADCSOC0CTL.bit.CHSEL = 0; // SOC0将转换 ADC-A 上的引脚 A0 AdcaRegs.ADCSOC1CTL.bit.CHSEL = 1; // SOC1将转换 ADC-A 上的引脚 A1 AdcaRegs.ADCSOC2CTL.bit.CHSEL = 2; // SOC2将转换 ADC-A 上的引脚 A2 AdcaRegs.ADCSOC3CTL.bit.CHSEL = 3; // SOC3将转换 ADC-A 上的引脚 A3 AdcaRegs.ADCINTSEL1N2.bit.INT1SEL = 3; // SOC3结束将在 ADC-A 上设置 INT1标志
-开始转换:
AdcaRegs.ADCSOCFRC1.ALL = 0x000F;// SOC3、SCO2、SOC1和 SOC0 用于 ADC-A -转换开始
- 等待 EOS 上的中断(序列结束):
while (AdcaRegs.ADCINTFlG.bit.ADCINT1 = 0);
清除中断标志位:
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //确认 ADC-A 上的 INT1标志
-但转换不会再次启动,我需要再次使用该指令:
AdcaRegs.ADCSOCFRC1.ALL = 0x000F;// SOC3、SOC2、SOC1和 SOC0 用于 ADC-A -转换开始
这是正常的吗? 我是否每次都必须启动新的转换?
感谢您的回答。
此致、