nRF52832 Timer+PPI+SPI 全硬件触发方式控制DAC,减少CPU干预,效率极大提升

本文探讨了使用nRF52832的Timer、PPI和SPI全硬件触发方式控制DAC遇到的问题及解决方案。在测试中发现,由于SPI的CS信号异常导致DAC无法正常输出。解决方案是利用PPI的二级任务端点设置CS电平,并通过GPIOTE功能实现CS的自动控制,确保SPI传输完成后CS能自动恢复高电平。
摘要由CSDN通过智能技术生成

版权声明:本文为博主原创文章,保留最终解释权,转载请注明出处。

【问题】:测试Timer每次通过PPI触发SPI写,SPI写完调用回调函数,回调函数中测试 NRF_SPIM2->TXD.PTR 的每次都是正常递增变化的,但是DAC就是没有实际的输出;
PS:1、要写的源数据测试是正确的;
2、为了不频繁占用CPU资料,用的PPI,用上后 timer+PPI+SPI(DMA) 写DAC 一直没调通,不加PPI的timer+SPI 写DAC 是OK的;
【原因】:进一步测试发现CS始终为高电平,手动飞线拉低CS再放开,DAC才有输出,判断为CS控制异常原因导致,而nRF52832的硬件SPI没有CS功能,SPI发送前需要软件设置CS为低,而设计中采用的是PPI触发,全硬件运行,没有软件可以控制CS电平变化,所以,CS一直为高;
在这里插入图片描述
【解决方案】:
1、TIMER+PPI+SPI(DMA)& CS中,PPI的二级任务端

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Winter_world

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值