Hallo, ich möchte einen Quad-UART (16C554) an einen AT90S8515 anschliessen um damit 3 serielle Kanäle auf einen Kanal zu multiplexen. An PORTA hängt der 8bit Datenbus zwischen µC und UART, an PORTB die Interruptkanäle des UART und SPI, über PORTC gebe ich die Kanal- und Registeradresse an den UART aus, an PORTD hängen die veroderten IRQs an INT0, TXRDY, RXDY und schließlich noch IOW (Write-Strobe)und IOR (Read-Strobe). Probleme macht mir gerade IOR. Bei steigender Flanke von IOR gibt der UART die Daten auf den BUS aus und hält sie max. 20ns. Ich setze IOR über CBI auf '0', im nächten Takt mit SBI auf '1', was mir meine steigende Flanke ergibt. Wenn ich nun im nächtsten Takt durch "in r18, PINA" die Daten einlesen will, sind aber seit der steigenden Flanke bei 8 MHz schon 125 ns vergangen, und die Daten sind gar nicht mehr auf dem BUS. Hat vielleicht schon jemand Erfahrungen mit einem externen UART (am besten 16C55*) am AT90S**** gemacht und kann mir vielleicht einen Tip geben. Danke im Vorraus Steffen
Ich kenne jetzt nicht den 16C554 aber die meisten Peripherie-IC verhalten sich wie RAM, d.h. die Daten sind solange stabil, wie /IOR auf low liegt. Der 8515 hat doch sogar einen externen RAM Bus, da ist es doch das einfachste den 16C554 wie RAM anzuschließen. Peter
Danke für den Tip Peter! In dem Datenblatt von TI zum 16C554 sind die ZZDe für das Lesen und Schreiben etwas konfus. Ich dachte, ich darf die Daten erst nach der steigenden Flanke von /IOR lesen. Aber Dank deinem Tip und nochmaliger genauer Betrachtung darf ich schon nach mind. 30 ns nach der fallenden Flanke lesen. Die steigende Flanke signalisiert dem UART nur, dass die Daten gelesen wurden und er sie nicht länger halten muss. Ich hab nun mein Programm dementsprechend abgeändert und es scheint korrekt zu funktionieren. Gelobt sei der In-Circuit-Emulator, da sieht man was wirklich vor sich geht, hoffe ich! Das mit dem externen SRAM BUS war auch meine erste Idee, aber meinem Prof hat der Vorschlag nicht so gefallen. MfG Steffen
"aber meinem Prof hat der Vorschlag nicht so gefallen" Sowas gibt es. Der hat wohl schon eine Lösung fertig in der Schublade und wenn da einer mit was anderem daherkommt, müßte er sich ja wieder reinarbeiten. Bequemer, codesparender und schneller als das umständliche Pins extra setzen und clearen ist das SRAM Interface allemal. Peter
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.