查看: 3212|回复: 7

[已解决] 使用MKL05Z32的SPI出现错误(已解决)

[复制链接]
  • TA的每日心情
    郁闷
    2021-1-9 21:21
  • 签到天数: 56 天

    连续签到: 1 天

    [LV.5]常住居民I

    52

    主题

    677

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    1470
    最后登录
    2021-1-9
    发表于 2014-10-29 15:59:24 | 显示全部楼层 |阅读模式
    本帖最后由 FSL_TICS_ZP 于 2014-11-27 14:48 编辑

    MKL05Z32作为SPI的master,外围芯片作为salve,SPI驱动选用的是http://cache.freescale.com/files/32bit/software/KL05-SC.zip中的驱动,无法读取到外围芯片的返回值,使用逻辑分析仪获得下图的图形,从图形可以看到CS信号及CLOCK信号在MKL05Z32写完数据后就复位了,导致无法读取到外围芯片的返回值,请问哪里出现了问题???

    1.jpg


    根据外围芯片手册的描述,外围芯片返回值在接收完指令后最少需要15us。
    我知道答案 目前已有7人回答
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-10-29 16:14:07 | 显示全部楼层
    SPI写完数据以后没有回复,楼主指的回复是什么?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-10-29 16:14:09 | 显示全部楼层
    SPI写完数据以后没有回复,楼主指的回复是什么?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-1-9 21:21
  • 签到天数: 56 天

    连续签到: 1 天

    [LV.5]常住居民I

    52

    主题

    677

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    1470
    最后登录
    2021-1-9
     楼主| 发表于 2014-10-29 16:52:12 | 显示全部楼层
    安 发表于 2014-10-29 16:14
    SPI写完数据以后没有回复,楼主指的回复是什么?

    我向外围器件发送命令,外围器件接收到命令后根据命令做处理,然后返回处理结果
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-1-9 21:21
  • 签到天数: 56 天

    连续签到: 1 天

    [LV.5]常住居民I

    52

    主题

    677

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    1470
    最后登录
    2021-1-9
     楼主| 发表于 2014-10-29 17:00:13 | 显示全部楼层
    中山无雪 发表于 2014-10-29 16:52
    我向外围器件发送命令,外围器件接收到命令后根据命令做处理,然后返回处理结果 ...

    void SPI_InitMater( void )
    {
                    // enable clock gate for spi module
              SIM_SCGC4 |= SIM_SCGC4_SPI0_MASK;
              
              // enable PORT
              SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK|SIM_SCGC5_PORTB_MASK;
             
              // disable SPI
              SPI0_C1 &= ~SPI_C1_SPE_MASK;
             
              // configure I/O to SPI function
             
            PORTA_PCR5 &= ~PORT_PCR_MUX_MASK;
            PORTA_PCR5 |= PORT_PCR_MUX(3)|PORT_PCR_DSE_MASK;                          //Use PTA5 as SPI0_SS_b
           
        PORTA_PCR6 &= ~PORT_PCR_MUX_MASK;
            PORTA_PCR6 |= PORT_PCR_MUX(3)|PORT_PCR_DSE_MASK;                          //Use PTA6 as SPI0_MISO
        PORTA_PCR7 &= ~PORT_PCR_MUX_MASK;
            PORTA_PCR7 |= PORT_PCR_MUX(3)|PORT_PCR_DSE_MASK;                          //Use PTA7 as SPI0_MOSI
        PORTB_PCR0 &= ~PORT_PCR_MUX_MASK;
            PORTB_PCR0 = PORT_PCR_MUX(3)|PORT_PCR_DSE_MASK;                            //Use PTB0 as SPI0_SCK
           
            SPI0_C1 |= SPI_C1_MSTR_MASK;
            //SPI0_BR = 0x02;
            //SPI0_BR = (SPI_BR_SPPR(0x06) | SPI_BR_SPR(0x00));//速率1.713MHz
            //SPI0_BR = (SPI_BR_SPPR(0x02) | SPI_BR_SPR(0x02));
            SPI0_BR = (SPI_BR_SPPR(0x02) | SPI_BR_SPR(0x03));//436.907KHz
            SPI0_C1 |= SPI_C1_SSOE_MASK;  
            SPI0_C2 |= SPI_C2_MODFEN_MASK;
            //SPI0_C2 &= ~SPI_C2_MODFEN_MASK;//ss片选引脚无效
            SPI0_C2 |= SPI_C2_SPC0_MASK;
            SPI0_C2 &= ~SPI_C2_SPC0_MASK;

            SPI0_C1 |= SPI_C1_CPHA_MASK;
            SPI0_C1 &= (~SPI_C1_CPHA_MASK);       
            SPI0_C1 |= SPI_C1_CPOL_MASK;
            SPI0_C1 &= (~SPI_C1_CPOL_MASK);
            SPI0_C1 |= SPI_C1_LSBFE_MASK;
            SPI0_C1 &= (~SPI_C1_LSBFE_MASK);
           
           
            SPI0_C1 |= SPI_C1_SPE_MASK;
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-10-30 09:26:06 | 显示全部楼层
    这个是初始化的设置,如果需要读取返回信息,发送完以后马上读取返回值就可以了。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2014-10-30 14:16:28 | 显示全部楼层
    中山无雪 发表于 2014-10-29 16:52
    我向外围器件发送命令,外围器件接收到命令后根据命令做处理,然后返回处理结果 ...

    从你的初始化代码上看,
    没有发现有什么不妥的地方,你可以抓取正常操作外围芯片的波形与此波形进行比较,看看问题出在哪里!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-1-9 21:21
  • 签到天数: 56 天

    连续签到: 1 天

    [LV.5]常住居民I

    52

    主题

    677

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    1470
    最后登录
    2021-1-9
     楼主| 发表于 2014-10-31 18:42:05 | 显示全部楼层
    从机的时钟要求是小于1MHz 即可,现在的问题是发送完数据后片选和时钟信号没有了,所以没有返回数据
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-8 03:24 , Processed in 0.101346 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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