Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller-Auswahl: ATTiny, ATMega, Pic,?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Johan (thueringer)


Lesenswert?

Hallo, ich bin ein wenig überfordert mit der schieren Masse an 
Mikrocontrollern, die heutzutage erhältlich sind.

Ich möchte gerne einen uC für ein akkubetriebenen GPS-Tracker auswählen.
Mein erster Gedanke war: Stromsparend --> Attiny.
Doch scheinbar gibt es auch "große" Controller, die recht sparsam sind.

Anforderungen wären:
 - mind. 1 ADC Pin, >= 8bit Auflösung
 - mind. 1 interruptfähiger Pin
 - insgesamt mind. 9 GPIO --> also vermutlich die 14Pin Typen?
 - möglichst stromsparend

Wenn ich jetzt ein größeres Programm auf einen bspw. Attiny24 pflanzen 
möchte, würde ich wahrscheinlich recht schnell an die Grenzen des Flash 
kommen. Daher wäre ja eigentlich ein Attiny84 die Wahl, aber der kostet 
auch schon wieder 2,50€, wofür ich einen Atmega382p bekommen könnte...

Daher meine Frage: was sind denn gängige, stromsparende Mikrocontroller? 
Und aus welcher Familie? Ich bin schlicht überfordert mit dem Sortiment.

von Rahul D. (rahul)


Lesenswert?

[Offtopic]
ATtinys und ATmegas mit PIC zu vergleichen hinkt etwas:
Das sind unterschiedliche, inkomptible Controller-Familen.
Die einen kommen urspründlich von Atmel, die anderen von Microchip.

[/Offtopic]

von Michael B. (laberkopp)


Lesenswert?

Johan schrieb:
> was sind denn gängige, stromsparende Mikrocontroller?

Je moderner,  je stromsparender.

Relevant ist aber, was deine Schaltung tun muss: GPS aktiv halten, das 
kostet 100 x mehr Strom als der uC. Dann vielleicht ein Display oder 
eine GSM Verbindung. Und speichern wolltest du die Waypoints der letzten 
5 Jahre auch noch ?


Üblich in Trackern war SIM808, enthält schon GSM und GPS und einen 8052 
uC, die man leider nir programmieren kann mit deren Development-Toolkit, 
daher oft ein ATmega328 extern dran. Heute gibt es vermutlich modernere 
mit mehr als GPS (Glonass etc) und noch stromsparender.

https://eu.robotshop.com/de/products/sim808-gps-module

von Christian S. (roehrenvorheizer)


Lesenswert?

Johan schrieb:
> Daher wäre ja eigentlich ein Attiny84 die Wahl, aber der kostet
> auch schon wieder 2,50€, wofür ich einen Atmega382p bekommen könnte...

In diesem Zweifelsfall würde ich eher den "Atmega382p" empfehlen mit 
genügend Flash und RAM.

mfg

von Keks F. (keksliebhaber)


Lesenswert?

Die Frage ist etwas ungenügend ausformuliert.

Erstmal, welches Packaging willst du denn haben?
DIP schränkt ja die Auswahl ein und hebt auch den Preis stark an.
Und was ist denn "stromsparend" für dich? Geringer Ruhestrom? Standby? 
Was willst du denn machen? Davon abhängig ist ja der Stromverbrauch. Was 
bringt dir 1µA weniger Verbrauch, wenn der ADC langsamer ist und du 
damit länger auf deine Ergebnisse warten musst? Oder der Chip mehr Strom 
verbraucht, aber schneller mit Berechnungen fertig ist?

Den ATMega328P würde ich für neue Designs gar nicht nehmen, da kommst du 
mit einem ATTiny der 2-Serie günstiger und in allen Belangen besser weg.
Den 3227 gibt es mit Märchensteuer schon für ~1,50€.

: Bearbeitet durch User
von Johan (thueringer)


Lesenswert?

Meine Schaltung besteht bisher (konzeptionell) aus einem ublox NEO-6M 
GPS-Modul und dem etwas in die Jahre gekommenen SIM800L GSM-Modul. Dazu 
käme noch etwas "Kleinkrempel" (Spannungsregelung [das SIM800L brauchst 
ja auch mal 2A Peaks], Level-shifting in den UARTS, usw.). Display, 
Lautsprecher & Mikro für Anrufe sind alle nicht vorgesehen.

Der Gedanke dahinter ist, dass der uC je nach Konfiguration entweder auf 
SMS-Anfrage seinen Standort schickt, oder zeitbasiert alle x Minuten 
seinen Standort schickt.

Daher könnte das GSM-Modul einen Großteil der Zeit im Schlafmodus (1mA 
Verbrauch laut Datenblatt) sein, und das GPS-Modul auch.
Beim GPS Modul bin ich mir aber noch nicht sicher, ob es die ganze Zeit 
GPS halten soll (min. 11mA laut Datenblatt), oder ob es eben auf Anfrage 
erst mal seinen Standort suchen soll (min. 47mA laut Datenblatt). Das 
würde ich vermutlich von der Konfiguration bzw. den zu erwartenden 
Zeitabständen zwischen den GPS-Abfragen abhängig machen.

Daher bin ich auf der Suche nach einem Mikrocontroller, der eben 
möglichst wenig Strom verbraucht, da meine anderen Komponenten auch 
schon etwas Strom ziehen.

Edit: DIP wäre gut. Ich habe nicht die Möglichkeiten SMD zu löten (und 
es ist mir auch ein bisschen zu fummelig als dass ich es mit dem 
Lötkolben würde).

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Ich würde den ATmega328P (mit ider ohne B) nehmen, weil

- ich den schon gut kenne
- weil viele hilfbereite Menschen ihn auch gut kennen
- weil ich mir dann keine Gedanken darüber machen muss, wie uch meine 
alte Toolchain und Programmieradapter aktualisiere

Wenn du noch keine Erfahrung mit bestimmten Modellen hast, ist wohl die 
aktuelle Tiny Serie die bessere Wahl.

Oder vielleicht ein STM32Lxx.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Egal was du machst, nimm keinen PIC. Der xc8 Compiler ist Kernschrott.

von Johan (thueringer)


Lesenswert?

32bit-uC sind glaube ich etwas Overkill für meinen Zweck.

Ich nehme vermutlich einfach den ATmega 328P. Ich schätze, dass ich mir 
mit einem ATtiny möglicherweise zu viele Einschränkungen aufbinde.

von Peter D. (peda)


Lesenswert?

Johan schrieb:
> Mein erster Gedanke war: Stromsparend --> Attiny.

ATtiny und ATmega sind nur verschiedene Baugrößen des AVR.
Zwischen ATtiny85 und ATmega2560 bestehen daher bezüglich Stromaufnahme 
keine signifikanten Unterschiede.
Es sei denn, man läßt beim ATmega2560 alle 86 IO-Pins floatend, das 
summiert sich dann schon merklich.

von Andreas B. (bitverdreher)


Lesenswert?

Johan schrieb:
> 32bit-uC sind glaube ich etwas Overkill für meinen Zweck.

Sind aber billiger. Und Du lernst eine aktuelle Controllerfamilie.
Und der Stromverbrauch ist bei dieser Anwendung (fast) voellig egal. Der 
bestimmende Stromverbrauch ist hier das GPS Modul und die Speicherkarte.

von Helmut -. (dc3yc)


Lesenswert?

Darf ich mal einen ESP32 in den Ring werfen? Den gibt es schon als Modul 
mit ordentlichem GPS-Empfänger und Display. Akku mit Ladeteil wäre auch 
dabei. Kleines Flash-Filesystem könnte man auch einrichten oder eine 
externe SD-Karte. Verwende ich auch als GPS-Tracker.

von Christian M. (christian_m280)


Lesenswert?

Tim T. schrieb:
> Egal was du machst, nimm keinen PIC.

Ja klar, es gibt nur AVR in Deiner kleinen Scheinwelt!

Tim T. schrieb:
> Der xc8 Compiler ist Kernschrott.

Ja klar, es gibt nur C in Deiner kleinen Scheinwelt!

Gruss Chregu

von Frank K. (fchk)


Lesenswert?

Johan schrieb:
> Meine Schaltung besteht bisher (konzeptionell) aus einem ublox NEO-6M
> GPS-Modul und dem etwas in die Jahre gekommenen SIM800L GSM-Modul. Dazu
> käme noch etwas "Kleinkrempel" (Spannungsregelung [das SIM800L brauchst
> ja auch mal 2A Peaks], Level-shifting in den UARTS, usw.). Display,
> Lautsprecher & Mikro für Anrufe sind alle nicht vorgesehen.
>
> Der Gedanke dahinter ist, dass der uC je nach Konfiguration entweder auf
> SMS-Anfrage seinen Standort schickt, oder zeitbasiert alle x Minuten
> seinen Standort schickt.

Ich evaluiere für einen Kunden gerade das hier:
https://www.we-online.com/de/components/products/ADRASTEA-I
Da ist alles drin: LTE-M/NB-IOT, GPS, Applikationsprozessor, Peripherie. 
Du musst nur noch Stromversorgung, SIM und Antennen anschließen. LTE-M 
und NB-IOT sind extra für niedrige Datenraten und geringen 
Stromverbrauch optimiert.

Was ich auch schon eingesetzt habe:
https://www.quectel.com/product/lte-ec21-mini-pcie-series
Da ist alles drin, außer dem Applikationsprozessor. Das Modul ist im 
Mini-PCIe Formfaktor, hat aber keine PCIe-Lanes, sondern USB, UART und 
I2C, und damit ist das aus einer Mikrocontroller-Plattform problemlos 
nutzbar. Du kannst sogar mit AT-Befehlen TCP- oder HTTP-Verbindungen 
aufbauen, ohne einen IP-Stack selber zu implementieren. Ich habe mit für 
diesen Formfaktor entschieden, weil der Sockel einfacher zu verarbeiten 
ist als ein Auflötmodul, und weil ich bei Nichtverfügbarkeit einfach 
einen anderen Typ einsetzen kann. Format und Pinout sind ja 
standardisiert.

Früher (so vor 10-20 Jahren) hat man bei Stromspar-Anwendungen MSP430 
verwendet. Inzwischen können das andere genauso gut.

Den Mega328 würde ich gerade nicht nehmen. Altes Produkt, alter 
Halbleiterprozess, vergleichsweise schwache Ausstattung. Wenn überhaupt 
noch AVR, dann die neueren AVR128DA/DB/DD Serien. Die laufen nämlich 
auch bei 3.3V mit voller Geschwindigkeit, weil die in einem neueren 
Prozess gefertigt worden sind.

Ansonsten STM32L/STM32U 
(https://www.st.com/en/microcontrollers-microprocessors/stm32-ultra-low-power-mcus.html) 
oder SiLabs EFM32 (https://www.silabs.com/mcu/32-bit-microcontrollers). 
Die sind extra für solche Anwendungen gebaut worden.

fchk

von Peter D. (peda)


Lesenswert?

Frank K. schrieb:
> Den Mega328 würde ich gerade nicht nehmen.

Der ist doch weit verbreitet. Wenn Du dazu Fragen hast, können Dir viele 
helfen. Das ist oft ein viel besserer Vorteil, als unbedingt das letze 
MHz rauszuquetschen. Man kann für neue Projekte gleich den ATmega328PB 
nehmen, da abwärtskompatibel.
Die neueren AVRs haben z.B. beschränkte Timerfunktionen mit reduzierten 
Interruptquellen.

von Stephan S. (uxdx)


Lesenswert?

Ich werfe da mal den PIC16LF1825 (mit L) in den Ring, der braucht im 
Sleep-Mode bei 3 Volt nur etwa 40 nA bzw nur etwas über 2 µA wenn der 
Timer1 als RTC läuft, den Timer könnte man extern z.B. mit einem 
RV-3032-C7 auf 160 nA drücken.

von Klaus H. (hildek)


Lesenswert?

Bei der Frage werden die Antworten weit auseinander gehen. Ich z.B. 
bevorzuge die Tinyx5 und wenn ich mal mehr Pins brauche, den Tiny861; 
meine Programme sind eh nicht besonders umfangreich.

Bei den x4 und ebenso bei den 2313/4313 sind ein paar Wünsche offen 
geblieben und für die neueren mit dem TPI-Interface habe ich keine 
Umgebung.

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Johan schrieb:
> , aber der kostet
> auch schon wieder 2,50€

😳😱

Ne im Ernst, wenn du keine 100.000 davon produzieren wirst, ist es egal 
ob er 2,50€ oder 5€ kostet. Falls schon, würdest du auch keinen AVR 
benutzen sondern einen 35ct Microcontroller aus China.

Für 5€ (oder weniger) bekommst du einen ordentlichen STM32 mit viel 
Peripherie und vielen Megaherzen und kannst auch schön mit Breakpoints 
usw debuggen mit GDB aus VSCode heraus und deinem Code in C oder C++.

Nett sind zB die STM32L011, die schon recht viel können, aber noch 
günstig sind und auch in kleinen Gehäusen (zB TSSOP20) erhätlich sind.

Glaub neu sind jetzt sogar Varianten in SO-8

: Bearbeitet durch User
von Waldi M. (meyerwaldi)


Lesenswert?

Frank K. schrieb:
> Wenn überhaupt noch AVR, dann die neueren AVR128DA/DB/DD Serien

Das ist auch meine Meinung.
Zumal auch noch in DIP erhältlich wie vom TO gewünscht.

Johan schrieb:
> Level-shifting ...

 wär in der obigen DB Serie auch schon drin.

von Rainer W. (rawi)


Lesenswert?

Michael B. schrieb:
> Üblich in Trackern war SIM808, enthält schon GSM und GPS und einen 8052
> uC

Ob ein GSM-Modem eine gute Wahl ist, hängt vom Einsatzort ab. In vielen 
Ländern wird GSM nach mittlerweile über 30 Jahren abgeschaltet.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Peter D. schrieb:
> Der ist doch weit verbreitet.

Der ist abgekündigt.
Den PB Typen wirds noch länger geben.

: Bearbeitet durch User
von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Christian M. schrieb:
> Tim T. schrieb:
>> Egal was du machst, nimm keinen PIC.
>
> Ja klar, es gibt nur AVR in Deiner kleinen Scheinwelt!

Muss dich leider enttäuschen, AVR gibts bei mir nur fürs Hobby, 
beruflich sind es STM32 und leider immer noch PIC.

>
> Tim T. schrieb:
>> Der xc8 Compiler ist Kernschrott.
>
> Ja klar, es gibt nur C in Deiner kleinen Scheinwelt!

Nein, aber für µC neben ASM eigentlich schon, aber das willst du einem 
Neuling doch wirklich nicht mehr antun, oder?

von Peter (kaputteshirn)


Lesenswert?

Hi,

also AVR-8 Bit ist halt mega einfach. Simpler µC aufbau, simpler 
assembler, da ist ARM schon wesentlich aufwändiger allein in der 
Dokumentation ect.
Auch hat man schnell Assembler-Rountinen optimiert, wenn man wirklich 
deterministisch-zeitkritisch sein muss. Klar geht das mit ARM auch, nur 
finde ich mit 8-Bit PIC/AVR wesentlich übersichtlicher.

Stromaufnahme hängt von deinem Programmiervermögen ab, wie du Sleep 
verwaltest etc.. Immer schon alles so einstellen, dass wenig Strom 
verbraucht wird. Dazu gibts aber genügend Anleitungen von 
Atmel/Microchip, an was du alles denken musst.

Es gibt von Microchip eine Übersichtstabelle, in der du die Specs von 
AVR findest (allerdings etwas lückenhaft).

Und ich würde dir empfehlen die neusten Chips zu holen, egal ob Tiny, 
Mega oder XMega. Microchip hat seit der Übernahme von Atmel die DIEs 
optimiert, sodass der MEGA328P jetzt 20 MHz Clock kann, statt früher nur 
16Mhz.

Programmieroberfläche Atmel Studio 7 (Jetzt Microchip Studio 7). Ist 
kostenlos, compiler i.O. und Programmer kannst du über IDE einbinden.
Ein Pickkit 4 kostet, wenn man viel macht, auch nicht mehr die Welt, 
wenn man bedenkt, dass man damit (fast) alles machen kann.

hier findest du die aktuelle AVR Tabelle von Microchip:
https://ww1.microchip.com/downloads/aemDocuments/documents/MCU08/ProductDocuments/Brochures/AVR-Microcontrollers-Peripheral-Integration-30010135.pdf

von Peter (kaputteshirn)


Lesenswert?

Achso eines noch zu Punkto kosten:

die Versandkosten werden jenachdem wo du bestellst viel mehr ins Gewicht 
fallen.
Und bei mir wars bis jetzt meistens so, dass die größe des Flash/SRAM 
i.d.R. beim Preis die Rolle spielt, weniger die Architektur.

von Peter D. (peda)


Lesenswert?

Wim M. schrieb:
> sodass der MEGA328P jetzt 20 MHz Clock kann, statt früher nur
> 16Mhz.

Der ATmega328/P konnte schon immer 20MHz Quarz.
Der ATmega328PB kann aber 20MHz nur noch mit externem Oszillator, da der 
Full Swing Crystal Oscillator Mode entfallen ist.

von Wilhelm M. (wimalopaan)


Lesenswert?

Peter D. schrieb:
> Wim M. schrieb:
>> sodass der MEGA328P jetzt 20 MHz Clock kann, statt früher nur
>> 16Mhz.
>
> Der ATmega328/P konnte schon immer 20MHz Quarz.
> Der ATmega328PB kann aber 20MHz nur noch mit externem Oszillator, da der
> Full Swing Crystal Oscillator Mode entfallen ist.

Der 328 gehört doch nur wirklich zum ganz alten Eisen.

Beschäftige Dich mit den DA/DB. Das kann die interne Peripherie ne ganze 
Menge, die haben einen internen RC-Oszillator, der ausreichend genau 
ist, und für Bastler mit bis zu 32MHz stabil läuft.

Ansonsten nimm gleich einen STM32G4xx, hast dann auch eine FPU mit an 
Board, und CORDIC sowie DSP-Accelerator, und geht bis 170MHz ebenfalls 
mit dem internen Oszillator ausreichend genau.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Johan schrieb:
> möglichst stromsparend
Das macht vorrangig nicht der µC, sondern die Peripherie und das 
Programm. Wenig Strom brauchen alle halbwegs aktuellen µC, wenn sie im 
Sleep sind. Da kann es dann besser sein, statt dem kleinen 
"Stromsparenden" einen großen schnellen µC zu nehmen, der schnell mit 
den Berechnungen fertig ist.

> Ich möchte gerne einen uC für ein akkubetriebenen GPS-Tracker auswählen.
Du wirst viel lernen.

von Veit D. (devil-elec)


Lesenswert?

Peter D. schrieb:

> Die neueren AVRs haben z.B. beschränkte Timerfunktionen mit reduzierten
> Interruptquellen.

Das ist leider viel zu pauschal und damit leider falsch.
Die AVRxDB, die tinyAVR2 und die bald verfügbaren AVRxEA haben alle 
komplette  Interruptquellen. Die EA haben laut vorläufigen Manual bspw. 
unabhängig ihrer Größe immer 2xTCA, 4xTCB, 1xDAC, 3xUSART, 6 Event 
Kanäle usw. alles gleich. Wenn man einen TCD nicht benötigt ist EA 
ideal. Man muss keine zusätzlichen Kompromisse machen. Der EA hat z.Bsp. 
beim ADC noch mehr Interruptquellen als der DB. Egal was, dass geht weit 
über die Möglichkeiten eines 328P/PB hinaus. Das kann man beim besten 
Willen nicht kleinreden. Der einzigste Kritikpunkt ist beim TCB die 
fehlende Flexibilität der Prescaler. Mehr fällt mir nicht ein bei den 
Controllern.

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.