www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90CAN128 - Offene Fragen


Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

auch Dank eurer Unterstützung hab ich mich jetzt schon recht tief in
den AT90CAN128 reingearbeitet. Bei meinen ersten Versuchen hab' ich ne
CAN- Botschaft gesendet. Das hat soweit auch in allen Varianten
funktioniert (Std/Ext., verschiedene Anzahl von Daten- Bytes...). Mein
Problem ist jetzt, dass ich der Controller mir die Botschaft nur 1 Mal
verschickt. Eigentlich hatte ich das Datenblatt so verstanden, dass der
CAN- Channel die verschiedenen MObs regelmäßig scannt und abarbeitet.
Bitte klärt mich mal auf...
Meine zweite Frage betrifft die Identifier Mask. Was hat diese für eine
Funktion???

Ich hoffe auch dieses Mal wieder auf euren Beistand.

Gruß Holger

Autor: Birger* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jeder Befehl wird nur einmal ausgeführt und danch muss CANCDMOB neu
konfiguriert werden, um für den nächsten Einsatz bereit zu sein. Siehe
S.256 bei Bit 6 und 7.

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Birger,

danke für deine Antwort. Das funktioniert jetzt schonmal so.
Hat jemand noch ne Antwort auf die Frage nach der Identifier Mask?

MfG Holger

Autor: MartinS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst damit festlegen welche MObjekt emfangen werden sollen. Also
ein Filter quasi.

Autor: MartinS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Maske & Msg.ID = Maske -> Message wird empfangen und Ackn ausgelöst
Maske & Msg.ID <> Maske -> Massage nicht empfangen, kein Ackn.

Autor: larsen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...so ist das aber nicht im Datenblatt aufgezeichnet. Nach diesem
nämlich ist die ID Maske nutzlos. Vielleicht kann das irgend jemand
genauer erklären.

Danke, larsen

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo MartinS,

danke erst Mal für deine ANtwort. ALlerdings hab ichs noch net ganz
kapiert.
Im Datenblatt steht jeweils
            0 - comparison true forced
            1 - bit comparison enabled
Ich werd daraus einfach nicht schlau.

MfG Holger

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne den 90CAN128 nicht, aber den MCP2515 und danach müsste es
eigentlich zwei Masken geben.
In der einen wird angegeben, welche Bits überhaupt beachtet werden (das
was Holger schreibt), und dann müsste es noch eine Maske geben, wo man
die Id angibt, die man empfangen will. So ist es möglich auch auf
Gruppen von Ids zu reagieren (nämlich alle, die in der ersten (Holgers)
Maske durch 0 markiert sind).
Wenn man in Holgers Maske alle Bits auf 1 setzt, dann wird nur eine
einzige ID entsprechend der 2. Maske empfangen.

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so, jetzt kenne ich auch den CAN-Controller...
Kapitel 20.5.2:Acceptence Filter (Seite 243).
Da ist sogar ein Beispiel für das Maskieren gegeben.
Das von Holger angesprochene Register ist das ID MSK-Register.
Hier kann man die Adresse vorfiltern; also alle Adressen festlegen, die
man empfangen will (eine Gruppe also).
Das ID TAG-Register legt dann fest, welche Adresse aus dem
vormaskierten Adressraum genau empfangen werden soll.

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[quote]Im Datenblatt steht jeweils
            0 - comparison true forced
            1 - bit comparison enabled
[/quote]
Ich hab auch noch nicht mit dem AT90CAN128 gearbeitet, aber ich
versteht das Datenblatt so:

siehe Figure 120 auf Seite 239

Das ID MASK Register gibt an, welche Bits beachtet werden sollen. Eine
0 bedeutet, das der Vergleich auf jeden Fall TRUE ergibt (der
Bitzustand im ID TAG spielt also keine Rolle). Jedes Bit mit 1 im ID
MASK ergibt einen direkten Bitvergleich zwischen ID TAG und der
Empfangenen Frame ID.

Das ID TAG Register ist die Maske wo man die Id angibt, die man
empfangen will.

Das Beispiel für ID 0x317

111 1111 1111 ID MASK
011 0001 0111 ID TAG
------------- UND
011 0001 0111 Als empfangene ID ist nur 0x317 gültig


111 1111 1000 ID MASK (die 3 LSB mit 0 setzen das Ergebnis des UND auf
1)
011 0001 0xxx ID TAG
------------- UND
011 0001 0xxx Als empfangene ID ist nur 0x310 - 0x317 gültig

/Michael

Autor: larsen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...genau. So funktioniert das tatsächlich, ich habs mittlerweile
ausprobiert. Wieso nur muss ich alles, was ich hier frage dann doch
selbst rauskriegen? ;-)

VG larsen

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
laut denken...

Autor: glaskreis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
vielleicht gehört meine frage nicht ganz in dieses Forum,jedoch
benötige ich als neueinsteiger ein wenig hilfe.ich kenne mich garnicht
mit mikrocontroller aus.
mein problem ist,dass ich drei signale(zwei digitale und ein analoges)
mit 200kHz synchronisieren muss.alle drei signale sollen in den rechner
geladen werden und ausgewertet.
meine frage:wie kann ich das mit mikrocontrollerboards realisieren und
welche kommen da in frage?
ist nur ne variante von mir,alternativen sind PCI- oder
USB-Messmodule.die sind nur ein wenig teuer.
wär euch für eure hilfe sehr dankbar
MfG

Autor: larsen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@rahul: Ich wollte nur darauf anspielen, dass sich auf meinen Beitrag 10
Tage lang nix rührt und dann auf einmal mehrere Antworten an einem Tag
kommen, nur eben nicht mehr als Reaktion auf meine Frage...ging mir mit
anderen Threads genauso. Liegt das an mir schnüff ? ;-) Ansonsten hast
du recht, laut denken hilft oft.

Autor: Claudia Junge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du in Assembler oder in C geschrieben, könntest Du Dein Code mal
posten? Ich würde mich auch dafür interessieren.

mfg

Claudia

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.