www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90CAN128 zu langsam?


Autor: Michael Schröder (michael_sch)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe 2 AT90CAN128 beide auf EVO boards eines von 
http://www.microcontroller-starterkits.de/ und eines von Ulrich Radig 
(http://www.ulrichradig.de/) um Hardwarefehler auszuschließen.
Bei beiden habe ich es nicht geschafft, den CAN-Bus zum laufen zu 
bekommen.
Habe deshalb mit BASECOM-AVR ein kleines testprog laufen lassen:

 $regfile = "m128can.dat"
 $framesize = 32
 $swstack = 32
 $hwstack = 32
 $crystal = 16000000


 Config Porta.3 = Output
  Do
     Porta.3 = 1
    Waitms 1000
     Porta.3 = 0
    Waitms 1000
  Loop

  End

mit dem Ergebnis, dass anstatt einer Sekunde 7 Sekunden gewarted wird.
Im Anhang ist ein Screenshot der Fuses.
Bei beiden Boards hängt ein 16MHz Quartz an X1, X2
Das Problem mit dem CAN-Bus hab ich noch mal genauer beschrieben unter 
http://www.roboternetz.de/phpBB2/viewtopic.php?t=24991

Autor: sous (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verstehe nichts von Bascom, da ich selber nur mit C/C++ arbeite und 
mit diesem speziellen Controller habe ich auch noch nix gemacht.

- Aber: Hat dieser Controller einen internen RC-Oszillator? Ist dieser 
vielleicht eingeschaltet (anstelle des externen Quarz-Oszillators)?
- Oder: besitzt dieser Controller einen Takt-Vorteiler, der evtl. 
aktiviert ist?
Das alles würde ein unerwartet langsameres Arbeiten erklären.

Also bitte einmal die Fuse-Einstellungen prüfen!

Autor: sous (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, ich habe Deinen Anhang mit den Fuse-Einstellungen übersehen! 
Verzeihung!
Sieht so aus, als sei der externe Quarzoszillator eingestellt.

Aber die Fuse für 'Divide Clock by 8 internally; [CKDIV8=0]' sehe ich 
nirgens.

Autor: Henrik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Sinn dieser Fuse habe ich auch noch nicht erkannt, ich weiß nur, 
dass sie standartmäßig aktiviert ist. Deswegen habe ich mal ein paar 
Stunden gesucht, warum mein CAN-Bus nicht lief. Wenn dein 
Programmierprogramm die Fuse nicht kennt, nimm eine anderes. Die ist 
bstimmt die Wurzel des Übels!

Henrik

Autor: Michael Schröder (michael_sch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jup die Vermutung habe ich auch, im Datenblatt gibts die Fuse auch, 
allerdings nicht BASECOM-AVR, dass ich nur desshalb installiert hab, um 
Fuses für den AT90CAN128 zu setzen. Denn PonyProg unterstützt den 
AT90Can128 nicht, nur den ATMega128 der fast gleich ist, sich aber in 
den Fuses unterscheidet.

Autor: Michael Schröder (michael_sch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs hab im PonyProg auf AtMega128 gestellt und dort entspticht die 
Fuse BODLEVEL der CKDIV8 Fuse im AT90CAN128, nun hauts mit der Zeit hin, 
aber das senden mit dem Canbus geht immer noch nicht

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eines ist klar: Ohne mindestens einen Abschluss (Frage im RN) 
funktioniert CAN überhaupt nicht - nicht mal bei 4mm und 1bit/sec.

Wenn ein CAN Device nicht senden kann, gibt's üblicherweise irgendwelche 
Fehleranzeigen/Registerinhalte/... und auch Loopback/Selftest-Modi.

Autor: Michael Schröder (michael_sch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, wenn ich den 120 Ohm hinhäng leuchted das error led vom TJA1054 Bei 
5,6k Ohm is alles i soweit i.O. jedoch kommt nichts an.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hört jemand dem CAN aktiv zu? Wenn nicht, ist Error völlig normal weil 
kein ACK kommt.

Ansonsten wär's hilfreich, wenn du mal rausfindest was genau für ein 
Error das ist (CANGSTA,CANTEC,CANSTMOB).

Autor: Michael Schröder (michael_sch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es hört der Can200 dongle zu, wie ich die register ausles muss ich mal 
schaun.

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wir verwenden hier den AT90CAN128 ohne externes RAM mittels Ethernut an 
vielen Stellen. Die Emfangsschlange mussste ich auf 4 Nachrichten 
zurueckstuetzen, wenn mann diesen Wert beim Senden beachtet, ohne grosse 
Probleme..

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.