Hallo, ich möchte gerne einen Raspberry Pi 2 mit einem UART(TTL), RS485 und CAN erweitern. Der verohandene UART wird auch benötigt. Der Raspi kommt in ein Hutschienen-Modul und die USB-Port sind leider dann nicht mehr nutzbar. Für RS485 würde ich wohl den MAX3140 (SPI) nehmen. Der scheint es wohl Softwaremäßig vom RASPi unterstützt zu werden. Was kann man für den UART nehmen? Einen MAX3107? Vermutlich muss mann das dann ins Linux sofwaremäßig einbauen? Oder kennt jemand irgendwelche Bibliotheken. Beim CAN habe ich noch keinen Schimmer was ich da nehmen könnte. Kann ich die SPI-Port verwenden wi ich will? Oder sind die schon für das Displayinterface (DSI), SD-Kartenslot oder andere Hardware belegt? Hoff mir kann jemand ein paar Tipss geben. DANKE Gruß Ingo
Hallo, ich bin zwar kein Raspi Spezi, aber zufällig weiß ich ein paar Details. > Ingo F. schrieb: > ich möchte gerne einen Raspberry Pi 2 mit einem UART(TTL), RS485 und CAN > erweitern. Der verohandene UART wird auch benötigt. > Der Raspi kommt in ein Hutschienen-Modul und die USB-Port sind leider > dann nicht mehr nutzbar. Wieso nicht? Du meinst sicher wohl nur, dass die aufgelöteten USB-Buchsen nicht mehr direkt nutzbar sind, oder? das heißt doch aber nicht, dass man die Leitungen nicht anders nutzen könnte. > Für RS485 würde ich wohl den MAX3140 (SPI) nehmen. > Der scheint es wohl Softwaremäßig vom RASPi unterstützt zu werden. > Was kann man für den UART nehmen? Einen MAX3107? Gibt sicher viele Varianten. Man kann zumindest für RS485 auch einen USB-to-serial Umsetzer nehmen z.B. FT232R. Auf dem Raspi ist auch ein LAN-Chip LAN951x. Entweder ein LAN9512 oder sogar ein LAN9514, von dem aber nicht alle 4 USB-Ports benutzt werden. Im Zweifelsfall kann man den auf einen vollfunktionsfähigen LAN9514 ändern. Dann kann man an diese Ports direkt den FT232 anbinden und mit etwas Bastelei zusätzliche 4 UART . RS485 ist ja eh nur ein passender Treiber-IC. > Beim CAN habe ich noch keinen Schimmer was ich da nehmen könnte. Hat der Raspi keinen CAN-Port? > SD-Kartenslot oder andere Hardware belegt? SD-Card wird normal eh anders angeschlossen mit einem 4 Bit-Port. Schau doch in die Doku, was da ist und dann mußt du selbst wissen, wofür du die Ressourcen verwendest. Gruß Öletronika
CAN geht auch über SPI, Support vom MCP2515 ist offenbar schon drin. Nur werden dann die SPIs knapp, wenn alles darüber soll.
:
Bearbeitet durch User
Über USB funktioniert das alles Problemlos. Das Problem ist nur dass ich die Himbeere in ein Hutschienen Modul einbauen möchte/muss und keinen Platz für USB-Adpater habe. Sicher könnte ich am USB-Adapter den USB-stecker ablöten und mit einem Kabel an die Lötpunkte von den USB-Steckern anlöten kann. Das ist mir aber zuviel gefrickel. Da ich sowieso noch eine Platine für Erweiterungen erstellen muss wollte ich gleich die UARTS mit auf diese Platine setzen.
hab mal irgendwo gelesen, dass man am raspi mit einem usb-can adapter besser bedient ist als mit einem mcp2515
... oder man wählt ein SBC, der alles on Board hat. Das wäre z.B. ein BeagleBone Black/Green oder Banana Pi ...
Gerd B. schrieb: > Banana Pi Hört sich schon mal ganz Harry L. schrieb: > Da ist alles drauf, was du dir wünscht, und der ist für > Hutschienen-Montage. > http://www.pixtend.de/ Sorry, da ist zuviel drauf. Ich benötige noch Platz für meine Erweiterungsplatine und die Schraubklemmen sollten von meiner Platine versorgt werden. Gerd B. schrieb: > Banana Pi Das sieht doch schon mal gut aus. Würde dann die Pro-Version vorziehen. Drei UARTS und CAN. Wenn ich die noch in Hutschienengehäuse bekomme klingt das schon mal gut. Beagleobone habe ich noch nichts zu gefunden.... werde ich mir mogrgen noch mal ansehen. Aber wenn noch jemand Idden zur SPI-UART-Schaltung hat wäre ich immer noch daran interessiert..
> Beagleobone habe ich noch nichts zu gefunden.... werde ich mir morgen > noch mal ansehen. Also der Beagle-Bone hat 4 UARTs aber kein CAN Der Banana Pi hat alle Schnittstellen. Allerdings benötige ich noch eine CPU für eine bestimmte serielle Schnittstelle. Die Bytes müssen alle einzeln abgeholt werden. Das wird wohl bei allen nicht so einfach möglich sein.. Denke ich werde bei der Erweiterung des Raspberry PI landen... Entweder über UART Erweiterungen über SPI/I2C oder vielleicht besser über eine andere CPU die die 4 UARTS besitzt/steuert und über einen 8Bit-Port mit der dem RASPI verbunden ist. Wer hat schon mal einen Raspi um einen UART erweitert oder kann mir sagen welchen Chip ich am besten nehmen kann.
:
Bearbeitet durch User
SC16IS762 bastel ich gerade dran. Sieht gut aus bis jetzt, aber noch nicht endgültig fertig.
Das PICAN CAN-Bus Board (http://skpang.co.uk/catalog/pican2-canbus-board-for-raspberry-pi-2-p-1475.html) funktioniert prima mit dem Raspberry Pi2. Ist auch ein MCP2515, also über SPI angebunden.
:
Bearbeitet durch User
Ich empfehle einen BeagleBone. Der ist von der Peripherie her deutlich besser ausgestattet, und Du musst wesentlich weniger Klimmzüge machen. Ein CAN-COntroller ist schon im Prozessor drin, Du brauchst da nur einen PHY. UARTs gibts auch mehrere. Hutschienengehäuse: http://www.pollin.de/shop/dt/NTI3NzkyOTk-/Bausaetze_Module/Entwicklerboards/Beaglebone/Hutschienen_Gehaeuse_fuer_BeagleBone_Black.html fchk
Ingo F. schrieb: >> Beagleobone habe ich noch nichts zu gefunden.... werde ich mir morgen >> noch mal ansehen. > > Also der Beagle-Bone hat 4 UARTs aber kein CAN > Der Banana Pi hat alle Schnittstellen. > Der BeagleBone hat sogar 2 CAN Controller. Ansonsten ist es auch ein Monster an Schnittstellen. Und wenn diese nicht reichen sollten, dann kannst Du auch noch zusätzliche über die zwei PRUSS (Programmable Realiter Sub System) in Software (2x 200MHz MCUs) abbilden. Wenn es um Schnistellen geht ist der BeagleBone unschlagbar. Der BananaPi bietet auch reichlich Schnittstellen. Dieser ist preislich interessant. Wenn die Schnittstellen ausreichen dann ist es eine interessante Alternative. > Allerdings benötige ich noch eine CPU für eine bestimmte serielle > Schnittstelle. Die Bytes müssen alle einzeln abgeholt werden. Das wird > wohl bei allen nicht so einfach möglich sein.. Warum ? Das hängt vom Code ab ... > > Denke ich werde bei der Erweiterung des Raspberry PI landen... Der Raspberry Pi ist sehr interessant. Aber wenn es um Schnittstellen geht ist er denkbar ungeeignet. > > Entweder über UART Erweiterungen über SPI/I2C oder vielleicht besser > über eine andere CPU die die 4 UARTS besitzt/steuert und über einen > 8Bit-Port mit der dem RASPI verbunden ist. Warum so etwas machen, wenn andere Lösungen einfacher sind. > > Wer hat schon mal einen Raspi um einen UART erweitert oder kann mir > sagen welchen Chip ich am besten nehmen kann. Ich rate davon ab.
Gerd B. schrieb: > Der BeagleBone hat sogar 2 CAN Controller. Ansonsten ist es auch ein > Monster an Schnittstellen. Habe keine Anschlüsse an den beiden 46-Poligen Anschlüssen gefunden (P8 und P9). Oder wo finde ich die CAN-Anschlüsse? Wie funktioniert dass denn mit der ganzen Schnittstellen. Wie wählt mann den den Mode aus? Es gibt z.B. einen Mode in dem die 4,5 UARTS verfügbar sind. alle anderen Pins sind dann leer. Haben die dann keine Funktion mehr? Die I2C und SPI und ein UART liegen in verschiedenen Modes. Kann man die nicht gleichzeitig nutzen? Ich benötige als Mode 6. Dort gibt es dann wohl kein SPI und I2C. Würde aber gerne noch ein Display ansteuern. http://www.embedded-things.com/bbb/beaglebone-black-pin-mux-spreadsheet/ Gerd B. schrieb: > Warum ? Das hängt vom Code ab ... Naja bei 9600 Bit/s muss jedes Byte einzeln abegholt werden. Dort wird ein Break Als Frameende benutzt. Unter Windows und Linux auf dem PC klappt es schon wegen dem UART-Buffer nicht. Selbst wenn ich in einer Dauerschleife oder über Interrupt sofort alle Bytes auslese bekomme ich oft mehrere Bytes gleichzeitig. Oft nur im Abstand von 16ms. Einige Ports können auch kein Break erkennen. können das die UARTS im BeagleBone? AUf dem Raspberry und Beaglebone läut doch auch nur ein "Linux". Ist das dort anders? Wenn ich dann die Realtime-Erweiterung auch noch kaufen muss wird das im Gesamtsystem natürlich noch teurer.
:
Bearbeitet durch User
Ingo F. schrieb: > Gerd B. schrieb: >> Der BeagleBone hat sogar 2 CAN Controller. Ansonsten ist es auch ein >> Monster an Schnittstellen. > > Habe keine Anschlüsse an den beiden 46-Poligen Anschlüssen gefunden (P8 > und P9). Oder wo finde ich die CAN-Anschlüsse? DCAN0 liegt auf P9 Pin 19/20 (Mode 3), DCAN1 auf 24/26 (Mode 3) > Die I2C und SPI und ein UART liegen in verschiedenen Modes. Kann man die > nicht gleichzeitig nutzen? Ich benötige als Mode 6. Dort gibt es dann > wohl kein SPI und I2C. Würde aber gerne noch ein Display ansteuern. Jeder Pin hat ein Register, wo Du Dinge wie den Mode einstellen kannst, und jeder Pin ist unabhängig vom nächsten. Wie das im Linux konkret gehandhabt wird, müsstest DU dann selber nachlesen. Da gibt es jedenfalls eine Infrastruktur für sowas. > AUf dem Raspberry und Beaglebone läut doch auch nur ein "Linux". Ist das > dort anders? Ja, andere Treiber, und der Prozessor auf dem Pi kann eben andere Sachen, weil er für Tablets vorgesehen ist und nicht für Industriesteuerungen.
Ingo F. schrieb: > Gerd B. schrieb: >> Der BeagleBone hat sogar 2 CAN Controller. Ansonsten ist es auch ein >> Monster an Schnittstellen. > > Habe keine Anschlüsse an den beiden 46-Poligen Anschlüssen gefunden (P8 > und P9). Oder wo finde ich die CAN-Anschlüsse? > > Wie funktioniert dass denn mit der ganzen Schnittstellen. > Wie wählt mann den den Mode aus? > Es gibt z.B. einen Mode in dem die 4,5 UARTS verfügbar sind. alle > anderen Pins sind dann leer. Haben die dann keine Funktion mehr? > Die Pins können einzeln mit alternativen Modi betrieben werden, z.B. Pin X im Mode 4, Pin Y in Mode 2 usw. Die Einstellung erfolgt über Device Tree bzw. Device Tree Overlay - das gibt es auch schon beim RPi. > Die I2C und SPI und ein UART liegen in verschiedenen Modes. Kann man die > nicht gleichzeitig nutzen? Ich benötige als Mode 6. Dort gibt es dann > wohl kein SPI und I2C. doch schon - siehe oben. Aber Du kannst ggf. nicht alle Schnittstellen nutzen. Mach Dir eine Checkliste welche Du brauchst und dann kannst Du schauen, wie Du das umsetzt. > Würde aber gerne noch ein Display ansteuern. > http://www.embedded-things.com/bbb/beaglebone-black-pin-mux-spreadsheet/ geht auch - notfalls auch über SPI. > > Gerd B. schrieb: >> Warum ? Das hängt vom Code ab ... > > Naja bei 9600 Bit/s muss jedes Byte einzeln abegholt werden. Dort wird > ein Break Als Frameende benutzt. Scheint was Antikes zu sein ... > > Unter Windows und Linux auf dem PC klappt es schon wegen dem UART-Buffer > nicht. Selbst wenn ich in einer Dauerschleife oder über Interrupt sofort > alle Bytes auslese bekomme ich oft mehrere Bytes gleichzeitig. Oft nur > im Abstand von 16ms. Ja geht. Du kannst entweder die Fifo auf 0 schrauben oder nach jedem Break ein Interrupt auslösen lassen und dann reagieren. Wenn alle Stricke reißen nimmste eine PRU; die hat auch Zugriff auf UART und pollt zur Not, ohne das das Linux System permanent nachschauen muß. > > Einige Ports können auch kein Break erkennen. können das die UARTS im > BeagleBone? Ja, natürlich erkennen diese Breaks auch: Wenn Du willst schauste mal ins Prozessor Handbuch: http://www.ti.com/lit/ug/spruh73m/spruh73m.pdf Knappe 5000(!) Seiten und im Gegensatz auch lesbar und nicht wie beim RPi nicht einsehbar. Keine Angst: Viele Kluge Leute haben die Doku gelesen und die Treiber schon geschrieben. TI war mal ein schwarzes Schaf was Doku betrifft. Mittlerweile habe sie sich vom Saulus zum Paulus entwickelt ... > > AUf dem Raspberry und Beaglebone läut doch auch nur ein "Linux". Ist das > dort anders? Jepp > > Wenn ich dann die Realtime-Erweiterung auch noch kaufen muss wird das im > Gesamtsystem natürlich noch teurer. Nein musste nicht. Die PRUSS sind über C bzw Assembler programmierbar. Das ist die Allzweckwaffe, wenn Du wirklich eine harte Echtzeit Anwendung hast. Aber sage mal: Was hast Du eigentlich vor ?
:
Bearbeitet durch User
Gerd B. schrieb: > Aber sage mal: Was hast Du eigentlich vor ? Ursprünglich eine Steuerung für die Rolladen (SMI). Wegen 17 Motoren also schon zwei UARTS(TTL). Das Interface dafür kommt dann mit auf die Erweiterungsplatine. Dann für die Schalter einen RS485. Und dann hatte ich vor die Heizung (die "antike" Sache) damit dann auch noch anzuschließen. Dann brauch ich noch einen CAN-Port für mein "Hausbus". Und wenn ich schon dabei bin dann noch für den Stromzähler 1 Eingang (S0).
:
Bearbeitet durch User
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.