Thread 中讨论的其他器件:BOOSTXL-C2KLED、 controlSUITE
工具/软件:Code Composer Studio
你好
如何 检索 AdcNetBus 或 ADCDRV_1ch_Rlt2并将其传递到控制器、例如2p2z?
也许我有与 https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/126212/451361相同的问题
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.
工具/软件:Code Composer Studio
你好
如何 检索 AdcNetBus 或 ADCDRV_1ch_Rlt2并将其传递到控制器、例如2p2z?
也许我有与 https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/126212/451361相同的问题
维克多
谢谢、以下内容:
ADC 结果存储在长数组 AdcNetBus[16]中。 这是 ADC 结果寄存器0 -15的线性存储。
现在、在定义 ADC 触发器时采样的通道从 LED_Boost_PC_Main.c 中的第516行开始、如下所示:
#define Iout1R AdcResult.ADCRESULT1 //Q12 #define Iout2R AdcResult.ADCRESULT2 //Q12 #define Iout3R AdcResult.ADCRESULT3 //Q12 #define Vout1R AdcResult.ADCRESULT9. //Q12 #define Vout2R AdcResult.ADCRESULT10 //Q12 #define Vout3R AdcResult.ADCRESULT11 //Q12 #define VinR AdcResult.ADCRESULT12. //Q12. // // ADC 通道选择 // ChSel[0]= 2; //初始样本错误的虚拟读取 ChSel[1]= 2; // A2 - Iout1 -蓝色 ChSel[2]= 1; // A1 - Iout2 -绿色 ChSel[3]= 6; // A6 - Iout3 -红色 ChSel[9]= 9; // B1 - Vout1 ChSel[10]= 10; // B2 - Vout2 ChSel[11]= 12; // B3 - Vout3 ChSel[12]=14; // B6 - Vin/Vout8 // // ADC 触发选择 // TrigSel[0]= 5; // ePWM1、ADCSOCA TrigSel[1]=5; // ePWM1、ADCSOCA TrigSel[2]= 5; // ePWM1、ADCSOCA TrigSel[3]= 5; // ePWM1、ADCSOCA TrigSel[9]= 5; // ePWM1、ADCSOCA TrigSel[10]= 5; // ePWM1、ADCSOCA TrigSel[11]= 5; // ePWM1、ADCSOCA TrigSel[12]=5; // ePWM1、ADCSOCA ADC_SOC_CNF (ChSel、TrigSel、ACQPS、16、0);
正如您指出的、Iout1R 来自 ADCINA2、Iout2R 来自 ADCINA1、依此类推。 当来自 ePWM1的 SOCA 触发发生时、对所有 ADC 通道进行采样。 因此、如果要更改采样 Iout1R 的 ADC 通道、只需更改 ChSel[1]中的通道编号。
ADC 完成转换后、ADC 结果将加载到 DPL_ISR 中的 AdcNetBus[16]中、该 DPL_ISR 位于 LED_Boost_PC_ISR.asm 中。 这使用 ADCDRV_1ch.asm 中的汇编宏来将12位结果传输到左对齐的32位字(请记住、AdcNetBus[16]被定义为 long)、这样 ADC 结果采用 Q24格式。
我认为数组 AdcNetBus[16]保存 ADC 的每个结果、即使它们未使用(即0、4-8和13-15)。
请告诉我这是否回答了问题。
最棒的
Matthew
维克多
我注意到在这个主题 https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/666638/2483841#2483841上有一个类似的对话框。 我们似乎得出同样的结论(我也与 Brett 谈过)。
正如他提到的、BOOSTXL-C2KLED 上的物理连接与 RGBLED 套件不同。 我可以说 BOOSTXL-C2KLED 的 ChSel[11]= 12是正确的、这里的评论是错误的。 VRED (Vout3)位于该 PCB 上的 ADCINB4 (请参阅下面的原理图捕捉)上、因此该通道的值"12"对于 ADCINB4是正确的。 在 RGB 套件上、它是 ADCINB3、因此该 PCB 为11。
对于上述确实存在的 I 和 V、这看起来是正确的。 请注意、在 BOOSTXL-C2KLED 上、硬件中不存在 Iout4、5、6、并且未连接到 F28027器件的任何模拟引脚。 我的观点是、由于这些通道是浮动的、因此无需对它们进行采样。 为了节省 ADC 采样时间、我不会为浮点通道启用触发器(保留为"0"与"5")。
我假设对于 GUI 交互、可能也会有差异、这会导致您需要检查代码的问题。
最棒的
Matthew
Matthew、您好!
我仍然有同样的问题、我已修改如下:
#defineIout1RAdcResult.ADCRESULT1//Q12 #defineIout2RAdcResult.ADCRESULT2//Q12 #defineIout3R AdcResult.ADCRESULT3/Q12 #defineIout4RADCRESULT156.ADCRESULT12/Q12 #define Iout8R ADCRESCR/ADCR015R #ADCR0R #ADCRESCR/ADCR0R #ADCR0R #ADCR/ADCRESCR0R #ADCR0R #ADCR015R ADCR/ADCRESCR/ADCR0R #ADCR0R #ADCR/ADCRESCR0R #ADCR0R #ADCR/ADCRESCR0R #ADCR/ADCRESCR0R #ADCR0R #ADCR/ADCR0R #ADCR/ADCR0R #ADCRESCR/ADCRESCR0R #ADCR015R #ADCR/ADCR/ADCRESCR0R #ADCR/ADCR/ADCR0R #ADCRESCR/ #defineVinRAdcResult.ADCRESULT12//Q12 // ADC 通道选择 选择 ChSel[0]= 2;//针对第一个样本错误 ChSel[1]的虚拟读取 ;// A2 - Iout1 ChSel[2]= 1;// A1 - Iout2 ChSel[3]= 6; // Iout1 - Iout1;/Iout2 Chel[3]= 6;/Iout1 // A6 - Iout5 ChSel[6]= 3;// A3 - Iout6 ChSel[7]= 14;// B6 - Iout7 ChSel[8]= 7;// A7 - Iout8 */ ChSel[9]= 9;// B1 - Vout1 ChSel[10]= 10;// A7 - Iout8 */ Choutel[9]= 9;// B1 - Vout1 Chel[10]= 10;// Vout2 = 12/ Chout2 // b6 - Vin/Vout8 // ADC 触发选择 TrigSel[0]= 5;// ePWM1、ADCSOCA TrigSel[1]= 5;// ePWM1、ADCSOCA TrigSel[2]= 5;// ePWM1、ADCSOCA TrigSel[3];//ADCSOM1 = 0*、ADCSOCSRG[1];ADCSRM1 = 5;// ADCSOCSRGM1 = 0*、ADCSRGM1 = 5;// ADCSOCSRGM1 = 0*= 0[0];ADCSRG/CADCSRGM1 = 0*// ePWM1、ADCSOCA TrigSel[7]= 0;// ePWM1、ADCSOCA TrigSel[8]= 0;// ePWM1、ADCSOCA */ TrigSel[9]= 5;// ePWM1、ADCSOCA TrigSel[10]= 5;// ADCSOM1 = 5;/eCSOCSRG[12]= 5;// ADCSRGM1
我需要检查的其他任何地方?