Guten Morgen, Gibt es Bausteine / Chips, welche mehrere UART Schnittstellen über einen seriellen Bus, wie I2C oder SPI bereitstellen ? Ich kenne nur eine Lösung, wo "µC B" - welcher beispielsweise 4 UART Ports besitzt, diese als I2C oder SPI Slave bereitstellt. Gibt es auch eine einfache Lösung wie man einem Controller, welcher nur einen UART Port besitzt, mehrere zur Verfügung stellen kann ? Ich suche nach etwas wie I2C/ SPI Expander / Modul wie auch für ADC bekannt . Danke und Gruß Marc
Sowas? https://www.maximintegrated.com/en/products/interface/controllers-expanders/MAX14830.html Der ist allerdings ziemlich kompakt: "Saves Board Space TQFN (7mm × 7mm) Package" Allerdings findet sich mit Google und den passenden Suchbegriffen doch was: https://www.google.com/search?q=SPI+multiple+UART https://www.google.com/search?q=SPI+bridge+UART Und das sieht doch auch ganz nett aus: https://www.instructables.com/id/SPI-to-4-x-UART-Bridge-MULTIUART/
:
Bearbeitet durch Moderator
Ruppie schrieb: > Gibt es Bausteine / Chips, welche mehrere UART Schnittstellen über einen > seriellen Bus, wie I2C oder SPI bereitstellen ? Gabs mal früher von NXP: SC16IS750 und andere. Werden aber nicht mehr produziert, vermutlich mangels Bedarf. fchk
Der STM32F091 hat 8 UART, reicht das? Ein Umsetzer in eine beliebige Schnittstelle sollte leicht möglich sein.
fchk schrieb: > Gabs mal früher von NXP: SC16IS750 und andere. Sicher? Habe ich noch nicht gehört, stehen bei NXP als aktiv.
Ruppie schrieb: > Gibt es auch eine einfache Lösung wie man einem Controller, welcher nur > einen > UART Port besitzt, mehrere zur Verfügung stellen kann ? Soft-UART
Ruppie schrieb: > Ich kenne nur eine Lösung, wo "µC B" - welcher beispielsweise 4 UART > Ports besitzt, diese als I2C oder SPI Slave bereitstellt. Die Lösung finde ich am attraktivsten, jedenfalls von den hier vorgeschlagenen. Der MAX14830 kommt im QFN-48, braucht einen 3.6MHz Quarz und kostet über 10 Euro. Von NXP finde ich nur 2-fach UARTs, zwei Stück kosten ca. 7 Euro. PIC oder STM32 gibt's für 2 bis 3 Euro und die brauchen keinen Quarz. Der PIC hat 4 UARTs und 64 Pins, ein STM32L071KBT hat 5 UARTs mit nur 32 Pins und 0.8mm Pitch. Damit steht mein Testsieger fest. Noch attraktiver wird das, wenn man das eine oder andere geschenkte Feature nutzen kann, z.B. 6k EEPROM, 2 bis 6 ADC-Eingänge, PWM-Ausgänge, RTC... Aber richtig nett wäre es, den "UART-uC" per UART mit dem Hauptrechner zu verbinden. Sende- und Empfangsrichtung sind dann völlig unabhängig und funktionieren gleichzeitig, wie im normalen UART-Betrieb. Man muss die Daten nur in Päckchen packen und mit einer Adresse versehen. Aber das muss man mit SPI oder I2C auch.
1 | Partnumber STM32L071KBT6 |
2 | Package LQFP32 |
3 | IDcode 0x447 |
4 | RAM 20 K |
5 | FLASH 128 K |
6 | EEPROM 6 K |
7 | Core Arm Cortex-M0+ |
8 | Clock max. 32 MHz |
9 | Pins 32 |
10 | Pin file STM32L071K(B-Z)Tx.xml |
11 | Config file IP/GPIO-STM32L071_gpio_v1_0_Modes.xml |
12 | |
13 | 1 VDD@1 |
14 | 2 PC14-LSI OSC32IN |
15 | 3 PC15-LSO OSC32OUT |
16 | 4 NRST |
17 | 5 VDDA |
18 | 6 PA0 TXD4 |
19 | 7 PA1 RXD4 |
20 | 8 PA2 TXD2 |
21 | 9 PA3 RXD2 |
22 | 10 PA4 ADC.4 NSS1 CMP1M CMP2M T22ETR |
23 | 11 PA5 ADC.5 SCK1 CMP1M CMP2M T2.1 T2ETR |
24 | 12 PA6 CTS0 ADC.6 MISO1 CMP1OUT T22.1 T3.1 |
25 | 13 PA7 ADC.7 MOSI1 CMP2OUT T22.2 T3.2 |
26 | 14 PB0 ADC.8 T3.3 VREFOUT |
27 | 15 PB1 RTS0 ADC.9 DE0 T3.4 VREFOUT |
28 | 16 VSS@16 |
29 | 17 VDD@17 |
30 | 18 PA8 MCO |
31 | 19 PA9 TXD1 |
32 | 20 PA10 RXD1 |
33 | 21 PA11 CTS1 CMP1OUT MISO1 |
34 | 22 PA12 RTS1 CMP2OUT DE1 MOSI1 |
35 | 23 PA13 RXD0 SWD |
36 | 24 PA14 TXD0 SWC |
37 | 25 PA15 RTS4 DE4 NSS1 T2.1 T2ETR |
38 | 26 PB3 TXD5 |
39 | 27 PB4 RXD5 |
40 | 28 PB5 CMP2P DE5 MOSI1 T22.2 T3.2 TL1.1 |
41 | 29 PB6 CMP2P SCL1 TL1ETR |
42 | 30 PB7 CTS4 CMP2P SDA1 PVD TL1.2 |
43 | 31 BOOT0 |
44 | 32 VSS@32 |
Bauform B. schrieb: > Die Lösung finde ich am attraktivsten, jedenfalls von den hier > vorgeschlagenen. Ich würde da einen kleinen MachXO2 für um die 5€ nehmen und hätte Platz für ein paar UARTs: http://www.latticesemi.com/en/Products/DesignSoftwareAndIP/IntellectualProperty/ReferenceDesigns/ReferenceDesign03/SPItoUARTExpander Und wenn ich die IP nicht kaufen will, dann mache ich den UART selber. Ist ja nicht so arg viel dran. Nebenher könnte das FPGA noch ein paar Encoder einlesen oder sonstwas machen, was der µC nicht so gut kann... ;-) > Aber richtig nett wäre es, den "UART-uC" per UART mit dem Hauptrechner > zu verbinden. Sende- und Empfangsrichtung sind dann völlig unabhängig > und funktionieren gleichzeitig, wie im normalen UART-Betrieb. Man muss > die Daten nur in Päckchen packen und mit einer Adresse versehen. Das solltest du nochmal überdenken. Und im Besonderen auch auf den nötigen Protokoloverhead untersuchen. Das ist nämlich mehr als man vorneweg meinen könnte. Einfach mal irgendwo in Gedanken ein Bit "umkippen" lassen.
:
Bearbeitet durch Moderator
Bleibt die Frage, wieviele du brauchst. Für ein Einzelstück oder einige wenige würde ich mir das nicht antun dafür einen MC zu programmieren.
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.