TI 团队、
我正在使用上述微控制器。 我想对并行数据(12位)@ 10MHz 频率进行采样。 为此、我需要在 GIO 中断处对10MHz 时钟进行采样、并在 ISR 中对12位并行数据进行采样、并将数据存储在 RAM 中。
在最初执行此任务时 、我采用了外部时钟@ 5MHz 并尝试在每个边沿切换 GIO 引脚、但在5MHz 的给定频率下也无法实现这一点
您能告诉我这个微控制器是否能够满足我在第一段中描述的要求吗?
此致。
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.
TI 团队、
我正在使用上述微控制器。 我想对并行数据(12位)@ 10MHz 频率进行采样。 为此、我需要在 GIO 中断处对10MHz 时钟进行采样、并在 ISR 中对12位并行数据进行采样、并将数据存储在 RAM 中。
在最初执行此任务时 、我采用了外部时钟@ 5MHz 并尝试在每个边沿切换 GIO 引脚、但在5MHz 的给定频率下也无法实现这一点
您能告诉我这个微控制器是否能够满足我在第一段中描述的要求吗?
此致。
您好!
[引用 userid="488031" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum @ 1128410/tms570lc4357-EP-parally-data-sampling-using-gio"]我想对并行数据(12位) 10MHz 频率进行采样。 为此、我需要在 GIO 中断处对10MHz 时钟进行采样、并在 ISR 中对12位并行数据进行采样、并将数据存储在 RAM 中。[/引用]您使用哪个 GPIO 引脚对时钟进行采样? 我想它是 GPIO Porta 之一、对吧? 当 GPIO 检测到一个边沿时、它将生成一个中断。 但是、从检测到中断到进入 ISR 之间会有一些延迟。 我们没有显示延迟的数据、但我认为您可以通过在 ISR 中将另一个 GPIO 引脚置为有效来进行一些测量、您将知道从输入边沿检测到的时间、直到将另一个 GPIO 引脚置为有效。
[引用 userid="488031" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum 1128410/tms570lc4357-EP-parally-data-sampling-using-gio"]我已采用外部时钟@ 5MHz您能不能澄清如何使用5MHz 时钟? 您是否通过 GPIO 输入使用中断对5MHz 进行采样?
您好、蔡
是的、我使用 GPIO Porta 引脚7进行中断检测(中断是来自频率为5MHz 的另一个源的时钟信号)。
时钟设置:GCLK = 300MHz、VCLK1 = 150Mhz、HCLK = 150Mhz。
在 ISR 中、我要切换 GPIO 引脚(GIO A 引脚1)、我的观察结果是 ISR 中的 GIO 切换频率接近740Khz。 它是否应该等于中断频率??
此外、我想知道我可以对 GIO 中断进行采样并在 ISR 中执行某种操作的频率是多少?
您好!
您能否显示 GPIOA7和 GPIOA1的示波器捕获? 我建议您切换 GPIOA1、使其遵循 GPIOA7。 请注意、如果您在每个 GPIOA7边沿上交替切换 GPIOA1、GPIOA7只能将 GPIOA7的频率减半。
另请确认您是否已启用处理器高速缓存。
如前所述、从检测到中断到处理器进入 ISR 有一定的延迟。 检测到边沿后、一个中断请求从 GPIO 模块发送到 VIM、并且最终 IRQ 请求被发送到处理器、这个过程将需要一些周期。 处理器收到 IRQ 请求后、需要进行上下文切换、这也需要一些周期。 进入 ISR 后、您可能已经执行了一些读取-修改-写入操作(例如、读取 GPIOA1的状态、然后切换到相反状态)、这将再次花费周期。 如果您有一个快速输入(例如5MHz 输入)、如果您仍在处理当前 ISR 的过程中、则下一个边沿的处理速度可能不够快。 如果用汇编语言而不是 C 代码编写 ISR、则可以提高延迟。 例如、根据标志置1或清零 GPIOA1引脚、而不是读取 GPIOA1 DIN 寄存器的状态、然后置1为相反状态。
另请考虑硬件中断而不是软件中断。 有关详细信息、请参阅 TRM。 另一个建议是使用 FIQ 中断而不是 IRQ。 这些建议可能无法实现您所需的输出频率、但会改善延迟。
