Mikrocontroller
In diesem Bereich geht um Microcontroller. Ende 2010 habe ich mit dem AVR Net IO (ATMega32) von Pollin begonnen. Mittlerweile habe ich Erfahrungen mit anderen AVR Chips (ATTiny13), mit Arduino und mit der NodeMCU mit einem ESP8266.
Blogbeiträge
Transistor als Schalter
Veröffentlicht: 10.04.2021Oft muss man mit niedrigen Spannungen größere Spannungen schalten. Folgende Anwendungen habe ich:
- 3.3V am GPIO des Raspberry Pi schalten eine Spannung von 5 V (die z.B. von der Versorgungsspannung des Raspberry genommen wird)
- 3.3V am GPIO des ESP8266 Node MCU schalten eine Spannung von 12 V (externes Netzgerät)
Ich habe folgende Schaltung mit 2N2222 Transistor verwendet. Dabei muss man einzig…
USBasp Treiber unter Windows 10
Veröffentlicht: 03.06.2020Um den Mikrocontroller-Chip zu flashen benötigt man einen Programmer. Diese basieren meist auf dem USBasp (z.B. von Thomas Fischl). Schließt man den Programmer unter Windows 10 am USB Port an und versucht den Treiber zu verwenden, erhält man die Fehlermeldung, dass der Treiber nicht digital signiert sei.
Um das zu umgehen, kann man
- in den Windows-Einstellungen die digitale Signatur ignorieren
- de…
AVR Toolchain
Veröffentlicht: 03.06.2020Hier beschreibe ich nochmal Schritt für Schritt wie man die Firmware auf den Chip hochlädt. Dabei verwende ich einen USB-Programmer vom Typ USBasp.
Treiber für den USB-Programmer installieren
Details habe ich in hier beschrieben.
Compiler installieren
Man könnte sich natürlich entscheiden, AVR Studio installieren (z.B. WinAVR) aber ich habe mich entschieden, Arduino zu installieren. Das IDE von…
ESP8266 mit Programmer flashen
Veröffentlicht: 27.08.2018Leider ist der serielle Chip auf meinem ESP8266 Node MCU defekt. Wenn ich ihn über den USB Anschluss mit dem Computer verbinde, wird keinerlei USB Gerät erkannt. Folglich gibt es auch keinen COM-Port über den man die Firmware auf den Chip flashen kann.
Allerdings besitze ich noch einen USB Programmer vom Typ CP2102. Diesen habe ich wie folgt mit dem NodeMCU verbunden:
CP2101 | NodeMCU |
---|---|
VCC | 3… |
ESP8266: Feinstaubsensor gebaut
Veröffentlicht: 03.12.2017Ich habe mir gemäß dieser Anleitung einen Feinstaubsensor gebaut: http://luftdaten.info/feinstaubsensor-bauen
…Porterweiterungen im Vergleich
Veröffentlicht: 07.04.2017Oft reicht bei Projekten die Anzahl der verfügbaren Ports nicht aus. Daher habe ich mir mal drei verschiedene Typen von Porterweiterungen angeschaut.
Portexpander PCF8574
Wird über den I2C-Bus gesteuert und dank Jumpern auf dem Board können bis zu 8 von diesen Modulen auf einem I2C-Bus verwendet werden. Leider ist sind auf dem Chip keine echten GPIOs: Auf den Ein/Ausgängen ist der Pull-Up-Widerst…
Anschluss eines Tasters
Veröffentlicht: 18.01.2014Die Anschlusspins PB1 und PB3 der Taster sind standardmäßig auf High (Pullup).
…Stromzähler auslesen
Veröffentlicht: 16.01.2013Leider ist mein Haus (Baujahr 2010) noch mit Ferrais-Zählern ausgestattet. Leider kann man nur kostenpflichtig Digitalzähler eingebaut bekommen. Daher habe ich nach langem Abwarten beschlossen, das silberne Rädchen mit dem roten Strich auszulesen. Dazu verwende ich ein Foto-Reflex-Optokoppler vom Typ CNY70. Beim Aufbau habe ich mich an diverse Anleitungen im Internet gehalten:
- Strippenstrolch lief…
Temperatursensor DS18S20
Veröffentlicht: 01.05.2011Die Temperatursensoren beinhalten einen interenen AD-Wandler und übermitteln die Daten mit dem One-Wire-Protokoll. Dies ermöglicht es, mehrere (bis zu 8) Sensoren an einen Digital-Eingang des Atmega zu legen.
Zwei Anschlussmöglichkeiten: Normaler Modus = 3 Leitungen, Parasitärer Modus = 2 Leitungen (mit VCC über Datenleitung).
Ethersex unterstützt dieses One-Wire-Protokoll, siehe http://www.gtkdb…
Atmega: Codebeispiel zum Interrupt abfragen
Veröffentlicht: 01.04.2011Elegant ist es, einen Tastendruck oder das digitale Signal des Stromzählers mittels Interrupt in einen Counter auf dem Mikrocontroller zu übertragen.
Meist löst ein Flankenwechsel auf einem der Eingänge einen Interrupt aus. Man muss allerdings noch später herausfinden, auf welchem Eingang ein Flankenwechsel stattgefunden hat.
Hierzu folgender Beispielcode:
ISR (PCINT0_vect) //…
Atmega: Bootloader
Veröffentlicht: 01.03.2011Was ist ein Bootloader?
Der Bootloader wird benötigt, wenn man kein ISP-Kabel zum Flashen hat oder ein Update der Firmware im laufenden Betrieb vornehmen möchte. Siehe z.B. http://de.wikipedia.org/wiki/Bootloader
Bootloader von Pollin
Der Original-Bootloader von Pollin ist meiner Meinung nach nicht wirklich praktikabel und taugt nur für die ersten Experimente. Außerdem ist er ja auch nur auf dem…
Atmega: Firmware flashen
Veröffentlicht: 01.02.2011Mit UsbAsp von Fischl und dem Atmega644 auf dem AVRNetIO:
avrdude -p m644 -c usbasp -v -P usb -U flash:w:"ethersex.hex":i
Mit einem Noname ISP-Programmer, z.B. auf einen Attiny13:
avrdude -p t13 -c usbasp -U flash:w:xxx.hex…
Atmega: Fuses setzen
Veröffentlicht: 01.01.2011Hilfreich ist dieser Fuse-Calculator .
Mit UsbAsp von Fischl kann man mit folgenden Befehlen programmieren.
L-Fuse (=die gefährlichste, weil hier die Frequenz eingestellt wird). Mit untenstehenden Einstellungen läuft der Chip ATMega644 auf dem AVR Net IO Board von Pollin mit 16 Mhz.
avrdude -p m644 -c usbasp -v -P usb -U lfuse:w:0xff:m
H-Fuse legt die Bootloader-Adresse und dessen Größe fest.…