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:38] – [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 210: 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 246: 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 324: 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.1416166691.txt.gz · Zuletzt geändert: 2014-11-16 20:38 von 178.2.190.61