Hallo Leute, kann mir jemand sagen ob man bei STM32s (spezieller STM32F103C8 der auf den BluePills sitzt) 2 Bytes nahtlos ohne Pausezeit hintereinander wegschicken und auch empfangen kann? Ich muss Daten von einem ASIC entgegen nehmen, der dummer weise per LVDS 16 zusammenhängende Bits @ 1MBit auf einem Kanal versendet und zur Parametrisierung auch wieder erwartet. :-/ Die Datenpakete kommen nicht sehr häufig vor (16 zusammenhängende Bits @ 1Mbit alle 100ms) so das ich die Daten auch wegschaufeln sollte.
Bei UART-Kommunikation kommen zwischen zwei Bytes (mit 5 bis 9 Bits pro Byte) immer mindestens ein Stop- und ein Startbit. Wenn dem nicht so ist, ist das keine UART-Kommunikation mehr.
S. R. schrieb: > Bei UART-Kommunikation kommen zwischen zwei Bytes (mit 5 bis 9 Bits pro > Byte) immer mindestens ein Stop- und ein Startbit. Wenn dem nicht so > ist, ist das keine UART-Kommunikation mehr. Ich hatte die Hoffnung, das es vielleicht per DMA einfach raus zu dumpen wäre.
STM32 Newbie schrieb im Beitrag #5563975: > S. R. schrieb: >> Bei UART-Kommunikation kommen zwischen zwei Bytes (mit 5 bis 9 Bits pro >> Byte) immer mindestens ein Stop- und ein Startbit. Wenn dem nicht so >> ist, ist das keine UART-Kommunikation mehr. > > Ich hatte die Hoffnung, das es vielleicht per DMA einfach raus zu dumpen > wäre. USART ist aus Sicht heutiger µC schnarchlahm... Das geht auch locker ohne DMA
STM32 Newbie schrieb im Beitrag #5563956: > Ich muss Daten von einem ASIC entgegen nehmen, der dummer weise per LVDS > 16 zusammenhängende Bits @ 1MBit auf einem Kanal versendet und zur > Parametrisierung auch wieder erwartet. .... aber doch sicherlich nicht als UART-Datenstrom? So doof dürfte kein ASIC-Hersteller sein, oder doch ? .... neeee, nicht wirklich ..... und dann noch auf einer "krummen" UART-Datenrate. Das wird dann wohl eher SPI oder was anderes Serielles sein.
Harry L. schrieb: > USART ist aus Sicht heutiger µC schnarchlahm... > > Das geht auch locker ohne DMA Was hat das Verfahren mit der Geschwindigkeit zu tun? 9k6 ist vielleicht langsam, 10M nicht unbedingt.
16 Bit Schieberegister und dann Feuer frei. Sowas kann man zum Senden und zum Empfangen verwenden.
STM32 Newbie schrieb im Beitrag #5563956: > kann mir jemand sagen ob man bei STM32s (spezieller STM32F103C8 der auf > den BluePills sitzt) 2 Bytes nahtlos ohne Pausezeit hintereinander > wegschicken und auch empfangen kann? Guck mal, was das "A" in UART bedeutet. Mit der Schnittstelle bist du auf dem Holzweg. Selbst mit Tricksen kann die nur 1.125 Bytes.
Wir sollten erstmal klären was mit "nahtlos" gemeint ist.
* Kommen da einfach 2 normale Frames a 8 Bit direkt nacheinander?
* Gibt es noch eine Taktleitung und das ist in Wirklichkeit SPI?
* Kommt tatsächlich ein einziger UART-Frame mit Überlänge?
Das wäre sehr ungewöhnlich, um nicht zu sagen exzentrisch,
da hätte derjenige der das ASIC entworfen hat dem Ding wirklich
seine ganz persönliche Note aufgedrückt, womöglich um Nachbauern
und unlizenzierten Zubehörlieferanten proaktiv ans Bein zu pinkeln.
Wenn das geklärt ist kann man über Lösungsmöglichkeiten nachdenken.
Poste bitte mal ein Oszillogramm von dem Signal.
STM32 Newbie schrieb im Beitrag #5563956: > Ich muss Daten von einem ASIC entgegen nehmen, der dummer weise per LVDS > 16 zusammenhängende Bits @ 1MBit auf einem Kanal versendet und zur > Parametrisierung auch wieder erwartet. :-/ Poste mal ein Timing-Diagramm, das ist hier arg missverständlich. Falls es ein Taktsignal gibt, wäre eher SPI Hardware zu verwenden.
Jim M. schrieb: > das ist hier arg missverständlich. Wenn ich den Zitierten beim Wort nehmen darf STM32 Newbie schrieb im Beitrag #5563956: > 16 zusammenhängende Bits dann kann ich das eigentlich nicht miss-verstehen. 16 zusammenhängende Bits sind 16 zusammenhängende Bits. Und daraus kann kein UART-Datenstrom gemeint sein.
Nebel Stocherer schrieb: > dann kann ich das eigentlich nicht miss-verstehen. > 16 zusammenhängende Bits sind 16 zusammenhängende Bits. 16 logisch zusammenhängende Bits, also zu Beispiel im Sinne von 16-Bit Integer?
Der TO hat doch die Antwort schon gegeben: "Schade, ich dachte, das ginge. Naja, dann eben nicht." Solange es keine weiteren Informationen gibt, ist das Thema damit durch.
STM32 Newbie schrieb im Beitrag #5563956: > der dummer weise per LVDS > 16 zusammenhängende Bits @ 1MBit auf einem Kanal versendet Das ist keine asynchrone Verbindung, eher eine synchrone - da kommt die spezifizierte Anzahl von Bytes ohne Pause nacheinander, aber da werden Framing Bits usw. verwendet. Es gibt aber eh so gut wie keine USARTs mehr und die synchronen seriellen Schnittstellen sterben aus. Also Hardware (Schieberegister) oder Software per Time Interrupt, bei 1 MBit schon anspruchsvoll, aber machbar. Georg
STM32 Newbie schrieb im Beitrag #5563956: > Ich muss Daten von einem ASIC entgegen nehmen, der dummer weise per LVDS > 16 zusammenhängende Bits @ 1MBit auf einem Kanal versendet und zur > Parametrisierung auch wieder erwartet. :-/ Bei LVDS ist nur definiert, dass es eine asynchrone Verbindung ist, aber nicht welche Codierung verwendet wird. 'Klassisch' mit (zeit/wert)festen Framing Start/Stopbits dürfte zwar selten sein, aber für die 'Anwendung' (gelegentlich 16bit) zumindest praktisch ... je nach ASIC-Hersteller. 8b/10b o.ä. dürfte aber wahrscheinlicher sein. NB.: Gerüchte von Fake-Book o.ä. synchrone serielle Schnittstellen würden aussterben nachdem erst in den letzten Jahrzehnten das Internet praktisch (bis auf Tn-Anschlüsse) auf synchrone Datenübertragung umgestellt wurde bei Bedarf vorher prüfen.
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.