Ich habe vor, eine Software von einem proprietären x86 System auf ein ARM mit Linux zu portieren. Als Mikroprozessor sollte ein Cortex-A7 verwendet werden. Dazu könnte ich ein Board mit i.MX6ULL benutzen. (https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-6-processors/i-mx-6ull-single-core-processor-with-arm-cortex-a7-core:i.MX6ULL) In dem System gibt es aber einen RS485-Bus, der bisher über einen Co-Controller angesteuert wird. Der Grund dafür ist, dass das Protokoll 9 Datenbits verwendet. Nun haben die ARM Prozessoren üblicherweise nur eine 8-Bit UART. Man könnte vielleicht etwas aus der Xilinx ZC7000 Reihe verwenden und die UART in VHDL implementieren. Aber das scheint etwas überdimensioniert zu sein. Gibt es eine andere Lösung ARM Cortex-A7 mit einer 9-Bit UART auszustatten?
ARMv7 oder Cortex-A7? Es gibt eine Unzahl an ARMv7-Systemen, dazu gehören eben u.a. der Cortex-A7 aber auch Cortex-M3/4/7. Muss es denn der Cortex-A7 sein, geht auch A5, A8, A53, ...? Der Microchip SAMA7G54 Cortex-A7 kann anscheinend 5-9bit UART (via FLEXCOM).
Zumindest der i.MX 6Solo/6DualLite kann laut Reference Manual: - 9-bit or Multidrop mode (RS-485) support - 7 or 8 data bits for RS-232 characters, or 9 bit RS-485 format
PS: Niklas G. schrieb: > A53 Ist ein ARMv8, nicht v7, aber auf Anwendungsebene kompatibel - ist das ein Problem? Mikroprozessoren/Anwendungsprozessoren/MPUs würde man eher nicht als "Controller" bezeichnen. Das, was man landläufig als Controller kennt, ist üblicherweise nicht (praktikabel) für Linux geeignet.
STM32MP1xxx Cortex-A7, und die Peripherie ist mehr oder weniger 1:1 die von den STM32-uC, die können (fast) alle 9 Bit, Parity, CTS/RTS und "Driver Enable" (für RS-485).
Harper B. schrieb: > Gibt es eine andere Lösung ARM Cortex-A7 mit einer 9-Bit UART > auszustatten? Du könntest einen kleinen PIC als RS485 Controller verwenden. Der hier https://www.microchip.com/en-us/product/PIC16F15325 https://www.digikey.de/en/products/detail/microchip-technology/PIC16F15325-I-SL/6593043 hat nur 14 Pins und zwei recht flexible UARTs mit LIN und 9-Bit Daten und 9-Bit Adressmodus. Die Kommunikation mit dem Linux-System kann dann entweder über den anderen UART oder über I2C erfolgen. Dieser Weg ist mit Sicherheit deutlich einfacher als den Linux-Treiber eines speziellen UARTs zu 9-Bit plus RS485 Support (Ansteuerung von DE/!RE) zu überreden, weil die ganzen kritischen Dinge im PIC gekapselt sind. Das macht dann auch einen Umstieg auf einen anderen Linux-SOC trivial. fchk
Dieter S. schrieb: > Zumindest der i.MX 6Solo/6DualLite kann laut Reference Manual: > > - 9-bit or Multidrop mode (RS-485) support > > - 7 or 8 data bits for RS-232 characters, or 9 bit RS-485 format Ich habe mir das Datasheet IMX6SDLIEC.pdf heruntergeladen. Hier wird zwar auf Seite 6 "Supporting 9-bit multidrop mode" erwähnt. Auf Seite 17 ist dann aber plötzlich nur noch "7- or 8-bit data words" zu finden. Hast Du einen Tipp, wo das Reference Manual zu finden ist?
Frank K. schrieb: > Du könntest einen kleinen PIC als RS485 Controller verwenden. Das scheint er umgehen zu wollen: Harper B. schrieb: > In dem System gibt es aber einen RS485-Bus, der bisher über einen > Co-Controller angesteuert wird.
Harper B. schrieb: > > Hast Du einen Tipp, wo das Reference Manual zu finden ist? Ich habe hier "i.MX 6Solo/6DualLite Applications Processor Reference Manual Rev. 2, 04/2015", die "Rev 3" gibt es hier: https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/imx-processors/134104/1/IMX6SDLRM_Rev3.pdf Wenn man nach "imx6" "linux" UART" "9-bit" sucht findet man auch einiges an Hinweisen wie das Ganze unter Linux aussieht.
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.