Hallo Zusammen, ich stehe vor der Aufgabenstellung, mit einem uC (vorzugsweise ATmega) 10 Sensoren abzufragen, die alle ein analoges Signal liefern. Am einfachsten wäre es ja, wenn der uC 10 ADC-Eingänge hätte. Leider haben die meißten ATmegas ja nur 6 (im DIP) oder 8 (als SMD) ADC-Eingänge. Da das ganze auch noch gut von Hand zu löten sein soll, würde ich DIP auch preferieren. Hat einer einen Tipp für mich, ob es da einen uC mit mindestens 10 ADC-Eingängen gibt, oder ob ich beispielsweise besser einen externen ADC-IC nehme? Auf die Angaben bei reichelt über die Anzahl der Analog-Eingänge verlasse ich mich lieber nicht. Da steht der ATmega8A-PU z.b. mit 14 Analog-Eingängen drin. Meines Erachtens hat der aber doch nur 6, oder? http://www.reichelt.de/Atmel-ATMega-AVRs/ATMEGA-8A-PU/3/index.html?&ACTION=3&LA=446&ARTICLE=119677&GROUPID=2959&artnr=ATMEGA+8A-PU Danke schonmal...
Hast Du schon mal den Atmel MCU Selector bemüht? Aber wie ich das sehe wird es da als DIP nicht geben. Grüsse, René
Atmega2560 hat 16x 10bit allerdings tqfp. diesen könntest aber auf einen adapter löten. könntest aber auch ein arduino nehmen da sitzt der auch drauf.
TQFP 0.5mm kann man bei ordentlicher Platine (mit Lötstopplack) ohne Probleme mit der Hand löten.
Hi Dominik, Dominik R. schrieb: > Hallo Zusammen, > > ich stehe vor der Aufgabenstellung, mit einem uC (vorzugsweise ATmega) > 10 Sensoren abzufragen, die alle ein analoges Signal liefern. ... > Hat einer einen Tipp für mich, ob es da einen uC mit mindestens 10 > ADC-Eingängen gibt, oder ob ich beispielsweise besser einen externen > ADC-IC nehme? Hast Du mal überlegt zumindest einen Teil der Eingänge zu multiplexen? Eine Eingangsbeschaltung benötigst Du ja wahrscheinlich sowieso (Verstärker, Puffer, Eingangsfilter), dann sollte ein Multiplexer auch noch rein passen. Oder hast Du eine harte Anforderung an die Meßzeiten und kannst deshalb nicht multipexen?
Dennis schrieb: > Atmega2560 hat 16x 10bit allerdings tqfp. > > diesen könntest aber auf einen adapter löten. > könntest aber auch ein arduino nehmen da sitzt der auch drauf. Wenn du ihn auf einen Adapter löten kannst, dann kannst du ihn auch gleich auf die Platine löten. Warum einen 100poligen Adapter zwischenlöten?
weil es ggf auf lochraster kommen könnte,steht nichts dabei daher wäre dies eine möglichkeit.
Warum so ein 100 pin Monster wenn man genausogut einen 4051 Analogmultiplexer nehmen kann?
Danke schonmal für die Vorschläge. An einen Multiplexer hatte ich auch schon gedacht. Wie funktioniert das bei einem Multiplexer, dass ich weiss, von welchem Sensor das Ergebnis kommt. Über eine Steuerleitung? Das mit dem Atmega2560 bzw. Arduino ist auch 'ne super Idee. Löten traue ich mir glaube ich nicht zu, aber wenn es den eh schon auf einem fertigen Board gibt, um so besser.
Dominik R. schrieb: > An einen Multiplexer hatte ich auch schon gedacht. Wie funktioniert das > bei einem Multiplexer, dass ich weiss, von welchem Sensor das Ergebnis > kommt. natürlich von dem, dessen Signal du gerade durchschaltest...
Ein Atmega32 u.ä. (DIP) hat 8 ADC's. Nimm einen CD4051 8-Kanal analoger Multiplexer dazu, das dürfte reichen. Joe
Je nach Sensor kannst du die auch abschalten und die Analogausgänge "parallel" an einen ADC-Eingang hängen...
>eine schlichte Lösung wäre ein Zweiter Atmega im slave-betrieb
Ja genau. Mit Kommunikationsprotokoll dazwischen....
Justus Skorps schrieb: > natürlich von dem, dessen Signal du gerade durchschaltest... Ich bin noch recht neu im Bereich uC und habe noch nie mit Multiplexern gearbeitet. An sich ist mir die Funktionsweise im groben klar. Mehrere Eingänge werden auf einen Ausgang gelegt. Aber wie das mit der Durchschaltung funktioniert ist mir bisher halt noch nicht bekannt. Gibt es da in Digital Input der bei jedem High einen Eingang weiter schaltet, oder wie läuft das? Lg Dominik
Hi Dominik, Dominik R. schrieb: > Danke schonmal für die Vorschläge. ... > Das mit dem Atmega2560 bzw. Arduino ist auch 'ne super Idee. Löten traue > ich mir glaube ich nicht zu, aber wenn es den eh schon auf einem > fertigen Board gibt, um so besser. dann suche Dir doch eine passendes Arduino Zusatzplatine z.B. auf eBay. Alternativ kannst Du auch über Sensor-Adapter nachdenken, die Dir die Ergebnisse digital, z.B. über I2C oder SPI-BUS liefern. Du kannst entweder fertige I2C A/D Wandler mit entsprechendem BUS nehmen oder selbst etwas mit z.B. AT-Tiny13-ern bauen. Mach Dir vorher noch mal Gedanken über die benötigten Abtastraten. Jeder Wandler braucht eine gewisse Zeit um einen Analogwert messen zu können. Wenn Du mit einem einzigen A/D Wandler im Multiplex-Betrieb arbeitest addieren sich die Zeiten. Wenn Du mehrere A/D Wandler parallel betreibst und die Ergebnisse nur abrufst ist das wahrscheinlich insgesamt schneller. Die Genauigkeit ist ein zusätzliches Problem. Beim Multiplexer musst Du eventuell Wartezeiten einhalten, damit sich nach dem Umschalten der Signalpegel vor der Messung einstellen kann. Bei vielen, verteilten A/D Wandlern musst Du auf das Design der Versorgungspannung achten. Wilder Drahtverhau und schlecht gefilterte Spannungen führen da schnell zu falschen Ergebnissen. Überschlage also mal ein paar Randbedingungen bevor Du Dich für ein bestimmtes Verfahren entscheidest.
Matthias Lipinsky schrieb: >>eine schlichte Lösung wäre ein Zweiter Atmega im slave-betrieb > > Ja genau. Mit Kommunikationsprotokoll dazwischen.... Ja. Dafür gibt es fertige Libs ... Ich vermute mal das die Hardware für Dominik die größere Hürde ist als die Software ...
leluno schrieb: > eine schlichte Lösung wäre ein Zweiter Atmega im slave-betrieb Nein, eine schlichte Lösung ist ein 4051 aber nicht ein 2. MC der auch erst mal programmiert werden muss damit er überhaupt was macht.
Dominik R. schrieb: > Ich bin noch recht neu im Bereich uC und habe noch nie mit Multiplexern > gearbeitet. An sich ist mir die Funktionsweise im groben klar. Mehrere > Eingänge werden auf einen Ausgang gelegt. Aber wie das mit der > Durchschaltung funktioniert ist mir bisher halt noch nicht bekannt. Gibt > es da in Digital Input der bei jedem High einen Eingang weiter schaltet, > oder wie läuft das? > > Lg > Dominik http://www.mikrocontroller.net/articles/Multiplexen
Hier ist ein weitere Vorschlag; einen atmega32u4 auf diesem Board: http://www.ehajo.de/Bausaetze/Atmega32U4-Breakout-Board?source=2 Lochraster und Steckbrett sind auch möglich.
Ok, damit das Löten einfacher wird http://www.watterott.com/de/Analog/Digital-MUX-Breakout Dazu das Datenblatt vom 74HC4067 im Internet suchen.
>Gibt es da in Digital Input der bei jedem High einen Eingang weiter >schaltet, oder wie läuft das? Es gibt n Steuereingänge zum Auswählen eines der 2^n Eingänge.
Der analog Multiplexer funktioniert genau so, wie derinterne im Mikrocontroller. Du stellst ein, auf welchen Eingang er schalten soll. Beim AVR gibts dazu ein Register, beim externen Multiplexer sind es drei Steuerleitungen (für die Werte 0-7).
Servus, in der Regel hat ein MC sowieso nur einen ADC der intern gemultiplext ist. Also macht es zeitlich keinen Unterschied wo man das Multiplexing macht. Außerdem kann ein AtMega die Daten auch gar nicht parallel verarbeiten. Das nur zum Thema harte anforderungen an Messzeiten. Ich würde einfach nach einen passenden analog Multiplexer suchen, die gibt es meißt mit 8 bzw 16 Eingängen.
Stefan schrieb: > Der analog Multiplexer funktioniert genau so, wie derinterne im > Mikrocontroller. Du stellst ein, auf welchen Eingang er schalten soll. > Beim AVR gibts dazu ein Register, beim externen Multiplexer sind es drei > Steuerleitungen (für die Werte 0-7). Jetzt hab auch ich das mal kapiert. Damit kann ich arbeiten. Die messzeit sollte kein Thema sein. Dann kann ich ja einfach einen ATmega8 nehmen, den ich hier eh noch rumliegen habe, einen 8-Kanal-Multiplexer und schon habe ich sozusagen 15 analoge Eingänge (6 direkt am uC, wovon einer vom Multiplexer belegt ist und eben 8 am Multiplexer)... Dankööööö
1. : Peter Dannegger schrieb: > ATtiny861: > DIP-20 > 11 ADC-Eingänge 10Bit 2. : Dominik R. schrieb: > und schon habe ich sozusagen 15 analoge Eingänge (6 direkt am uC, wovon > einer vom Multiplexer belegt ist und eben 8 am Multiplexer)... Bei mir macht 6-1+8 nicht 15 sondern 13 ;)
Hallo Dominik, bitte lies auch die beiden application notes von Atmel zum Thema ADC. So sind deine Anforderungen an die Genauigkeit nicht so hoch, erst recht, wenn du Vcc=+5V als Referenzspannung einstellst !
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.