完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
对于如何使用PIC32 I2C模块处理从地址,我有点困惑。我不使用matlab编译器或库——所以引用我的一个库是没有价值的。在任何情况下,我有一个微芯片PAC1720(电流传感器)从设备,根据所选值电阻器,它可以具有下表中的任何地址:引用:表5-1:ADDR_SEL RESISTORSETtiNGRES(5%)SMBus地址RES(5%)SMBus地址1001_100(r/w)1600 0101_000(r/w)1001_101(r/w)20000101_001(r/w)1801001_110(r/w)1801001(r/w)1801001(r/w)2700 01010101010101010(r/w)2700 010101010101010101010101010101010(r/w 3600 100010101010101010101010101010(r/w 300 1001 001_010101010101010101010101010(r/w)3001001001001001001_111(r/w)3001001001001101101101101101001001001001001001001001001_111(r/w 3600 010101010101010101010101010101010101010101010101010(r/w 300 100 100 100 100 100 100 100 100有关于奴隶a的信息ddress和PIC32:引号:24.5.2.1向从机发送7位地址发送7位设备地址涉及向从机发送一个字节。7位地址字节必须包含I2C设备地址的7位和R/W位(IC2xSTAT<2>),R/W位定义消息是向从设备写入(主传输和从设备接收)还是从设备读取(从设备传输和主接收)。注意1:在7位寻址模式下,使用I2C协议的每个节点都应该配置一个存储在I2CxADD寄存器中的唯一地址。2:在发送地址字节时,主机必须将地址位<7:0>左移1位,并将位0配置成R/W位。几个问题。1。在将从地址值存储到I2CxADD寄存器中之前,用户软件是否需要对它进行移位,或者模块是否进行位移位?2。PIC I2c模块在需要时是否自动将从地址发送到其I2CxADD寄存器(例如,在向从设备传输字节期间),或者用户软件是否需要这样做?如果用户软件,那么什么目的是通过将从属地址放置在12CXADD寄存器中来服务。我在数据表中还不清楚。三。在PAC1720从地址框中,如上表中2000的值电阻器,看起来7位地址已经移位,在0位位置为R/W位留下一个位置。因此,在加载到I2CXADD寄存器或用户软件之前,是否需要再次移动?它似乎已经在桌子上移动了。谢谢你对这个话题的洞察力。
|
|
相关推荐
7个回答
|
|
I2CxADD寄存器只在您充当从属时使用,而不是当您是主控时使用。您自己发送地址值作为每个事务的第一个字节,它不来自一个特殊的寄存器。
|
|
|
|
是的,它已经移动了。忽略提到I2CXADD的数据表的所有位,并且应该更清楚。
|
|
|
|
啊!谢谢QHB,你听到的声音是我的手拍打我的额头。我只是没有想过我的PIC32会变成一个奴隶——谢谢你指出我应该明白的事情。还有,谢谢你确认PAC1720地址已经准备好了。感谢你的洞察力和时间。
|
|
|
|
慢慢失去它,试图把PAC1720芯片工作。如果芯片是3Mx3mm的10个引脚,它的问题当然是与我的组件安装能力。但是,这里有个问题。有3个引脚(引脚9,时钟,引脚8数据和引脚7警报),所有三个是开放的漏极和要求上拉电阻。我拉他们到4伏特与10K电阻每微芯片示意图。当我使用电源(没有MCU附件)时,我可以告诉我,引脚9和引脚7确实上升到4伏。然而,引脚8(数据引脚)不-电压变化几毫秒毫伏-但就是这样。这导致怀疑我的组件安装可能有故障(但是,已经建立了两个板具有相同的结果)-是的,我已经检查过电路设计多次,引脚8的上拉电阻是10K。相信这可能是除了错误安装之外的其他因素在起作用,比如我缺乏对开放式漏极管脚如何工作的理解。问题是,管脚8是否因为是输入/输出管脚而正常反应,或者当芯片被简单地加电时缺乏上拉电压确实表明了安装有瑕疵,我需要再建一块板,特别注意那些小得难以置信的引脚相对于焊盘的位置。引脚8是否应该像其他两个引脚一样被拉到逻辑高/4伏。谢谢。
|
|
|
|
嗨,I2C协议中的设计原则是,除非从设备被正确寻址,否则任何I2C从设备都不应该向下拉任何一条I2C信号线。10kOhm应该足以将SMDATA线拉到Vdd电压附近,如果不发生这种情况,就会出错。
|
|
|
|
谢谢,Mysil。我同意在我的电路板设计、芯片或者更容易安装芯片的时候出错。我在我的MCU上设置了两个引脚,将10个USEC脉冲串发送到PAC1720芯片的时钟和数据引脚。芯片时钟管脚处的波形在-800mv到3.32伏之间变化,数据管脚处的波形在-890mv到2.20伏之间变化。所应用的波列为0~4.2伏。所以有东西拖动数据引脚上的电压,阻止它到达Vpp。我还测量了数据引脚和地之间的电阻,它只测量了540欧姆,这可能是造成数据引脚峰值电压较低的原因。ip安装(两次)或者在我的简单电路中有些错误我遗漏了。感谢您确认问题不只是在我的头脑中。第二个问题,我使用PIC32MX795F512L的I2c1模块,它似乎使用I2C1CON特殊寄存器引脚的设置来产生一个“启动”和“停止”I2C条件。你熟悉这个模块,不管怎样激活模块,它会说在数据线上发送一个字节,而不需要一个奴隶。?
|
|
|
|
建了第三块木板,这一次很有魅力。时钟引脚和数据引脚现在被拉到VPP。这次,当我用3mmx3mmPAC1720VQFN芯片填充电路板时,我没有对引脚迹线施加任何焊料,而是简单地使用制造电路板时覆盖迹线的焊料。我使用少量的助焊剂,然后刷掉大部分的针垫。以芯片为中心,烘焙了电路板,这次看起来我成功了。感谢Mysil,他让我明白我有一个电路板/芯片/安装问题——至少那个部分已经解决了,我还有一个奴隶要跟他谈谈。
|
|
|
|
只有小组成员才能发言,加入小组>>
5031 浏览 9 评论
1933 浏览 8 评论
1870 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3084 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2155 浏览 5 评论
595浏览 1评论
461浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
491浏览 0评论
391浏览 0评论
IPECMD命令烧录AVR128DA48芯片,报找不到芯片错误
871浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 17:43 , Processed in 1.218487 second(s), Total 88, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191