查看: 7139|回复: 17

[其他] 每天解决一个问题31天 :KSDK1.2库SPI的CS引脚I/O实现

[复制链接]
  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16702
    最后登录
    1970-1-1
    发表于 2015-9-24 23:17:17 | 显示全部楼层 |阅读模式
    今天继续给大家分享我遇到的用KSDK1.2库实现SPI方面的问题。

    ===========================================================

    一、问题描述:
    这个问题来源于使用YL-KL26Z学习SPI接口的问题。
    YL-KL26Z的SPI接W25Q32的电路如下:
    3960.jpg
    可以看出CS引脚使用的时PTB0,而非SPI模块的PTC4。
    那如何使用KSDK库编程,使用I/O口模拟CS引脚呢?

    二、解决办法:
    1、在使用KSDK库中的SPI功能的driver库函数时,没有发现配置SPI的CS引脚使用模拟I/O引脚来代替。
    经分析,发现driver库使用的时SPI模块的CS0,自动片选模式:
    3961.jpg
    2、这就是说,KSDK的driver库本身不支持CS的I/O模拟来实现,需要自己从新写SPI驱动函数。
    3、本人比较懒,还是在KSDK库的基础上修改一下吧。站在巨人的肩上
    4、首先,在pin_mux.c中去掉cs的引脚配置:
    3964.jpg
    5、在gpio_pins.h中添加CS的说明:
    3965.jpg
    6、在gpio_pins.c中添加CS的结构体变量:
    3966.jpg
    7、在board.h中宏定义CS的操作:
    3967.jpg
    8、在driver库中的初始化函数部分设置如下:
    3962.jpg
    9、在spi传输部分屏蔽下面2行,不屏蔽时序上会有问题,不能正确读写:
    3963.jpg
    10、重新编译库
    11、主程序写个测试代码:
    3968.jpg
    12、修改后调试通过,效果就不上图了。

    三、感想与收获:
    1、这个修改当时还是花了不少时间。
    2、KSDK库还是有些不太完善的地方,不能解决大家的所有问题,下一步有时间还是要深入学学HAL层的内容。


    我知道答案 目前已有17人回答
    回复

    使用道具 举报

    该用户从未签到

    61

    主题

    965

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2394
    最后登录
    1970-1-1
    发表于 2015-9-25 08:52:08 | 显示全部楼层
    谢谢分享         
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2015-9-25 09:17:20 | 显示全部楼层
    学习了,谢谢分享
    freescaleic.org.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
    发表于 2015-9-25 10:37:49 | 显示全部楼层
    确实,KSDK的内容冗杂,都是飞思按照自己的习惯写的,想要符合自己的习惯,很多函数都需要重写
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
    发表于 2015-9-25 10:39:22 | 显示全部楼层
    这个SPI FLASH模块,用KSDK死活调不通,自己操作寄存器,不到十分钟就搞定了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-4 16:56
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    602

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1842
    最后登录
    2020-8-25
    发表于 2015-9-25 11:52:28 | 显示全部楼层
    学习了。。。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-4 07:07
  • 签到天数: 24 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    22

    主题

    513

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2043
    最后登录
    2018-8-15
    发表于 2015-10-14 20:12:53 | 显示全部楼层
    K26好像没有专门的CS,K64有CS,不过看四色板的SPI片选是用的普通I/O实现的
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16702
    最后登录
    1970-1-1
     楼主| 发表于 2015-10-15 01:34:07 | 显示全部楼层
    格列佛 发表于 2015-10-14 20:12
    K26好像没有专门的CS,K64有CS,不过看四色板的SPI片选是用的普通I/O实现的

    K26有,但只有1个
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    243

    帖子

    0

    高级会员

    Rank: 4

    积分
    856
    最后登录
    2016-6-11
    发表于 2015-10-15 08:16:52 | 显示全部楼层
    学习了,感谢分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-3-2 08:55
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    23

    主题

    193

    帖子

    0

    高级会员

    Rank: 4

    积分
    500
    最后登录
    2017-11-3
    发表于 2015-10-15 08:49:02 | 显示全部楼层

    谢谢分享  
    1.png
    天气好
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-21 15:13 , Processed in 0.111506 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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