Forum: Mikrocontroller und Digitale Elektronik CAN mit AT90CAN128


von Claudia Junge (Gast)


Lesenswert?

Hallo,

hat jemand eine Beispieldatei in Assember, wie man mit dem CAN Bus auf
dem AT90CAN128 sendet oder empfängt?

Sollte es jemand nur in C haben, würde auch eine HEX Datei reichen
(interner Oszi oder 16MHZ externer Quarz, 100kBit Canbus)

Vor lauter Register im Datenblatt sehe nicht mehr, was dafür benötigt
wird   ):

von Alex (Gast)


Lesenswert?

http://www.mikrocontroller.net/forum/read-4-205751.html#new

Diese Beispiele auf Assembler umzumünzen kann doch nicht das Problem
sein. Die Werte für die Baudratenregister findest du im Datenblatt.

von Michael W. (mictronics) Benutzerseite


Lesenswert?


von larsen (Gast)


Lesenswert?

hier nochwas von AVRFreaks:

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=32435&highlight=at90can128

hat mir auch sehr geholfen. Unbedingt musst du darauf achten, dass du
ein MOb, mit dem du etwas versenden willst erst dann aktivierst, wenn
du die Daten schon in den Puffer geschrieben hast. Solange bleibt das
MOb deaktiviert. Dann auf TxOK warten und dann wieder deaktivieren.
Dann musst du auf die Identifier achten, die 11 Bit sind komisch
verteilt. Wenn du jetzt immer noch nicht klar kommst, dann sag
Bescheid.

VG

von Claudia Junge (Gast)


Lesenswert?

Danke, Jungs, jedoch ist bei keinem was brauchbares dabei:

Bei Alex seinem Link gehts um einen C code, das kann ich mit AVR Studio
nicht benützen. Und ich will nicht eine komplett neue Hochsprache
lernen, nur wegen einem Miniprojekt.

Bei Michaels Link kommt auf einmal eine index.php datei zum runterladen
an, wenn man auf den Link mit der Zip Datei klickt.

Bei Larsens link ist überhaupt keine Datei zu sehen.

Hat denn noch niemand den Canbus mit Assember hingekriegt?

von Ferdi (Gast)


Lesenswert?

Wir machen doch nicht Deine Hausaufgaben!
Was ist eigentlich Assember?
Wer ist eigentlich Claudia Junge?
Immer wieder solche Schnarchnasen im Forum, die fertige Projekte
kopieren wollen...

von Harrtmut Grölger (Gast)


Lesenswert?

Hi

@ferdi

Assembler ist wenn man weiss was der MC macht,alles andere ist wenn man
glaubt was er macht.

MfG HG

von Claudia Junge (Gast)


Lesenswert?

Hier geht um eine Beispieldatei, und nicht um Hausaufgaben oder
kopieren, sondern ich will es einfach erlernen. Leider hilft mir das
Atmel Datenblatt dabei nicht weiter. Für z.B. den UART gab es im
Datenblatt ein Beispiel. Über den Canbus gibt es nur Register, die in
keiner Canbus Spezifikation beschrieben sind. Und auch wochenlanges
googeln hat mir nocht wirklich weiter geholfen.

Und was hast Du gegen meinen Namen?

Und wer bist Du, daß Du über mich urteilst? So etwas unverschämtes ist
mir noch nicht wiederfahren!

Wenn Du keinen konstuktiven Beitrag über den Canbus hast, dann solltest
in di9esem Thread nicht posten!

Ich wünsche Dir, daß Dir keiner mehr irgendwie helfen wird, wenn Du mal
nicht weiter kommst!

von Ferdi (Gast)


Lesenswert?

Was Assembler glaube ich zu wissen,
Claudia hat aber nach Assember gefragt...

von Claudia Junge (Gast)


Lesenswert?

Du hast den Tippfehler ganz alleine gefunden, also darfst Du ihn auch
behalten. Dabei hast Du auch einen eingebaut: "Was Assember 'ist'
glaube ich zu wissen" - wenn wir schon so kleinlich sind. Wenn es nach
Dir ginge, wäre dieses Forum mit all den gegenseitigen Hilfen - erst
recht der Bereich der Codesammlung - leer.

Trotzdem finde ich die Cambus Register von Atmel sehr schlecht
beschrieben sind und bin auf Hilfe angewiesen. In C habe ich im Netz
schon einiges gefunden, auch auf der Atmel Seite gibt es schon eine
Canbus Programmsammlung in C inkl. einer Bibliothek. Alle im Netz
gefundenen Projekte scheinen in C diese Bibliothek zu verwenden, ohne
sich in die einzelnen Register eingearbeitet zu haben. In Assemb'l'er
auf Registerebene selbst scheint es noch keiner versucht zu haben.

Bei Larsens Link scheint der letzte Poster in Assembler etwas zu haben
(Danke, Larsen, ich werde mal versuchen von ihm etwas zu bekommen). Ich
hoffe jedoch trotzdem noch auf eine deutsche Unterstützung.

von Ferdi (Gast)


Lesenswert?

Du sprichst schon wieder von Assember!!!
Bitte nenne es Assembler und dann verstehen Dich auch alle...

von Claudia Junge (Gast)


Lesenswert?

Wo denn?

von crazy horse (Gast)


Lesenswert?

Mensch Ferdi, zieh dich doch nicht an einem Tippfehler hoch. Bei manchen
Fehlern kann man mal drauf hinweisen (Wi_e_derstand z.B.), ansonsten ist
Sprache derart redundant, dass ein hier und da eingestreuter Fehler
überhaupt kein Problem darstellt. Wenn du sonst nichts zu sagen hast,
kannst du es wirklich gern lassen. Vielleicht gibts irgendwo
"Deutschstunde für Fortgeschrittene", versuchs da mal.

von larsen (Gast)


Lesenswert?

Bravo, crazy horse. Sehe ich genauso.

@Claudia: Ich habs schon hingekriegt mit Assembler. Was genau willst du
denn wissen? Du musst doch nur genau lesen. Einfach alle Register so,
wie es im Datenblatt beschrieben ist, initialisieren. Dann mal den link
lesen (Englisch kannst du doch?), den ich gepostet habe. Mit diesen
Hilfsmitteln habe ich es auch hingekriegt. Was genau ist dein Problem?
Was genau kriegst du nicht hin? Willst du es tatsächlich lernen oder
abschreiben? Ich schau mal, ob ich eine Datei fertig machen kann.

VG larsen

von larsen (Gast)


Angehängte Dateien:

Lesenswert?

So, habe jetzt was gefunden. In der Datei sind die Register gut erklärt,
denke ich. Wenn du nicht klar kommst, melde dich nochmal.

VG, larsen

von Michael W. (mictronics) Benutzerseite


Lesenswert?

>>Bei Michaels Link kommt auf einmal eine index.php datei zum
>>runterladen an, wenn man auf den Link mit der Zip Datei klickt.

Das ist ein bekannter Bug mit IE in der AVRfreaks Forum Software (immer
noch nicht gefixt :-( ). Die index.php kannst Du aber einfach
runterladen) und dann in die ZIP Datei umbenennen. In Firefox
funktioniert der Download.

/Michael

von Rahul D. (rahul)


Lesenswert?

@Ferdi:

#define Assember Assembler
...

von Herbert Bernardini (Gast)


Lesenswert?

Suche auch nach einer Beispieldatei in Assembler, wie man mit dem
AT90CAN128 dem CAN Bus sendet und empfängt.
Komme mit den Registern nicht klar (habe schon viele Tage mit den
Einstellungen der Register verbracht).

Oder sollte man doch einen AVR mit dem CAN-Controller MCP2510
betreiben? Ist das vielleicht einfacher?

Kann jemand einen Tipp geben?

von Ingo (Gast)


Lesenswert?

einfach mal bei Atmel schauen!

http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3440

ist für die 51er, die CAN register sind aber annähernd identisch.

gruß

von Anton W. (antonwert)


Lesenswert?

@Claudia (wenn das dein Name ist?):
Habe für dich hier einen Auszug aus meinem Projekt mit dem CAN128
Ist zwar auch in C, nur beschreibe ich jedes Register von Hand - also
ist das für dich ja kein Problem die Zeilen in ASM umzuwandeln:

//init:

// CAN aktivieren
CANGCON = (1<<ENASTB);
// Interrupt bei Empfang
CANGIE = (1<<ENRX) + (1<<ENIT);
// alle MOb's abschalten
CANEN2 &= 0x00;
CANIE2 &= 0x00;
CANEN1 &= 0x00;
CANIE1 &= 0x00;
// Timing für 1Mbit/s & 16 MHz
CANBT1 = 0x00;
CANBT2 = 0x0C;
CANBT3 = 0x37;

Das senden Einer Nachricht erfordert dann nur noch das setzen der
entsprechenden MoB Register - was im DB gut beschrieben ist.


So nun will ich aber auch wissen für was das ganze gebraucht wird :-)
Und als Beispiel für alle könntest Du ja dann den entstandenen ASM Code
reinstellen.

von LC-HC (Gast)


Lesenswert?

Einfach mal bei Atmel anrufen, bzw. den Support nutzen und das Problem
per Email zusenden. Das führt in der Regel innerhalb von 24 h zum
Ergebnis ! Ansonsten gibts doch ebenfalls bei Atmel ein sende- und
empfangsbeispiel, da muss man ja nur den code sinngemäß in´s eigene
projekt "reindenken".

von Dietmar (Gast)


Lesenswert?

@Claudia:

Wenn das Datum 11/2005 des Threads noch nicht out of order ist:

Mag sein, daß du einen anderen µC verwendest, aber:

Keil hat da 2 Demo-Files, CAN_all und Full_CAN, allerdings für die
Philips LPC2000 µC-Serien und in C-Sourcecode:

http://www.keil.com/download/docs/291.asp

Habe auf deren Basis eine CAN-Bus-Anwendung realisiert, und das
funktioniert ausgezeichnet.

Der integrierte CAN-Controller im LPC2000 hat weitgehende
Kompatibilität mit dem Philips SJA1000.

Hilft das ein wenig weiter?

Nun, mir war die CAN Bus Entwicklung anfangs auch nicht leicht
gefallen, angesichts der vielen Steuerregister im Controller und was da
vor sich geht, aber das kann man am Programmierbeispiel etwas
nachvollziehen.

Im Grunde liegen da schon einige Jahre Entwicklung voraus, die man
nicht mitbekommen hat.

Was willst du denn mit einer Hex-Datei? Das ist doch absoluter
Nonsens.

Gruß

Dietmar

von einNoob (Gast)


Lesenswert?

ich lese mich ja derzeit in MC - Programmierung ein und bin wohl de
logik nach dahinter gestiegen das ich wennich MC progge dann aber mit
assembler am ehesten was reissen kann

hmmmm aber deswegen schreibe ich gerae nicht,

ich bin lediglich erstaunt darüber daswohl geistreiche leute nix
anderes im sinn führen als andere leute mit negativen postings zu
provozieren, .,,,,,, weil da mal wer assembler falsch geshrieben hat

hmmmmmm

ich suche derweil auhc hilfe in foren

wär auch dumm wenn nicht :) warum das ei 2 mal erfinden

deswegen bin ich kein schlechter mensch
und zu solchen zwecken sind solche foren ja auch gedacht


,
,
,
wollt ichda mal flux geschrieben habn

und nu bin i mal gespannt wie viel rechtschreibfehler in diesen thread
gefunen werden und wie sehr ich nach diesen bewertet werde

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.