Gast
#610760
Ein guten Abend allen Abstinezlern der ermüdenden Fernsehunterhaltung. Ich habe jetzt ca. 2 Wochen nach dem Fehler in meiner Schaltung gesucht. Basis des Ganzen ist ein 90CAN128 mit etwas Krimskrams drum herum und einem 8Mhz Quarz. Nun wollte ich mir noch ganz auf die Schnelle einen Adapter zaubern über den ich via RS232 alles sehe was so auf dem CAN-Bus vorgeht. Weil ich die Daten schnell vom Proz. weg haben wollte, um nichts zu verpassen habe ich aber im Lauscher einen 11.059 MHz Quarz verbaut, um schneller als 38.800 Baud auf der RS232-Seite sein zu können. Um erst einmal die Funktion hinzubekommen habe ich mir gedacht, ich benutze den internen Oszillator, schreibe das OSCAL-Byte und wenn es der RS232 - Schnittstelle reicht, sollte es auch dem CAN-Bus reichen. Nach Tagen erfolgloser Suche habe ich durch Zufall festgestellt, dass ein zyklisch alle Sekunde aus dem Lauscher gesendetes Signal ein paar uS zu früh kam. Das OSCCAL Byte von 0x5e auf 0x5d verändert löste das Problem schalgartig. Nun meine Frage dazu. Weil es noch keine funktionstüchtigen CAN-Libs von Atmel gab, als ich mit dem CAN90128 angefangen habe herumzubasteln habe ich mir selber was geschustert, was bisher ganz gut funktionierte. Kann es sein dass ich bei der Programmiererei zu oberflächlich war, das mein CAN-Bus so zickig auf die Frequenzabweichung reagiert hat? Kann man das verändern, anpassen, tolleranter gestalten? Ich hänge mal meine Initialisierung an ...
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |