共2条
1/1 1 跳转至页
i2c,pcf8563 求助:i2c器件pcf8563

问
output_data后,将sda置1后,设置为输入方向
1,我写器件地址0xa2,可以获得ack=0(sda为低),然后再写寄存器地址(0x00,0x02,0x03都试过),得到ack=1
2,写器件地址0xa3,获得ack=0,调用input_data读一个数据,得到的是0xff
output_data后,将sda置0后,设置为输入方向
3,写器件地址0xa3,获得ack=0,每次读一个数据,读得的数据有0xff,0xef,0xdf,0xbf,0x7f,出现的顺序和次数好像没什么规律
我用循环从0x00到0xff试过器件地址,只有0xa2,0xa3得ack=0,因此可以得出结论器件是工作的
也试过寄存器地址,没有一个得ack=0
电路我也做过两块,情况都是一样的
估计真的要高手才能解答了,我打电话问过技术支持,他们所从来没有碰到过这种情况
答 1: 楼主没说用的什么单片机呢?要求发电路图、PCB连接部分的截图和程序流程图,可以帮你分析。不可能有这么奇怪的问题出来。 答 2: 给个小提醒IIC总线发数据过去时,从器件(你的就是pcf8563)不一定每次都会回应一个低的ACK信号。一般这里设个纠错机制,发数据过去,开始等ACk信号,如果一定时间内等不到,说明数据没正确接收,此时重发,再等,不行再来,就这样搞就得。
1,我写器件地址0xa2,可以获得ack=0(sda为低),然后再写寄存器地址(0x00,0x02,0x03都试过),得到ack=1
2,写器件地址0xa3,获得ack=0,调用input_data读一个数据,得到的是0xff
output_data后,将sda置0后,设置为输入方向
3,写器件地址0xa3,获得ack=0,每次读一个数据,读得的数据有0xff,0xef,0xdf,0xbf,0x7f,出现的顺序和次数好像没什么规律
我用循环从0x00到0xff试过器件地址,只有0xa2,0xa3得ack=0,因此可以得出结论器件是工作的
也试过寄存器地址,没有一个得ack=0
电路我也做过两块,情况都是一样的
估计真的要高手才能解答了,我打电话问过技术支持,他们所从来没有碰到过这种情况
答 1: 楼主没说用的什么单片机呢?要求发电路图、PCB连接部分的截图和程序流程图,可以帮你分析。不可能有这么奇怪的问题出来。 答 2: 给个小提醒IIC总线发数据过去时,从器件(你的就是pcf8563)不一定每次都会回应一个低的ACK信号。一般这里设个纠错机制,发数据过去,开始等ACk信号,如果一定时间内等不到,说明数据没正确接收,此时重发,再等,不行再来,就这样搞就得。
共2条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
C语言函数宏的三种封装方式被打赏50分 | |
嵌入式LinuxC语言程序调试和宏使用技巧被打赏50分 | |
让代码中包含最新的编译时间信息被打赏50分 | |
【分享开发笔记,赚取电动螺丝刀】STM32F769LVGL优化显示被打赏26分 | |
rtthread硬件加密--2crc加密分析被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】STM32F769驱动ST7789以及显示优化被打赏36分 | |
【分享开发笔记,赚取电动螺丝刀】S32K146 PAL模拟I2C驱动适配被打赏23分 | |
我想要一部加热台+电源硬件设计规范被打赏16分 | |
我想要一部加热台+LED背光驱动芯片RT9293知识被打赏18分 | |
【分享开发笔记,赚取电动螺丝刀】S32K146 ADC 模块配置使用被打赏24分 |