www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller Auswahl?


Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich bin leider ein ziemlicher Anfänger in Sachen Mikrocontroller und
hoffe hier etwas Einstiegshilfe zu finden.
Für ein kleines Projekt brauche ich einen möglichst preisgünstigen µC,
der aber auch sehr verlässlich (Ausfallsicherheit sehr wichtig!) ist.
Das will ich mit dem µC machen:

*Werte von maximal 12 Eingänge mit 4-20 mA einlesen
*LC Display ansteuern
*7-8 Relais ansteuern

Danke für Tips und Hilfe!
Grüße Hans

Autor: Gerrry Weber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heißt Werte einlesen. Pegelzustände also Logisch 1 und 0 oder willst
du Spannungswerte von 0 bis 5 Volt digitalisieren, dann brauchst du AD
Wandler Eingänge

LCDsist nicht das Problem, kannst du mit jedem Chip. Relais kannst du
über Transistoren ansteuern.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will die Werte von 4-20mA digitalisieren. Gibt es irgendwo eine
Seite, wo man alle µC im Überblick hat, damit man sich den gewünschten
auswählen kann?
Außerdem müßte der µC mit integrierten EEPROM sein, damit ich dort
Werte reinschreiben kann, die man nach einem Spannungsausfall wieder
einlesen kann.

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um die 4-20mA zu digitalisieren, brauchst du zuerst einmal einen
Strom-Spannungswandler. Danach einfach auf einen ADC-Eingang vom µC.

WElche Auflösung soll den der AD-Wandler haben? Reichen 10bit?

Ich benutze PICs und empfehle dir mal bei Microchip(www.microchip.com)
nachzuschauen. Es gibt in der PIC18F-Serie µC die besitzen bis zu 12
AD-Wandler(10Bit), haben einige IO-Pins(fürs LCD und für die
Relais,welche über Transistoren angesteuert werden müssen) und haben
auch noch ein internes EEPROM.
Programmierne kannst du diese in C, ASM und noch ein paar anderen
Sprachen :-)
Programmer gibts auch einfache und billige zum selber bauen.
Und Infos,Tutorials und Libs usw. gibts auch massig im Netz :-)

Atmel bietet auch sicherlich einen Chip, der all diesen Anforderungen
entspricht, jedoch benutze ich diese nicht und kenne dadurch die
Palette der AVRs nicht. Aber einfach einmal auf der HP von Atmel
nachschauen www.atmel.com

In sachen Programmierung und Programmer und den Infos gilt das selbe
wie für die PICs: es gibt massenweise Information im Internet.

Ich hoffe ich konnte helfen.
mfg Schoasch

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, danke für deine Hilfe
Beim A/D sollten 10 bit auf alle Fälle reichen. Der Preis des
Programmers spielt eigentlich keine Rolle, weiß nicht ob ich die Zeit
zum selbst basteln haben werde.
Wie schaut es mit der Ausfallsicherheit bei den µC aus? Gibt es da
spezielle beständigere Produkte? Ich hätte gerne einen µC der lange
läuft und wenn er sich mal aufhängt, dann solte er auch ohne zutun zum
Laufen anfangen. Deshalb will ich manche Messwerte in einem EEPROM
zwischenspeichern.
Was muss ich bei der Speichergröße beachten? (LCD, Mittelwertberechnung
mit 100 Werten pro Eingang und ein paar kleine Abfragen). Ist es
einfacher, wenn ich einen 16bit µC nehme?

Danke nochmals für eure Bemühungen!
Grüße
Hans

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ausfallsicherheit? Wenn kein Strom da ist, laufen sie nicht. Es gibt
verschiedene Mechanismen (watchdog, brown-out-detection), die die
Ausfallsicherheit erhöhen (sollen). In erster Linie liegt es aber wohl
an der Software, wie zuverlässig Mikrocontroller sind.
16 Bit hat nichts (naja, fast nichts) mit der Speichergrösse zutun,
sondern mit der Geschwindigkeit.
12 Eingänge mit 100 Werten erfordert 2400 Byte. Man könnte auch
kontinuierlich einen Mittelwert bilden, was weniger Speicherbedarf
bedeutet.
LCD und die Relais sind nicht das Problem.

Ein Strom-Spannungs-Wandler ist doch auch ein einfacher ohmscher
Widerstand...

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ganze sollte mit einem 8Bit auch kein Problem sein.
Welche Abtastrate brauchst du?

Die PICs (wie auch die AVRs.. damit ich etwas Unparteiischer bleibe)
habe einen Watchdog. dH. Wenn du per Software nicht ein gewisses Flag
zurücksetzt, in einem gewissen Zeitraum, dann macht der Watchdog einen
Reset und der µC startet neu.
Ausfallsicherheit?! Die PICs die bei mir in meine Geräten laufen,
laufen noch immer ohne irgendwelchen Zwischenfall ;-). Sie sind in der
Autoindustrie beheimatet(sagen wir mal so), was auf Störsicherheit
schließen lässt oder nicht?

Vom speicher her habe ich nicht nachgerechnet. Ich hab jetzt mal so bei
Microchip nachgesehen und hätte da den PIC18F6722 gesehen. Der hat ein
Ram von 3936Byte, Flash von 128kByte und ein EEPROM mit 1024Byte.
Den PIC-Programmer gibts zb hier im Shop um 10Euro.

Wie siehts mit dem Gehäuse aus? DIP oder SMD? Und wie schnell soll das
ganze denn sein?

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hier noch einige Atmel Controller zur Auswahl:

http://www.atmel.com/dyn/products/param_table.asp?...

Es grüsst,
Arno

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Antworten und die Hilfe!
Die Messwerte würde ich gerne jede sec aktualisiern und dann
abwechselnd am LCD ausgeben. Den EEPROM würde ich zur Sicherung der
Mittelwerte bei Spannungsausfall, jede Minute beschreiben.

Die Bauform ist eigentlich egal, naja ganz widerum auch nicht, auf alle
Fälle will ich den µC zum leichten Austausch mit einem Sockel versehen.
SMD fällt dann ja weg.

Da das Programm ja wegen der Ausfallsicherheit "gut" sein soll, ist
es besser in ASM oder C zu programmieren? Kann ich zur Kontrolld der
Ausfallsicherheit ins EEPROM schreiben, wie oft der µC abgestürzt ist
(in einem Programmteil der nur einmalig beim Neustart ausgeführt
wird).

Grüße
Hans

Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ob ASM oder C ist egal, was die Ausfallsicherheit angeht. Es kommt mehr
drauf an, wie man diese Werkzeuge benutzt. Sowohl mit Hammer, wie mit
Zange kann man sich verletzten, wenn man nicht weiß, was man tut.

EEProm kannst du verwenden, um Ausfälle/Neustarts zu protokollieren.
Ebenso kannst du dir mal den Watchdog anschauen, den fast alle
Controller haben.

Ich würde erstmal mit einem Super-Klein Programm anfangen, um
Erfahrungen zu sammeln. Wenn man das, was du vor hast sauber lösen
will, sollte man schon 1 Jahr Programmiererfahrung haben.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Ratschlag. Wie schaut es nun aber mit der Geschwindigkeit
aus (siehe oben).

Grüße
Hans

Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was du da machen willst, ist des mit 8Bit AVR-Prozessoren von der
Geschwindigkeit überhaupt kein Problem. 10 Millionen Befehle pro
Sekunde sollten reichen...

Assembler und C sind sehr effizient, wenn du aber mit Basic rangehst,
wirst du oft Timingprobleme haben, wenn zeitkritische Sachen
programmieren willst.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Werte für die Mittelwertberechnung müssen bei Spannungsausfall nicht
erhalten bleiben, es ist wahrscheinlich einfacher sie nur im RAM zu
speichern. Der Programmieraufwand wird dadurch einfacher, wenn ich nur
Ausfälle, Neustarts im EEPROM protokolliere, oder nicht?

Zur Speichergröße habe ich allerdings noch eine Frage. Bei 12
Eingängen, die mit 10 bit digitalisiert werden, will ich pro Eingang
die letzten 60 gemessenen Werte im RAM speichern. Stimmt es also, dass
ich einen RAM mit der Größe von 1440 Byte benötige?

Ist es am einfachsten wenn ich einem µC mit 12 A/D wandler habe, oder
ist ein Multiplexor besser?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welcher µC hat denn 12 A/D-Wandler? Die AVRs und PICs haben einen
einzigen ADC und einen vorgeschalteten Kanal-Multiplexer. Die größeren
Controller der Familien haben z.T. auch mehr als 8 Kanäle, ansonsten
nen 4067 oder so vorschalten. Die Wandlungsgeschwindigkeit sollte auch
kein Problem darstellen. Wenns wirklich 12 Kanäle sein sollen, kannste
(zumindest bei AVR, mit PIC kenn ich mich nicht aus) bei geschickter
Wahl des Oszillators und geschickter Konfig gut 1000 Messwerte pro
Kanal und Sekunde einlesen. Zum Speichern des Wandlungsergebnisses
brauchste nen Integer (2 Bytes). Macht bei 12 Kanälen und 60 Werten
1440 Bytes...

Gruß

Johnny

Autor: Manos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Kann ich zur Kontrolld der Ausfallsicherheit ins EEPROM schreiben, wie
oft der µC abgestürzt ist"

Du kannst (zumindest bei den AVR's - bei PIC's weiss ich es nicht)
nach einen Reset feststellen, was den Reset ausgelöst hat (Watchdog,
Brown-out, External, Power-on) (Register MCUCSR)

Wenn Du doch lieber ein paar mehr Werte ins EEPROM schreiben willst ist
es auch kein größeres (technisches) Problem, ein externes EEPROM
(Seriell, I2C, SPI - z.B. 32Kx8, I2C, 8 Pin, <2€) anzuschließen.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke vielmals für eure Tips. Im Moment hab ich den AVR
"ATMEGA32-16AU" ins Auge gefasst.

Der µC hat 8 Kanäle für den A/D wandler, ich müsste also einen
Multiplexer vorschalten. Ich habe 12 Fühler, die jede Sekunde nur
einmal abgetastet werden sollen. Ist dazu nun ein 8 Kanal Multiplexer
oder ein 16 Kanal Multiplexer besser (einfacher bei der
Programmierung,...)?

Der 32 kByte Flash Programmspeicher sollte für LCD,
Mittelwertberechnung, Ansteuerung von ca. 10 Relais, Protokolle im
EEPROM wohl mehr als reichen (werd mit C programmieren).
Grüße
Hans

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am Rande:
Ich weiß nicht welche Sensoren Du verwendest und wie genau die
Ergebnisse sein müssen. ADCs mit 10 Bit Auflösung mögen für viele
Anwendungen ausreichen, für einge Anwendungen reichen die internen ADCs
der µPs nicht mehr aus. Sei es, weil das Eingangssignal nicht volle 5V
beträgt, der Eingang bipolar messen muß (0 Wert bei 12mA +/-8mA) oder
die gelieferten 10 Bit nicht genau genug sind (externe ADCs liefern
bessere Genauigkeit).
Unter Umständen muß man dann auf 12 Bit gehen, um 'echte' 10 Bit zu
erhalten. Aber dies nur am Rande.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
10 bit ist schon mehr als ausreichend, damit dürfte es also keine
Probleme geben. Aber welchen Multiplexer soll ich besser einstezen
(siehe vorheriger Beitrag)?

Grüße
Hans

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Multiplexer würde ich den 74HC4051 nehmen und den Ausgang an ADC0
vom µP legen, die weiteren Eingänge an ADC1-ADC4 (müßte 12 Kanäle
geben).
Die Programmierung ist simpel; wichtiger ist hingegen, eine
Schutzbeschaltung an den '4051- und µP-Eingängen. Einfachste Lösung
ist ein 1k Widerstand in Reihe (12 Stück), damit bei Überspannung der
Strom begrenzt wird.

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.