完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我一直用IN C在端口C使用引脚RC3和RC4的SCL和SDA。就我所知,这不应该与波尔图有关。我已经管理好了我的演示,直到我把I2C端口设置为Master的地方,并在演示问题之前和之后把所有的1都写到PORTB。我使用两个无限循环来停止一切(中断没有启用,所以我在某些无限循环中停止)。如果在设置I2C端口之前停止,我可以通过向端口写入0xff来演示对PORTB的所有位的控制,在这种情况下,端口上的所有LED都点亮了。如果我注释掉这个循环并允许初始化I2C端口,那么我就会丢失PORTB的位4,现在这个特定的LED仍然是暗的。这表明设置I2C端口对PORTB的Bit4有所帮助,但是我在数据表中找不到任何东西来证明我所看到的。有人知道这里发生了什么事吗?以下是我的演示代码:movlw 0xff movwf PORTB;goto$;<——如果我取消注释这一行,PIC挂起,PORTB上的所有LED都点亮了movlw 0x28;启用MSSP作为SSPCON1 movlw 0xff movwf PORTB goto$的主移动;其他LED亮起来,为什么写一个0x28到SSPCON1导致失去一点在Purb????-GT--
|
|
相关推荐
19个回答
|
|
|
哪一个特定的图片?这个信息可以帮助我们。
|
|
|
|
|
|
对不起,我忘了。它的PIC18LF24J11
|
|
|
|
|
|
PIC有PPS。你在PPS控制寄存器中写什么吗?
|
|
|
|
|
|
不,我不是。但问题是,我发布的代码给我一个正确的路径,直到所有的端口引脚,直到我写0x28 toSPCON1。如果我使用PPS控制寄存器来混淆引脚,为什么在我写SSPCON1之前它会很好?话虽如此,我注意到,如果我要改变0x28到0x08,那么我不会在POTB上失去这个。2vs 0是数据表中描述的SSPEN位:SSPEN=1“启用串行端口,并将SDAx和SCLx管脚配置为串行端口管脚”,它确实做到了,SDA和SCL确实出现了,它们确实有效,我可以在这些管脚上成功地完成I2C工作,但是这些管脚都是管脚在港口…我不知道这有什么与波特尔有关。无论如何,我在任何事件中都没有接触PPS。还有其他想法吗?-GT--
|
|
|
|
|
|
好的,为了更清楚地说明我在做什么,我已经清理了工作表,并且重新开始一个全新的程序来说明这个问题。这是整个程序,我没有透露什么秘密:org 0 movlw 0x28 movwf SSPCON1;<——如果我注释掉这一行,PORTB上的所有LED灯都亮了,TRISBmovlw 0xffmovwf PORTB上的$参见上面代码中的注释。如果我把那条线放进去,那么引脚25上的LED,RB4就变暗了。如果我评论它,所有的LED都被点亮。再一次,这是整个程序。现在,如果CONFIG位与此有任何关系,这里它们是:CONFIG WDTEN=OFF,STVREN=OFF,XINST=OFF,DEBUG=OFF,CP0=OFF,OSC=INTOSCPLL,DSBOREN=OFF,DSWDTEN=OFF,MSSP7B_EN=MSK5
|
|
|
|
|
|
我必须问一个显而易见的问题。你确定RB4和你PCB上的一个I2C引脚之间没有短路吗?如果你不接触SSPN,但是清除TISISC,试着把所有的POTCC引脚都高到低?
|
|
|
|
|
|
它是一个原型板,带有一排孔,里面有金属条,连接板上的五个孔,从芯片销开始,以0.1英寸的增量从芯片离开0.5英寸。因为原板内部连接架的构造方法看起来不太可能出现短路,但我会放心地把它移到板子上不同的地方,只是为了确定……袖手旁观。。。
|
|
|
|
|
|
好的,我在一个禽兽SWOPO中做了一系列测试。确认没有短路/将芯片移到原型板上的一个新的位置上/修改程序以测试PORTC和PORTB之间的短路:ORG 0 MOVLW 0x28;MOVWF SSPCON1;和LT;再次使用这一行,RB4保持低,但是W。HEN注释,RB4是高CLRF TrISB CRF RoTrC PORTC POVLW 0XFF MOVWF PORTB GOTO $证实了所有这些,我现在已经把我的程序切换到简化版本:ORG 0 MOVLW 0x28 MOVWF SSPCON1 CRF RISISB MOVLW 0XFF MOVWF PORTB GOTO $…当然,RB4很低,我还应该指出,我拔了PIC18,换成了全新的,所以我猜这不仅仅是一个糟糕的芯片…除非我运气不好,一个接一个地订购两个同样的瑕疵,这似乎不太可能。
|
|
|
|
|
|
嘿,我刚刚意识到,只是因为LED不亮并不意味着端口位低…它也可以漂浮。为了测试这一点,我故意把RB0放低,这样我就可以确保我的方法确定这个差别是正确的。我从电源上通过限流电阻连接了一个LED,阴极连接到我故意的RB0上的低输出。LED点燃了(当然),确认输出是真的低,而不是浮动(当然,当然)。接下来,我把测试带到RB4,它亮了起来。因此,RB4不是浮动的,而是真正被抑制住的。我更进一步,TRIS把我的RB0 LED作为输入,并确认修改后的LED没有以这种方式发光。当我在等待进一步的建议/帮助时,我将检查数据表上的PORTB示意图,看看是否有可能导致这种情况发生的内部原因。
|
|
|
|
|
|
做一个徒劳的尝试:*/MCLR管脚是如何连接的?Vdd pin上有去耦电容器吗?*两个VSS引脚都接地吗?你检查了勘误表吗?编辑& GT;VCl/VCAP引脚是如何连接的?你的电源电压是多少?
|
|
|
|
|
|
勘误表9?
|
|
|
|
|
|
嗯,可能是。硅修订应该检查为Rev。A2不是最新的A4。它还说“如果TRISB<5>仍然清除,RB5可以在正常固件控制下用作通用输出引脚。”但是没有提到RB4。也就是说,对于RB4没有类似的陈述,只是关于RB4和RB5具有“外来脉冲”的初始陈述。
|
|
|
|
|
|
我认为这是因为RB4没有解决办法。RB5不能作为输入。
|
|
|
|
|
|
* MCLR引脚是如何连接的?它用10K电阻拉到+5V。我没有用+5为芯片供电,但是它被列为“5V容忍引脚”,所以这应该没问题。*在Vdd引脚上有解耦电容器吗?没有,但是我在问题出现的时候投了一个,但没有帮助。*两个VSS引脚都接地了吗?是的,是的。你检查了勘误表吗?不知道(但是我看到随后的帖子)&编辑& GT;VCl/VCAP引脚是如何连接的?我有一个3端2.5V的稳压器,电源从+5和供电VCORE @ 2.5V*电源电压是什么?我提供3.0V的VDD
|
|
|
|
|
|
我的芯片的版本ISRV。我会看一下勘误表……但听起来好像我从上面看到的不走运。底线是芯片不应该这样做,但我想是这样。还有什么想法吗?
|
|
|
|
|
|
你为什么用3端调节器给Vcore供电?你应该把帽子放在那里。PIC有自己的调节器。
|
|
|
|
|
|
也许得到一个R4 A4芯片?
|
|
|
|
|
|
NKurzman,那是不对的。你在想PIC18F24J11……但我使用的是PIC18LF24J11。前者有一个内置的2.5V调节器,需要一个外部帽,但后者没有内部调节器,并要求您自己提供VDD_CORE。实际上,当我开始使用这个部件时,我也没有意识到这一点,只是在那个销上抛了个盖子,但是没用,然后我更仔细地阅读了数据表,发现LF需要外部调节器,而“F”版本不需要。
|
|
|
|
|
|
我需要看看这个。这不是其他更新图片的典型。但是,LF的含义是不同的。通常它意味着3.6伏最大操作。我没有看到一个需要和外部调节器。但现在我有。F=3.6伏特操作和LF=2.5操作。使用F芯片比使用外部调节器似乎更容易。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
503 浏览 0 评论
5812 浏览 9 评论
2350 浏览 8 评论
2237 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3544 浏览 3 评论
1161浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1122浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
890浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
508浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 12:42 , Processed in 1.271466 second(s), Total 110, Slave 93 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3365