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.
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.
Eine eigene Frage?
Dieser Thread ist über 8 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.