CAN controller an externen Bus

Gast #1674326
Lesenswert?

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
Gast #1674882
Lesenswert?

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
#1675061
Lesenswert?

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
Gast #1675769
Lesenswert?

@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
Gast #1676862
Lesenswert?

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...
(Firma: EleLa - www.elela.de) #1676916
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren