单片机SPC5605B如何使用

 时间:2024-10-12 05:55:31

1、DMA:直接内存存取(direct memory access),一种内存访问技术,可以实现外设与内存、内存与内存之间的数据传输,恰当的使用可有效提升CPU效率。 MPC560x/SPC560x是freescale和ST合作开发的一款基于powepc架构的32位单片机芯片,价格低廉,外设丰富,功能强大,属于车规级芯片(本人使用的是MPC5607B)。MPC5607B具有16路增强型DMA(eDMA),可灵活实现64路DMA源通道数据传输功能。

单片机SPC5605B如何使用

2、功能需求:以1ms为周期循环采样PB[0]端口的电压值(AD采样撕良滤儆值) 软件设计:使用PIT3定时10ms触发AD采集功能,每采集一组数据通过eDMA依次放入到数组adc_val[]中,每采集到一定量(4组)数据触发一次eDMA中断,中断函数中处理最新接收到的数据(串口输出AD采样值),其中,ADC源数据32bits(如果不读取数据有效标志,可以只采16bit数据),数组adc_val 数据32bits。为实现每次PIT及时只响应一组数据的传输,启用默认模型(每采集一组数据触发一组主循环传输,每完成4组主循环传输触发一次DMA中断); 数据传输时序: PIT3计算10ms-->ADC采集-->ADC采集完成触发DMA_MUX29检测-->触发eDMA0数据传递(完成一次主循环):ADC数据传递到adc_val数组 eDMA0每完成了4次主循环(half or major)-->触发eDMA中断-->数据处理(串口打印)

单片机SPC5605B如何使用

3、测试:串口测试打印数据,实现预期结果。(由上传图片无法正常显示,此次无贴图)

单片机SPC5605B如何使用

4、功能需求:以1ms为周期循环采样PB[0]端口的电压值(AD采样撕良滤儆值) 软件设计:使用PIT3定时10ms触发AD采集功能,每采集一组数据通过eDMA依次放入到数组adc_val[]中,每采集到一定量(4组)数据触发一次eDMA中断,中断函数中处理最新接收到的数据(串口输出AD采样值),其中,ADC源数据32bits(如果不读取数据有效标志,可以只采16bit数据),数组adc_val 数据32bits。为实现每次PIT及时只响应一组数据的传输,启用主副循环模型(每采集一组数据触发一组副循环传输,每完成4组副循环传输触发一次DMA中断) 数据传输时序: PIT3计算10ms-->ADC采集-->ADC采集完成触发DMA_MUX29检测-->触发eDMA0数据传递(完成一次副循环):ADC数据传递到adc_val数组 eDMA0每完成了4次副循环(half or major)-->触发eDMA中断-->数据处理(串口打印) 代码实现:(此部分代码只在EDMA_Init函数中与上一节不同,以下只列出不同部分)

单片机SPC5605B如何使用

5、测试: 测试串口打印数据,其中,开发板上电后第一次DMA中断时输出的第一个数据为非法值(需要丢弃),其他各组数据均正常输出;

单片机SPC5605B如何使用
  • 西红柿炒茄丁
  • 护士执业资格证批准时间如何查询?
  • 原神踏鞴砂晶蝶在哪里
  • 如何联系分享日记的在线客服?
  • 从stream流读取数据并打印到控制台
  • 热门搜索
    端午节手抄报文字内容 关于科技的手抄报资料 数学手抄报三年级下册 与诗同行手抄报 我爱文学手抄报图片 祖国发展我成长手抄报 有关弟子规的手抄报 字谜手抄报 感恩父母手抄报简单 长征手抄报图片