Forum: Mikrocontroller und Digitale Elektronik ATMega16M1-> CAN 16kB auch ohne externen Quarz stabil


von Thomas (kosmos)


Angehängte Dateien:

Lesenswert?

Hallo,

ich mache schon seit einiger Zeit mir dem Layout eines ATMega16M1 rum 
der auf eine kleine runde Platine mit 40mm Durchmesser soll wobei die 
obere Seite über den mechanischen Wagoklemmen noch abgeschnitten wird

Es wird von dieser Platine 2 Versionen geben Version 1 hat nur 8 
Digitale und ein paar Analoge Eingänge und kommunuziert mittels 16 kB 
Low Speed CAN mit Platine Version 2 auf der es einige 
Schaltmöglichkeiten geben wird, Relais, Triacs und FETs, deswegen muss 
ich mit dem Platz etwas sparsam umgehen. Was mit hier besonderst 
aufstößt die Große und das Layout eines externen Quarzes, der im 
Verhältniss zum µC selber sehr viel Platz kostet.

Deswegen meine Frage an euch.
Meint ihr das bei einer so niedrigen CAN Baudrate der externe Quarz 
verzichtbar ist?

Im Gegensatz zu RS232 hat CAN ja einige Beeinflussungsmöglichkeiten 
(Phase Segment 1, 2, Propagation Time Segment, Re-Synchronization Jump 
Width, Sample Point...)

So wie ich das sehe wird ja auf jede Flanke neu synchronisiert, falls 
keine Auftritt spätestens nach dem 5ten Bit (Stuffing Bit) eine 
Neusynchronisation erzwungen wird.

Die Teile kommen in einem EFH zum Einsatz, Temperaturbereich sind 
eigentlich sehr konstante 21°C +-2°C, die Busteilnehmer haben eine max. 
Entfernung von ca. 20 Meter von einander.

von Dr. Sommer (Gast)


Lesenswert?

Wenn du einen LPC11C00 Statt des ATmega nimmst sparst du dir den 
externen Transceiver und hast somit eventuell mehr Platz. Außerdem 
könntest du einen Keramik Oszillator nehmen, die sind kleiner als Quarze 
und nicht viel ungenauer...

von Gästchen (Gast)


Lesenswert?

Thomas O. schrieb:
> aufstößt die Große und das Layout eines externen Quarzes, der im
> Verhältniss zum µC selber sehr viel Platz kostet.

Na, das Problem ist lösbar :-)

Nimm sowas:
http://www.geyer-electronic.de/uploads/tx_userartikelfrequenz/GEYER-KX-4_15.pdf

Solche Packages gibts auch von anderen Firmen. Kuckt man am Besten bei 
farnell oder RS.
Damit sollten sämtliche Platzprobleme elegant umschifft werden, weil 
1,2mmx1,6mm ist schon verdammt klein.

Sonst kuck mal bei Keramikresonatoren, die gibts auch so winzig, sogar 
bei Reichelt.

--> Mach lieber einen drauf. Dann muss du nicht lange rechnen, und das 
läuft immer solide.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Thomas O. schrieb:
> Meint ihr das bei einer so niedrigen CAN Baudrate der externe Quarz
> verzichtbar ist?
Eine Abweicheung vom Takt ist immer prozentual. Und wenn der Takt um 3% 
abweicht, dann ist das zuviel. Ob bei 1 MHz oder bei 10kHz...

> Was mit hier besonderst aufstößt die Große und das Layout eines externen
> Quarzes, der im Verhältniss zum µC selber sehr viel Platz kostet.
Nimm einen kleinen Quarzoszillator mit2x3mm...
Und zudem: die Platine ist ja noch gähnend leer. Warum das Jammern über 
zu wenig Platz?

von Harald (Gast)


Lesenswert?

Wie Lothar schon sagt, Abweichungen sind prozentual, daher ist 
insbesondere bei CAN ein Quarz oder schlechtestensfalls ein 
Keramikschwinger Pflicht. Suche mal nach "Euroquartz MT", die gibt es 
selbst bei Reichelt für überschaubares Geld.

von Thomas (kosmos)


Lesenswert?

@Dr. Sommer: der ATMega16M1 steht schon fest da das Programm schon sehr 
weit fortgeschritten ist.

@Lothar Miller: Atmel verspricht ja im Datenblatt bei 3V 25°C +-1%, 
denke schon das man das mit der Kalibrierung auch bei 5V hinbekommen 
sollte.

Ich würde eigentlich schon gerne die Lösung ohne externe Beschaltung 
bevorzugen, wenn sich ein Quarz/Resonator vermeiden läßt.

Die Platine wird wie gesagt noch voller(Relais, Triacs, FETs + 
Hühnerfutter) ich denke ich werde das erstmal ins Layout aufnehmen und 
unbestückt lassen, was man dann immer noch erledigen kann.

Deswegen würde ich gerne die Diskussion nochmal dahinbringen, da hier ja 
nur eine sehr niedrige Bitrate von 16 kBits/s verwirklicht werden soll.

Angenommen ab dem Syncronzeitpunkt läuft der Takt um 3% auseinander was 
nach 5 Bits 15% wären dann sollte das doch immer noch im Abtastfenster 
eines Bits liegen und danach wird ja eh wieder neu syncronisiert und zur 
not drehe ich etwas an den Register womit man einem Weglaufen des 
Abtastzeitpunktes etwas gegensteuern kann.

Was erreicht ihr den bei UART für Baudraten ohne Quartz? Ist es da bei 
9,6 kB/s schon so problematisch ohne Quartz?

von avr (Gast)


Lesenswert?

Thomas O. schrieb:
> Was erreicht ihr den bei UART für Baudraten ohne Quartz? Ist es da bei
> 9,6 kB/s schon so problematisch ohne Quartz?

Bevor die Frage ein drittes mal kommt:

Wie viele Symbole kann man bei 5% Abweichung fehlerfrei übertragen, wenn 
bei 50% (also in der Mitte) abgetastet wird,

a) bei 1 MBaud
b) bei 1 Baud

von H.Joachim S. (crazyhorse)


Lesenswert?

Nochmal: die tatsächliche Baudrate ist völlig irrelevant, dass ist bei 
niedriger Baudrate nicht besser als bei höherer.
CAN ist kritischer als UART, weil das ACK der Gegenstation(en) noch in 
den slot passen muss. UART ist mit RC-Osz mit Abstrichen noch machbar, 
CAN meiner Meinung nach nicht. Getestet habe ich das allerdings noch 
nie, da ich dann einfach immer einen Quarz/Resonator nehme.

von Thomas (kosmos)


Lesenswert?

ok hab das verstanden 9-10 Bits wären drin, bei CAN wird aber jede 
Flanke von rezessiv auf dominant zur re-synchronisation hergenommen aber 
spätestens nach 5 bits wird durch das Stuffing bit neu synchronisiert, 
deswegen sehe ich hier weniger Probleme mit dem weglaufen des 
Abtastzeitpunktes.

Ok Versuch wird Klug machen.

Könnt ihr mir noch sagen wie ihr das Layout bezüglich des Resonators 
gestalten würdet, die Kerkos näher an an XTAL1 und XTAL2 und den 
Resonator dahinter oder umgekehrt.

Pin 5 von oben links nach unten gezählt ist GND und dann weiter nach 
rechts ist XTAL1/2 Pin 10/11.

von Dr. Sommer (Gast)


Lesenswert?

Thomas O. schrieb:
> @Dr. Sommer: der ATMega16M1 steht schon fest da das Programm schon sehr
> weit fortgeschritten ist.

Du hast das Programm schon so weit, aber kannst es anscheinend nicht 
testen (sonst wäre ja die Frage nicht)? Das heißt die Hauptarbeit kommt 
sowieso noch...

von Thomas (kosmos)


Lesenswert?

Senden funktioniert bereits sehe am Oszi das die CAN Nachricht ständig 
wiederholt wird weil Sie keiner bestätigt. Ist aber alles sehr Dirty 
aufgebaut da der ATMega16M1 nackt auf einem TQFP Adapter sitzt und 
nichtmal einen Kerko zw. VCC und GND hat, mit einer niedrigeren Brown 
Out Grenze lief es dann aber.

von Dr. Sommer (Gast)


Lesenswert?

Na dann ist ja gut ;-) Den Spruch "ist alles fertig programmiert, muss 
nur noch getestet werden" kenn ich nur zu gut!

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.