hallo zusammen ich habe hier ein tunermodul von philips und will das per rpi ansteuern... ein 24-bit muster, 300 baud, sind dafür erforderlich. für die bandwahl, die frequenz, den sendersuchlauf etc... http://pdf.datasheetcatalog.com/datasheet/philips/TEA5762H.pdf ich googelte mich wie blöd durchs netz, wie man die gpio's so programmieren kann (py) dass nicht nur ein bit (setzen h/l) gesetzt wird sondern auf einem port das muster und auf dem andern den clock parallel dazu ausgegeben wird. terminalprogrammsender über die "normale" seriellfunktion hab ich zig gefunden, aber da nicht zahlen oder buchstaben gesendet werden müssen, fällt das wohl weg. suche ich falsch oder ist mein ansatz über 2 gpio's die steuerun zu übernehmen falsch? müsste ich noch ein schieberegister dazwischenschalten? nicht wirklich, oder? danke für einen kleinen hinweis, wie ich das am besten anstelle.
Man kann über eine serielle Schnittstelle auch Binärdaten übertragen. Wenn du einen Pin high/low setzen kannst, dann kannst du auch mehrere Pins high/low setzen (und nein, es muss nicht exakt gleichzeitig sein). Und wenn du mehrere Pins high/low setzen kannst, dann kannst du das auch mehrmals hintereinander machen. Nur mit dem Timing musst du aufpassen.
Das Timing ist unkritisch, solange du unterhalb von 300 kHz bleibst. Du brauchst 3 GPIOs: WRITE-ENABLE, BUS-CLOCK und DATA. DATA ist bidirektional, also musst du den GPIO sowohl lesen als auch schreiben können.
den enable hätt ich fast vergessen :) - danke. das timing ist ja nur insofern unkritisch, wenn es so ist, dass das clock-signal high ist, wenn das datenbit gültig ist... es fühlt sich etwas umständlich an. also müsste ich enable setzen, das erste bit setzen, den clock-puls ausgeben, das zweite bit setzen, den clock ausgeben... und das bis das ganze telegramm durch ist? der ansatz über die serielle... da es glaubs kein serial.TWENTYFIVEBITS gibt, könnte es dank start- und stopbit auch verwirrend sein für den armen tuner.
Ja. Synchrone Übertragung läuft immer so: - Clock inaktiv - Data setzen - Clock aktiv - Warten - ...wieder von vorne... Wenn man das in Hardware gießt, übernimmt man die Daten üblicherweise mit der Taktflanke (nicht mit dem Taktwert), und dann kann man das ein Stück weit überlappen. Je nachdem, welche Flanken mit welcher Polarität ausgewertet werden, ergeben sich daraus die bekannten 4 SPI-Modi. ;-) Dein Chip spricht nicht UART, der spricht in etwa SPI. Das ist synchron, da gibt's keine Start- oder Stopbits. Und ich bin mir relativ sicher, dass man dem Chip auch einfach 32 Bit entnehmen kann (dann kommen die bekannten 25 Bit plus ein bisschen Müll), bzw. auch einfach 32 Bit hinschicken kann. Sonst könnte man mit einem handelsüblichen Controller keine SPI-Hardware benutzen - was nicht im Sinne des Entwicklers ist.
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.