工具/软件:Code Composer Studio
我使用 的 是 MSP430FR5994 Launchpad。 数据表显示、通过将外部时钟连接到 P1.0/DMAE0并在配置 DMA 时选择触发 DMA_TRIGGERSOURCE_31、DMA 可由外部时钟触发。 我的问题是、它在外部时钟的最大支持频率、例如12MHz、24MHz 等 数据表未提及此信息、或者我未找到它。
我在几个月前提出这个问题,但我没有得到答案。 我自己做了一些实验后、发现它支持高达1MHz 的外部触发信号。
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
我使用 的 是 MSP430FR5994 Launchpad。 数据表显示、通过将外部时钟连接到 P1.0/DMAE0并在配置 DMA 时选择触发 DMA_TRIGGERSOURCE_31、DMA 可由外部时钟触发。 我的问题是、它在外部时钟的最大支持频率、例如12MHz、24MHz 等 数据表未提及此信息、或者我未找到它。
我在几个月前提出这个问题,但我没有得到答案。 我自己做了一些实验后、发现它支持高达1MHz 的外部触发信号。
在我的设置中、DMA 在每次触发时从端口3 (P3.0--P3.7)读取一个字节。
void CONFIG_DMA()
{
dma_disableInterrupt (dma_channel_0);
/*初始化通道0 */
dma_initParam param0 ={dma_channel_0、 //使用通道0
DMA_TRANSFER_SINGLE、 //单次触发模式
帧大小、//传输大小等于图像大小
DMA_TRIGGERSOURCE_31、 //触发 src 31 (DMAE0、P1.0作为接受外部触发信号的输入)
DMA_SIZE_SRCBYTE_DSTBYTE、//字节到字节传输
DMA_TRIGG_RISINGEDGE //在上升沿触发
};
dma_init (¶m0);
}
//设置端口5 (FVLD)的中断处理程序*/
#pragma vector=PORT5_vector
__interrupt
void PORT5_ISR ()
{
GPIO_DisableInterrupt (CAMERA_FVLD);//禁用中断
DMA_setSrcAddress (DMA_CHANGE_0、
(uint32_t)(&P3IN)、 //数据源 PORT3
dma_direction 不变); // src addr 不变
DMA_setDstAddress (DMA_CHANGE_0、
(uint32_t)(img_buffer)、 //数据目标 img_buffer
dma_direction 增量); //目标地址自增加
dma_enableTransfers (dma_channel_0);
dma_enableInterrupt (dma_channel_0);//启用 DMA
}
你好、Yubo、
根据系列用户指南中的 DMA 部分、DMA 每次传输需要4个 MCLK 周期。 如果传输的目标是 FRAM、则限制为8MHz (8Mbytes/s)- RAM 将更快。 是否可以尝试将目标(img_buffer)更改为 RAM 以查看这是否加快了速度? 我假设您以16MHz 的频率运行、并且处于工作模式(不会在代码中的任何位置睡眠)。
BR、
Leo