Arduino: Unterschied zwischen den Versionen

Aus Matthias Wiki
Zur Navigation springen Zur Suche springen
 
(10 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
===Links===
===Links===
*[http://skpang.co.uk/blog/archives/323 Schnelleres GPIO auf dem Arduino]
*[http://skpang.co.uk/blog/archives/323 Schnelleres GPIO auf dem Arduino]
*[https://techmike1985.wordpress.com/2013/06/10/74hc595-schieberegister-grundlagen Schieberegister 74HC595]
*[http://www.nongnu.org/avr-libc/user-manual/inline_asm.html Inline Assembler]
**[https://ucexperiment.wordpress.com/2013/06/03/gcc-inline-assembler-cookbook Beispiele]
*[http://ewiki.e-dschungel.de/software/avr-gcc Konstanten im Flash ablegen]
*[http://ewiki.e-dschungel.de/software/avr-gcc Konstanten im Flash ablegen]
*[https://ucexperiment.wordpress.com/2015/03/31/avr-gcc-fixed-point-vs-floating-point-comparison Fixed Point Zahlen in C]
*[https://ucexperiment.wordpress.com/2015/03/31/avr-gcc-fixed-point-vs-floating-point-comparison Fixed Point Zahlen in C]
Zeile 9: Zeile 10:
===Links zu Peripherie===
===Links zu Peripherie===
*[http://www.elecfreaks.com/wiki/index.php?title=2.4G_Wireless_nRF24L01p_with_PA_and_LNA nRF24L01 wireless tranceiver]
*[http://www.elecfreaks.com/wiki/index.php?title=2.4G_Wireless_nRF24L01p_with_PA_and_LNA nRF24L01 wireless tranceiver]
*[http://gizmosnack.blogspot.ch/2013/04/tutorial-nrf24l01-and-avr.html Tutorial nRF24L01 and AVR]
*[http://mcuoneclipse.com/2013/07/20/tutorial-ultra-low-cost-2-4-ghz-wireless-transceiver-with-the-frdm-board Very detailed tutorial for nRF24L01]
*[https://www.sdcard.org/downloads/pls Secure Digital (SD) Card Simplified Spec]
*[http://www.chlazza.net/sdcardinfo.html Secure Digital (SD) Card Spec and Info]
*[http://elm-chan.org/docs/mmc/mmc_e.html How to Use MMC/SDC]
*[https://www.pjrc.com/tech/8051/ide/fat32.html Understanding FAT32 Filesystems]
*[https://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html FAT-Filesystem]
*[https://technet.microsoft.com/en-us/library/cc776720(v=ws.10).aspx How FAT works]
*[https://techmike1985.wordpress.com/2013/06/10/74hc595-schieberegister-grundlagen Schieberegister 74HC595]
*[http://www.mikrocontroller.net/articles/WS2812_Ansteuerung Ansteuerung des WS2812]


==Arduino als In-System-Programmierer==
==Arduino als In-System-Programmierer==
Zeile 25: Zeile 36:
*[http://www.martyncurrey.com/arduino-atmega-328p-fuse-settings Gute Beschreibung einzelner Fuse-Bits]
*[http://www.martyncurrey.com/arduino-atmega-328p-fuse-settings Gute Beschreibung einzelner Fuse-Bits]
*[http://www.atmel.com/images/doc2545.pdf Datenblat ATMega168]
*[http://www.atmel.com/images/doc2545.pdf Datenblat ATMega168]
*[http://www.kreatives-chaos.com/artikel/avr-grundschaltungen AVR-Grundschaltungen]
*[http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung#Schritt_1_-_Konfiguration_der_Projekteinstellungen Anleitung für Booloader]
*[http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung#Schritt_1_-_Konfiguration_der_Projekteinstellungen Anleitung für Booloader]
*[https://de.wikipedia.org/wiki/Intel_HEX Intel Hex-Format]
*[https://de.wikipedia.org/wiki/Intel_HEX Intel Hex-Format]

Aktuelle Version vom 15. Februar 2017, 08:28 Uhr

Arduino allgemein[Bearbeiten]

Links[Bearbeiten]

Links zu Peripherie[Bearbeiten]

Arduino als In-System-Programmierer[Bearbeiten]

Links[Bearbeiten]

Beschreibung[Bearbeiten]

  • ArduinoISP arbeitet mit 19200bps
  • ATMega besser mit Quartz laufen lassen, ansonsten funktioniert möglicherweise die Kommunikation via SPI nicht
  • Achtung, Taktgeber nicht auf "external Clock" einstellen, dann muss der Takt von außen aktiv vorgegeben werden. Hilfe gibt es hier

Chip erase[Bearbeiten]

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -e

Lesen/Schreiben von Fuses für ATMega168[Bearbeiten]

Read fuses:

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf

Write fuses:

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U lfuse:w:0xXX:m -U hfuse:w:0xXX:m -U efuse:w:0xXX:m

Werte für Fuses:

Funktion lfuse hfuse efuse
interner Oszillator mit "clock division" (default) 0x62
interner Oszillator ohne "clock division" 0xe2
externer Oszillator ohne "clock division" 0xff
externer Oszillator mit "clock division" 0x7f
externer Oszillator "full swing" 0xf7
sichere High-Fuse (default) 0xdf
kein Bootloader (default) 0xf9
1kb Bootloader 0xf8

Locking[Bearbeiten]

Dokumentation zu den Lock-Bits ist sehr dürftig. Über die Lock-Bits kann man sich aus dem Chip auch aussperren.

Entsperren:

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U lock:w:0x3F:m

Sperren:

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U lock:w:0x0F:m

Flashen[Bearbeiten]

Schreiben:

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U flash:w:flash.hex:i

Auch das EEPROM kann ausgelesen werden: "eeprom" anstelle von "flash"

Lesen:

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U flash:r:flash.hex:i

Auch das EEPROM kann beschrieben werden: "eeprom" anstelle von "flash"

Quadrokopter[Bearbeiten]

Siehe Quadrokopter