Uživatelské nástroje

Nástroje pro tento web


atmelavr

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

atmelavr [2015/12/10 17:45] – [USB HID] djbuldogatmelavr [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 10: Řádek 10:
     * čip nepotřebuje (jestli vůbec smí) externí zdroj napájení, napájí se přímo z ISP konektoru     * čip nepotřebuje (jestli vůbec smí) externí zdroj napájení, napájí se přímo z ISP konektoru
     * čip běží i s připojeným progrmátorem (pokud má zapojeny obě země). Při programování se akorát resetuje.     * čip běží i s připojeným progrmátorem (pokud má zapojeny obě země). Při programování se akorát resetuje.
 +
 +{{:usbasp-pinout.jpg?nolink&600|}}
 +
 +
   * chtěl jsem postupovat podle návodu na ABClinux, ale článek je už zastaralý. Používají tam paralelní programátor, který je úplně jiný než ten USBasp   * chtěl jsem postupovat podle návodu na ABClinux, ale článek je už zastaralý. Používají tam paralelní programátor, který je úplně jiný než ten USBasp
   * USBasp adaptér nemá podepsaný ovladač pro MS Windows, takže u třeba Win8 se musí nejprve vypnout kontrola podpisů u ovladačů. V Linuxu se to chytne hned, bez nějakých driverů   * USBasp adaptér nemá podepsaný ovladač pro MS Windows, takže u třeba Win8 se musí nejprve vypnout kontrola podpisů u ovladačů. V Linuxu se to chytne hned, bez nějakých driverů
Řádek 45: Řádek 49:
  
 avrdude done.  Thank you. avrdude done.  Thank you.
 +</code>
 +
 +  * pokud uživateli chybí oprávnění, lze přidat přes udev rules
 +
 +<code>
 +/etc/udev/rules.d/99-USBasp.rules 
 +# Set Group for USBasp
 +SUBSYSTEM=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", GROUP="djbuldog"
 </code> </code>
  
Řádek 163: Řádek 175:
   * asi nefunguje při připojeném programátoru. Musí být odpojen ISC konektor (stačí vytáhnout programátor z USB) a tím pádem přivedeno externí napájení (možná stačí odpojit ten reset pin)   * asi nefunguje při připojeném programátoru. Musí být odpojen ISC konektor (stačí vytáhnout programátor z USB) a tím pádem přivedeno externí napájení (možná stačí odpojit ten reset pin)
  
-  * led dioda připojena na pin 14 (PB0) přes rezistor 220R+  * LED dioda připojena na pin 14 (PB0) přes rezistor 220R
   * odpor 220R slouží k redukci napětí na LED diodě. Byl vypočítán pomocí ohmova zákonu. Pokud by se nepoužil, tak by LEDka asi umřela. LED má spotřebu cca 13mA. Odpor snižuje napětí na LED z 5V na zhruba 2.14V (220 * 0.013)   * odpor 220R slouží k redukci napětí na LED diodě. Byl vypočítán pomocí ohmova zákonu. Pokud by se nepoužil, tak by LEDka asi umřela. LED má spotřebu cca 13mA. Odpor snižuje napětí na LED z 5V na zhruba 2.14V (220 * 0.013)
 +
 +  * update: nejde o napětí ale o proud :) LED dioda i GPIO mají limit na max proud/napětí. [[electro_intro|Více info]]
 +  * v dokumentaci k čipu ATmega8 jsem nalezl následující nepřekročitelné limity **maximálního proudu**
 +<code>
 +DC Current per I/O Pin ....................................... 40.0mA
 +DC Current V CC and GND Pins................................. 300.0mA
 +</code>
   * použitý zdroják   * použitý zdroják
  
Řádek 190: Řádek 209:
   * řádek 7 tedy říká: nastav pin 0 portu B na hodnotu 0 a všechny ostatní nech jak byly   * řádek 7 tedy říká: nastav pin 0 portu B na hodnotu 0 a všechny ostatní nech jak byly
   * řádek 12: nastav na pinu PB0 opačnou hodnotu   * řádek 12: nastav na pinu PB0 opačnou hodnotu
- 
 ===== Test funkce Hall senzoru ===== ===== Test funkce Hall senzoru =====
  
Řádek 546: Řádek 564:
       * [[http://www.raphnet.net/electronique/usb_game12/index_en.php|Circuit for USB game controller with 12 inputs (8 buttons + 4 directions)]]        * [[http://www.raphnet.net/electronique/usb_game12/index_en.php|Circuit for USB game controller with 12 inputs (8 buttons + 4 directions)]] 
       * [[https://www.obdev.at/products/vusb/prjhid.html|další HID příklady]], [[http://rayshobby.net/hid-class-usb-serial-communication-for-avrs-using-v-usb/|priklad]]       * [[https://www.obdev.at/products/vusb/prjhid.html|další HID příklady]], [[http://rayshobby.net/hid-class-usb-serial-communication-for-avrs-using-v-usb/|priklad]]
- 
-  * [[http://www.fourwalledcubicle.com/LUFA.php|LUFA]]  
-    * Lightweight USB Framework for AVRs, formerly known as MyUSB 
-    * mělo by být svobodnější.. nenašel jsem pořádný ucelený návod 
-    * http://www.fourwalledcubicle.com/files/LUFA/Doc/140928/html/_page__l_u_f_a_powered_projects.html 
-    * [[http://www.waitingforfriday.com/index.php/USB_Generic_HID_Open_Source_Framework_for_Atmel_AVR_and_Windows|The USB Generic HID Open Source Framework]] - tohle je asi priklad vyyuziti LUFA jako HID :) 
-    * nějaký getting start blog [[http://cholla.mmto.org/computers/avr/usb/lufa/|http://cholla.mmto.org/computers/avr/usb/lufa/]] 
  
   * projekty bez knihovny (vesměs pouze assembler)   * projekty bez knihovny (vesměs pouze assembler)
Řádek 561: Řádek 572:
     * [[http://www.vutbr.cz/www_base/zav_prace_soubor_verejne.php?file_id=27737|programování USB HID ovladače s rotačním enkodérem na MCU PIC, Na začátku je srovnání s Atmel AVR USB MCU]]     * [[http://www.vutbr.cz/www_base/zav_prace_soubor_verejne.php?file_id=27737|programování USB HID ovladače s rotačním enkodérem na MCU PIC, Na začátku je srovnání s Atmel AVR USB MCU]]
       * [[http://www.atmel.com/images/doc7707.pdf|AT90USB162]] - používá se i v [[https://www.pjrc.com/teensy/schematic.html|Teensy]]       * [[http://www.atmel.com/images/doc7707.pdf|AT90USB162]] - používá se i v [[https://www.pjrc.com/teensy/schematic.html|Teensy]]
-      * viz http://www.atmel.com/products/microcontrollers/avr/megaavr.aspx+      * viz [[http://www.atmel.com/products/microcontrollers/avr/megaavr.aspx|Seznam všech AVR chipů]] (stačí koukat po těch s USB controllerem) 
 + 
 +  * [[http://www.fourwalledcubicle.com/LUFA.php|LUFA]]  
 +    * Lightweight USB Framework for the **USB-enabled** Atmel AVR8, formerly known as MyUSB 
 +    * původně jsem myslel, že jde o konkurenci k V-USB, ale evidentně jde jen o framework pro AVR USB HW 
 +    * má hodně volnou licenci..  
 +    * http://www.fourwalledcubicle.com/files/LUFA/Doc/140928/html/_page__l_u_f_a_powered_projects.html 
 +    * [[http://www.waitingforfriday.com/index.php/USB_Generic_HID_Open_Source_Framework_for_Atmel_AVR_and_Windows|The USB Generic HID Open Source Framework]] - tohle je asi priklad vyyuziti LUFA jako HID :) 
 +    * nějaký getting start blog [[http://cholla.mmto.org/computers/avr/usb/lufa/|http://cholla.mmto.org/computers/avr/usb/lufa/]] 
 + 
 ===== Test V-USB ===== ===== Test V-USB =====
  
Řádek 581: Řádek 602:
         * při signalizování 1 bere obvod výrazně vyšší proud než při 0, což může způsobit podivné chování         * při signalizování 1 bere obvod výrazně vyšší proud než při 0, což může způsobit podivné chování
         * je potřeba zvolit low power diody a raději chování diody při 1/0 přeměřit (napětí při 1 = 3.3V, proud obvodu < 500uA)         * je potřeba zvolit low power diody a raději chování diody při 1/0 přeměřit (napětí při 1 = 3.3V, proud obvodu < 500uA)
 +
 +{{ :v-usb-hw.gif |}}
  
   * [[http://vusb.wikidot.com/usb-device-classes|USB třídy]]   * [[http://vusb.wikidot.com/usb-device-classes|USB třídy]]
Řádek 738: Řádek 761:
  
   * nápady   * nápady
 +    * zkusit deskriptor z happy pedals :)
     * zachytit HID deskriptor a zkontrolovat, že není třeba zmršenej :)     * zachytit HID deskriptor a zkontrolovat, že není třeba zmršenej :)
     * zachytit HID deskriptor z logitech joysticku... zajímalo by mě, co to přesně posílá (pro porovnání)     * zachytit HID deskriptor z logitech joysticku... zajímalo by mě, co to přesně posílá (pro porovnání)
Řádek 745: Řádek 769:
     * 1x 16bit osa, 16x tlačítko     * 1x 16bit osa, 16x tlačítko
       * zapsat hodnoty autokalibrace z GUI, z jcal, chování s autokalibrácí, chování při 0 kalibraci, chování ve winxp/w7 - zda celý range při továrním       * zapsat hodnoty autokalibrace z GUI, z jcal, chování s autokalibrácí, chování při 0 kalibraci, chování ve winxp/w7 - zda celý range při továrním
-^ log min/max ^ variable type ^ start + inc ^ alg notice ^ note ^+ 
 +^ log min/max ^ variable type ^ start + inc ^ alg notice ^
 | 32k/32 | int16_t | -32k + 100 | pak to přeteče a půjde od -32k | | 32k/32 | int16_t | -32k + 100 | pak to přeteče a půjde od -32k |
 | 0/32k | uint16_t | 0 + 100 | nejvyšší bit vždy nulový &7fff | | 0/32k | uint16_t | 0 + 100 | nejvyšší bit vždy nulový &7fff |
Řádek 759: Řádek 784:
 ===== Plány ===== ===== Plány =====
  
-  * vyzkoušet ADC převodník [[http://winavr.scienceprog.com/atmel-avr-microcontrollers/analog-to-digital-conversion-in-avr.html|úvod]], [[http://maxembedded.com/2011/06/the-adc-of-the-avr/|podrobnější]]+  * zdokumentovat/vyzkoušet ADC převodník [[http://winavr.scienceprog.com/atmel-avr-microcontrollers/analog-to-digital-conversion-in-avr.html|úvod]], [[http://maxembedded.com/2011/06/the-adc-of-the-avr/|podrobnější]]
     * s hall senzorem     * s hall senzorem
     * s potenciometrem     * s potenciometrem
Řádek 767: Řádek 792:
     * 1x tlačítko (parkovací brzda)     * 1x tlačítko (parkovací brzda)
     * 2x rotační enkodéry včetně tlačítka (trimování + reset)     * 2x rotační enkodéry včetně tlačítka (trimování + reset)
 +
 +  * test SPI
 +    * http://maxembedded.com/2013/11/the-spi-of-the-avr/
 +    * slave bude atmega8
 +    * master bude arduino nebo raspi... 
 +    * slave bude obsahovat hodnotu X podle otáčení rotačního enkodéru
 +    * master tuhle hodnotu vypíše (terminal raspi nebo serial monitor arduino
 +    * rozšíření:
 +      * master si řekne, která hodnota ho zajímá... roten jedna nebo dvě? :)
  
   * druhý projekt :)   * druhý projekt :)
     * využít [[http://ardref.svglobe.com/dwnld.html|dataref library]] pro komunikaci s XPL     * využít [[http://ardref.svglobe.com/dwnld.html|dataref library]] pro komunikaci s XPL
     * raspberry PI jako klient dataref pluginu     * raspberry PI jako klient dataref pluginu
-      * přes IC2/SPI bude komunikovat s druhým MCU +      * přes [[http://bastleni.edev.cz/clanky/avr/79-sbernice-i2c.html|I2C]]/SPI/UART bude komunikovat s druhým MCU 
-      * mohl by mít dokonce monitor na zobrazení přístrojů+      * mohl by mít dokonce monitor na zobrazení přístrojů pomocí Slava
     * vyzkoušet maticové zapojení tlačítek a enkodérů (MCU má málo pinů)     * vyzkoušet maticové zapojení tlačítek a enkodérů (MCU má málo pinů)
     * MCU bude ovládat     * MCU bude ovládat
Řádek 778: Řádek 812:
       * 12 tlačítek/přepínačů?       * 12 tlačítek/přepínačů?
       * 3x axis... throtle, natočení vrtule, směs?       * 3x axis... throtle, natočení vrtule, směs?
-      *  
  
 ===== Zdroje ===== ===== Zdroje =====
atmelavr.1449765921.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki