楼主: spromise

[分享] KL26Z--SPI的DMA实现

[复制链接]

该用户从未签到

5

主题

52

帖子

0

注册会员

Rank: 2

积分
195
最后登录
2016-2-29
 楼主| 发表于 2015-8-6 09:43:44 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-8-5 17:05
不好意思,上个月在其他论坛,可能没注意到你的问题。
那你之前有没有把从机的发送buf先填满数据呢?
你 ...

FSL_TICS_ZJJ 你好 我按照例程做了先把传送BUFFER填满 但是前面的字节还是为0  如果buffer没填满的话应该是总是第一个字节为0 但是我现在遇见的问题是前面的有3~4个字节总是为0 这个我就不知道什么原因了 麻烦帮忙分析下 万分感谢
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-8-6 09:56:39 | 显示全部楼层
spromise 发表于 2015-8-6 09:43
FSL_TICS_ZJJ 你好 我按照例程做了先把传送BUFFER填满 但是前面的字节还是为0  如果buffer没填满的话应该 ...

这样,你把你主从机的工程都放上来,我有空帮你看下。
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

52

帖子

0

注册会员

Rank: 2

积分
195
最后登录
2016-2-29
 楼主| 发表于 2015-8-6 10:02:30 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-8-6 09:56
这样,你把你主从机的工程都放上来,我有空帮你看下。

OK 马上 我整理一下就放上来 谢谢支持
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-8-6 11:02:30 | 显示全部楼层
spromise 发表于 2015-8-6 10:02
OK 马上 我整理一下就放上来 谢谢支持

工程太大,你就把关键SPI驱动给我吧。
我这边嵌入到KLK26工程中帮你看看。
你现在是从机也用DMA SPI对吧?
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

52

帖子

0

注册会员

Rank: 2

积分
195
最后登录
2016-2-29
 楼主| 发表于 2015-8-6 11:26:30 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-8-6 11:02
工程太大,你就把关键SPI驱动给我吧。
我这边嵌入到KLK26工程中帮你看看。
你现在是从机也用DMA SPI对吧 ...

是的 那我就把驱动贴上来哈 稍等
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

52

帖子

0

注册会员

Rank: 2

积分
195
最后登录
2016-2-29
 楼主| 发表于 2015-8-6 11:35:45 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-8-6 11:02
工程太大,你就把关键SPI驱动给我吧。
我这边嵌入到KLK26工程中帮你看看。
你现在是从机也用DMA SPI对吧 ...

我所用的驱动文件已经上传 麻烦帮忙检查一下 谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-8-7 10:31:31 | 显示全部楼层
本帖最后由 FSL_TICS_ZJJ 于 2015-8-7 10:36 编辑

楼主,你这个代码就不是DMA啊,这个就是查询法呢。
你主机是用什么方式,从机是涌什么方式。
我看你SPI_As_Slave_DMA_Write_Byte,虽然函数名称用了DMA,但是你里面用的都是查询法在等待啊。
DMA是不需要你自己写发送代码的,DMA会直接把一个内存的数据直接发送到你的SPI发送buff中,然后自动传出去,这些都是硬件传输,
而不需你自己软件去判断SPI的接收发送标志了。
你理解概念错误了。

回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

52

帖子

0

注册会员

Rank: 2

积分
195
最后登录
2016-2-29
 楼主| 发表于 2015-8-7 11:06:52 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-8-7 10:31
楼主,你这个代码就不是DMA啊,这个就是查询法呢。
你主机是用什么方式,从机是涌什么方式。
我看你SPI_As_ ...

这个我只是开始的时候做单个数据发送时做的一个试验 我想把我要发送的数据分单个的写到DMA发送的地址 我也有把要发送的数据一次性全部写到DMA发送的地址直接发送的 没有自己去单个写 但是两者的试验结果都是一样的 主机那边总是前面几个接收到的数据为0  
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-8-7 11:14:04 | 显示全部楼层
本帖最后由 FSL_TICS_ZJJ 于 2015-8-7 11:15 编辑
spromise 发表于 2015-8-7 11:06
这个我只是开始的时候做单个数据发送时做的一个试验 我想把我要发送的数据分单个的写到DMA发送的地址 我 ...

你现在主机用的是什么代码?
你如果主从机都用发送查询,或者中断的方式,会不会出现你说的前面几个字节都是0的情况?
还有,你有没有使用逻辑分析仪,或者是示波器,看看SPI的数据信号,看看数据线上面,是真的没有数据,还是有数据,MCU端接数据存buff的问题?
先仔细排查下。
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

52

帖子

0

注册会员

Rank: 2

积分
195
最后登录
2016-2-29
 楼主| 发表于 2015-8-7 11:27:34 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-8-7 11:14
你现在主机用的是什么代码?
你如果主从机都用发送查询,或者中断的方式,会不会出现你说的前面几个字节都 ...

主机使用的代码完全是封装的 值提供了APP接口  所以提供不了 我现在正在用逻辑分析仪分析从机这边发送的数据是否有问题 然后再排查错误
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-28 07:37 , Processed in 0.100080 second(s), 27 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表