STM32 Uart: 2 Byte nahtlos schicken?

Gast #5563956
Lesenswert?

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.
Gast #5563975
Lesenswert?

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.
#5563985
Lesenswert?

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
Gast #5564024
Lesenswert?

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.
Gast #5564082
Lesenswert?

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.
#5564223
Lesenswert?

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.
#5564266
Lesenswert?

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.
Gast #5564268
Lesenswert?

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.
Gast #5564434
Lesenswert?

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
Gast #5564592
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren