Forum: Mikrocontroller und Digitale Elektronik AT90CAN128 Baudrate


von Mike K. (elkremso)


Lesenswert?

Hallo, ich will in meinem Programm die Baudrate der CAN Übertragung 
einstellen. dies funktioniert ja über die register:
  // Für 142kbit/s  CANBT1 = 0x0E; CANBT2 = 0x0A; CANBT3 = 0x19;
  // wird von MiniMon nicht empfangen
//  CANBT1 = 0x0E;
//  CANBT2 = 0x0A;
//  CANBT3 = 0x19;

ich brauche die baudrate 142kbit/s, doch diese wird von meinem IXXAT 
USB-to-CAN ADapter nicht akzeptiert. Sprich MiniMon empfängt keine 
nachrichten! andere Baudraten funktioniern einwandfrei wie zb:

  // Für 133kbit/s  CANBT1 = 0x0E; CANBT2 = 0x0A; CANBT3 = 0x1B;
  CANBT1 = 0x0E;
  CANBT2 = 0x0A;
  CANBT3 = 0x1B;

und 200kbit/s und zb 250kbit/s. woran könnte das liegen? quartz arbeitet 
mit 16.mMhz. vielen dank für eure Hilfe!

von Volker Z. (vza)


Lesenswert?

Warum so krumme BitRaten? (Bei CAN spricht man nicht von Baudraten.)

Standrt-Bitraten sind 10,20,50,100,125,250,500,800,1000 kBit/s.
Hiermit sollten alle CAN-Busadapter laufen.

Ansonsten: Teste doch mal deine Bitrate gegen einen zweiten AT90CAN128.
Läufts damit?

Algemein: Abschlusswiederstände vorhanden?

Gruß Volker

von Mike K. (elkremso)


Lesenswert?

Ja wiederstände sind vorhanden!
die aufgelisteten bitraten funktionieren ja auch einwandfrei. nur die 
142kbits/s nicht. diese sind nunmal gefordert. kann ich auch bei MiniMon 
einstellen. aber dann sendet er wie gesagt nix!

von Volker Z. (vza)


Lesenswert?

Volker Zabe schrieb:
> Teste doch mal deine Bitrate gegen einen zweiten AT90CAN128.
> Läufts damit?


Trenne mal den Bus. Schliesse ein Ossi an und messe die Bitrate.
Wenn du nur einmal eine Message sendest, ohne zweiten Kontroller am Bus, 
sendet der Kontroller diese einige male befor er in BUS-Passiv-Mode 
geht.
Ein DSO wäre deshalb praktisch.

Mach dieses auf beiden Seiten. Die Bitraten darf nur ein wenig daneben 
liegen. Ein genauen Wert habe ich nicht parat. Aber dann weist du wer 
(Dongle oder/und AT90CAN128) der Bösewicht ist.

Suche mal nach "can bitrate" in diesem Forum. Vielleicht hilft die einer 
der anderen 74 Threds zu diesem Thema.

Wie z.B.:
Beitrag "Re: CAN Bus Timing"

Gruß Volker

von Mike K. (elkremso)


Lesenswert?

Ja danke, Threads haben mir geholfen. besonders das tool x-calculator 
von atmel. mit ihm konnte ich die exakten Registerwerte ausrechnen! nun 
empfängt MiniMon mit 142 kbit/s! vielen dank

von Mike K. (elkremso)


Angehängte Dateien:

Lesenswert?

Hallo, Ich habe mal mit dem Oszi folgendes Bild aufgenommen. könnte mir 
jmd erklären wie ich dort die einzelnen bits auslese?
Ich schicke einen Standard Frame mit:
Identifier:  70
Daten: E0 30 1A 00 17 FF 00 00

doch wie lese ich dies heraus?
vielen Dank

von hans (Gast)


Lesenswert?

spontan würde ich sagen du errechnest dir wielange eien bit dauert 1/f 
und dann kansnt du das rauslesen wann welches bit dran ist und welchen 
wert es hat

von Mike K. (elkremso)


Angehängte Dateien:

Lesenswert?

ok, und wie errechne ich mir das genau?

noch eine frage:
ein zweiter knoten sendet folgendes bitmuster.
auch standard frame format.
Identifier: 70
Daten: E0 30 00 00 00 00 80 00

mit dem ersten knoten, also mit at90can128  will ich das gleiche senden 
wie dieser kntoen. welche eintellungen muss ich hierfür vornehmen?
vielen dank für hilfe

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.