Raspberry Pi als I2C Slave

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
mre
User
Beiträge: 5
Registriert: Mittwoch 30. Januar 2019, 08:17

Hallo zusammen,

ist es möglich ein Raspberry z.B Pi Zero als I2C Slave einzurichten?
Die Aufgaben wären, bei einer Anfrage via I2C, gespeicherte Sensordaten bereitzustellen.
Ich finde einen Haufen Beiträge über Arduino, aber irgenwie keinen über einen Raspberry als Slave.
Ist dies eventuell nicht möglich und wenn ja warum?

Liebe Grüße
Marcel
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nein es ist nicht möglich. Das warum liegt in der Hardware begründet. Er kann das halt nicht. Warum benutzt du keinen Arduino? Der kann das, und ist robuster zu programmieren.
mre
User
Beiträge: 5
Registriert: Mittwoch 30. Januar 2019, 08:17

Hi,

danke für Deine Antwort.
Ja das werde ich dann wohl machen müssen.
Grund ist ganz einfach der, dass ich den Code in C schreiben muss und mit C absolut keine Erfahrung habe.
Aber wenn der RPi das nicht kann, dann bleibt mir nichts anderes übrig.

Vielen Dank
Gruß Marcel
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du kannst ggf schauen ob du einen microcontroller findest der micropython beherrscht und I2C device sein kann. Aber die Chancen stehen nicht so gut, weil bei devices das timing höchst kritisch ist. Mir ist aus dem Kopf keiner bekannt.

Nachtrag: das pyboard kann wohl. https://docs.micropython.org/en/latest/ ... neral.html
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Der Raspberry ist auch nur ein Stück Hardware mit etwas mehr Rechenpower. Das Timing richtig hinzubekommen ist etwas schwierig, aber auch nicht schwieriger, als auf der Master-Seite. Du bist ja auch nicht der erste, der diese Frage stellt:
https://raspberrypi.stackexchange.com/q ... the-master
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Man lernt nie aus. Der PI hat doch spezialisierte Hardware verbaut. BSC nennt sie sich.

Da das ganze aber immer noch timing kritisch ist, würde ich das per Kernel Modul machen. https://github.com/hendric-git/bsc-slave
Antworten