Forum: Mikrocontroller und Digitale Elektronik Atmel i2C Präferenz / Raspberry Pi


von Andreas B. (andreas_ger)


Lesenswert?

Ich möchte en Netzwerk aus Atmel Prozessoren und i2c Controllern (NXP 
usw.) über i2c aufbauen, welches auch Kontakt mit PC Netzwerken und 
Schnittstellen beinhalten soll. Leitungslängen gesamt ca. 3m, geschirmt, 
5V auf dem Bus, 120Ohm Endwiederstände.

Fernziel soll sein, auch eine Firmware über das Netz zu den einzelnen 
Prozessoren schicken zu können.

Aktuell mache ich neben I2C Tests mit V-USB. Hier gibt es aber starke 
Geschwindigkeitseinbußen und ich erwäge auf einen ATM90U2 zu gehen, aber 
so richtig kompatibel ist das irgendwie alles nicht, jeden falls nicht 
mit High Speed. USB wäre auch "nur" ein Umweg, um den PC einbinden zu 
können. Gefällt mir nicht wirklich.

Ich habe auch schon alles für CAN Bus da liegen, aber einfach geht 
anders und die Platinen werden dann verhältnismäßig groß. Suboptimal. 
Ethernet dto.

Zudem: Würde ich auf unterschiedliche Busse gehen, dann müsste ich am 
Ende vermutlich z.B. Modbus über die verschiedenen Hardwarebusse 
tunneln, um netzintern einen quasistandard zu haben mit dem alle 
miteinander reden können .... das wird mir irgendwie doch gerade zu 
abenteuerlich.

Daraus entstand der Gedanke einen Raspberry oder Banana einfach als 
Komunikationsschnittstelle einzubauen, um so i2c -> LAN und WLAN einfach 
realisieren zu können.

Geht aber auch nicht so richtig, wegen der offenbar magelhaften Art und 
Weise mit der der Raspi mit i2c umgeht. Nun las ich von "der richtigen 
Atmel CPU die i2C präferenzieren muss" und von anderen, die eigens einen 
µC abstellen, um auf der µC Setie i2c und auf der Raspi Seite UART zu 
sprechen.

Kinners ... ich bin verwirrt. Jemand Erfahrung damit, wie man so etwas 
einfach und funktional (und halbwegs störsicher) aufbauen kann?

Vor allem das Thema "Einfache, schnelle und sichere Kommunikation mit 
Raspberry" würde mich hier wirklich sehr interssieren.

: Verschoben durch User
von Rob (Gast)


Lesenswert?

Ich lese in deinem Beitrag:

- I2C
- USB
- Modbus
- CAN
- LAN
- WLAN
- UART.

Was willst du nun eigentlich?

Und was heißt 5V auf dem Bus, 120 Ohm Endwiderstände? Bei I2C? Ich kenne 
bei I2C Daten- und Taktleitung, die jeweils über 4,7k gegen +5V 
geschaltet sind. Im Übrigen sei bei I2C an den ursprünglichen Zweck 
erinnert: geringe Datenmengen, geringe Geschwindigkeit, kurze 
Entfernungen. Wenn es um hohe Datenraten und hohe Geschwindigkeit geht, 
ist I2C eher nicht die 1. Wahl.

I2C heißt bei Atmel TWI. Die Controller verfügen teilweise über 
Hardware-TWI, ansonsten lässt sich das auch softwaremäßig über normale 
I/Os realisieren. Für beide Varianten gibt es fertige Bibliotheken, z.B. 
die von Peter Fleury.

Welcher µC bzw. welches Gerät als Gateway geeignet ist, hängt wiederum 
von den Datenmengen und Geschwindigkeiten ab.

Rob'

von (prx) A. K. (prx)


Lesenswert?

Ein RasPi als I2C Master in Verbindung mit I2C Slaves in Form von 
Mikrocontrollern ist nicht zu empfehlen.

Da du ansonsten einzig Vernetzung per Fibre-Channel und Gedankenlesen 
ausgelassen hast, wärs nicht schlecht, mal entweder selbst die Gedanken 
und Konzepte zu filter und zu sortieren. Oder das Problem zu 
beschreiben, nicht die 100 angedachten und durchmischten Lösungen.

: Bearbeitet durch User
von Andreas B. (andreas_ger)


Lesenswert?

Rob schrieb:
> ... - UART.
> Was willst du nun eigentlich?
Einfach, sicher und schnell komunizieren mit PC und Atmels im Netzwerk.

Raspberry erscheint mir im Grund ein super (einfaches und 
kostengünstiges) Bindeglied zwischen den Welten zu sein, wäre da nicht 
das i2c Problem (Clock Stretching, Spannungsunterschied, Interrput/ Bit 
Shifting).

von (prx) A. K. (prx)


Lesenswert?

Der Banana Pi hat auch I2C. Den (gleichen) Bug wie der RasPi wird er 
vermutlich nicht haben. Pegel sind kein Problem.

von Andreas B. (andreas_ger)


Lesenswert?

Man seid nicht immer alle direkt so motzig. Ich wollte Euch nicht 
zumüllen und hatte auf "Ja das Problem hatte ich auch mal" gesetzt.

A. K. schrieb:
> Ein RasPi als I2C Master in Verbindung mit I2C Slaves in Form von
> Mikrocontrollern ist nicht zu empfehlen.

Das ist der Punkt!

Wie kann man entweder den umgehen (Bridge UART <-> i2C, wenn ja welcher 
µC) oder wie sonst?

Und wenn das alle snicht wirklich toll funktioniert (mein Eindruck):

Wie lasse ich meinen PC mit dem i2C Netz der ATmegas reden?

Ausgangsbasis meiner Gedanken:
Beitrag "Raspberry Pi und AVR verbinden mittels I2C/TWI"
und
http://www.obdev.at/products/vusb/index-de.html
bzw.
http://www.harbaum.org/till/i2c_tiny_usb/index.shtml

von (prx) A. K. (prx)


Lesenswert?

Andreas B. schrieb:
> (Bridge UART <-> i2C, wenn ja welcher µC)

Da geht jeder mit echtem TWI-Master und echter UART. Also Mega88 
aufwärts. Umgekehrt, also I2C Slave für RasPi erledigt es auf diese Art 
bei mir ein Tiny841.

Ich könnte mir allerdings auch CAN in solcher Rolle vorstellen. Mit dem 
MCP2515 per SPI an den RasPi, beispielsweise. Der Banana Pi hat m.W. CAN 
schon drin, weiss nur nicht ob auch im Kernel.

> Wie lasse ich meinen PC mit dem i2C Netz der ATmegas reden?

Gateways gibts. Fertig und Selbstbau. Einer davon, weiss aber nicht was 
der von Stretching hält: 
http://www.ftdichip.com/Documents/AppNotes/AN_113_FTDI_Hi_Speed_USB_To_I2C_Example.pdf

RS485 statt I2C?

Nicht ratsam: Den Bus Pirate als PC/I2C Gateway verwenden. Der kann 
nämlich auch kein Clock Stretching.

: Bearbeitet durch User
von Andreas B. (andreas_ger)


Lesenswert?

Dein Ansatz gefällt mir sehr gut. Habe gegoogelt ...  "Der Banana Pi hat 
bereits einen CAN-Controller integriert"

Das wäre natürlich die Lösung aller Probleme, wenn das stimmt.

Die Raspi CAN Boards arbeiten alle mit dem MCP. Ist auch eine Option. 
Probier ich am Wochenende mal aus.

Dann könnte man die Bridge einfach PC<->Banana<->CAN<->ATMEGA90CAN<->i2c 
wählen. i2c für den nahbereich und CAN für größere Strecken. Das wäre 
ideal.

Vielen Dank für den Tip!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.