完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我尝试向 DAC 设备发送大小为 8 的数组,就像"dac122s085(16 位)" 。
我按照用户手册的说明进行了操作,见下图 这是我的代码分数: void QSPI_2_Data_Tx(uint32* tx_data, uint8 bytes, uint32* return_data){// /* prepare data transfer format */// QSPI2_BACONENTRY.U = (0x0 << 0 /*LAST*/ ) | /*Last stream to be sent, CS uptated */// (0x4 << 7 /*LPRE*/ ) |// (0x7 << 10 /*LEAD*/) |// (0x4 << 13 /*TPRE*/ ) |// (0x7 << 16 /*TRAIL*/) | /*Prescaler for the trailing delay*/// (0x1 << 21 /*MSB*/ ) | /*MSB send first */// (0x0 << 22 /*BYTE*/ ) | /*DL is in bits/bytes*/// ((bytes -1u) << 23 /*DL*/ ) | /*number of bits/bytes to be sent*/// (0x0 << 28 /*CS*/ ); /*Slave 0*/ QSPI2_MIXENTRY.U = 0x07A79E01; /* transfer all data */ for (uint8 i = 0; i < 8; i++) { QSPI2_MIXENTRY.U = tx_data; /* wait until transfer is complete */ while (!QSPI2_STATUS.B.TXF); /* clear TX flag */ QSPI2_FLAGSCLEAR.U = 1 << 9; /* wait for receive is finished */ while (!QSPI2_STATUS.B.RXF); /* clear RX flag */ QSPI2_FLAGSCLEAR.U = 1 << 10; /* read and discard value */ return_data[0] = QSPI2_RXEXIT.U; };}但 SPI 解码显示,SLSO(CS)工作不正常,这是为什么? ,您能给我一些建议吗? |
|
相关推荐
1个回答
|
|
从您提供的代码片段和描述来看,您正在尝试使用AURIX TC387微控制器的QSPI接口向DAC设备发送一个大小为8的数据数组。然而,您遇到了SLSO(Slave Select Output)工作不正常的问题。为了解决这个问题,我们可以从以下几个方面进行分析和调试:
1. **检查硬件连接**:首先,请确保您的硬件连接正确。检查QSPI接口的数据线、时钟线、片选线(SLSO)和电源线是否连接正确,以及DAC设备的引脚是否正确连接到微控制器的相应引脚。 2. **检查QSPI初始化**:确保您已经正确初始化了QSPI接口。这包括设置波特率、数据格式、时钟极性和相位等参数。以下是一些可能需要检查的初始化参数: - QSPI波特率:确保波特率设置正确,以便与DAC设备兼容。 - 数据格式:检查数据格式是否与DAC设备的要求一致,例如MSB或LSB优先。 - 时钟极性和相位:确保时钟极性和相位设置正确,以便与DAC设备同步。 3. **检查QSPI传输参数**:在您的代码中,您需要确保正确设置了QSPI传输参数。以下是一些可能需要检查的参数: - `QSPI2_BACONENTRY.U`:确保正确设置了传输格式,包括数据长度、传输类型等。 - `tx_data`:确保传输的数据数组正确初始化,并且数据类型与DAC设备要求一致(例如16位数据)。 4. **检查SLSO信号**:SLSO信号用于控制片选,确保在传输数据时正确激活和释放SLSO信号。以下是一些可能需要检查的方面: - 确保在传输数据之前激活SLSO信号。 - 确保在传输数据之后释放SLSO信号。 5. **调试和测试**:在调试过程中,您可以使用示波器或逻辑分析仪来观察QSPI接口的信号,以便更好地了解传输过程中的问题。以下是一些建议: - 观察QSPI数据线、时钟线和SLSO信号的波形,确保它们与预期一致。 - 使用单步调试或断点调试来检查代码执行过程中的变量值和寄存器状态。 6. **参考DAC设备文档**:最后,确保您已经仔细阅读了DAC设备的用户手册和数据手册,以便了解其与QSPI接口的兼容性和要求。这将有助于您更好地理解设备的行为和解决问题。 通过以上步骤,您应该能够找到导致SLSO工作不正常的原因,并采取相应的措施来解决问题。如果问题仍然存在,建议您与DAC设备供应商或微控制器供应商联系,以获取更多技术支持。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教个XMC1404调试串口接收时为什么一直无法接收数据的问题
374 浏览 0 评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6384 浏览 2 评论
4112 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3638 浏览 9 评论
1236 浏览 8 评论
467浏览 2评论
276浏览 2评论
384浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6385浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
468浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 08:25 , Processed in 0.875643 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号