AT90CAN128-Programmierung in Arduino IDE - Hilfe - Anfang bei 0

Hallo zusammen,

ich muss bzw. soll momentan zwei Cancontroller programmieren.

Die Hardware dafür ist folgende:

2x AT90CAN128 development board von OLIMEX

1x AVRISP mkII Programmer
1x Selbstgebasteltes CANBUS-Kabel (CANH, CANL und GN)
1x Wandler RS232-TTL von Pollin
2x selbstgebaute Platine (Infos siehe unten)

Aufbau/Ziel

Die beiden Boards von OLIMEX sind auf jeweils einer Platine aufgesteckt, bei der die PINS rausgeführt wurden, um:

  • die Boards über ISP mit dem mkII programmieren zu können
  • ein LCD Display anschließen zu können
  • den RS232-TTL Wandler anschließen zu können

Der RS232-TTL Wandler dient zur Kommunikation über USB mit dem Serialmonitor.
Zur Progammierung wurde das Vorgehen von diesem Blog hier angewendet:

Ich kann beide Boards über die Arduino IDE programmieren und der LED Blink Sketch sowie eine serielle Kommunikation funktionieren einwandfrei.
Der nächste Schritt ist nun den CanController anzusprechen und eine Kommunikation über den CANBus zwischen beiden Board einzurichten. Dabei reicht es erstmal eine Nachricht hin und herzuschicken und sie am Ende auf dem Serial-Monitor auszugeben oder ähnlich.
Am Ende soll das ganze noch mit einem Raspberry PI kommunizieren, aber das ist erstmal noch ganz weit weg.

Mein Problem lautet wie folgt:

Ich habe das vorgehen von dem Blog, sowie von http://www.kreatives-chaos.com/artikel/universelle-can-bibliothek genutzt. Außerdem habe ich es mit

probiert. Alles ohne Erfolg. Immer ist irgendeine class oder "Variable" nicht deklariert oder ähnliches.

Beim Kreativen Chaos hänge ich nach der Erstellung von canlib.a , ich keine Ahnung habe wo diese besagte Zeile eingefügt werden soll, beim Lincomatic Blog kann ich CANspy nicht compilieren, das gleiche gilt für die daedalus-Variante. Und auch die secuduino Variante lässt keine Compelierung zu. Inzwischen habe ich hier zick verschiedene Libraries rumfliegen und keine davon funktioniert mit den mitgelieferten Beispielen.
Ich habe die Befürchtung, dass ich vllt. irgendwann eine Datei vergessen habe zu entfernen um eine neue zu testen und auch bevor ich an diesem Computer gearbeitet habe, wurde hier bereits mit den CAN-Libs herumexperimentiert.

Kann ich eine neue Arduino IDE zusätzlich installieren und irgendwie dafür sorgen, dass wenn ich einen Sketch öffne, er nur diese IDE nutzt und nur die LIBs die dort drin sind?

Ist dir das Prinzip und der Umgang mit MOBs vertraut ?
Ist die Busverbindung mit Abschlusswiderständen versehen ?
Für welches Projekt benötigst du die CAN Schnittstelle, ist dies eine Auftragsarbeit für eine Firma ?

So 100%ig hab ich mich mit MOb noch nicht auseinander gesetzt, weil ich immer an der CANLib verzweifelt bin. Ich mache gerade ein Praktikum (eigentlich bin ich Maschbauer, aber irgendwie macht dieses Mikrokontrollerzeug mehr Spaß, und hab dementsprechend nur fundamentale Programierkenntnisse) und das ganze soll am Ende darauf hinauslaufen, dass die CANKnoten (das sind die Boards doch oder?) über den Raspberry-Pi gesteuert werden. Das ganze wird dann einer Steuerung für Feuerungsautomaten oder sowas. Mein Chef hat gerade Urlaub und außer ihm hat hier niemand auch nur den Hauch einer Ahnung von dem Thema, deswegen sitz ich hier etwas auf dem Trockenen, was Informationen und Hilfestellung angeht :wink:

Edit: Die Abschlusswiderstände (die 120k Ohm) sind angeblich schon im Board verbaut, zumindest meinte das mein Chef, bevor er in den Urlaub gefahren ist.

Meistens sind auf den Boards Jumper mit denen die 120 Ohm Widerstände aktiviert werden können (Jumper gesetzt).

Ich habe dir eine PN geschickt mit Unterlagen.

Ich gehe mal davon aus, dass das hier die CAN_T Jumper sind (siehe Manual auf der OLIMEX Seite). Die soll man auch immer nur am 1. und letzten Controller schließen (->Abschlusswiderstände würde Sinn machen) bzw. bei nur 2 Controllern dann eben bei beiden. Beide Jumper sind in meinem Fall gesetzt bzw. geschlossen (Lötverbindung)

hi. Ich kann dir diese library empfehlen. Diese funktioniert bei mir am AT90CAN128. Ist eine etwas angewandelte von kreatives-chaos.

http://www.openlcb.org/trunk/prototypes/C/libraries/CAN/

Wenn du mit dem MOBs weiterkommst, dann berichte bitte. Da hänge ich gerade.

MfG,
Michael

Man benötigt nicht unbedingt eine Lib, die Register die beschrieben werden sind so wenige das es sich kaum lohnt hierzu eine Lib zu verwenden oder zu schreiben. :wink:

Hallo Jomelo!

Du scheinst schon Erfahrung auf diesem Gebiet gemacht zu haben.
Wärst du so nennt deinen Code zu posten damit wir alle davon lernen können?

Grüße,
Michael

Ich habe dir den Code per PN geschickt. Ich wollte die Unterlagen nicht veröffentlichen, da diese für ein Praktikum an der Hochschule verwendet werden. Wäre doof, wenn die Studierenden die Lösung direkt hätten :slight_smile:

Wäre doof, wenn die Studierenden die Lösung direkt hätten

das sehen die sicher anders...

Hallo Jomelo!

Könntest du mir eventuell auch die Unterlagen hierzu schicken? :slight_smile:
Haben wenigen Tagen auf ein crumb128 Board welches ich später. Auch selber programmieren will. Dieses Besitz ebenfalls einen AT90CAN128 ! :slight_smile:

Weiß jemand, ob es möglich ist dieses Board gleich in die Arduino IDE einzubauen? :slight_smile: ich hab schon Core Files im englischen Forum gefunden. Diese wurden aber für das 0018 Build der IDE fabriziert.. Sind diese noch funktionsfähig oder ist dies bereits in der IDE integriert? :slight_smile:

Vielen dank schonmal! :slight_smile:

Grüße