Ik heb een picje waar een aantal dingen met de uart verbonden moeten worden: een gps, een kompas en een rf module. De gps zit nu aan de hardware uart en dat werkt goed. Maar nu moeten daar nog twee dingen bij, een kompasmodule en een rf module. De kompasmodule is het ingewikkeldst, die wil namelijk eerst "$sure ga" ontvangen, en vervolgens spuugt hij "Angle=245deg." uit. Dit allemaal op 9600bps 1 start bit, 8 data bits, geen parity en 1 stop bit. Net als de gps module. Wat de rf module verwacht heb ik zelf in de hand.
Nu heb ik twee opties:
1) de software uart. Ik heb geen idee hoe ik dat dan aan moet pakken
2) toch de hardware uart gebruiken en dan met een aantal 4066 (quad analog switch) steeds de juiste module kiezen.
Wat is het handigste?
Progger
GMT+1
compasmodule op hardware uart, zenden + ontvangen
GPS op software uart, alleen ontvangen.
RF op software uart, alleen zenden.
zoiets soortgelijks heb ik al een keer gezien bij een cansat, en dat werkte.
disclaimer, dat was met arduino-bootloader en die heeft een software-serial library. weet niet of jij daar ook aan kan komen.
[Bericht gewijzigd door Progger op (24%)]
de rf module moet ook ontvangen.
Ik heb een software uart library, maar daar kunnen alleen bytes mee verzonden en ontvangen worden.
plantrekker
True story bro!
Praten de modules ook op eigen initiatief?
Zoniet kom je er misschien van af met 3 diodes (naar de Rx van je PIC en alle Rx'en van je modules aan elkaar op de Tx van je PIC) De rf module kan je dan op een andere datarate gaan aanspreken zodat de gps en compas dit negeren. Het compas reageert enkel op "$sure ga" dus wat je naar de gps stuurt zal het kompas ook negeren. Als nu de gps niet zal reageren op "$sure ga", dan zou ik deze manier eens proberen, alleen al voor de fun
.
zou leuk zijn, maar het kopasje geeft op alles wat niet $sure ga is (of $sure cl of $sure sv=whatever) "Bad command!" Dus dat zou alle communicatie verzieken.
De gps komt elke seconde met een string die ik moet hebben. Het kompasje alleen als je het vraagt. De rf module natuurlijk als er iets verzonden wordt, en dat kan altijd zijn.
heb nog even gekeken, maar een picje met meer dan 2 uarts is geen optie omdat dat wel een mega geval wordt. De andere optie is een om meerdere losse picjes elk een taak te geven (kompas, communicatie met wal) en die met hun hardware uart aan hun taak knopen. Daarna kunnen ze onderling met een software i2c communiceren.
Maar wat is er eigenlijk mis met een constructie met een 4066? Mij leek dat wel een leuke oplossing.