查看: 2537|回复: 11

[求助] spi和adc芯片通讯,数据异常

[复制链接]

该用户从未签到

2

主题

7

帖子

0

注册会员

Rank: 2

积分
173
最后登录
2021-8-12
发表于 2021-8-11 16:23:19 | 显示全部楼层 |阅读模式
通讯的时候用示波器察看波形正常,但是不管软件中读取的数据始终是零.
void init_spi()
{
    uint32_t srcClock_Hz;
                lpspi_master_config_t masterConfig;
    masterConfig.baudRate = TRANSFER_BAUDRATE;
    masterConfig.bitsPerFrame = 8 * TRANSFER_SIZE;
    masterConfig.cpol = kLPSPI_ClockPolarityActiveLow; //kLPSPI_ClockPolarityActiveHigh;
    masterConfig.cpha = kLPSPI_ClockPhaseFirstEdge;//kLPSPI_ClockPhaseSecondEdge; //kLPSPI_ClockPhaseFirstEdge;
    masterConfig.direction = kLPSPI_MsbFirst;

    masterConfig.pcsToSckDelayInNanoSec = 1000000000 / masterConfig.baudRate;
    masterConfig.lastSckToPcsDelayInNanoSec = 1000000000 / masterConfig.baudRate;
    masterConfig.betweenTransferDelayInNanoSec = 1000000000 / masterConfig.baudRate;

    masterConfig.whichPcs = LPSPI_MASTER_PCS_FOR_INIT;
    masterConfig.pcsActiveHighOrLow = kLPSPI_PcsActiveLow;

    masterConfig.pinCfg = kLPSPI_SdiInSdoOut;
    masterConfig.dataOutConfig = kLpspiDataOutRetained;
//kLPSPI_SingleBitXfer
    srcClock_Hz = LPSPI_MASTER_CLK_FREQ;
    LPSPI_MasterInit(LPSPI_MASTER_BASEADDR, &masterConfig, srcClock_Hz);       
}

以上是初始化部分.不知道那里出错,请指教.

最佳答案

还有其它硬件设备吗?会不会是接收引脚虚焊了,换一个设备试试吧 数据都过来了,如果寄存器没有问题,要考虑是硬件的问题了。
回复

使用道具 举报

该用户从未签到

2

主题

7

帖子

0

注册会员

Rank: 2

积分
173
最后登录
2021-8-12
 楼主| 发表于 2021-8-11 22:10:44 | 显示全部楼层
那位能给指点指点看看是不是初始化有问题?卡了好几天了
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    2023-1-31 09:34
  • 签到天数: 202 天

    [LV.7]常住居民III

    7

    主题

    1515

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3811
    最后登录
    2024-2-19
    发表于 2021-8-12 08:57:36 | 显示全部楼层
    360截图20210812085507446.jpg

    这个模式配置是否对
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2021-8-12 09:23:39 | 显示全部楼层
    示波器观察正常 指得什么正常?
    空闲状态,还是从设备返回数据正常?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    7

    帖子

    0

    注册会员

    Rank: 2

    积分
    173
    最后登录
    2021-8-12
     楼主| 发表于 2021-8-12 09:26:49 | 显示全部楼层
    zhangt0713 发表于 2021-8-12 08:57
    这个模式配置是否对

    其他的参数也改过.一样的结果.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    7

    帖子

    0

    注册会员

    Rank: 2

    积分
    173
    最后登录
    2021-8-12
     楼主| 发表于 2021-8-12 09:27:20 | 显示全部楼层
    本帖最后由 jyzhou 于 2021-8-12 09:32 编辑
    jobszheng5 发表于 2021-8-12 09:23
    示波器观察正常 指得什么正常?
    空闲状态,还是从设备返回数据正常?

    设备返回数据正常.就是波形上看是对的.但是程序里面没法读到数据,        masterXfer.txData = masterTxData;                        
            masterXfer.rxData = masterRxData;
            masterXfer.dataSize = TRANSFER_SIZE;
                                    //masterXfer.configFlags = kSPI_FrameAssert;
            masterXfer.configFlags =
                LPSPI_MASTER_PCS_FOR_TRANSFER | kLPSPI_MasterPcsContinuous | kLPSPI_SlaveByteSwap;
            ret_data = LPSPI_MasterTransferBlocking(LPSPI_MASTER_BASEADDR, &masterXfer);

    整个程序是参考的例程,就是这里得到的masterRxData总是零
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2021-8-12 09:45:49 | 显示全部楼层
    如果返回的数据的波形是正常的,那大概率是读取的寄存器出现问题,小概率是硬件故障(我遇到过,但仅一次)
    我在出现类似的问题时,是使用jtag回读出来SPI相关的寄存器的值,再对照着datasheet来分析对应位的具体意义。
    以上供参考
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    7

    帖子

    0

    注册会员

    Rank: 2

    积分
    173
    最后登录
    2021-8-12
     楼主| 发表于 2021-8-12 09:56:55 | 显示全部楼层
    本帖最后由 jyzhou 于 2021-8-12 09:58 编辑
    jobszheng5 发表于 2021-8-12 09:45
    如果返回的数据的波形是正常的,那大概率是读取的寄存器出现问题,小概率是硬件故障(我遇到过,但仅一次) ...

    我现在就在用jtag看各个spi寄存器的值,但是看不出问题.已经折腾好几天了整个项目就卡这了.目前就看到tdr和rdr总是零,看样子这两个寄存器应该是数据.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2021-8-12 10:11:08 | 显示全部楼层
    还有其它硬件设备吗?会不会是接收引脚虚焊了,换一个设备试试吧
    数据都过来了,如果寄存器没有问题,要考虑是硬件的问题了。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    7

    帖子

    0

    注册会员

    Rank: 2

    积分
    173
    最后登录
    2021-8-12
     楼主| 发表于 2021-8-12 10:19:23 | 显示全部楼层
    jobszheng5 发表于 2021-8-12 10:11
    还有其它硬件设备吗?会不会是接收引脚虚焊了,换一个设备试试吧
    数据都过来了,如果寄存器没有问题,要考 ...

    好的.我再检查检查数据还有看看引脚问题.非常感谢您的建议.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-19 16:24 , Processed in 0.156420 second(s), 32 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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