完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
|
|
相关推荐
16个回答
|
|
|
我是类似的问题试图使用PIC 18875作为I2C从我的RPI2奴隶。我正在用于RPi的布线Pi库,并且已经在其他I2C从设备上成功使用它。使用用于PIC的MCC I2C从代码,什么也做不了,并且我通过I2C从RPi发送的任何命令都会杀死I2C总线。在PIC上启用时钟扩展可以解决这个问题。把这个放在for循环中,它将通过PIC的“EEPROM”的所有寄存器。但是,如果我试图使用wiringPiI2CReadReg8()函数从PIC的EEPROM中读取一个特定的地址,我没有得到正确的数据。遍历所有的代码和配置,我无法弄清楚我哪里出错。这是我一直使用的代码:i2c.cmain.cRPi codePIC16F18875.c
|
|
|
|
|
|
我查明出了什么问题。谢谢你的帮助。
|
|
|
|
|
|
如果可能的话,如果你明白了,你应该在帖子中记下什么地方出错了。没有什么比遇到一篇和你有同样问题的帖子更令人沮丧的了,而且你找到的不是解决方案,而是“我解决了它”。
|
|
|
|
|
|
如果可能的话,如果你明白了,你应该在帖子中记下什么地方出错了。没有什么比遇到一篇和你有同样问题的帖子更令人沮丧的了,而且你发现不是一个解决方案,而是“我修复了它”哈哈,是的,我把那篇文章当作某种玩笑。来到这个子论坛,发现作为I2C奴隶使用这张图片已经有几个月的问题了,每个帖子都没有收到任何回复,这令人沮丧。我完全打算对我的决定作出回应。在花费将近30个小时的研究试图弄清楚这一点时,我发现:你必须使时钟伸展。没有时钟拉伸,PIC杀死了它的I2C功能。我记得在其他地方读过一些关于设置错误位以及PIC基本禁用的信息。不能使用wiringPiI2CReadReg8()函数从特定的寄存器读取。PIC似乎不理解这个命令(参见TI的I2C总线文档第7页的底部:ttp://www.ti.com/./an/slva704/slva704.pdf)。我还不能确定到底发生了什么,但我怀疑SSPCON1寄存器中的R/W位在重复的开始位之后没有正确设置。为了有效地执行读寄存器命令,你必须做一个写命令,接着是一个读命令。这通常不是一个好的实践,因为另一个主设备可以向同一个从设备执行写命令,因此第一个主设备将读取错误的寄存器(这是读reg函数的目的),但是看起来PIC需要获得该停止位,以便SSPCON1区域内的R/W位。因此,要使用wiringPi库从特定寄存器读取数据,我必须这样做:wiringPiI2CWrite(fd,
|
|
|
|
|
|
检查正在使用的PIC的勘误表文档。I2C错误并不是罕见的(因为我已经发现了很难的方法)。如果时钟拉伸被禁用,I2C就不能正常工作。如果你怀疑它是硅问题,也有可能向微芯片报告。
|
|
|
|
|
|
对不起,我只是在软件里做I2C奴隶……到目前为止
|
|
|
|
|
|
亲爱的先生,你能告诉我你的阅读I2C从主文件读/写操作吗?我正在尝试从设备读DS1307。我有MCC代码生成的文件,但不知道如何使用文件
|
|
|
|
|
|
用你的实际问题做一个线程,而不是劫持这个问题
|
|
|
|
|
|
这是我的代码源文件。在这里,我使用DS1307和PIC18F24K40 IC对七段显示进行编码,附上的代码我只能显示68。请告诉我如何使用MCC生成的I2C1.C来显示合适的Dataa
|
|
|
|
|
|
@ajitnayak87我很抱歉,但是据我所知,您试图使用PIC作为主设备通过I2C向LCD写入数据?你会想找到另一个线索。本主题是关于将PIC用作I2C从机的。@KTrenholm查看PIC16F18875 errata文档,似乎I2C肯定存在问题。如果Vdd>3.0V,则表示在接收到第二个地址字节之后给出ACK信号有问题?如果这意味着使用重复的起始位和发送第二个地址,这意味着第二个地址。但该文档似乎只讨论使用10位地址,并不十分清楚。我想好消息是,我只使用PIC16F18875作为原型,并将使用不同的PIC进行最终设计。另外,作为从机,我不需要读或写PIC中的特定寄存器,因为我将以不同的方式使用它。我认为,如果您有I2C问题,一个好的解决办法是检查您正在使用的特定PIC芯片的勘误表。
|
|
|
|
|
|
是的,我使用PIC作为主机,DS1307作为奴隶。我想写一段时间和日期。一旦它写了,我就在阅读salve设备,并在4段显示器上显示。但是我尝试了MCC生成的i2C的示例代码,这与我目前看到的完全不同。MCC生成文件写入EEPROM地址和返回状态。我没有找到正确的C代码来提取I2C从数据。如果你有奴隶阅读亲切分享链接
|
|
|
|
|
|
停止张贴在这里,并与你的问题做一个新的线索。
|
|
|
|
|
|
多么奇怪的勘误表。我认为“第二地址字节”只能应用于10位模式,但是它清楚地指出它也可以出现在7位模式,这没有任何意义,因为这只是一个地址字节。唯一的假设是,它们意味着第一个数据字节有时可能不被攻击?也许值得用MChip来研究一下,看看是否可以稍微澄清一下(假设您认为它是值得的,因为正如您所提到的,您不会在最终设计中使用这个PIC)。
|
|
|
|
|
|
是的,确实很奇怪。这里是I2C定义的读寄存器,如I2C协议中所概述的,以及我所遇到的问题。正如您所看到的,它要求将地址写入PIC两次,并且当检查波形时,就在发送第二个地址之后,PIC从机立即发送回错误数据。但是似乎从站正在给第二个地址一个ACK。目前这个设计非常繁忙,但是我会尝试在不久的将来把这个信息提交给Micro.。编辑:对不起,双柱。但是这个论坛很糟糕,我不让我编辑我的文章。
|
|
|
|
|
|
感谢Microchip只让我把1张图片放在我的帖子里。因此,更多的范围是肖特尔错误的I2C读取寄存器的范围拍摄。
|
|
|
|
|
|
最后是第二地址的特写镜头
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
478 浏览 0 评论
5799 浏览 9 评论
2338 浏览 8 评论
2229 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3534 浏览 3 评论
1129浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1105浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
875浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
478浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-4 06:38 , Processed in 0.833887 second(s), Total 73, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1336