Hi, ich möchte eine Interface Schaltung nachbauen, die original Schaltung verwendete neben einem Intel 8251 Uart zur Baud Raten Erzeugung einen Mc14411. Den MC14411 gibt es nicht mehr, vom Uart habe ich noch die benötigte Anzahl hier liegen :) Die Schaltung möchte ich insgesamt 5 mal nachbauen. Jetzt meine Frage, kennt jemand ein Alternativ IC das 5V kompatibel ist und als Ersatz für den 14411 dienen könnte? Ich habe auf die schnelle nichts gefunden. Erste Idee war ein AVR mit Timer so zu programmieren, dass die passenden Baud Raten erzeugt werden. Aber das geht bestimmt auch irgendwie einfacher oder? Und nein VHDL usw. beherrsche ich nicht um es mit modernen Chips nachzubilden.
Der Chip arbeitet ja mit festem X16 Mode, bedeutet es wird ein Clock erzeugt der der 16 fachen Abtastrate entspricht. Der Rest ist dann einfach ein simpler Frequenzteiler. Mit einem 4060 sollte das machbar sein. Ev muss noch ein anderer Quarz rein weil am 4060 nicht alle Stages rausgeführt sind.
Hallo, wenn du einen 8251A oder nimmst, kann der bis 3.125 MHz Takt. Das heißt du kannst einen 2.4576MHz Quarz an einem (74HCT)4060 nehmen, der dann an Q4 die 9600Hz*16 rausgibt. Q5: 4800 Q6: 2400 Q7: 1200 Q8: 600 Q9: 300 Q10: 150 Q11 für 75bps fehlt halt, aber ist das ein schwerer Verlust? ;) An Pin 9 hast du auch einen gepufferten Quarztakt. Gruß, Christian
Thomas Z. schrieb: > Mit einem 4060 sollte das machbar > sein. Ev muss noch ein anderer Quarz rein weil am 4060 nicht alle Stages > rausgeführt sind. 74HC4060 mit 2,457 MHz. Die 75 Baud fehlen aber leider :-( Johannes M. schrieb: > Erste Idee war ein AVR mit Timer so zu programmieren, dass die passenden > Baud Raten erzeugt werden. Aber das geht bestimmt auch irgendwie > einfacher oder? Es ist die einfachste Lösung!
> Es ist die einfachste Lösung!
Ein kleiner 16F1503 mit seinem NCO und seiner CLC ist noch
viel einfacher!
Christian E. schrieb: > Q11 für 75bps fehlt halt, aber ist das ein schwerer Verlust? ;) Kein schnelleres Fernschreiben :-(
Ok, an den 4060 käme dann zwischen Pin 10 und 11 der Quartz mit 22pf pro Bein gegen GND wie beim AVR? Pin 9 wäre dann das Clock Signal für den 8251? Ich muss mal schauen welchen 8251 Typ ich da habe. Weiß nicht genau ob es der A Typ ist.
Johannes M. schrieb: > Pin 9 wäre dann das Clock Signal für den 8251? Nein. Q3 - Q9 gehen an D0 - D6 vom LS151.
LS151 Pin 5 ist das Baud Raten Signal und das ist etwas anderes als das Clock Signal. Das Clock Signal hat im original ja die Frequenz des 1,8432 Mhz Quarzes. Also welcher Pin des 4060 geht an Pin 20 des 8251(A)?
Johannes M. schrieb: > Also welcher Pin des 4060 geht an Pin 20 des 8251(A)? Natürlich Pin 9. Allerdings wird die Flankensteilheit nicht reichen, da müsste noch ein Schmitttrigger dazwischen.
Johannes M. schrieb: > LS151 Pin 5 ist das Baud Raten Signal und das ist etwas anderes als das > Clock Signal. Das Clock Signal hat im original ja die Frequenz des > 1,8432 Mhz Quarzes. Verstanden! Vielleicht ist Plan A doch die bessere Lösung: Ein ATtiny wird mit 18,432 MHz betrieben. Ein Timer erzeugt daraus die 1,8432 MHz (Teiler 5) und ein anderer Timer mit Teiler 60 die Zeitpunkte mit der ein kompletter Port fortlaufend inkrementiert wird. Die Frequenz an PortX0 ist dann 153,6 kHz. Dazu muß man nicht einmal einen Interrupt verwenden.
m.n. schrieb: > und ein anderer Timer mit Teiler 60 die Zeitpunkte mit der ein > kompletter Port fortlaufend inkrementiert wird. Die Frequenz an PortX0 > ist dann 153,6 kHz. Dazu muß man nicht einmal einen Interrupt verwenden. Eigentlich sogar nichtmal einen Timer. Aber egal, ist ja eh schon mit bezahlt, also kann man ihn auch verwenden. Ich würde übrigens einen Tiny24/44/84 verwenden. Das würde es (dank CLKO) ermöglichen, den Original-Quarz zu verwenden. Damit entfällt der erste Timer. Der Rest deines Konzeptes könnte so bleiben, nur der Teiler für den zweiten (nunmehr einzigen) Timer müßte noch entsprechend reduziert werden.
c-hater schrieb: > Ich würde übrigens einen Tiny24/44/84 verwenden. Das gefällt mir und passt mit dem vollzähligen PortA optimal! Nach dem Init bleiben 6 Takte zum Inkrementieren:
1 | LOOP:
|
2 | INC R16 |
3 | OUT PORTA, R16 |
4 | NOP
|
5 | NOP
|
6 | RJMP LOOP |
Korrekt?
m.n. schrieb: > Nach dem Init bleiben 6 Takte zum Inkrementieren: > >
1 | > LOOP: |
2 | > INC R16 |
3 | > OUT PORTA, R16 |
4 | > NOP |
5 | > NOP |
6 | > RJMP LOOP |
7 | >
|
> > Korrekt? Bin nicht sicher. Welcher Takt muss an der 9600er-Strippe nun tatsächlich ausgegeben werden? 9,6kHz? Dann passt es nicht. Oder das 16fache davon, 921,6kHz? Dann passt es. Dann hat sich allerdings auch der letzte verbliebene Timer des Konzeptes noch erledigt. Mit bezahlt und doch nicht gebraucht...
c-hater schrieb: > 9,6kHz? Dann passt es nicht. Oder das > 16fache davon, 921,6kHz? Dann passt es. Ich würde sagen: fast ;-)
c-hater schrieb: > Welcher Takt muss an der 9600er-Strippe nun > tatsächlich ausgegeben werden? 9,6kHz? Dann passt es nicht. Oder das > 16fache davon, 921,6kHz? Dann passt es. 921,6/9,6 ist allerdings nicht 16, sondern 96. Mit 153,6kHz passt es gleich viel besser.
> Bin nicht sicher. Welcher Takt muss an der 9600er-Strippe nun > tatsächlich ausgegeben werden? 9,6kHz? Dann passt es nicht. Oder das > 16fache davon, 921,6kHz? Dann passt es. > > Dann hat sich allerdings auch der letzte verbliebene Timer des Konzeptes > noch erledigt. Mit bezahlt und doch nicht gebraucht... Da bin ich mir auch nicht ganz sicher, ich vermute aber die 921,6kHz ? Die timer würde ich trotzdem dann nutzen, weil ich ja dann mit einem etwas größeren ATMEGA die ganzen Gatter drumherum sparen kann. Die Baudrate wird ja nicht oft geändert. Daher wird die Geschwindigkeit der Gatter zur Baudrateneinstellung ja nicht gebraucht.
Johannes M. schrieb: > Da bin ich mir auch nicht ganz sicher, ich vermute aber die 921,6kHz ? Wie kommst du auf den Faktor 6?
Johannes M. schrieb: > Die timer würde ich trotzdem dann nutzen, weil ich ja dann mit einem > etwas größeren ATMEGA die ganzen Gatter drumherum sparen kann. Da es freitags keine Wurst gibt, werden die Salamischeiben heute geliefert? Mit einem ATmega kannst Du Dir auch den 8251 sparen. Zeig doch mal die gesamte Schaltung. Ich bin mir sicher, daß ein STM32F4xx das viel besser kann. Aber bevor Du weiter planst, sieh erst mal zu, ob Du den Rest der ICs auch beschaffen kannst ;-)
m.n. schrieb: > Johannes M. schrieb: >> Die timer würde ich trotzdem dann nutzen, weil ich ja dann mit einem >> etwas größeren ATMEGA die ganzen Gatter drumherum sparen kann. > > Da es freitags keine Wurst gibt, werden die Salamischeiben heute > geliefert? > Mit einem ATmega kannst Du Dir auch den 8251 sparen. > > Zeig doch mal die gesamte Schaltung. Ich bin mir sicher, daß ein > STM32F4xx das viel besser kann. > Aber bevor Du weiter planst, sieh erst mal zu, ob Du den Rest der ICs > auch beschaffen kannst ;-) Für einen STMxxx müsste ich aber erstmal lernen wie man die programmiert usw. Das ganze ist ein Hobbyprojekt und mit Avrs kenne ich mich sehr gut aus. Klar könnte ich in der Theorie auch den 8251 gegen ein AVR ersetzen. Die Frage ist nur ob der schnell genug ist. Das ist mehr oder weniger die komplette Schaltung, vom Gerät kommen nur die Daten und Steuerleitungen. Die Adresse wird über einen LS138 bestimmt. Einzig was fehlt ist ein TTL zu RS232 Wandler, da würde ich einen MAX232 nehmen.
Achso und das original System arbeitet mit einem 2Mhz Takt und einem 68B09E 68K CPU.
Kessler-Electronic hat noch MC14411 (teuer), Aliexpress hat auch noch welche, futurlec.com hat welche ...
Wenn schon ein μC zum Einsatz kommt, würde ich aber Teiler und Mux gleichermaßen damit ersetzen. Der μC liefert dann mit einem Timerausgang den per 3-Bit Mux-Signal ausgewählten Bitratentakt und mit einem Taktausgang (oder zweitem Timer) das CLK Signal für den UART.
Johannes M. schrieb: > Für einen STMxxx müsste ich aber erstmal lernen wie man die programmiert > usw. Das ganze ist ein Hobbyprojekt und mit Avrs kenne ich mich sehr gut > aus. Die Erwähnung des STM32 war eher scherzhaft gemeint; ich wollte es nur machen, bevor irgendjemand absolut auf STM32 bestehen sollte, wie das hier wiederholt der Fall ist. Wenn es ein fertiges Hobbyprojekt ist und funktioniert, würde ich nur wie oben beschrieben den MC14411 durch einen Tiny24 ersetzen und den Rest der Schaltung so belassen. Voraussetzung dabei ist natürlich die Beschaffbarkeit der Bauteile. Die Software kann unverändert bleiben. Der 68B09 war der Nachfolger vom 6800 und der Vorgänger vom 68K. Alles feine CPUs. Als UART hätte eigentlich der 6850 verwendet werden "müssen". Wenn ich suche, finde ich bei mir wohl noch eine Stange ;-)
Wieso der Takt nochmal extra mit 74LS00 erzeugt wird, weiß ich jetzt nicht mehr. Aber irgendeine Macke sagte man diesem Baudratengenerator nach. Vielleicht hatte das etwas damit zu tun. Fazit: Besser Baudrate mit AVR erzeugen. Evtl. noch puffern zwecks Flankensteilheitverbesserung. ciao gustav
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.