Other Parts Discussed in Thread: TM4C1294KCPDT, EK-TM4C1294XL
Thread 中讨论的其他器件: EK-TM4C1294XL
您好!
我正在使用 TM4C1294KCPDT 控制器。 我想插入两个模拟引脚,在这种情况下我不知道 ADC 采样序列发生器。 任何机构都可以用示例对此进行解释?
它意味着 FIFO 的采样数和深度是多少? 如何在配置中使用它。
提前感谢。
谢谢、此致、
Rani
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.
Other Parts Discussed in Thread: TM4C1294KCPDT, EK-TM4C1294XL
您好!
我正在使用 TM4C1294KCPDT 控制器。 我想插入两个模拟引脚,在这种情况下我不知道 ADC 采样序列发生器。 任何机构都可以用示例对此进行解释?
它意味着 FIFO 的采样数和深度是多少? 如何在配置中使用它。
提前感谢。
谢谢、此致、
Rani
器件型号:TM4C1294KCPDT
您好!
我 想在 ADCSequenceStepConfigure 中将 ADC 序列号配置为3,步骤配置为1。 那么 ,如果我配置我的 API 如 ADCSequenceStepConfigure ( ADC0_BASE,3,3 ADC_CTL_CH8) ,这是正确的吗?
void ADCSequenceStepConfigure ( uint32_t ui32Base, uint32_t ui32SequenceNum, uint32_t ui32Step, uint32_t ui32Config )
如果选择 序列发生器-3、1步 作为 ADCSequenceStepConfigure ( ADC0_BASE、3、3 ADC_CTL_CH8)
2. SEQUENCER-2 , 4步作为 ADCSequenceStepConfigure ( ADC0_BASE,2,4 ADC_CTL_CH8)
3. SEQUENCER-0 ,8步 作为 ADCSequenceStepConfigure ( ADC0_BASE,0,8 ADC_CTL_CH8)
如果我错了,请更正...
提前感谢
谢谢、此致、
Rani
您好 Rani、
[引用 userid="473476" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1051586/tm4c1294kcpdt-adc--sample-sequencers/3890757 #3890757"]因此 ,如果我配置我的 API,如 ADCSequenceStepConfigure ( ADC0_BASE,3,3 ADC_CTL_CH8) ,则该选项是正确的?[/QUERP]不完全是。 对于序列3、步骤1、您将使用以下内容: 编辑:请参阅2021年11月9日的注释以了解正确的配置。
ADCSequenceStepConfigure(ADC0_BASE, 3, 1, ADC_CTL_CH8);
序列号为3、步进号为1。 编辑:请参阅2021年11月9日的注释以了解正确的配置。
对于序列2/序列0、您的代码是正确的。 编辑:请参阅2021年11月9日的注释以了解正确的配置。
[引用 userid="473476" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1051586/tm4c1294kcpdt-adc--sample-sequencers "]任何机构都可以用示例解释这一点?我们在 TivaWare 中提供了 ADC 的示例代码-我相信您可能已经在自己的基础上找到了这些代码、但在[安装路径]\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\adc_udma_pingpong 中提供了 EK-TM4C1294XL LaunchPad 的示例。
[安装路径]\TivaWare_C_Series-2.2.0.295\examples\peripheral\ADC 也有其他示例
[引用 userid="473476" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1051586/tm4c1294kcpdt-adc--sample-sequencers "]它意味着 FIFO 的采样数和深度是多少?样本数表示在触发中断之前收集了多少个样本、以指示采样已完成。 FIFO 深度指示 FIFO 满之前可以存储的最大采样数。 一旦 FIFO 满、在 FIFO 被清空前、未来的写入将不会发生、但是会触发一个溢出标志来指示 ADC 被处理的速度不够快、并且采样数据因此丢失。
此致、
Ralph Jacobi
Ralph Jacobi,
我看到了一些 ADC 的示例代码,因为它们配置如下,但我无法理解 。您能解释一下。
ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH0);
ADCSequenceStepConfigure (ADC0_BASE、0、1、(ADC_CTL_CH4));
ADCSequenceStepConfigure (ADC0_BASE、0、2、ADC_CTL_CH8);
ADCSequenceStepConfigure (ADC0_BASE、0、3、(ADC_CTL_CH9 | ADC_CTL_IE | ADC_CTL_END));
序列发生器0表示步骤应该只有8个... 但在这里,它们的菜单有不同的... 上述配置是否正确?
此致、
Rani
您好 Rani、
我必须在这里稍微纠正一下、因为我没有正确地考虑代码转换、即对于寄存器、步长为0到7、而不是1到8。 因此、您之前的代码实际上对 TivaWare API 不准确。 正确的值为:
ADCSequenceStepConfigure(ADC0_BASE, 3, 0, ADC_CTL_CH8 | ADC_CTL_IE | ADC_CTL_END); ADCSequenceStepConfigure(ADC0_BASE, 2, 3, ADC_CTL_CH8 | ADC_CTL_IE | ADC_CTL_END); ADCSequenceStepConfigure(ADC0_BASE, 0, 7, ADC_CTL_CH8 | ADC_CTL_IE | ADC_CTL_END);
我现在还附加了 ADC_CTL_IE | ADC_CTL_END 方面、用于这些最终步骤、因为它们将是序列中的最后一个采样。 ADC_CTL_IE 通常需要添加、以便正确触发中断、但如果使用手动触发器、则不需要这样做。 ADC_CTL_END 对于标记采样结束非常重要。
关于步进本身、步进值决定 了触发发生时 ADC 采样的顺序。 因此、您可以设置任何符合序列条件的值。 此外、如果序列可以有多个步骤、则可以为每个步骤选择不同的通道。 对于具有8个可用样本的序列0、您可以选择在触发中断之前从多达8个不同的输入中采样。
您发布的代码是针对四个输入执行该操作、其中第0步的第一个采样在 CH0上完成、第1步的第二个采样在 CH4上完成、第2步的第三个采样在 CH8上完成、 第4个采样位于 CH9上、即第3步、第3步是最后一步、因此中断将在该采样被处理后触发。
现在、深度为4的 ADC FIFO 中将有4个采样。 由于它是一个 FIFO、读取它将按照它们是采样的顺序获得值、即 CH0、CH4、CH8和 CH9。
如果您希望从单个通道获取8次测量、则需要配置所有8个步骤、这意味着代码如下所示:
ADCSequenceStepConfigure(ADC_BASE, 0, 0, ADC_CTL_CH1); ADCSequenceStepConfigure(ADC_BASE, 0, 1, ADC_CTL_CH1); ADCSequenceStepConfigure(ADC_BASE, 0, 2, ADC_CTL_CH1); ADCSequenceStepConfigure(ADC_BASE, 0, 3, ADC_CTL_CH1); ADCSequenceStepConfigure(ADC_BASE, 0, 4, ADC_CTL_CH1); ADCSequenceStepConfigure(ADC_BASE, 0, 5, ADC_CTL_CH1); ADCSequenceStepConfigure(ADC_BASE, 0, 6, ADC_CTL_CH1); ADCSequenceStepConfigure(ADC_BASE, 0, 7, (ADC_CTL_CH1 | ADC_CTL_END));
我很抱歉 ,我之前的回复很不明确,对序列发生器和步骤的理解没有帮助。 我希望这能提供有关配置 ADC 外设的正确方法的大量信息。
此致、
Ralph Jacobi