查看: 5419|回复: 5

求助:MC9S08JM60 SPI单线双向读写问题

[复制链接]

该用户从未签到

1

主题

3

帖子

0

新手上路

Rank: 1

积分
1
最后登录
1970-1-1
发表于 2012-4-5 10:20:59 | 显示全部楼层 |阅读模式
用MC9S08JM60内置SPI做master,采用单线双向的方式.访问外围A7125芯片寄存器,规范为先发送一个8 bit地址(bit 6指示读或写),随后8个SPI CLK即为数据阶段。
   读A7125寄存器时设置SPC0 = 1,BIDIROE =1,发送地址在示波器上OK。(发现SPI CLK是要在填写SPI data寄存器后产生的)。但是要读取A7125返回的数据(BIDIROE = 0),因为是被动等待SPRF标志并读spi data,这时是不是不会主动发出spi clk?没有spi clk,示波器上就没有看到读回的数据。
   用GPIO模拟SPI一切正常。但是速度是不是会大大慢于用MCU内置SPI?还有尝试过发送完地址后,再次往spi data寄存器写一个任意值,目的是产生CLK,示波器上就能看到读回A7125寄存器值。
   另外,code warrior调试时打开memory窗口实时监视SPI0对应的几个寄存器值,会不会扰乱SPRF,SPTEF标志的值或影响SPI模块的行为?
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-4-5 14:17:23 | 显示全部楼层

    RE:求助:MC9S08JM60 SPI单线双向读写问题

    1、GPIO模拟肯定不如模块的速度;
    2、使用SPI模块读取的时候,CLK操作都是由模块控制,应该是你代码获取的问题,你可以参考官方的SPI使用方式;
    3、CW监视不影响寄存器。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    3

    帖子

    0

    新手上路

    Rank: 1

    积分
    1
    最后登录
    1970-1-1
     楼主| 发表于 2012-4-6 15:02:30 | 显示全部楼层

    回复:求助:MC9S08JM60 SPI单线双向读写问题

    回复第 2 楼 于2012-04-05 14:17:23发表:
    1、GPIO模拟肯定不如模块的速度;
    2、使用SPI模块读取的时候,CLK操作都是由模块控制,应该是你代码获取的问题,你可以参考官方的SPI使用方式;
    3、CW监视不影响寄存器。 

    谢谢!第二条还是不明白。CLK肯定是Master控制的。发送数据是由填写SPI DATA寄存器触发产生CLK,但是要接收外围设备返回数据的时候,CLK是怎样产生的呢?
    是不是说SPI模块的原理是在移位寄存器逐个bit发送的同时,也在接收bit?这样发送完数据的同时,也接收到了数据在Rx buffer里?
    按照控制A7125外围芯片规范:发送1 byte地址+读取1 byte数据,MCU SPI 作为master怎么知道要在发送完地址后,还要再产生8CLK来读数据?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    5

    帖子

    0

    新手上路

    Rank: 1

    积分
    8
    最后登录
    1970-1-1
    发表于 2012-5-25 22:13:22 | 显示全部楼层

    回复:求助:MC9S08JM60 SPI单线双向读写问题

    楼主 目前JM60 硬SPI访问A7125调通了吗?之前我在MC9S08QG8上面硬SPI搞定了。在JM60上,一直停滞于读写某些寄存器的水平。(没有实现先写ID再读出来那步)。楼主若以完成 是否可以分享下经验
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    5

    帖子

    0

    新手上路

    Rank: 1

    积分
    8
    最后登录
    1970-1-1
    发表于 2012-5-25 22:21:33 | 显示全部楼层

    回复:求助:MC9S08JM60 SPI单线双向读写问题

    你说的那些标志寄存器会不会影响运行,我之前专门弄SPI的时候,发现那些状态标志寄存器在瞬间是会跳变的,都用单步的话标志状态已跳回去,用WHILE的话就死了,连起来运行就OK的。还有接受时SCK的产生确实也是要给发送的赋值才会有,用三线的改为接受的话,应该只在寄存器中移位,输不出去,可以接收。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    5

    帖子

    0

    新手上路

    Rank: 1

    积分
    8
    最后登录
    1970-1-1
    发表于 2012-5-25 22:24:23 | 显示全部楼层

    回复:求助:MC9S08JM60 SPI单线双向读写问题

    个人感觉硬SPI的接受/发送buffer只有一个的 ,手册的SPI章那幅图的意思好像只有一个。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-19 13:56 , Processed in 0.093216 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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