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
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'
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
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).
Der Banana Pi hat auch I2C. Den (gleichen) Bug wie der RasPi wird er vermutlich nicht haben. Pegel sind kein Problem.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.