Hallo alle zusammen, an meinem aktuellen Projekt wollte ich ein LoRa-Wireless und ein GPS-Modul verwenden. Beide Module kann man über UART ansprechen. Meine Frage ist nun, ob es möglich ist, die UART Schnittstelle für 2 Module gleichzeitig zu verwenden? Geht das überhaupt? Als Controller verwende ich einen PSoC5. Danke im Voraus. MfG
Ich hätte einen µC mit mehr als einem UART benutzt. Könnte ein PSoC5 IMHO über die UDBs implementieren.
µ*µ=µ² schrieb: > an meinem aktuellen Projekt wollte ich ein LoRa-Wireless und ein > GPS-Modul verwenden. Beide Module kann man über UART ansprechen. Meine > Frage ist nun, ob es möglich ist, die UART Schnittstelle für 2 Module > gleichzeitig zu verwenden? Geht das überhaupt? Nein, gleichzeitig ist natürlich völlig unmöglich. Zeitmultiplex (also sozusagen abwechselnd) ist vielleicht möglich, das hängt von den Modulen ab. Aber selbst, wenn es theoretisch möglich wäre: Du wirst es aber ganz sicher nicht gebacken bekommen, das ergibt sich bereits aus deiner Fragestellung...
Naja, da benötigst du hal 1:2 Muxer (z.B. 74LVC1G157) für RX und TX, und einen Umschalt-Pin. Dann kannst du die UART zwischen den Modulen umschalten. Dast geht natürlich nur zeitlich gemuxt. Elegant ist das nicht, möglich schon.
Alternativ, falls du einen/zwei freie Pins hast, könntest du auch ein UART in Software nachbilden. Sind nur ein paar wenige Zeilen Code.
speziell die psocs eignen sich doch mehrere uarts zu betreiben. ansonsten würde ich auf jeden fall evtl. vorhandenes hardware handshaking ausnutzen um kollisionen oder verlorene daten zu vermeiden (cts/rts).
Also meiner hat nur einen UART. Habe mal das Datenblatt angehängt. Ich werde es wohl mit der Software UART ausprobieren. Danke für eure Antworten.
µ*µ=µ² schrieb: > Hallo alle zusammen, > > an meinem aktuellen Projekt wollte ich ein LoRa-Wireless und ein > GPS-Modul verwenden. Beide Module kann man über UART ansprechen. Meine > Frage ist nun, ob es möglich ist, die UART Schnittstelle für 2 Module > gleichzeitig zu verwenden? Wenn Du auf dem LoRa Modul nur sendest und auf dem GPS Modul nur empfängst dann schon.
µ*µ=µ² schrieb: > Also meiner hat nur einen UART. Habe mal das Datenblatt angehängt. Kann ich mir nicht vorstellen. Habe das DB mal überflogen, da sollte zumindest über die UDBs mehr als ein UART machbar sein.
Einfach mal gegoogelt: https://www.nxp.com/docs/en/brochure/75015676.pdf Ansonsten wurde wohl die falsche CPU gewählt. Ich habe für ein Projekt eine NXP M0 CPU, die hat 2 serielle Schnittstellen. Es gibt also welche.
RR schrieb: > Wenn Du auf dem LoRa Modul nur sendest und auf dem GPS Modul nur > empfängst dann schon Nicht nur dann, es geht auch wenn beide angeschlossenen Geräte nur auf Anforderung senden, so dass sie sich nicht in die Quere kommen. Mit einem GPS-Modul, das ständig Daten sendet, geht es nicht. Georg
Ich habe mal einen zweiten Tx Anschluss per Software emuliert, aber beide Module (über UND Verknüpfung) zusammen an den einen Rx Pin gehangen.
1 | Modul 1 Rx o--------------------o µC Tx |
2 | |
3 | 1k |
4 | Modul 1 Tx o---[===]----+-------o µC Rx |
5 | | |
6 | Modul 2 Tx o----|<|-----+ |
7 | |
8 | Modul 2 Rx o--------------------o µC GPIO (Soft-Serial) |
Solange man die beiden Module nur wechselweise anspricht und nicht beide ohne Aufforderung losplappern, geht das prima.
Stefan U. schrieb: > Solange man die beiden Module nur wechselweise anspricht und nicht beide > ohne Aufforderung losplappern, geht das prima. Gängige GPS-Module mit NMEA-Output werden während des normalen Betriebs nicht angesprochen. Die plappern im 1-Sekundenden Takt (oder wie auch immer) munter und ungefragt vor sich hin. Bei der LoRa-Datenstrecke kommt es auf den Aufbau an, ob die sich da passend reinsynchronisieren lässt.
Dann sind getrennte Rx Kanäle wohl doch besser. Ich nehme an, dass zumindest für das GPS Modul keine hohen Bitraten nötig sind, dann sollte das kein Problem sein.
Stefan U. schrieb: > Ich nehme an, dass zumindest für das GPS Modul keine hohen Bitraten > nötig sind. Das kommt drauf an, was du als "hohe Bitrate" bezeichnest. Beim klassische NMEA0183-Standard werden 4800 Bd verwendet, die GPS-Module nutzen auch oft 9600 oder 19200 Bd.
Das sind für mich niedrige Bitraten, kriegt man mit Soft-Serial problemlos hin.
Ich würde einen kleinen PIC oder so verwenden, der sich um das GPS kümmert, die NMEA-Strings auswertet und den jeweils letzten Datensatz in einem Binärformat als I2C-Slave zur Verfügung stellt. Das kann man immer wieder gebrauchen. fchk
Oder man nimmt einen Chip, der aus einer SPI Schnittstelle vier UARTS macht: http://www.instructables.com/id/SPI-to-4-x-UART-Bridge-MULTIUART/ Dann hat man sogar fünf serielle ports... .
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.