Hi, ich suche einen UART mit parallelem CPU-Interface und einer Interrupt-Leitung zur CPU. Der UART sollte von mehreren Herstellern angeboten werden, um nicht von einem Hersteller abhängig zu sein. Kennt da jemand was?
Schau dir mal Zilogs Z80C30 an. Glaube National und Philips stellt einen kompatiblen Baustein her.
8250, 16450, 16550. Alle im 40poligem DIP-Gehäuse verfügbar, wurden/werden beispielsweise von National und TI hergestellt. Die letztgenannte Variante verfügt über Sende- und Empfangs-FIFOs, mit denen die Interruptrate reduziert werden kann. Findet man in jedem PC (dort allerdings i.d.R. als Bestandteil des Chipsatzes) und auf älteren Schnittstellenkarten, aus denen man so etwas zum Experimentieren/Prototypenaufbau auch entnehmen kann. Unter der Bezeichnung 16552 und 16554 gibt es auch Mehrfachausführungen davon, die aber verwenden mehrere Interruptleitungen, welche sich aber logisch verknüpfen ließen. Diese Varianten sind im 64poligen PLCC-Gehäuse untergebracht und wurden/werden ebenfalls von National und TI hergestellt. Aus der Taiwanschiene gibt es ebenfalls etliche Hersteller, die die Bausteine produzieren. Mit größeren FIFOs gibt es sowas auch von Oxford Semiconductor OX16C950B* und OX16C954; auch dafür dürfte es Second-Source-Anbieter geben. *) www.oxsemi.com - Datenblatt http://www.oxsemi.com/oxford/documents/download/standard/dsheets/ox16c950bds.pdf
Ja, den 16C550 hatte ich auch im Auge, aber der scheidet aus zwei Gründen aus: 1. Die verwendete CPU ist ein 8052er (hatte ich vergessen zu erwähnen), deswegen sollte der Interrupt low-aktiv sein, könnte man aber ivertieren. 2. Der 16C550 hat zusätzlich noch die /TXRDY und die /RXRDY Leitung, werden die nur bei DMA-Zugriff verwendet? Dann brauch ich sie ja beim 8052 nicht, in diesem Fall könnte das klappen... Ralf
@Ralf Ich schreibe 'mal ohne Nachzuschauen: 2691 (o.ä.) ist ein UART im DIL28. Hatte ich seinerzeit am 8051 verwendet. Habe jetzt doch noch im Keller gesucht: SCC2691. Wenn Du nur wenige brauchst, könnte ich Dir viere anbieten.
1. Ja, die Interruptleitung sollte in der Tat invertiert werden. Mit einem '04 sollte das Thema erledigt sein. Wenn Du mehrere Interruptquellen an einen Interrupteingang anschließen willst, dann solltest Du einen '05 (mit Open-Collector-Ausgang) verwenden und zwischen dessen Ausgang und dem Interrupteingang Deines Controllers einen geeigneten Pullup vorsehen. An diese Interruptleitung können dann mehrere OC-Ausgänge anderer Interruptquellen angeschlossen werden (so, wie Hardware-Interrupt-Sharing halt gemacht wird ... außer im strunzdebilen PC-Design, das Active-High-Interrupts auf dem ISA-Bus verwendet und das deshalb nicht kann). 2. hast Du richtig interpretiert. Diese Signale sind nur für den DMA-Betrieb relevant und Du kannst sie geflissentlich ignorieren. Der 16550 ist sicherlich nicht der beste denkbare UART-Baustein, aber es gibt recht viele Hersteller und seine Funktion ist ziemlich gut bekannt, da dieser Baustein seit Äonen in jedem PC verbaut wird. Daher sollte die Programmierung keine allzugroßen Rätsel mit sich bringen. Philips verwendet übrigens den 16550 in den LP2xxx-ARM-Prozessoren. Viel Erfolg!
Einen parallelen Chip würde ich nicht nehmen. Dir gehen mindestens 10 Portpins verloren und Du brauchst noch ein Adreßlatch. Nimm besser nen 8051 mit SPI (AT89S8252) und hänge den MAX3100 dran. Peter P.S.: Klar kann der 8051 auch high level Interrupts: http://home.tiscali.de/peterd/tutorial/extint/index.htm
@Peter: Das mit dem High-aktiven Interrupt gefällt mir grins SPI-UART fällt weg, bin an den S52 von der Firma her gebunden. Den MAX3100 hatte ich nämlich auch schon im Auge. Aber für meinen Bastelkeller wäre das eine Alternative... @Michael: Danke für das Angebot, ich überlegs mir... @Rufus: Danke für die Info, aber warum soll der 550 nicht gut sein? Paralleles Interface wie gewünscht, und von mehreren Herstellern... Ralf
Hallo, ich setze den scc2681 in Verbindung mit einem 8051er ein. Den gibts allerdings nur von Philips, ist aber realtiv neu auf dem Markt. Gruß Carlos
>>ist aber realtiv neu auf dem Markt.
Ist ja immer wieder erfreulich, junge Menschen zu treffen, die sich für
Elektronik interessieren :-)
Ich habe den SCC2691 zuletzt vor über 15 Jahren eingesetzt.
Kleine Korrektur von mir: der scc2681 ist ein Doppel-UART (DUART) u.a. im 28 pol. DIL-Gehäuse und den gibt es in dieser CMOS-Version wirklich erst seit ca. 1 Jahr.
Daß der 16550 per se "Nicht gut" wäre, meine ich nicht, nur gibt es andere UARTs, die mehr Funktionalität haben: Was mit 16550 beispielsweise nicht möglich ist, ist ein echter 9-Bit-Betrieb, was auch nicht so ohne weiteres unterstützt wird, ist ein RS485-Betrieb mit automatischer Sende/Empfangsumschaltung. Für letzteres bieten andere Bausteine eine spezielle Steuerleitung an, die genau solange aktiv ist, wie über TxD Daten ausgegeben werden. Das macht sogar der FT232.
@Carlos Suche mal nach dem SCN2681, den finde ich im Valvo Datenbuch '68000-System Datenkommunikation CRT-Controller' aus dem Jahre 1987 (letztes Jahrhundert :-) SCN war vermutlich NMOS -> höhere Stromaufnahme.
Da gabs auch mal einen 20pin-UART, den COM81C17, ist aber leider ausgestorben, der Hersteller empfiehlt als Nachfolger einen 100 pin TQFP
Na gut, nur um mal ein paar andere UARTs zu nennen: Motorola 6850. Braucht externen Baudratengenerator, dafür im 24poligen DIP-Gehäuse. Rockwell 6551. Mit integriertem Baudratengenerator (braucht Quarz mit 1.8432 MHz), 28poliges DIP-Gehäuse, Hardwarefehler beim Hardwarehandshake. Motorola/Exar/Philips 68681. Zwei serielle Schnittstellen im 40poligem DIP-Gehäuse, integrierter Baudratengenerator. Ist wohl mit 2681 verwandt. Zilog Z8440 (Z80 SIO). Zwei serielle Schnittstellen im 40poligen DIP-Gehäuse, integrierter Baudratengenerator. Dürften aber alles Kandidaten fürs Computermuseum sein.
oder gleich den AY-...1015 den hatte ich schon in einem RS232-terminal von 1973 und im Elektor- "Elekterminal" 1977, 40 Pin DIL
Computermuseum ja, aber auch nein. Von den SCC26xx (übrigens allesamt auf RoHS umgestellt !) gibt es auch noch die 2698 mit 8fach UART im PLCC84. Wer's braucht, hat damit eine gute Lösung. Die Teile passen zudem direkt an die 8051er: pos. RESET, /RD und /WR.
Das wird immer besser, viele der hier genannten ICs konnte ich nur nach etwas aufwendigerer Suche bei den diversen Herstellern finden... Ralf
Ich suche eine Lösung für >= 5 UARTS + Ethernet. Folgende Varianten kamen mir in den Sinn: Lösungen - MCU + ext. UARTs (parallel Interface) - MCU + ext. UARTs (SPI - Interface) - MCU + ext. MCU (AVR(8051 - SPI - Interface) - 89c2051 - MCU mit >= 5 UARTS - SJA2020 kein LAN - MB90V340 kein LAN - AT91RM3400 - AT91RM9200 kein ADC, kein PWM - H8S/2377 (?) - MPC5200 (?) - FPGA mit MCU - Xilinx microblaze Ein paar Fragen dazu : - Welche SPI/I2C-UARTS verwendet Ihr noch ? - Wie ist der Software-Overhead zwischen Parallel oder Serial-Interface zu bewerten ? Ich bitte um Diskussion :), vielen Dank Dirk
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.