Hallöchen,
ich habe einen CAN-Bus(mit zwei Teilnehmern) in der Beta-Phase und
schreibe seit einiger Zeit auch an der Software dafür.
Heute wurde aber nach dem Einstecken des Netzteils(welches beide Knoten
versorgt) ein CAN-Controller beschädigt und ich weiß nicht so ganz, an
was dies liegen könnte. Wahrscheinlich irgendwelche Spannungsspitzen
beim PowerUp.
Als Vorlage für die Schaltung habe ich Fabian Greifs CAN-Testboard
benutzt und nur ein klein wenig verändert.
Könntet ihr event. mal kurz drüberguggn?
Viele Grüße
Oh... du hast Recht.
Im Schaltplan, und (ich hab grad geschaut) auch auf den Boards falsch
angeschlossen. Sollte ich wohl mal wechseln.;-) Danke.
Die große Frage wäre nun - kann die CAN-Polung des Tranceivers für den
Ausfall des Controllers verantwortlich sein???
LG
Peter K. schrieb:> Hallöchen,>> ich habe einen CAN-Bus(mit zwei Teilnehmern) in der Beta-Phase und> schreibe seit einiger Zeit auch an der Software dafür.> Heute wurde aber nach dem Einstecken des Netzteils(welches beide Knoten> versorgt) ein CAN-Controller beschädigt und ich weiß nicht so ganz, an> was dies liegen könnte. Wahrscheinlich irgendwelche Spannungsspitzen> beim PowerUp.
Was genau ist beschädigt worden? Der Transceiver 2551 oder der
Controller 2515?
Zunächst einmal: Du hast zu wenig Abblockkondensatoren. Der AVR braucht
zwei (VDD/GND und AVDD/AGND), der 2515 braucht einen und der 2551
braucht einen, und der Spannungsregler braucht welche, die Du aber drin
hast. Das kanns aber nicht sein.
Zum Schutz den Transceivers setzt man Schutzdioden und eine
stromkompensierte Drossel ein, siehe zB (eben mal gegoogelt)
http://wiki.iuse.org/wiki/doku.php?id=ueschutz
Wenn es den Transceiver erwischt hat, könntest Du einen robusteren
einsetzen, z.B. MAX13050.
fchk
Hallo Frank,
die Kondensatoren sind eigentlich alle vorhanden. Könnte es aber
vielleicht bei C10 Probleme geben, den ich für ATMegaVCC UND den 2515
CAN-Controller einsetze, da sie ziemlich eng nebeneinander bestückt
sind(das ist der Kondensator mittig am unteren Rand)?
Im Anhang ist mal das Eagle-Layout der Platine.
Und nicht der Tranceiver, sondern der CAN-Controller funktioniert nicht
mehr.
Ich kann auch nicht genau sagen, ob er nun gar nicht mehr geht. Ich kann
nur keine weitere Kommunikation über den BUS mit ihm aufbauen.
Testgeräte habe ich leider noch keine.
Das mit dem Link klingt interessant, werde ich mir auf jeden Fall mal
vormerken!^^
Viele Grüße
Nun ja, das Layout sieht aus, als hättest Du noch nicht viel Erfahrung
damit.
Außerdem hast Du Dir die Sache unnötig schwer gemacht. Hättest Du statt
dem Mega8+MCP2515 z.B. einen PIC18F26K80 genommen, hättest Du es beim
Layout einfacher gehabt, und billiger und platzsparender ist es
obendrein. Der 18F26K80 ist im Prinzip der gleiche CAN-Controller wie
der MCP2515, hat aber als Bonus noch einen kompletten Mikrocontroller im
Gehäuse mit drin, wobei die Kommunikation mit dem CAN dann natürlich
nicht über SPI geht, sondern über direkte Registerzugriffe, was die
Geschichte weiter vereinfacht.
Ansonsten ist eine Ferndiagnose ohne weitere Infos und Messmittel auf
Deiner Seite ziemlich aussichtslos.
fchk
Hallo Frank,
danke für dein Feedback.^^
Ich sollte gleich mal vorwegnehmen, dass es sich bei der obigen Platine
um eine standardisierte Lochrasterplatine handelt! Ich habe mehrere
Wochen immer wieder nachgebessert, um die Schaltung überhaupt
draufsetzen und ohne externe Bedrahtung realisieren zu können. Eine
Industrieplatine hätte ich von vornherein völlig anders konzipiert -
aber bis dato bewegt sich mein Projekt erst einmal in einem
experimentellen Rahmen.
Hmmmm... dein erwähnter µC ist ja der Hammer - der wäre genau richtig!^^
Nur kann ich mit PICs absolut nicht umgehen. Ich war letztes Jahr schon
froh, dass ich im Netz überhaupt ein paar lauffähige CAN-Treiber für den
AVR gefunden habe(ich bin noch gar nicht so lang im µC-Bereich).
Naja... dann schaut's ja recht schlecht aus.^^
Liebe Grüße
Abgesehen von einer gewissen Eleganz bei der Hardware könnte es sein,
dass er mit einem extern angebundenen sehr einfach strukturierten
MCP2515 schneller dabei ist, als mit dem deutlich komplexeren CAN
Controller der AT90CAN Typen.
Hallöchen Stefan,
mit dem Gedanken hatte ich vor einiger Zeit schon gespielt(meine
derzeitige CAN-Lib unterstützt diesen Controller sogar auch). Diese
Chips kosten aber erstens sehr viel mehr(zwischen sechs und acht Euro,
nur für den µC). Zum anderen haben sie auch viel zu viele Pins, machen
also das Löten schwer, und sind zudem auch noch völlig überdimensioniert
für mein Projekt.
Ich hatte mir das damals schon recht gut überlegt, mit der jetzigen
Konfiguration, denke ich(nach allgemeinem Wissenstand und verarbeitbarer
Technik).
Der oben erwähnte PIC wäre wirklich SUPER, aber ich kenne mich halt
nicht damit aus, leider.
Viele Grüße
Statt 1x 120 Ohm zwischen CAN_H und CAN_L nimmst Du besser 2x 60 Ohm und
schaltest vom Mittelpunkt 470nF nach Masse.
Direkt an die Steckerpins CAN_H, CAN_L kommen je 47pF nach Masse.
Zwischen Stecker und Transceiver solltest Du eine stromkompensierte
CAN-Drossel setzen. Z.B. Epcos B82790 oder TDK ACT45.
Peter K. schrieb:> Hmmmm... dein erwähnter µC ist ja der Hammer - der wäre genau richtig!^^> Nur kann ich mit PICs absolut nicht umgehen. Ich war letztes Jahr schon> froh, dass ich im Netz überhaupt ein paar lauffähige CAN-Treiber für den> AVR gefunden habe(ich bin noch gar nicht so lang im µC-Bereich).
Meinst Du, ich konnte direkt nach der Geburt damit umgehen? Nur ran an
die Materie, und immer neugierig bleiben. Das erweitert den Horizont und
verschafft Dir einen Vorteil gegenüber denen, die nur AVR (die auch ihre
guten Seiten haben) kennen.
Der Umstieg ist gar nicht so schwer. Sicher, einige Eigenarten gibts,
z.B. dass die DDRx-Register (die dort TRISx heißen) genau invertiert
funktionieren, d.h. 0=o für Output und 1=i für Input. Aber ansonsten
wirst Du dort vieles wiederfinden, was Dir (vielleicht unter anderem
Namen) vom AVR bekannt ist. Und: Im Gegensatz zu den AVRs kannst Du auch
die kleinsten PICs nicht nur programmieren, sondern auch debuggen, d.h.
Schritt für Schritt durch Dein Programm gehen, Register und Variablen
beobachten usw, und das alles mit einem 50€ teuren PicKit3 (Clones bei
ebay ab 20€). Das macht es Dir einfacher.
Also nur Mut.
fchk
Ich weiß, ich weiß.^^ Die Einführung in die AVR-Chips war ja jetzt auch
kein Beinbruch für mich.;-)
Hmmmmm... ok... ich hab' mich grad entschieden, zumindest mal ein, zwei
zu Versuchszwecken zu bestellen.^^
Und du hast nicht vielleicht noch ganz zufällig ein PIC-Tutorial(o.a.
ne Library) zum CAN-Bus bei dir rumliegen???;-)
Liebe Grüße
Peter K. schrieb:> Und du hast nicht vielleicht noch ganz zufällig ein PIC-Tutorial(o.a.> ne Library) zum CAN-Bus bei dir rumliegen???;-)
Ich nicht, aber Microchip sorgt gut für Dich: AN878, "PIC18F ECAN C
Routines", mit Quellcode für den C18 Compiler. Diese Appnote ist für
eine ältere PIC18F-Generation gemacht worden, u.a. auch die
PIC18F6680-Familie. Dein 18F26K80 gehört zur neueren
PIC18F66K80-Familie. Allzuviel sollte sich nicht geändert haben, aber im
Zweifelsfall kannst Du ja einfach die beiden Datenblätter nebeneinander
halten.
Die alten PIC solltest Du übrigens nicht mehr einsetzen, wenn es nicht
unbedingt notwendig ist. Der alte 18F2680 kostet bei Réichelt 7.50€, der
moderne 18F26K80 nur 2.75€. Beide sind funktional identisch, nur die J
und K-Typen werden in einem neueren Halbleiterprozess gefertigt, der
mehr Output hat.
Als IDE nimmst Du MPLAB 8 in der neusten Version, und den C18 Compiler
in der kostenlosen Lite-Version. Beides gibts bei Microchip zum
Download.
fchk
Noch ein Kandidat:
LPC11C24
32 bit Cortex M0, CAN und CAN PHY auf dem Chip. Da reicht ein einziger
Chip für alles. Die Software für den CAN Treiber und CANOpen ist schon
fertig im Rom. Das alles für nicht mal 3€.
Boahhh... Leude, ihr machts mich fertig!;-)))
Ich hab jetzt knapp drei Stunden alles rund um den PIC und dessen
Entwicklungs-Zubehör recherchiert und hab' gemeint, es gäbe nun nur noch
eine einzige offene Frage für mich - "... wie komme ich an die ECAN-Lib
von Microchip?"...
Und dann kommt "der ander" daher und gibt mir mit diesem
NXP-CAN-Hightech-Chip menthal den Rest.;-))))))))))))
@Frank: Die IDE, etc. sieht gar nicht schlecht aus, und die ECAN-Note
von MC ist auch ganz nett - aber in der Note sind 'scheinbar' nur die
Funktionsaufrufe für eine ECAN-Lib und ein paar Registereinträge
beschrieben? Nirgens auf der MC-Website kann ich Lib-Dateien finden -
außer natürlich als Softwarepaket in deren CAN-Kits, die bei 105,- EUR
anfangen.
Hab ich da was übersehen?
@Jürgen: WOW, geiles Teil! Des Ding is aber so neu, dass Farnell grad
der einzige Anbieter dafür ist(5,- EUR)? Des wäre dann aber schon wieder
eine Technologie, die ich absolut noch nicht kann.;-)
Wahrscheinlich gibt's da auch kaum jemanden, der mir beim
Aufbau/Programming einer ersten Schaltung Hilfestellung geben kann...?
Liebe Grüße
Peter K. schrieb:> Boahhh... Leude, ihr machts mich fertig!;-)))
Gut, dann gebe ich Dir jetzt den Rest ;-)
Den LPC11C24 gibt es auf einem lpcxpresso-Modul.
An Deiner Stelle würde ich mir aber überlegen, bei dem zu bleiben, was
Du bereits hast und ein Gerät anzuschaffen, das definitiv funktioniert.
Z. B. ein CAN-Dongle, ich habe eines von Lawicel (CANUSB).
Die Dinger sind relativ teuer. Aber irgendwann ist die Zeit mehr wert,
wenn die Fehlersuche endlos wird.
Ob sich Dein spezifisches Problem durch den Austausch des Chips löst,
das steht in den Sternen.
Hallo Roland,
jepp, hab ich schon gesehen.;-)
Zitat:
>An Deiner Stelle würde ich mir aber überlegen, bei dem zu bleiben, was>Du bereits hast und ein Gerät anzuschaffen, das definitiv funktioniert.
Wie meinst du das?
Ähm... ne Fehlersuche gibt's eigentlich bei mir ned großartig.
Meine CAN-Nodes funktionieren ja bereits und an einer neuen
Protokollfamilie für eine effektivere CAN-Kommunikation(und selbst schon
die Entwicklung davon) arbeite ich auch seit einiger Zeit.
Die Kosten für die reine CAN-Schnittstelle(ohne Erweiterungsplatinen für
die jeweilige Anwendung) liegen bei mir aber derzeitig bei etwa knapp
9,- EUR, weshalb es ja noch Optimierungsbedarf gäbe(da mein CAN-Projekt
mit etwa 60-100 Einzelknoten geplant ist)?
Hmmm... ich glaube langsam auch nicht mehr, dass mir hier jemand eine
Lösung für mein eigentliches Thread-Problem geben kann. Aber bis jetzt
sind mir nur Chips abgeraucht, wenn ich physikalisch an die Boards
gegangen bin(umstecken der Stromkabel(Hard-PowerUp/Down);umstecken des
Programmieradapters). Soll bedeuten - wenn die Anlage läuft, läuft sie
ohne Probleme.;-)))
Liebe Grüße
Peter K. schrieb:> Ich hab jetzt knapp drei Stunden alles rund um den PIC und dessen> Entwicklungs-Zubehör recherchiert und hab' gemeint, es gäbe nun nur noch> eine einzige offene Frage für mich - "... wie komme ich an die ECAN-Lib> von Microchip?"...> Und dann kommt "der ander" daher und gibt mir mit diesem> NXP-CAN-Hightech-Chip menthal den Rest.;-))))))))))))
Kannst Du 0.5mm TFQP löten? Sprich: Beinchen 0.3mm, Zwischenraum 0.2mm,
nächstes Beinchen? Das mochte ich Dir nicht antun.
> @Frank: Die IDE, etc. sieht gar nicht schlecht aus, und die ECAN-Note> von MC ist auch ganz nett - aber in der Note sind 'scheinbar' nur die> Funktionsaufrufe für eine ECAN-Lib und ein paar Registereinträge> beschrieben? Nirgens auf der MC-Website kann ich Lib-Dateien finden -> außer natürlich als Softwarepaket in deren CAN-Kits, die bei 105,- EUR> anfangen.> Hab ich da was übersehen?
Ja. Wo hast Du die Appnote runtergeladen? Da gibts auch ein .zip dazu
mit dem Quellcode. Den suchst Du.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en012117
Und Usermanuals und Software von den CAN-Demoboards darfst Du Dir auch
so runterladen.
fchk
http://de.futureelectronics.com/de/technologies/semiconductors/microcontrollers/32-bit/Seiten/5006541-LPC11C24FBD48-301,.aspx?IM=0
Da habe ich vor kurzem welche privat bestellt. Das Gehäuse ist LQFP mit
einem Pin Abstand von 0,5mm. Ich dachte auch erst sowas kann man nicht
mehr per Hand Löten. Geht aber ganz prima. Für mich sieht die SMD-Welt
ganz anders aus, seit dem ich sie durch eine Kopflube (3x) betrachte.
Zum Löten war keine Spezialausrüstung nötig. Normale Weller-Lötstation,
Zinn, etwas Flussmittel und Entlötlitze. Und ein wenig Spiritus für die
Flussmittelrückstände.
Hi Leude,
also,... ich hab mir jetzt mal das LPCXpresso11C24-Kit UND 2 von diesen
PIC18F26... bestellt. Sagen wir's mal so... jetzt will ich's
wissen.;-)))
@Frank: Das mit dem EIN-Löten ist, glaub ich, absolut kein Problem. Ganz
egal, wie klein ein SMD-Bauteil ist. Ich hab letztens im Netz ein
Video-Tutorial zu dem Thema gesehen, worin man das "Löten eines
128Pinners mittels ein wenig Löthonig in wenigen Sekunden" gezeigt
bekommt. Ich war wirklich sprachlos.;-)))
Mein Problem wird wohl ausschließlich sein, dass ich diese Chips nicht
auf Lochrasterplatinen setzen kann. Sprich, ich muß mir dann eine extra
Adapterplatine anfertigen - oder vielleicht gibt's da ja auch schon
fertige.
Hmmmmm... vielen lieben Dank! Diese .zip hab ich wohl übersehen.;-)))
@Jürgen: Wahnsinn - 1,78 EUR???;-) Was hast du denn an Versandkosten,
etc. bezahlt?
Hast du auch schon ein paar Projekte damit realisiert? Und wo bekommt
man nützliche(deutsche) Hilfe beim Umgang mit diesen Chips???
Insbesondere würden mich natürlich C_CAN-Projekte interessieren^^.
Alles in allem muß ich sagen... ich brenne geradezu, mich dort
'reinzustürzen'!;-))))
Viele Grüße
Wenn du das LPCXpresso hast und auch die Software dazu installiert hast,
sind da viele Beispiele mir drin. Mit Deutsch ist da aber nicht viel.
Auf Grund der Tatsache, dass der CAN Treiber schon als Rom eingebaut
ist, ist die Programmierung sehr einfach. Ich hänge mal mein aktuelles
Projekt als sch und brd dran. Dank des "Platinensammlers" in diesem
Forum war die Herstellung der Platinen bezahlbar. Es ist auch mein
erstes SMD-Projekt mit solch kleinen Chips. Ich will mit der Platine nur
ein Paar DS18S20 auf den CAN-Bus schicken.
Klingt super. Jepp, dann werd ich mir den Laden mal vormerken.^^
Hmmmm... die Dateien kann ich nicht öffnen - werden mir als 'ungültige
Daten' beschrieben?
LG
>>An Deiner Stelle würde ich mir aber überlegen, bei dem zu bleiben, was>>Du bereits hast und ein Gerät anzuschaffen, das definitiv funktioniert.>> Wie meinst du das?>> Ähm... ne Fehlersuche gibt's eigentlich bei mir ned großartig.
Sorry, hatte ich überlesen. Den Dongle ziehe ich hiermit zurück ;-)
Peter K. schrieb:> @Roland: Außerdem wäre es natürlich auch supi, wenn man die Maße der> Platinen und den Stromverbrauch etwas verringern könnte.^^
Wenn das mit dem Löten kein Problem ist, dann ist m. E. der lpc11c24
eine gute Wahl.
Es gibt aber einen Nachteil, der Dich treffen könnte, solange die
Ursache für Dein Problem im Eingangsposting nicht gefunden ist: Bisher
ist Dir "nur" der Controller kaputt gegangen. Mit dem lpc11c24 geht dann
u. U. die CPU kaputt.
Jürgen Liegner schrieb:> Ich hänge mal mein aktuelles> Projekt als sch und brd dran.
Jürgen, könntest Du evtl. die sch/brd für EAGLE 5.10 exportieren? Ich
hänge noch auf der älteren Version.
Hallo Roland^^,
jepp, denk ich auch.
Ich werde jetzt auf jeden Fall erst mal an den CAN-Protokollen
weiterarbeiten und mit derzeitiger Konfiguration testen. Mal sehen,
welche Probleme noch so auftreten werden.;-)))
Ich denke aber, dass ich mir bei Verwendung dieses NXP den Aufbau der
restlichen Peripherie sowieso noch mal grundsätzlich überlegen muß. Dann
bekomme ich hoffentlich auch den Fehler raus - wenn es nicht schon
einfach nur an einem Produktionsfehler meines kaputten CAN-Controllers
hing.^^
Aber auch, wenn nicht,... der NXP mit (3x mehr Power und 2x mehr I/Os
wie der ATMega, inkl. CAN und und und!^^) kostet nur knapp 40 Cent mehr
wie der abgerauchte MC CAN-Controller!;-)))
@Jürgen: Da muß ich Roland zustimmen. Bitte BITTE exportiere mal die 2
Dateien als reine Bilddateien.^^
Viele Grüße
So im Anhang die Bilder als png. Da das Board nur 35cx60mm groß ist
reicht die Light Version von Eagle. Damit kann sich dann jeder das
konvertieren wohin er will. Die beiden parallelen Spannungsregler sind
Bestückungsvarianten, damit auch ein Schaltregler wie der Traco TSR
1-2450 drauf passt.
Hallöchen Jürgen,
nettes Teil.;-)
Was genau ist denn X2 und JP1? Warum hast du denn eigentlich ein EEPROM
bestückt - der µC hat doch schon um die 1k, oder?
Als Unterputz-Schalteinsatz wird die Platine aber nicht herhalten
können, 60mm ist da schon sehr knapp.
Und die Schaltung konnte größtenteils mit Code-Samples realisiert
werden, oder kennst du dich mit ARM schon so gut aus???
Viele Grüße
Hallo Peter,
die ARM Cortexe haben fast alle kein eeprom. Konfigurationsdaten kann
man zur Laufzeit ins Flasch schreiben. Ich hatte auch nicht an eeprom
gedacht sondern an sowas wie RAMTRON FRAMS FM24V10. Da der Platz auf der
Unterseite da war, habe ich ihn dafür benutzt. Muss ja nicht bestückt
werden.
X2 ist wie X1 eine einfache Leiterplattenklemme. An JP 1 sind GND,
Reset, SWDIO, SWCLK +3,3V und 5V rausgeführt. Wozu wird sich noch
zeigen. Da zum Debuggen und Programmieren nur SWDIO SWCLK und GND
benötigt wird, gibts keinen Standard JTAG Anschluss. Programmieren und
verstehen sollte man die Chips schon, nur Code zu Übernehmen reicht mit
Sicherheit nicht aus.