Forum: Mikrocontroller und Digitale Elektronik at90can128 und externer can controller


von jamest (Gast)


Lesenswert?

Moin!
Ich habe ein At90can128 Evaluations Board. Nun will ich statt dem 
integrierten Can Controller einen externen Can Controller verwenden, 
entweder MCP2515 oder SJA1000, da ich ein Baudratenquarz verwende 
(14,7456Mhz für die UART) und das mit den Standard CAN Bitraten ja nicht 
hinhaut. Ich muss aber zwingend die Standard Baudraten abdecken können 
sowohl beim CAN als auch beim UART. Deshalb der externe CAN Controller.

Da nun das Board auf einem anderen Takt läuft als der CAN Controller 
meine Frage: Ist die Kommunikation zwischen den beiden dann nicht auch 
ein Problem? Muss ich dann für die Kommunikation den größten gemeinsamen 
Teiler zwischen beiden Quarzen finden? Oder muss das beim MCP2515 nicht 
sein, da über SPI auch ein SCK übertragen wird?

Und überhaupt: MCP2515 oder SJA1000?

Gruß
jamest

von Fabian B. (fabs)


Lesenswert?

Musst du alle Standard Baudraten unterstützen?
Mit 8MHz FOSC gehn z.B. wunderbar 38400baud, mit 10MHz 19200baud.
Schau mal ins Datenblatt, da gehen ne Menge UART-Baudraten mit "glatten 
Quarzen".

Und wenn du schon nen externen CAN-Controller nutzen willst, kannst auch 
gleich einen "normalen" ATMega einsetzen...kommt günstiger.

Gruß
Fabian

von jamest (Gast)


Lesenswert?

Fabian B. schrieb:
> Musst du alle Standard Baudraten unterstützen?

Ja, muss leider sein! Ist RS485 und soll bis 921,6kb/s unterstützen..
At90can128 hab ich nun halt schon da! Sonst hätt ich den auch nicht 
genommen!

von sw uart (Gast)


Lesenswert?

jamest schrieb:
> Ja, muss leider sein! Ist RS485 und soll bis 921,6kb/s unterstützen..

software uart kommt nicht in frage?
da kannst dir so ziemliche jede baud einstellen

von jamest (Gast)


Lesenswert?

sw uart schrieb:
> software uart kommt nicht in frage?
>
> da kannst dir so ziemliche jede baud einstellen

okay.. wenn es nicht anders geht dann mach ichs so! aber ist es denn so 
wie ich es beschrieben habe nicht möglich? ist es nicht so daß der SPI 
den CAN Controller mit fosc/2 clockt also in meinem fall: 14,7456/2 = 
7,37Mhz und der MCP2515 dann zum versenden einen eigenen Quarz z.B. 
16Mhz verwendet?

von Fabian B. (fabs)


Angehängte Dateien:

Lesenswert?

Das klingt als würdest du was durcheinander bringen. Was hat SPI denn 
mit CAN plötzlich zu tun?

Der CAN-Controller hat einen eigene Prescaler, der den Grundtakt für die 
TimeQuanta ableitet. Du kannst da auch ne Menge einstellen, im 
Datenblatt sind die Beispiele aber nur für relativ wenige glatte Takte.
Angehängt habe ich mal einen BitRateCalculator, der hat mir auch schon 
geholfen. Ich weiss leider nimmer wo ich ihn her hatte, aber er 
funktioniert wunderbar.

Vielleicht kommst du doch so auf brauchbare Einstellungen für den 
internen CAN-Controller, und kannst auf den externen verzichten.

Die externen CAN-Controller nehmen dann meist einen eigenen Quarz, sind 
also unabhängig, und werden über irgendein serielles Interface 
gefüttert. Das kann dann ja auch langsam passieren.

Gruß
Fabian

von Birger Z. (nohelp)


Lesenswert?

Fabian hat die Frage nicht verstanden und auch falsch beantwortet.

jamest möchte wissen, ob es bei Verwendung des MCP2515, der üblich mit 
16MHz getaktet wird und einem beliebigen Atmel Mikrocontroller, der 
wegen der UART mit einem 14,7456 MHz Quarz beglückt ist, zu Problemen in 
der SPI-Kommunikation untereinader kommen kann. Ich behaupte nein, weil 
der µC langsamer als der ext. CAN-Controller getaktet ist. Mehr als 
clk/2 kann der Atmel µC nicht. Und 7,3 MHz Bitrate ist kleiner als 8 
MHz.

von jamest (Gast)


Lesenswert?

No Name schrieb:
> jamest möchte wissen, ob es bei Verwendung des MCP2515, der üblich mit
>
> 16MHz getaktet wird und einem beliebigen Atmel Mikrocontroller, der
>
> wegen der UART mit einem 14,7456 MHz Quarz beglückt ist, zu Problemen in
>
> der SPI-Kommunikation untereinader kommen kann. Ich behaupte nein, weil
>
> der µC langsamer als der ext. CAN-Controller getaktet ist. Mehr als
>
> clk/2 kann der Atmel µC nicht. Und 7,3 MHz Bitrate ist kleiner als 8
>
> MHz.


Ja genau endlich versteht mich jemand :) !
Ich werds dann halt einfach mal ausprobieren und berichten!

von sw uart (Gast)


Lesenswert?

jamest schrieb:
> Ich werds dann halt einfach mal ausprobieren und berichten!

Das ist kein problem.

ich hab nen mega8 (14,7456MHz) und nem mcp 2515 (16MHZ) miteinander 
verheiratet.

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
Noch kein Account? Hier anmelden.