Benutzer-Werkzeuge

Webseiten-Werkzeuge


project:tinymega

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
project:tinymega [2014-11-16 20:01] – [Linux: avr-gcc] 178.2.190.61project:tinymega [2020-04-20 21:50] (aktuell) dop3j0e
Zeile 88: Zeile 88:
 ====== Dokumentation ====== ====== Dokumentation ======
  
-[[http://www.atmel.com/Images/doc7766.pdf|ATmega32U4 Datenblatt]]+[[http://www.atmel.com/images/atmel-7766-8-bit-avr-atmega16u4-32u4_datasheet.pdf|ATmega32U4 Datenblatt]]
  
 ===== Spannungsversorgung ====== ===== Spannungsversorgung ======
Zeile 94: Zeile 94:
 Der TinyMega v1 ist auf 5V aus dem USB festgelegt. Betrieb mit eigener Spannungsversorgung unabhängig vom USB ist natürlich möglich, aber gefährlich, wenn der TinyMega ausserdem an den USB angeschlossen werden soll, denn es besteht keinerlei Trennung zwischen VUSB und VDD. Der TinyMega v1 ist auf 5V aus dem USB festgelegt. Betrieb mit eigener Spannungsversorgung unabhängig vom USB ist natürlich möglich, aber gefährlich, wenn der TinyMega ausserdem an den USB angeschlossen werden soll, denn es besteht keinerlei Trennung zwischen VUSB und VDD.
  
-Beim TinyMega v2 ist Platz für einen Spannungsregler vorgesehen, mit dem die USB-Versorgungsspannung von 5V auf jede beliebige kleinere Spannung geregelt werden kann, z.b. wenn man einen Haufen 3,3V-Logik steuern will und keine Lust auf Pegelwandler überall hat. Die gesampte Platine und auch ihr VDD-Pin hängen am Ausgang des Spannungswandlers. Beim 3,3V-Betrieb muss darauf geachtet werden, dass der ATmega dann nur bis 8MHz verträgt, also den Taktteiler besser nicht auf 1 setzen ;)+Beim TinyMega v2 ist Platz für einen Spannungsregler vorgesehen, mit dem die USB-Versorgungsspannung von 5V auf jede beliebige kleinere Spannung geregelt werden kann, z.b. wenn man einen Haufen 3,3V-Logik steuern will und keine Lust auf Pegelwandler überall hat. Die gesamte Platine und auch ihr VDD-Pin hängen am Ausgang des Spannungswandlers. Beim 3,3V-Betrieb muss darauf geachtet werden, dass der ATmega dann nur bis 8MHz verträgt, also den Taktteiler besser nicht auf 1 setzen ;)
  
 Wird die normale USB-Versorgungsspannung von 5V benötigt, kann der Spannungsregler weggelassen werden und die Lötbrücke "VDD=VUSB" muss geschlossen werden. Das geht auch bei eingebautem Spannungsregler; der verträgt es ohne Probleme, überbrückt zu werden. Wird die normale USB-Versorgungsspannung von 5V benötigt, kann der Spannungsregler weggelassen werden und die Lötbrücke "VDD=VUSB" muss geschlossen werden. Das geht auch bei eingebautem Spannungsregler; der verträgt es ohne Probleme, überbrückt zu werden.
Zeile 140: Zeile 140:
   * [[http://winavr.sourceforge.net/|WinAVR]]   * [[http://winavr.sourceforge.net/|WinAVR]]
   * [[http://avr-eclipse.sourceforge.net/|AVR Eclipse Plugin]]   * [[http://avr-eclipse.sourceforge.net/|AVR Eclipse Plugin]]
-  * Damit Windows den Bootloader erkennt, muss ein {{:project:tinymega:atm32u4dfu.zip|libusb-basierter Treiber}} installiert werden:  +  * Zum Flashen wird [[https://www.microchip.com/developmenttools/ProductDetails/flip|FLIP]] benutzt 
-    * Wer fremden ZIPs nicht vertraut, kann sich den Treiber auch selbst erstellen: +  * Damit Windows den Bootloader erkenntmuss ein Treiber installiert werden. Dieser ist im Installer von FLIP enthalten und sollte automatisch installiert werden.
-      - Neueste [[http://sourceforge.net/projects/libusb-win32/|libusb-win32]] runterladen und auspacken +
-      - TinyMega anschliessen und bin/inf-wizard.exe starten +
-      - Den Anweisungen folgendabei das Gerät "ATm32U4DFU" auswählen +
-      - Der INF-Wizard schreibt eine .inf-Datei, die als Treiber verwendet werden kann +
-  * Zum Flashen wird [[http://www.atmel.com/tools/FLIP.aspx|FLIP]] benutzt+
  
 ==== FLIP ==== ==== FLIP ====
Zeile 181: Zeile 176:
     Im selben Menü: Tastatur-> Pop-up => in "Befehl mit folgendem inhalt anzeigen" nach "Extras.ExternerBefehl1" suchen     Im selben Menü: Tastatur-> Pop-up => in "Befehl mit folgendem inhalt anzeigen" nach "Extras.ExternerBefehl1" suchen
     Gewünschte Tastenkobi zuweisen (F5 empfielt sich da sich der deugger mit dem tiny mega eh nicht nutzen lässt)     Gewünschte Tastenkobi zuweisen (F5 empfielt sich da sich der deugger mit dem tiny mega eh nicht nutzen lässt)
-===== Linux: avr-gcc =====+===== Linux: avr-gcc ==== 
  
   * Zum Flashen tut's das Paket [[http://sourceforge.net/projects/dfu-programmer/|dfu-programmer]]   * Zum Flashen tut's das Paket [[http://sourceforge.net/projects/dfu-programmer/|dfu-programmer]]
Zeile 188: Zeile 184:
     # sudo dfu-programmer atmega32u4 flash filename.hex     # Programmiert filename.hex in den Controller     # sudo dfu-programmer atmega32u4 flash filename.hex     # Programmiert filename.hex in den Controller
     # sudo dfu-programmer atmega32u4 start                  # Startet die Anwendung     # sudo dfu-programmer atmega32u4 start                  # Startet die Anwendung
-     + 
-  * Mann kann aber auch inzwischen AVRdude(Version 6.1) verwenden+  * Mann kann aber auch inzwischen AVRdude(Version 6.1) verwenden. **Achtung**: AVRdude startet die Anwendung nicht automatisch, man muss also danach Reset drücken, um das Programm zu starten  
     # sudo avrdude -c flip1 -U flash:w:filename.hex         # Programmiert filename.hex in den Controller     # sudo avrdude -c flip1 -U flash:w:filename.hex         # Programmiert filename.hex in den Controller
-    Achtung: AVRdude startet die Anwendung nicht automatisch, man muss also danach Reset drücken, um das Programm zu starten + 
 + 
 + 
 + 
 ===== Hello World für den TinyMega ===== ===== Hello World für den TinyMega =====
  
Zeile 205: Zeile 205:
 int main() { int main() {
     // internen clock teiler deaktivieren     // internen clock teiler deaktivieren
-    cli(); // clear interrupts 
     clock_prescale_set(clock_div_1);     clock_prescale_set(clock_div_1);
-    MCUCR = (1 << JTD); //jtag ausschalten 
-    MCUCR = (1 << JTD); //this need to be executed twice  
     sei(); // set interrupts     sei(); // set interrupts
  
Zeile 241: Zeile 238:
 # dfu-programmer atmega32u4 start</code> # dfu-programmer atmega32u4 start</code>
  
-Jetzt sollte die rote LED auf dem Entwicklungsboard blinken.+oder: 
 + 
 +<code># sudo avrdude -c flip1 -U flash:w:helloworld.hex</code> 
 + 
 + 
 +Jetzt sollte die rote LED auf dem Entwicklungsboard blinken (wenn man avrdude benützt hat, muss man den Mikrocontroller noch einmal resetten).
 ==== Makefile ==== ==== Makefile ====
-Für die obige Toolchain gibt es auch ein einfaches Makefile:+Für die obige Toolchain gibt es auch ein einfaches Makefile (für dfu-programmer):
  
 <file>AVR_CHIP = atmega32u4 <file>AVR_CHIP = atmega32u4
Zeile 319: Zeile 321:
 } }
 </file> </file>
-====Linksammlung====+=====Linksammlung=====
   * [[http://www.radiolocman.com/shem/schematics.html?di=112213|Atmega32U4 RAW HID Device]]   * [[http://www.radiolocman.com/shem/schematics.html?di=112213|Atmega32U4 RAW HID Device]]
   * [[http://fourwalledcubicle.com/LUFA.php|Lufa USB-Libary]]   * [[http://fourwalledcubicle.com/LUFA.php|Lufa USB-Libary]]
 +  * [[http://www.atmel.com/Images/megaUSB_DFU_Bootloaders.zip|bootloader hex file]]
project/tinymega.1416164482.txt.gz · Zuletzt geändert: 2014-11-16 20:01 von 178.2.190.61