Gast
#35663
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