在RaspberryPi和ATMEGA 324PA AVR之间讨论SMBU,而不是时钟拉伸

2024-05-13 09:36:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想让一个ATmega324pa作为SMBus的奴隶运行。在

我在Pi上使用了以下代码:

import smbus as smbus
i2c = smbus.SMBus(1)
i2c_addr = 0x30
result = i2c.read_block_data( i2c_addr, reg )

在AVR上,我用的是:

^{pr2}$

使用(gcc改编)版本:http://www.atmel.com/images/AVR316.zip来自http://www.atmel.com/devices/ATMEGA324A.aspx?tab=documents

我的逻辑分析仪显示,有些东西在部分工作:

enter image description here

但我认为我做错了什么,因为AVR没有确认读到的内容,也没有延长时钟,也没有发送响应。在

我下一步该去哪里?在

我能对RasPi上的pythonsmbus模块有信心吗?在


我所看到的与https://github.com/raspberrypi/linux/issues/254有关吗?在


Tags: 代码importcomhttpaswwwpii2c
2条回答

你所链接的问题是i2c时钟拉伸只是在树莓皮上断了。更多信息:http://www.advamation.com/knowhow/raspberrypi/rpi-i2c-bug.html

如果一个传感器有其他输出,比如UART,这是一个选择,但对于一些项目,我不得不使用micro或Beaglebone或其他东西。在

我试着用Beaglebone的SMBus代替树莓Pi。在

当我在i2c总线上增加了一些10K的上拉电阻后,这个工作非常完美。(Raspberry Pi在i2c引脚上具有内部上拉。)

相关问题 更多 >