完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
CC2530连接ADS7822,UBART1作为SPI模式,P1.4——CS,P1.5——CLK,P1.7——Dout【CC2530——ADS7822】.硬件查询方式。
因为ADS7822没有Din(对应MCU的MOSI),所以CC2530的P1.6没有连接,悬空。 P_ADS7822_CS=0; //启动A/D转换 U1DBUF=0x66; while (!U1RX_BYTE); U1RX_BYTE = 0; ADS7822_SPI_MSB=U1DBUF; U1DBUF=0x66; while (!U1RX_BYTE); U1RX_BYTE = 0; ADS7822_SPI_LSB=U1DBUF; P_ADS7822_CS=1; //关闭A/D转换 这部分的代码,想法是拉低CS使能,然后向DBUF中写入0x66(可以是任意值,因为ADS7822没有Din,不需要接受命令。MCU的P1.6悬空),在将0x66写入DBUF的时候,硬件MCU触发CLK,ADS7822接收到CLK,返回12位数据。 经示波器检测,CLK无输出波形。请问我的代码处理思路是否是正确的。或者,ADS7822的使用方法谁能讲解一下。 |
|
相关推荐
3 个讨论
|
|
感谢各位回复,昨天SPI通讯调试通过,但是结果很不准确。先说一下之前的问题: 1、在进行通讯之前还是要先将UART映射到相应端口上,即设定PERCFG寄存器。 2、设定U1CSR寄存器,确定操作模式。如果做SPI的话,这里似乎只要关心bit7、bit5、bit2和bit1就行了。 3、设定U1BAUD寄存器,确定用于波特率的U1BAUD_M,参看手册中波特率那一节 4、设定U1GCR寄存器,去顶用于波特率的U1GCR_E、时钟极性和相位。 对于ADS7822而言,因为它没有Din(对MCU而言是MOSI),所以可以不考虑bit5的ORDER设定,目前我是这么认为的。我最终设定的是19200. 5、拉低CS 6、然后向UxDNUF写值(比如0x66,这个值在示波器里是个方波)以触发CLK——ADS7822靠CLK脉冲触发发送数据,只要CLK上有脉冲,即发送数据。 7、判断UxTX_BYTE,确定发送完成,读取UxDBUF。 这里注意,对于ADS7822而言,MCU是主设备,所以CC2530寄存器U1CSR的UxRX_BYTE没有意义。 在手册里UxRX_BYTE的说明是当MCU昨从设备时有意义的。 8、重复步骤6、7的操作。 9、拉高CS 以上是我认为的SPI通讯查询方式的完整过程,此前的问题大概是因为没有注意与波特率相关的U1BAUD_M和U1GCR_E的设定,造成CLK没有输出。但是只是猜测,没有再去确认。如果谁有类似的情况,可以在回复中说明。 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
768 浏览 0 评论
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
1977 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3726 浏览 4 评论
5089 浏览 0 评论
请问如何用DM368对RGB格式的图片数据进行编码生成JPEG格式图片?
1792 浏览 1 评论
CC3100BOOST使用CC3200lunchXL进行烧录
771浏览 2评论
820浏览 1评论
TMS320F28034: 利用C2prog通过SCI给TMS320F28034烧录程序,出现错误提示:Bootloading... failed (invalid echo)!
797浏览 1评论
求DLPC350 Programmer’s Guide User's Guide 中文版说明书
1267浏览 1评论
1861浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-7-1 15:59 , Processed in 0.931143 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191