完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
从MCP23S17的数据表中可以看出,电源缺省是否为:IOCON.Bank=0或IOCON.Bank=1,这使得它不清楚IOCON的地址是什么。更令人困惑。更具体的是(数据表DS21952B 2007)表1-5,1-6,显示POR IOCON.BANK=0。如果是这样的话,那么IOCON地址应该是0x0A。但是,从第12页开始,所用的寄存器地址是银行=1。不是很一致,是吗?
|
|
相关推荐
4个回答
|
|
我总是信任1-6,即默认POWER ON是0。下面的页面是“示例”,至少我能得到它。
|
|
|
|
是的,你是对的。这个芯片是BANO0。换句话说,IOCON地址是0x0A,如果您想将其更改为BANC1。
|
|
|
|
我真的不明白为什么他们不能设计它把IOCON放在一个不变的位置上。我的代码倾向于以0x0b开始写这两个位置,以防止芯片处于意外状态。如果我使用bank=1并且PIC被重置,但是扩展器没有重置,那么它们就会失调,额外的写操作迫使它返回到已知状态。它可能真的使用官方的“软件重置”功能,我真的不想绑定I/O引脚来生成它的重置信号。使用硬件寻址,如果我正确地理解,您必须写到设备零,以便在所有设备上设置HAEN,即使没有使用地址零。
|
|
|
|
是的,IOCON寄存器的设计方式很不幸。这里与@oliverb类似。1.首先写0到0x05。我这样做是为了确保它处于顺序端口模式(BANK=0)。如果不是,我刚刚写了一个0到所有端口在端口A的寄存器GPITEN,这是用于中断的变化寄存器。这不是什么大不了的事情,因为我可以/将稍后重置(无论如何它对于简单的输出引脚都很好)2。现在,不管你想写什么,对于iOCON都要亲自写,作为默认的“10100010”=162。我保持银行= 1(MSB位高),使端口被拆分。然后,当写入端口B时,我可以简单地将0x10添加到寄存器(例如,9标准R/W寄存器在端口B上变成25)3。如果您想在步骤2中设置BANK=1之后再读/写到IOCON,那么使用0x05确保它将是IOCON寄存器。实际上,我在步骤2之后读取0x05以知道我正确地设置了IOCON,并且肯定地设置了BANK=1。这里是我在nodejs中使用的代码。let bus=waitingthis.busSend(busPacket('write',0x05,0))if(bus.error)返回busletset={}let cfg=..cfg||default'//10100010'if(cfg==='.')set={val:..set,fmt:..fmt|'STR.{if(CHIP[cfg])setting=CHIP[cfg]else返回{error:`no.settings for${cfg}}}如果(byte<128)byte+=128//确保BANK=1保留在bus=wait this.busSend(busPacket('write',0x0A,byte))如果返回bus=wait.usSend(busPacket('read',0x05))如果(bus.error)返回总线返回{cmd:'reply',_req:.,.:.byteFormat(bus.., {in:'DEC',out:'STR'})}//在我的设备初始化器函数中,我用默认NOTE检查返回的值:如果您正在配置23008,则该问题将消失,只需写下即可至0x05
|
|
|
|
只有小组成员才能发言,加入小组>>
5323 浏览 9 评论
2076 浏览 8 评论
1982 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3254 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2293 浏览 5 评论
835浏览 1评论
730浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
674浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
728浏览 0评论
622浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-3 10:05 , Processed in 1.156497 second(s), Total 50, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号