Hallo, ich möchte einen Standard CAN-Controller an den 16 Bit externen Bus eines TI DSP TMS320VC5509A anschliessen (EMIF). Leider sind bei den meissten CAN-Controllern die Address- und Datenleitungen gemultiplext. Gibt es da eine simple Lösung oder muss ich ein CPLD o.ä. dazwischen tun? SPI fällt als Möglichkeit weg, auch kann der DSP nicht gewechselt werden. Der Intel 82527 kann zwar 8 bit non-multiplexed was aber relativ wenig nutzt, der DSP im 8 bit modus nur lesen kann. Vielen Dank, Klaus
mit nem externen Register? Im Prinzip wie da: http://www.cs.ucr.edu/cs120B/cs120b_03fal/8051.pdf Seite 4
Klaus S. schrieb: > Der Intel 82527 kann zwar 8 bit non-multiplexed was aber relativ wenig > nutzt, der DSP im 8 bit modus nur lesen kann. Wo ist denn das Problem, einen 8-Bit Baustein an einen 16-Bit Bus zu hängen? Schreib 16 Bits und die eine Hälfte davon wird automatisch ignoriert weil nicht angeschlossen.
Hallo, vielen Dank erstmal für die schnellen Antworten. Das mit dem Register ist dann nötig wenn ich einen normalen asynchronen Speicher an den gemuxten Intel bus anschliesse. Ich habe ja das umgekehrte Problem! Das mit dem 8 bit Modus am 16 bit Bus ist richtig. Wäre natürlich effizienter, wenn die 16 bit auch komplett genutzt werden könnten. Viele Grüsse, Klaus
Den SJA1000 kennst Du? Der hat einen gemultiplexten und 8Bit Bus. Ich habe den schon benutzt und der funktioniert gut.
Klaus S. schrieb: > ich möchte einen Standard CAN-Controller an den 16 Bit externen Bus > eines TI DSP TMS320VC5509A anschliessen (EMIF). > > Leider sind bei den meissten CAN-Controllern die Address- und > Datenleitungen gemultiplext. > > Gibt es da eine simple Lösung oder muss ich ein CPLD o.ä. dazwischen > tun? Du kannst fürs CAN einen extra Microcontroller mit eingebautem CAN verwenden, der das Message Handling übernimmt und nur noch die Messages bekommt. Ich denke da an irgendwas in Richtung PIC18F. Wird jedenfalls billiger als ein CPLD. fchk
@Markus: Danke für den Hinweis, ja hab den SJA1000 gesehen ist auch von der Leistungsaufnahme besser als der Intel. Laut Datenblatt hat er einen 8 bit gemuxten Bus. Mein Problem ist aber wie ich so einen gemuxten Bus an meinen nicht gemuxten DSP anschliesse. @Frank Ja das mit dem PIC könnte eine Lösung sein. Preis spielt aber eher eine untergeordnete Rolle. Wichtig für mich ist Zuverlässigkeit und Geschwindigkeit. Klaus
Die Multiplex-Umschaltung an die Adress-Leitung anschließen (ALE). Man schreibt die SJA1000 Adresse auf den Bus, dann auf eine andere Adresse R/W die SJA1000 Daten.
D.h. dass ich einen zusätlichen 16 bit 2-1 mux benötige der abhängig vom ALE-Signal den gemuxten Bus entweder auf A oder D schalte. Ansonsten müsste ich ja die A- und D-Leitungen miteinander verbinden, was beim Schreiben ja problematisch wird...
Nein, nicht so. - Die A0 Adressleitung mit ALE verbinden - D0..7 der CPU mit AD0..7 vom SJA. - 1. Write auf Adress-Maske + 1 >> Schreibt die Adresse in den SJA - 2. Wr/Rd auf Adress-Maske + 0 >> Schreibt/liest von dem Register Man müsste sich das Timing-Diagramm genau anschauen, der SJA unterstützt die Modes Motorola und Intel. Somit werden vom externen Speicher nur 2 Adressen benötigt.
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.