MSP430 SPI接口DMA模式通信

为提高TinyOS系统下节点写Flash的速度,通过IAR在MSP430上实现SPI接口的DMA模式读写Flash。DMA能避免CPU介入数据传输,提高效率。文章探讨了如何选择和配置DMA通道、触发方式、传输字节数以及源地址和目的地址的管理。尽管Single和Block传输模式的差异在datasheet中难以理解,但实践中理解其工作原理对于优化通信至关重要。
摘要由CSDN通过智能技术生成

          因为在tinyos系统下,节点写flash的速度过慢,开始怀疑是不是SPI的速度有问题,所以后来就直接在IAR上裸机读写FLASH,看看速度可以去到多少。用到了430的SPI的DMA模式

        DMA模式之所以会更快,是因为所要传输的数据省去了要经过CPU处理这一步,直接在内部总线传输到DMA寄存器,然后DMA寄存器在根据情况通过总线传输到目标寄存器。这里的总线,我也还没搞清楚。在DMA传输数据的时候,虽然说CPU可以继续干自己的活,但是如果CPU要使用总线的话,而总线被DMA占用了,这时候该怎么办?

void SpiDmaSend(uint8_t cmd,uint8_t *tx_addr, uint8_t *rx_addr,uint16_t len)
{
  DMACTL0 =DMA2TSEL_3 + DMA0TSEL_4; 
  IFG1 &= ~( UTXIFG0 | URXIFG0 );         //Clear interrupt flag
 
  DMA2SA =  (unsigned int)&U0RXBUF;       // Src address = UART RX Buffer
  DMA2DA =  (unsigned int) rx_addr;       // Dst address = rbuf
  DMA2SZ =  len;                                           
  DMA2CTL = DMADT_0  +  DMASBDB ;    
  cmd&
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值