完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我需要把一些模拟设备DDS和ADC芯片接口到我的板上,这些芯片具有2线SPI总线(时钟和双向数据)。我目前使用的是PIC18F23K22(28引脚),但我可以切换到另一个引脚兼容的芯片。有人用PIC18F做过2线SPI总线吗?在Microchip网站上有一个PIC18F到PIC24F的文档,上面说PIC18F和24F都支持2线,但是我找不到其他的细节。谢谢,-Craig
|
|
相关推荐
8个回答
|
|
我想你只需要把插针连接在一起。或者选择与PPS相同的引脚
|
|
|
|
我不确定输出引脚是否在读或读时是三态的。PIC18F23K22手册说它是一个全双工接口,并暗示在读取操作期间可能有数据从SDO管脚中时钟输出。我打算做点什么来检查这件事。我可能首先用电阻连接引脚,以避免冲突,看看发生了什么。由于I2C模式(芯片中相同的外围接口)共享相同的管脚用于I/O,所以芯片中必须有一些支持来共享管脚,但是我找不到任何关于如何启用它的文档。PIC24F系列手册说,芯片支持2线,但也没有文件(我可以找到)来启用该模式。遗憾的是,这个芯片没有PIC24F系列的PPS,谢谢你的回复!-克雷格
|
|
|
|
你是对的,输出驱动程序将被启用。您需要在阅读时禁用它。你也可以尝试打开排水输出,如果你的芯片有。
|
|
|
|
最简单的方法是通过电阻器将SDO连接到数据(例如,2K,取决于速度),并且还直接将SDI连接到数据。这样,你的PIC会把它看作正常的SPI。
|
|
|
|
谢谢这两个建议。我先试试电阻。禁用输出也是一个有趣的想法,但我不确定从设备何时将激活其输出驱动程序,并且我想确定我没有两个输出驱动相同的线路并导致故障。我不需要跑这么快,因为它只是初始化,我需要做的。谢谢!
|
|
|
|
SPI本质上是全双工的,数据是同时接收的,并且正在传输数据。要覆盖这点,需要为SDO(输出)管脚设置TRISx位,以防止传输的数据控制输出(在双向操作中,该输出将连接到SDI输入)。您必须为每个操作控制TRISx位,将低位设置为发送,将高位设置为接收,并且您将在发送期间将发送的数据接收到SPI寄存器中。在我看来,用Bang-Boin方法一般容易实现2线操作。
|
|
|
|
除非PIC有开漏选项的PIN,但点同意。开漏SPI很容易编码。所以除非需要DMA,否则这将是一个很好的选择。
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
5203 浏览 9 评论
2016 浏览 8 评论
1942 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3188 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2243 浏览 5 评论
754浏览 1评论
640浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
546浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
653浏览 0评论
552浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 23:28 , Processed in 1.350950 second(s), Total 93, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号