Forum: Mikrocontroller und Digitale Elektronik Wahl eines passenden Mikrocontrollers zur Ansteuerung des M90E32AS Energy Metering IC


von Peter U. (pulli00)



Lesenswert?

Hallo,

ich möchte Messdaten vom M90E32AS Energy Metering IC auslesen. Welcher 
Mikrocontroller wäre dafür geeignet? Worauf muss ich achten?
Im Datenblatt und in der Application Note finde ich keine empfohlenen 
Mikrocontroller für das IC.

Ich habe noch mangelhafte Erfahrung auf dem Gebiet und hoffe, dass 
jemand mir die entscheidenden Eckdaten nennen kann.
Bisher habe ich nur Erfahrungen mit einem Atmega88 gemacht.

Das Datenblatt und die Application Note hänge ich an.

Grüße

von Jim M. (turboj)


Lesenswert?

Kommunikation erfolgt offenbar über "Four-wire SPI interface". Damit
eignet sich praktisch jeder Mikrocontroller, denn SPI ist of in HW 
vorhanden und recht einfach in Software gelöst.

Die ollen ATMEGA laufen nur auf 5 Volt mit voller Geschwindigkeit, der 
M90E32AS verträgt aber nur 3,3 Volt. Wenn also die 10 MHz bei 3.3V 
ausreichen, könnte man es mit dem Atmega88 versuchen.

von Peter U. (pulli00)


Lesenswert?

Ein 4-wire SPI habe ich auch schon mit dem Atmega gelöst, mit 2 Slaves. 
Dazu müsste hier im Forum auch noch etwas sein.

Ich frage mich allerdings ob die SPI Schnittstelle die einzige Hürde 
ist. Schließlich wird auf dem Demo-Board von Atmel ein ARM Prozessor 
Atmel SAM4C verwendet.

Ich plane eine Ausgabe über ein Display, welchs über Taster navigiert 
werden soll. Ein geeignetes LCD muss ich auch noch finden. Dies ist auch 
noch Neuland für mich.

Wenn für das Auslesen der Register und anschließende Ausgabe über ein 
Display ein ATmega reichen würde, wäre das fantastisch. Ich würde 
eventuell auch zu einem aktuelleren Atmega greifen. Die Sprache bleibt 
ja die selbe, nehme ich an.

von Peter U. (pulli00)


Lesenswert?

ich bin inzwischen etwas weiter gekommen...
ich habe mich für einen ATmega324A entschieden, da dieser über genügend 
I/O ports verfügt. das display soll ein DOGM204 mit I2C sein.

Nun zu meiner Frage. Würde es reichen, wenn ich meinen Mikrocontroller 
mit 3,3V versorge? Dadurch verfügt er nicht mehr über die vollen 20MHz 
Taktrate(stattdessen etwa 12,5MHz). Welche Taktrate sollte ich 
mindestens verwenden, um Register vom M90E32AS auszulesen und am Display 
auszugeben?

Meinem Verständnis nach werden die Messwerte in den Registern mit etwa 
3Hz aktualisiert. (Seite 16 im Datenblatt des M90E32AS)

von Frank K. (fchk)


Lesenswert?

Du solltest tunlichst einen Isolator oder Optokoppler in die 
SPI-Schnittstelle einbauen. Empfehlung:

http://www.silabs.com/Support%20Documents/TechnicalDocs/Si86xx.pdf

Eine Isolationsfestigkeit vom mindestens 2500V ist vorgeschrieben, und 
Du solltest Isolationsabstände von minimal 7.62mm einhalten.

Da der Isolationsbaustein sowohl mit 3.3 als auch 5V läuft, kannst Du 
auf der uC-Seite auf ruhig 5V verwenden.

Ansonsten: Wenn es unbedingt AVR sein soll, greife doch zu einem XMega. 
Da hast Du das Problem nicht.

fchk

von Peter U. (pulli00)


Lesenswert?

Die Isolation übernimmt der ISO7641 von TI. Aber danke für den Ratschlag 
bezüglich der Isolation von der SPI-Schnittstelle. Den mega324A nehme 
ich, weil ich ihn schon da habe. Da ich erst ein Projekt mit einem 
Mikrocontroller gemacht habe, fehlt mir noch einiges Verständnis, das 
ich aber gerne dazugewinnen möchte.
Ich habe ja gewisse Anforderungen an mein Projekt. Jedoch weiß ich nicht 
welche Kriterien dabei zwingend erforderlich sind. Meine Birne ist auch 
schon weich von den ganzen Datenblättern, die ich gelesen habe.
Ich stelle mir die Frage mit welcher Taktfrequenz mein Mikrocontroller 
mindestens arbeiten muss, um sowohl das Auslesen der Register vom 
M90E32AS und anschließendes Ausgeben auf mein Dotmatrix LCD zu 
bewerkstelligen.

Könnte mir da jemand etwas Licht ins Dunkel führen. Das gute in diesem 
Forum ist ja, dass hier viele User mit Know-How durch die Foren 
geistern. Ich habe hier schon viel Hilfestellung durch nutzen der 
Suchfunktion erhalten.

von Frank K. (fchk)


Angehängte Dateien:

Lesenswert?

Ist das eine private Bastelei, eine Hausaufgabe/Studiumsprojekt, oder 
sollen davon später Stückzahlen hergestellt werden? Davon hängen einige 
Entscheidungen ab.

Einen Chip allein deswegen zu nehmen, weil man ihn gerade da hat, ist 
keine gute Strategie - das kann später einiges an Mehrarbeit 
verursachen. Zumal ein AVR ja maximal wenige Euro kostet und auch 
anderweitig verwendbar wäre.

Deine Frage nach der minimalen Taktfrequenz ist nicht so einfach zu 
beantworten. Da kann eine zunächst unscheinbar aussehende 
Gleitkommaberechnung plötzlich die ganze Kalkulation durcheinander 
werfen. Normalerweise nimmt man die maximale Rechenleistung, die man zu 
einem bestimmten Euro- und Stromaufnahme-Budget bekommt, nimmt die 
Variante mit dem meisten Speicher, baut das erste Muster und schaut 
dann, was man tatsächlich braucht und ob man eine billigere Variante 
einsetzen kann.

Wenn Du keine Massenproduktion Deines Produktes anstrebst, ist es 
sinnlos, hier zu optimieren. Nimm die maximale Rechenleistung, die Du 
bekommen kannst. Erfahrungsgemäß kommt später immer noch wieder etwas 
hinzu. Überlege Dir, warum Atmel dem Chip einen Cortex M4 zur Seite 
stellt. Der ist nämlich nicht teurer als ein größerer AVR, obwohl er 
Faktor 100 leistungsfähiger ist. Du bezahlst nämlich nicht die 
Rechenleistung, sondern in erster Näherung die mm^2 Chipfläche und das 
Gehäuse.

Aus diesem Grund habe ich mich von AVR verabschiedet. Ich bekomme bei 
PIC24/dsPIC33/PIC32 mehr Wumms und viel bessere Peripherie zum annähernd 
gleichen Preis. Ich arbeite gerade an einem ähnlichen Projekt, aber nur 
einphasig. Als Controller sitzt ein PIC24FJ64GA002 (32 MHz) mit auf dem 
Board, und wenn der nicht reicht, gibt es pinkompatible dsPIC33EP mit 
140 MHz internem Takt. Ich habe also genügend Luft nach oben.

fchk

von Peter U. (pulli00)


Lesenswert?

Danke für die ausführliche Beschreibung. Es ist ein Studienprojekt und 
soll somit nicht in Stückzahlen hergestellt werden. Vielmehr geht es 
darum zu lernen, die richtigen Bauteile zu wählen und den Prototypen 
anschließend in Betrieb zu nehmen. Sehr wohl habe ich mir Gedanken 
gemacht, warum Atmel wohl einen Cortex verwendet. Mein Betreuer meinte 
aber, dass es nicht zwingend etwas zu bedeuten habe. Wie du schon 
sagtest...
Ich habe das Datenblatt des M90E32AS gelesen und versucht mir eine 
Vorstellung zu machen wie dieser Chip arbeitet. Strom und Spannung 
werden über kalibrierte A/D Wandler über die Zeit gemessen und die 
restlichen Parameter für Leistung etc. werden vom Chip berechnet. Meiner 
Ansicht nach muss der Controller also nur die Messwerte auslesen. Und 
Auslesen von Registern habe ich in meinem vorherigen Projekt mit einen 
mega88 gemacht. Deshalb würde ich gerne bei AVR bleiben, da ich die 
Entwicklungsumgebung zumindest kennengelernt habe. Ein ARM Prozessor 
würde den Rahmen dieses Projekts schon sprengen, da ich diese Familie 
noch nicht kennengelernt habe. Für die Zukunft würde ich  natürlich 
gerne ARM Prozessoren verwenden, da mir die Vorteile dieser Familie 
bewusst sind.
Ich hoffe es ist nachvollziehbar...

von Frank K. (fchk)


Lesenswert?

Deswegen habe ich ja XMega vorgeschlagen. Zum einen ist die Architektur 
des Prozessorkerns gleich, und damit auch der Compiler. Du brauchst nur 
einen Debugger, der PDI kann. Zum anderen ist der Chip komplett in 3.3V 
Technologie gefertigt und eben mal doppelt so schnell, und und auch die 
Peripherieeinheiten sind besser.

Konkret empfehle ich Dir einen XMega64A4U. Der ist sicher groß genug für 
Deine Zwecke. Der XMega64A4 ohne U ist fehlerbehaftet (das war die erste 
XMega-Familie), nimm die U-Version, auch wenn Du USB gar nicht brauchst. 
Alternativ XMega32E5. In einem kommerziellen Projekt würde man später 
schauen, ob es nicht auch der XMega16A4U tun würde. Das entfällt bei 
Dir.

Zum Preis: Bei Farnell kostet ein Mega324p 5.05€, ein ATXMEGA64A4U-AU 
aber nur 3.46€, beide im TQFP44. Du wärst doch schön blöd, wenn du den 
teureren, aber schlechteren nehmen würdest, oder? Und wie würdest Du das 
vor Deinem zukünftigen Chef verargumentieren? Oder jetzt Deinem 
Betreuer.

Von der Leistung her: Ich verwende einen Cirrus CS5490, weil der klein 
(SO16) und billig ist. Der gibt aber seine Werte als Festkommawert von 0 
bis 1.0 bzw -1.0 bis +1.0 heraus, so dass man die realen Werte per 
Skalierungsfaktoren etc ermitteln muss. Also ganz so einfach ist das 
hier nicht.

fchk

: Bearbeitet durch User
von Sascha W. (sascha-w)


Lesenswert?

Peter Ullrich schrieb:
> Meinem Verständnis nach werden die Messwerte in den Registern mit etwa
> 3Hz aktualisiert. (Seite 16 im Datenblatt des M90E32AS)
genau,
da es für die Ausgabe auf dem Display reicht maximal 1x pro Sekunde neue 
Werte auszugeben währe der AVR selbst mit 1MHz noch schnell genug.

Sascha

von Peter U. (pulli00)


Lesenswert?

Sascha Weber schrieb:
> Peter Ullrich schrieb:
>> Meinem Verständnis nach werden die Messwerte in den Registern mit etwa
>> 3Hz aktualisiert. (Seite 16 im Datenblatt des M90E32AS)
> genau,
> da es für die Ausgabe auf dem Display reicht maximal 1x pro Sekunde neue
> Werte auszugeben währe der AVR selbst mit 1MHz noch schnell genug.
>
> Sascha

So sehe ich das nämlich auch. Dann würde es völlig ausreichen, wenn ich 
meinen Controller mit 3,3V und somit 11,0592 MHz betreiben würde. 
Dadurch spare ich mir die Pegelwandlung des I2C Bus...

von Frank K. (fchk)


Lesenswert?

Du sollst lernen, wie man Bauteile auswählt, und das in Deiner 
Ausarbeitung auch dokumentieren. Der Xmega ist auch ein 3.3V Chip und 
billiger.

Und für später: kein DIL. Kein THT (Through Hole Technology, also Loch 
ins Board, Pin durch und auf der anderen Seite festlöten). Hierzulande 
sind die Bestückungskosten bei SMD viel viel geringer - bedrahtete 
Bauelemente müssen oft per Hand nachbestückt werden. Außerdem zahlst Du 
für die Plattinenfläche und hast daher ein Interesse daran, dass Dein 
Board so klein wie möglich ist.

Ausnahmen sind große Bauteile wie Elkos und Steckverbinder etc, wo eine 
mechanische Stabilität gefordert wird.

Das darfst Du jetzt auch gleich in die Tat umsetzen. Du lernst nicht für 
die Uni, sondern fürs Leben.

fchk

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.