mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Welcher CAN Controller an Cypress CY07C68013A?


Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
Meine nächste Aufgabe besteht darin, mit dem Cypress Mikrocontroller 
CY7C68013A-128AXC eine CAN Bus Anbindung zu realisieren. Der Cypress 
Mikrocontroller ist zwingend einzusetzen. Als weitere Anforderung muss 
der CAN Bus vom Mikrocontroller galvanisch getrennt sein.
Datasheet von Mikrocontroller:
http://download.cypress.com.edgesuite.net/design_r...

Leider unterstützt der Cypress kein SPI, daher kommt als Interface wohl 
nur der 8051 Adress- und Datenbus in Frage (Adress- und Datenleitungen 
nicht multiplexed).

Als CAN Controller kommt wohl der SJA1000 von Philips nicht in Frage, 
weil dieser nur multiplexed Adress- und Databus unterstützt - was der 
Cypress nicht kann.

Hier http://www.mikrocontroller.net/articles/CAN habe ich nun den 
AN82527 von Intel (entwickelt von Bosch) gefunden, dessen paralleles 
Interface scheint mal grob zu passen.
Detailliert habe ich die Interfaces aber noch nicht verglichen.

Die galvanische Trennung sollte wohl kein grösseres Problem sein, im CAN 
Controller kann offenbar ein Flag gesetzt werden, so dass TX0 und RX0 
als Aus- resp. Eingang auf einen separaten CAN Transceiver geführt 
werden können. (z.B. PCA82C251 
http://www.datasheetcatalog.org/datasheet/philips/...)
Die beiden Leitungen können dann einfach galvanisch getrennt werden.

Fragen:
- Hat jemand Erfahrung mit dem AN82527?
- evtl. in Verbindung mit dem Cypress Mikrocontroller?
- Sollte ich einen anderen Ansatz wählen, z.B. "Software-SPI" und einen 
MCP2515 von Microchip?

Sonstige Anregungen, was als CAN Anfänger noch zu beachten ist?

Danke für die Antworten.
Gruss, Martin

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm, 8051-Architektur - bei dem konnte man doch die UART auch in einen 
synchronen Modus setzen? Kann man da nicht den MCP2515 ranstricken?

Software-SPI kann schnell zum Flaschenhals werden. Kommt aber auch auf 
deine geforderte CAN-Bus-Baudrate an.

Den AN82527  kenne ich nicht.

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
crazy horse wrote:
> hm, 8051-Architektur - bei dem konnte man doch die UART auch in einen
> synchronen Modus setzen? Kann man da nicht den MCP2515 ranstricken?
Hmmm... Da muss ich nachschauen, das habe ich bisher nicht beachtet.

> Software-SPI kann schnell zum Flaschenhals werden. Kommt aber auch auf
> deine geforderte CAN-Bus-Baudrate an.
Genau. Das wäre auch der letzte Strohhalm. Die Baudrate sollte bis 
1MBaud möglich sein.

Autor: Christian S. (manatarms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SJA1000

alt gedient, Fehler sind bekannt, Beispielcodes gibts genug.

ALE des SJA1000 über Logik aus Adresse/WR/CS oder ähnlich generieren.

Der SJA1000 hängt so bei mir an einem XSCALE.

Und dann über nen Analog Devices ADUM oder nen Silabs Isolator 
(guenstiger) und nen NTE0505 oder ähnlich an den Bus.

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian S. wrote:
> SJA1000
> alt gedient, Fehler sind bekannt, Beispielcodes gibts genug.
heisst Augen offen halten. Danke.

> ALE des SJA1000 über Logik aus Adresse/WR/CS oder ähnlich generieren.
> Der SJA1000 hängt so bei mir an einem XSCALE.
Hat der XScale denn auch getrennten Adress- und Datenbus wie der 
Cypress? Sonst sind wir ja bei den Äpfeln und Birnen.

> Silabs Isolator (guenstiger)
Noch nie eingesetzt. Wie sind die in Handhabung/Betrieb im Vergleich zu 
Optokopplern?

>  und nen NTE0505
DC/DC Wandler.

Autor: Christian S. (manatarms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier gibts nen Schaltplan in dem alles drin ist, was du brauchst!

http://www.toradex.com/@api/deki/files/27/=Colibri...

den 245er brauchst du nicht, wenn du keine Pegelanpassung machst. 
genausowenig wie den FET fuer die Pegelanpassung beim Interrupt.

Bin nicht von der Firma setzte aber deren Produkte ein.

Digital Isolator:

https://www.silabs.com/products/power/isolators/Pa...

Handhabung extrem einfach. Ist wie ein Logikbuffer, den du dazwischen 
hängst. Evtl. ein bissel teurer als Optokoppler. Kommt allerdings auf 
die Geschwindigkeit an. Optokoppler find ich fuer galvanisch getrennte 
Eingänge gut, da sie robuster gegen den ein oder anderen Surge sind. 
Beim CAN hast du allerdings sowieso den Transceiver dazwischen und da 
ist es egal.

DC/DC brauchste fuer die isolierte Spannungsversorgung.

Wenn du das Produkt fertig hast kannste dich ja mal bei mir melden. 
Biete günstige und qualititativ gute Elektronikfetigung und -entwicklung 
in Asien an (deutsche Leitung und Engineering vor Ort). Beraten auch bei 
der Entwicklung bei der Wahl von Komponenten zur Kostenoptimierung. 
Hoffe das ist jetzt nicht zuviel Werbung.

Wenn du auf der SPS in Nürnberg sein solltest kannste gerne mal auf 
unseren Stand kommen. Meld dich per PM wenn du Eintrittskarte und 
Standinfo brauchst.

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,
Danke für die Antwort und v.a. den Schaltplan (Seite 26).
Sehe ich das richtig, dass zwei Systembus Zugriffe erforderlich sind, um 
einen Zugriff auf den CAN Controller durchzuführen?

Elektronikentwicklung und -fertigung erledigen wir über die bereits 
bestehenden Kontakte. Danke trotzdem für das Angebot, man weiss ja nie.

Autor: Christian S. (manatarms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit den Zugriffen siehts du richtig. Beim Setup ist dies ja von der 
Performance eh kein Problem und beim Empfang der Nachricht liest du eh 
nur von einer Adresse, da der SJA intern automatisch die Adresse im FIFO 
hochzaehlt.

Autor: Martin Kohler (mkohler)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sodele, dann haben wir hier mal einen Entwurf der Schaltung.
Der SJA1000 wird direkt an den Cypress Controller angeschlossen, da 
dieser 5V-tolerante Inputs hat.

Bildlegende:
D[0:7]     : direkt an den Datenbus des uC angeschlossen
CAN_nRESET : kommt von einem Digital OUT des uC
CAN_nIRQ   : geht auf Interrupt Eingang !IRQ5 des uC
CAN_A4     : Adressleitung A4
alle weiteren Signale kommen direkt vom uC

Nach Datenblatt liefern die uC Outputs mind. 2.4V @ 4mA für einen High 
Pegel, der SJA1000 braucht 2.0V (ALE, !CS, !RD, !WR) um ein High zu 
sehen. Das sollte also passen.

Beim Reset Input muss ich wohl noch einen Level Shift einbauen, dieser 
braucht mind. 2.4V für einen High Pegel. Passt mit Open Collector und 
Pull-up also auch.

Sieht da noch einer ein Problem mit der Beschaltung?

Gruss, Martin

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keine Kommentare?
Dann wird das so wohl passen ;-)

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:
Die galvanische Trennung wird dann später eingebaut, d.h. einfach RX0 
und TX0 per Optokoppler auftrennen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.