Hi leute Ich habe mir letzte woche endlich einen Raspi gekauft und bin jetzt dabei mich mit dem Ding anzufreunden. Mein Ziel ist es, meine hobby-cnc maschine mit einem Rapi und einem AVR laufen zu lassen. Das heit ich geb G-Code auf den Rapi, der verarbeitet (vieleicht macht das auch der AVR) ihn und stellt das User Interface für kleinere Arbeiten (Linie Fräsen, Lochkreis, Lochreihe etc) bereit. Das ganze Real-time zeugs läuft dann auf dem AVR, welcher die Endstufen und andere Hardware der Fräse steuert. Jetzt meine Frage: Wie kommunizier ich am besten zwischen RasPi und AVR? Viele schlagen ja USB vor, ich hatte eher an UART gedacht. Kann man das mit dem UART realisieren? Und wenn ja hat das schon jemand von euch gemacht? (Nebenbei: Weiss jemand ob man den RasPi auch für kommerzielle Zwecke nutzen darf?) Das Problem der 5V an den GPIO ist mir bewusst aber das lässt sich ja leicht lösen. Der UART wäre halt geeignet, da ich dann nicht ein USB anschluss beim AVR realisieren muss. (Wenn UB aber bessere Lösung ist mach ich das.) Danke Chrys
chrysator schrieb: > Kann man das mit dem UART realisieren? Ja natürlich. Allerdings musst du dir ein eindeutiges Datenformat ausdenken, damit der AVR was damit anfangen kann. Die Frage ist z.B., ob du gleich ein Standardformat benutzt, wie HP-GL oder Gerber. Die nächste Frage ist, kann der AVR das alleine interpretieren oder sollte der RPi das machen und dem AVR vorgekaute Simpeldaten schicken, a la 'X-Motor fahre zu Punkt 1023'. Das bleibt dir überlassen. Linux jedenfalls kann mit den (s)tty devices gut umgehen. Evtl. schreibst du in den AVR erstmal eine kleinen UART Receiver, der einfache Befehle (bis zum Return) empfängt und interpretiert.
Danke! Ja ich werde wohl dem AVR ein Standardformat füttern (weiss noch nicht welches) und auf dem RasPi andere Formate zum Standardformat konvertieren, ist vermutlich das einfachste. Werde mich mal ans "Basteln" machen. Wenn ich neue Fragen habe werde ich sie hier posten. Vieleicht gibt es ja noch andere, die eine ähnliche Aufgabe für ihren RasPi haben. Chrys
Hallo! Ich habe gestern ein Programm zum Laufen gebracht, dass das in etwa abdeckt: der Pi schickt Daten an den AVR; der gibt daraufhin eine Antwort zurück. Das ganze muss nur noch "wasserdicht" gemacht werden. Ich werde heute Abend den Code bereitstellen, wenn Bedarf besteht. Der ist allerdings (dank der Hilfe in diesem und anderen Foren) zusammengeklau(b)t
Achtung, die UART Schnittstelle ist wie so einiges Andere beim Raspi recht 'wackelig' Ein UART Testprogramm (*1) mit einem Jumper auf den passenden Pins des GPIO zeigte bis zu 38400 keine Probleme. Ab 57.6k gabs vereinzelte Zeichenfehler, ab 115.2k wurde es grauslig. Es schien einen Zusammenhang zwischen Netzwerkverkehr und UART-Fehlerrate zu geben. *1) 1024 Byte Datenblöcke aus /dev/urandom mit md5sum Sowohl 'singlethreaded interleaved send and receive' als auch 'multithreaded send and receive' zeigten gleiches Verhalten. PS. CPU Auslastung minimal PPS. Ja, Netzteil ist stabil und liefert 2A
Ok hab jetzt noch eine Frage wie ich das ganze anschliesse. Ich hatte eigentlich gedacht, dass ich vom RasPi (TX,RX) über den Pegelwandler (nur in eine Richtung (der AVR erkennt ja 3.3V as high)) zum AVR (RX,TX). also von RX zu TX und umgekehrt. Jetzt les ich im Netz aber immer wieder irgendwas von einem Max3232 (3.3V version. Wieso sollte ich das ganze erst zu einem Serial wandeln , dann wieder rückwandeln und dann zum AVR? Macht meine Pin-to-Pin lösung Sinn oder überseh ich da was fundamentales? danke chrys
1) Betreibe den AVR mit 3,3V und spar dir die Anpassung 2) AVR mit 5V: Raspi -> AVR direkt vom AVR Tx über 1kOhm Widerstand an Raspi Rx und von dort eine Z-Diode 3,3v gegen Gnd.
Ok leider hab ich im moment nur 100V ganz normale Schaltdioden da. Aufbau:
1 | TX(AVR)------R(1k)-------RX(RasPi |
2 | | |
3 | | |
4 | Z-Diode |
5 | | |
6 | GND |
Hab ichs verstanden? Geht das auch mit den Schaltdioden ( 1N 4148 ) Was ist ein 5V, bzw. 3.3V Gatter? chrys
chrysator schrieb: > Geht das auch mit den Schaltdioden ( 1N 4148 ) Ja, geht auch. Statt der Z-Diode nimmt du 5 Stück 1N4148 und schaltest die in Reihe, und in Leitrichtung (Anode an die TX Leitung nach dem R, Kathode an Masse). Allerdings ist das vermutlich gar nicht nötig, wenn der UART Eingang Schutzdioden hat und du mittels deines R für geringen Strom sorgst. 2k2 bis 4k7 sind da schon ok.
Matthias Sch. schrieb: > Allerdings ist das vermutlich gar nicht nötig, wenn > der UART Eingang Schutzdioden hat Also wenn man beim RasPi mit 5V ankommt raucht der und dann ist er weg :) Also werd ich wohl oder übel 5 Dioden in Serie schalten müssen wenn ichs heute noch ausprobieren will :S danke
chrysator schrieb: >> Allerdings ist das vermutlich gar nicht nötig, wenn >> der UART Eingang Schutzdioden hat > > Also wenn man beim RasPi mit 5V ankommt raucht der und dann ist er weg > :) Wieder nicht komplett zitiert - ech. Natürlich muss der Widerstand zur Strombegrenzung drinbleiben. Du kannst statt der 5 Dioden in Reihe auch eine nehmen, die von der TX Leitung (nach dem Widerstand !) gegen die + 3,3 Volt des RPi geht. Geht die Spannung über 4V, wird nach + abgeleitet. So sind auch die internen Schutzdioden des UART beschaltet.
Matthias Sch. schrieb: > Ja, geht auch. Statt der Z-Diode nimmt du 5 Stück 1N4148 und schaltest > die in Reihe, und in Leitrichtung (Anode an die TX Leitung nach dem R, > Kathode an Masse). Allerdings ist das vermutlich gar nicht nötig, wenn > der UART Eingang Schutzdioden hat und du mittels deines R für geringen > Strom sorgst. 2k2 bis 4k7 sind da schon ok. Der verbaute Broadcom Chip soll wohl ein rechtes Sensibelchen sein, sowohl beim möglichen Ausgangsstrom als auch der Eingangsspannung.
ok jetzt blick ich gar nicht mehr durch ... was passiert wenn ich dioden in serie schalte? zweitens Matthias Sch. schrieb: > Natürlich muss der Widerstand zur > Strombegrenzung drinbleiben. Du kannst statt der 5 Dioden in Reihe auch > eine nehmen, die von der TX Leitung (nach dem Widerstand !) gegen die + > 3,3 Volt des RPi geht. Geht die Spannung über 4V, wird nach + > abgeleitet. Hast du das mit dem RPi schon gemacht? Möchte einfach sicher sein bevor ich das Ding anschliesse. Und ich finde nirgends Zahlen über max V, A bei den GPIO Inputs. chrys
Hallo, ich will die selbe Art von Schnittstelle nutzen und habe diese Schaltung im Internet gefunden. http://www.rn-wissen.de/index.php/Raspberry_PI:_GPIO Die ist schon etwas umfangreicher als das was ich oben gelesen hab. Was meint ihr? Ist das sinnvol bezüglich Pegelstabilität und so? Ich hab auf das Ding ein halbes Jahr gewartet... Ich hab keine Lust dass es nach einer Wocher abraucht :D mfg
Das Netzteil hat 5V... Spannung runter wandeln gäng natürlich auch...
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.