Aufgabe war, einen CAN-Knoten für Radsensoren zu bauen. Das ABS-Steuergerät erwartet die die Impulsabstände als Int-Zahl, 1bit=3,2µs. Daraus resultiert ein erforderlicher Timertakt von 312,5kHz. Mit den AVR-üblichen Vorteilern wäre somit entweder ein 2,5MHz-Quarz (/8) oder aber 20MHz (/64) erforderlich. Ersteres ist für den CAN (90CAN128, 1MBit) zu langsam, zweiteres bedeutet übertakten, mach ich nicht. Lösung: 10MHz Quarz, damit ist der CAN zufieden. Timer0 im CTC-Modus, OCR=0x0f, toggle output on compare. OC0A liefert einen sauberen 312,5kHz Takt für den eigentlichen Zähler, der ist dann auf ext. clock geschaltet. Klar, man hätte auch umrechnen können, aber das hat auch seine Nachteile. Will nur sagen: man kann auch mit dem einen Timer den clock für einen anderen erzeugen und hat damit wesentlich mehr Möglichkeiten. Kostet halt 2 Pins und einen Timer.
Alternative: nimm einen SJA1000 als CAN- Baustein mit eigenem Quarz. Dann kannst du z.B. einen ATmega16 mit beliebigem Quarz dranhängen. Falls du ne Platine brauchst, sag Bescheid, ich hab hier noch n paar. Bist du Diplomand/Praktikant bei BOSCH in Abstatt? Peter
ne Danke, brauch ich nicht. Habe hier auch eine nette Platine mit Mega32 und 2xMCP2515. Aber in dem Fall brauchte ich 4 Interrupteingänge, deshalb hab ich gleich den 90CAN128 genommen, klappt ja auch bestens. Diplomand? Oh Mann, die Zeit ist längst vorbei. Manchmal hätte ich allerdings gerne mehr Interna von Bosch, als allgemein verfügbar :-).
Verstehe ich nicht. Warum mußt Du nur bestimmte Vorteiler nehmen ? Nimm doch einfach Vorteiler 1, dann kannst Du Dir jedes beliebige Vielfache von 312,5kHz aussuchen, z.B. auch 15MHz. Und bei den gebräuchlicheren 16MHz wäre die Abweichung nur 0,4% sollte also auch keinerlei Problem sein. O.k. der 128-er hat ja tonnenweise Pins, da kann man ruhig 2 verschwenden, aber nötig wärs nicht. Peter
klar kann man das. Aber dann bin ich wieder dran, für jeden einzelnen Messkanal einen eigenen Überlaufzähler zu programmieren, Messergebnisse umrechnen und und und. Ist ja auch nur eine Teilaufgabe des ganzen, und wenn ich einen 312,5kHz-Zählertakt habe, sind die Ergebnisse mit einer einfachen Subtraktion direkt fertig. Warum also nicht? Pins sind mehr als genug frei, den Timer0 brauch ich auch nicht. Ein Controller wie Mega8 mit CAN, das wünsche ich mir noch für einfache SLIOs.
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.