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
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.
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.
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)
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
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.
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
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...
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
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
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.