Forum: Mikrocontroller und Digitale Elektronik Suche einfache Lösung für SPI zu CAN


von Christian S. (chris02)


Lesenswert?

Hallo!

Ich bin gerade an meiner Diplomarbeit und bin nun an dem Punkt 
angelangt, wo ich einen µC brauche.

Ich habe lediglich C++ Grundkenntnisse und habe nun einmal einen Atmega 
genommen und dort eine LED blinken lassen.
Meine µC Kenntnisse gehen also gegen 0.

Ich habe mind. 3 ADC (ADS1248) mit dem ich jeweils 3 PT100 vermesse. Der 
ADC gibt seine Daten per SPi aus. Diese möchte ich dann per CAN 
ausgeben, da unsere Messsysteme alle CAN unterstützen.

Ich habe noch ein NXP LPCexpresso LPC11C24 evaluation Board gefunden, 
ebenso einen PIC24HJ128GP und ein CAN Treiber IC.

Ich habe keine Vorgaben, kann also auch andere Sachen bestellen.

Der NXP hat den Vorteil, dass sowohl Treiber als auch Transreceiver 
bereits im µC sind und somit kaum Beschaltung braucht. Und auch das 
Beispielprojekt schon Codes für SPI und Can mit sich bringt.

Meine Frage nun an euch:
Da ich ja noch mehr oder minder blutiger Anfänger bin, mit welchem µC 
lässt sich die Umsetzung am leichtesten realisieren? Etwas genauer soll 
das heißen, wo ist die Einarbeitung am leichtesten und es gibt gute 
Einführungstutorials.

Vielen Dank für eure Ratschläge!

Gruß
Chris

von Kalle (Gast)


Lesenswert?

SPI-CAN: Microchip MCP2515
Gibt auch dsPICs mit eingebautem CAN. Ich nehm gerne die MC Serie.
Muster gibts kostenlos ...
Die CAN-Library von Microchip ist auch nicht übel. Läuft quasi alles 
"Out of the Box".
Wenn du dich an das Explorer16 Board hältst, dann schätze ich den 
Zeitaufwand auf unter einer Stunde (zzgl. Einarbeitungszeit).

Bei Fragen ... Fragen :D

P.S. für den PT1000 (nicht PT100) gibt es tolle serielle ICs die auch 
gleich die linearisierung übernehmen. Auch die Konstantstromquelle kann 
man sich sparen. Ist aber natürlich abhängig davon wie genau man es 
haben möchte ;-)

von Christian S. (chris02)


Lesenswert?

Hi Kalle!

Danke für deine schnelle Antwort.

Den MCP2515 hab ich mir auch angeguckt.
Das ist doch nur ein Transreceiver von SPI zu Can? Einen µC muss doch 
trotzdem noch dazwischen oder seh ich das falsch?
(Wo wir wieder bei meiner eigentlichen Frage wären, welcher eignet sich 
für den Einstieg)

Das Explorer 16 Board kostet >100€. Gibt es nicht günstigere Varianten?

von Stephan S. (stephan1008)


Lesenswert?

Hi,

willst du die PT100 differentiell messen oder gegen Masse?
Also brauchst du 9 oder 18 Kanäle? Wie genau sollen die Messwerte sein?
Brauchst du die 24bit Auflösung?

von Christian S. (chris02)


Lesenswert?

die PT100 sollen/müssen als 4-Leiter Schaltung vermessen werden, daher 
auch nur 3 PT100 pro ADS1248.

Der Messfehler soll nachher, inkl. aller Bauteiltoleranzen, 
Leitungslängen etc., kleiner 0,5°C sein.

Den ADS1248 gibt es auch als 16-Bit ADS (ADS1148), ist aber teurer.

von Stephan S. (stephan1008)


Lesenswert?

Mit 4-Leiter solltest du locker unter 0.5 °C kommen.

Als ADC könnte ich dir noch nen LTC2498 empfehlen. In verbindung mit 
einem STM32F2xx kannst du deine 3 ADCs auch noch "gleichzeitig" 
auslesen, da 3 SPI-Schnittstellen.

von Christian S. (chris02)


Lesenswert?

Gleichzeitig ist nicht notwenig, wenn ich alle 100ms die Signale 
nacheinander versende ist das ok.

Mir geht es erstmal darum den Einstieg zur µC Programmierung zu finden. 
Den ADC nachher nochmal auszutauschen sollte dann nicht mehr so 
problematisch sein.

von Kalle (Gast)


Lesenswert?

STM32 ist zwar top, aber für den Einstieg in CAN und µC ... naja ich 
sage nur Kanonen auf Spatzen. Ich halte die den Einstieg mit dsPICs 
schon für sportlich, aber durchaus machbar.

3 ADCs über 3 SPI-Busse auslesen? Naja, vielleicht hab ich auch das 
Buskonzept falsch verstanden ;-)
Ist vor allem total unnötig, denn Temperaturen ändern sich icht so 
sprunghaft als das irgendeinen Sinn machen würde.

Was willst du denn eigentlich haben? Hast du vor ein Board selbst zu 
layouten, willst du was fertiges an das du deine 3 ADCs nur noch 
andocken musst.
Hab da einiges in meinen Bastelkisten. Kann dir gerne was zum quasi 
Selbstkostenpreis zukommen lassen.


achja, der MCP2515 ist ein CAN-Controller. Einen Transceiver wie z.B. 
PCA82C250 oder SN65HVD23x brauchst du trotzdem noch.

von Christian S. (chris02)


Lesenswert?

Ich brauche keine 3 SPI Schnitstellen. Das sehe ich genauso.

Ich schreibe meine Dipl. Arbeit an der Uni und würde schon gerne selber 
ne Platine Layouten und auch fertigen lassen.
Für experimentellem Aufbau würde ich erstmal Lochraster und auch 
Adapterplatinen für den ADC nehmen. Bzw. Steckboards. Werde morgen mal 
gucken was sich alles finden lässt.

Habe per google folgendes Projekt gefunden:
http://kampis-elektroecke.de/?page_id=453
Da wird ein Hausbaus eingelesen und per Atmega32 und MCP2515 via CAN 
übertragen. Der Quellcode ist auf den ersten Blick gut dokumentiert und 
wird mir hoffentlich den Einstieg erleichertn.

Oder habt ihr noch was, was ähnlich gut dokumentiert ist und mir helfen 
könnte?

Vielen Dank!

PS: Danke Kalle für dein gut gemeintes Angebot! Da ich die Teile aber 
nicht selber zahlen muss kann ich die Teile auch problemlos über die uni 
bestellen. Zumindest immer die kleineren Sachen sind kein Problem.

von Falk B. (falk)


Lesenswert?


von Frank K. (fchk)


Lesenswert?

Christian Sch. schrieb:

> Habe per google folgendes Projekt gefunden:
> http://kampis-elektroecke.de/?page_id=453
> Da wird ein Hausbaus eingelesen und per Atmega32 und MCP2515 via CAN
> übertragen. Der Quellcode ist auf den ersten Blick gut dokumentiert und
> wird mir hoffentlich den Einstieg erleichertn.

PIC18F26K80, MCP2551, ein 8MHz-Quarz, und etwas Kleinkram. Mehr brauchst 
Du nicht für einen CAN-Knoten. Dazu noch die Anschaltung für Deine 
Sensoren und das wars. Passt alles auf eine kleine Lochrasterplatine, 
minimale Bauteilanzahl, Kosten unter 10€ ohne die ADCs etc.

Wenn Du was schnelleres haben willst: dsPIC33F128MC802. Hat auch CAN, 
ist aber ein 16 Bit Prozessor mit 56 Bit DSP-Erweiterung. Ist von der 
Hardware her genauso einfach zu beschalten wie der PIC18F26K80, braucht 
aber 3.3V (der PIC18 kann mit 3.3 oder 5V betrieben werden).

Ich habe mir den ADC angeschaut. Bei 24 Bit musst Du ziemlich aufpassen, 
dass Du so wenig Störungen hast, dass Du von den 24 Bit auch was hast 
und nicht 10 Bit Noisefloor dabei ist.

fchk

von Tobi (Gast)


Lesenswert?

Falk Brunner schrieb:
> http://www.kreatives-chaos.com/artikel/ansteuerung-eines-mcp2515
>
> Funktioniert gut.

Und ganz genau hier:

http://www.kreatives-chaos.com/artikel/can-testboard-40

Da hast du ein fertiges Board wo man (meine Meinung nach) das ganze mit 
CAN usw. testen kann, da hast ein Atmega 32 mit MCP2515.

von Christian S. (chris02)


Lesenswert?

Das chreaktive Chaos gefällt mir :)

Ich werd mich mal an diesem Artikel versuchen:
http://www.kreatives-chaos.com/artikel/can-testboard

Habe jetzt ein STK500 mit einem Atmega8, wie dort auch beschrieben. Flog 
alles noch hier rum.
Genauso aus einem anderem Projekt eine Platine mit einem MCP2515 und 
MCP2551 auf einer Platine mit rausgeführtem PinHeader.

Das sollte mir für den Anfang schonmal reichen. CAN Scanner haben wir 
auch als fertige Boxen.
Werde morgen dann mal versuchen den Atmega8 in Betrieb zu nehmen.

Ich glaube, dass der Einstie mit dem Atmega und dem kreativem Chaos 
wesentlich einfacher wird als mit dem NXP.

Soweit erstmal vielen Dank!

Ich werd mich sicherlich nochmal melden ;)

Gruß
Chris

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.