Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2016:cc2500-hid

Rozdíly

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

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2016:cc2500-hid [2017/01/15 14:29]
Stanislav Rozum [Systém bezdrátových herních ovladačů]
2016:cc2500-hid [2017/01/15 22:30] (aktuální)
Stanislav Rozum [Úvod]
Řádek 1: Řádek 1:
 ====== Systém bezdrátových herních ovladačů ====== ====== Systém bezdrátových herních ovladačů ======
-Vypracoval Stanislav Rozum. ​-hotovo (98%)+Vypracoval Stanislav Rozum.
  
 **Kompletní zdrojové kódy pro Keil uVision5 jsou ke {{ :​2016:​cc2500-hid:​mpoa_xrozum00.zip |stažení zde}}.** **Kompletní zdrojové kódy pro Keil uVision5 jsou ke {{ :​2016:​cc2500-hid:​mpoa_xrozum00.zip |stažení zde}}.**
 +\\ Záznam komunikace z logického analyzátoru pro program Saleae Logic v1.2.10 {{ :​2016:​cc2500-hid:​logic_1-2-10.zip |lze stáhnout zde}}.
 ---- ----
 ===== Zadání ===== ===== Zadání =====
Řádek 14: Řádek 15:
 Nakonec bude implementována komunikace s počítačem prostřednictvím rozhraní USB pracující ve třídě HID. Nakonec bude implementována komunikace s počítačem prostřednictvím rozhraní USB pracující ve třídě HID.
  
-Pro realizaci budou použity vývojové kity STM32F429IDISCOVERY jako master jednotka a STM32F4DISCOVERY jako ovladač.+Pro realizaci budou použity vývojové kity STM32F429IDISCOVERY jako master jednotka a STM32F4DISCOVERY jako ovladač. Inicializační kód a drivery k perifériím byly vygenerovány pomocí STM32CubeMX.
 Připojení vodičů z testovacího modulu na vývojové kity bude provedeno podle následující tabulky: Připojení vodičů z testovacího modulu na vývojové kity bude provedeno podle následující tabulky:
 |             ^ STM32F429IDISCOVERY ​          ​^ ​ STM32F4DISCOVERY ​         ^ |             ^ STM32F429IDISCOVERY ​          ​^ ​ STM32F4DISCOVERY ​         ^
Řádek 27: Řádek 28:
 Komunikovat s CC2500 je možné přes rozhraní SPI. Kmitočet hodinového signálu byl zvolen 2,625 Mbit/s aby mohly být posílány data v burstech. Maximální pracovní kmitočet pro přístup v burstech je  podle [1] stanoven na 6,25 Mbit/s, ovšem i při 5,25 Mbit/s docházelo k shiftnutí některých bytů o jeden bit, případně k nastavení bitů do 1 na pozici LSB, bitový posun by mohl být způsoben propojovacími vodiči mezi rádiovým modulem a mikrokontrolérem při vyšších kmitočtech. Pokud by SPI master nepracoval v burst módu, mohl by být hodinový kmitočet vyšší (jednotlivé byty odděleny CS enable/​disable a nečinné úseky v hodinovém signálu), ale z časového hlediska vychází burst (dlouhý blok dat s nepřetržitým hodinovým signálem) lépe. Komunikovat s CC2500 je možné přes rozhraní SPI. Kmitočet hodinového signálu byl zvolen 2,625 Mbit/s aby mohly být posílány data v burstech. Maximální pracovní kmitočet pro přístup v burstech je  podle [1] stanoven na 6,25 Mbit/s, ovšem i při 5,25 Mbit/s docházelo k shiftnutí některých bytů o jeden bit, případně k nastavení bitů do 1 na pozici LSB, bitový posun by mohl být způsoben propojovacími vodiči mezi rádiovým modulem a mikrokontrolérem při vyšších kmitočtech. Pokud by SPI master nepracoval v burst módu, mohl by být hodinový kmitočet vyšší (jednotlivé byty odděleny CS enable/​disable a nečinné úseky v hodinovém signálu), ale z časového hlediska vychází burst (dlouhý blok dat s nepřetržitým hodinovým signálem) lépe.
  
-Změnu vnitřních stavů CC2500 je možné provádět pomocí strobe příkazů a operace s registry se provádí zápisem a čtením registrů, kdy v SPI komunikaci po aktivování CS je odeslána adresa registru a v dalším bytu jsou pro zápis odeslány data po lince MOSI, popřípadě pro čtení jsou přijímány bity po vodiči MISO. Osazený modul A2500R24C je na obrázku 1, redukci na 2,54 mm mikro BUS, kde jsou připojeny propojovací vodiče podle popisku ​zobrazuje obrázek 2. Anténu lze použít libovolnou pro 2,4 GHz, nejlépe však všesměrovou.+Změnu vnitřních stavů CC2500 je možné provádět pomocí strobe příkazů a operace s registry se provádí zápisem a čtením registrů, kdy v SPI komunikaci po aktivování CS je odeslána adresa registru a v dalším bytu jsou pro zápis odeslány data po lince MOSI, popřípadě pro čtení jsou přijímány bity po vodiči MISO. Osazený modul A2500R24C je na obrázku 1, redukci na 2,54 mm mikro BUS, kde jsou připojeny propojovací vodiče podle popisků ​zobrazuje obrázek 2. Anténu lze použít libovolnou pro 2,4 GHz, nejlépe však všesměrovou.
  
 {{ 2016:​cc2500-hid:​cc2500.jpg?​115 }} \\ {{ 2016:​cc2500-hid:​cc2500.jpg?​115 }} \\
Řádek 179: Řádek 180:
  
 Nepřijde-li poll paket do ovladače 10x po sobě, předpokládá se, že master jednotka byla vypnuta nebo restartována a proto se ukončí vysílaní ovladače a začne se hledat poll packet znovu. Jakmile se nalezne, synchronizace je obnovena a ovladač může opět komunikovat. Nepřijde-li poll paket do ovladače 10x po sobě, předpokládá se, že master jednotka byla vypnuta nebo restartována a proto se ukončí vysílaní ovladače a začne se hledat poll packet znovu. Jakmile se nalezne, synchronizace je obnovena a ovladač může opět komunikovat.
 +
 +==== Ovladač ====
 +
 +Po zapnutí ovladače se rozsvítí modrá LED na 4s. Během tohoto času lze vybrat číslo ovladače 0 až 7 (odpovídá znakům '​a'​ až '​h'​) podle počtu stisknutí modrého tlačítka na desce. Každý stisk je signalizován oranžovou LED. Po uplynutí tohoto času přechází ovladač do pracovního stavu, kdy stisk modrého tlačítka představuje stisk klávesy. Pro správnou funkci systému musí uživatel zajistit, aby se nevyskytovali dva ovladače se stejným číslem. Viz poznámky pro budoucí vylepšení v závěrečné části.
 +
  
 ===== USB HID ===== ===== USB HID =====
Řádek 303: Řádek 309:
  
 Pro ověření descriptorů HID zařízení byl využit program [[http://​www.usblyzer.com/​|USBlyzer]],​ tento program umí analyzovat i USB komunikaci, verze zdarma to v tomto režimu však pracuje pouze omezenou dobu. Proto pro ověření USB komunikace byl využit program [[https://​www.wireshark.org/​|Wireshark]],​ který umožnuje analyzovat USB komunikaci stejným způsobem jako komunikaci síťovou. Pro ověření descriptorů HID zařízení byl využit program [[http://​www.usblyzer.com/​|USBlyzer]],​ tento program umí analyzovat i USB komunikaci, verze zdarma to v tomto režimu však pracuje pouze omezenou dobu. Proto pro ověření USB komunikace byl využit program [[https://​www.wireshark.org/​|Wireshark]],​ který umožnuje analyzovat USB komunikaci stejným způsobem jako komunikaci síťovou.
 +
 +Protože muže být vysílání stisknuté klávesy až jednou opakováno na jiném frekvenčním kanálu, bez výrazného zvýšení odezvy, muže systém pracovat i za zhoršených podmínek šumu v rádiovém prostředí. Dojde-li ze ztrátě synchronizace (v ovladači nebude přijat 10x po sobě poll packet z masteru) začně ovladač znovu vyhledávat máster jednotku. Obnovení tedy nastane nejpozději po 14 rámcích, což odpovídá 126 ms. 
  
 \\ \\
Řádek 321: Řádek 329:
 {{ youtube>​gOyL8S5vqg0?​medium }}  {{ youtube>​gOyL8S5vqg0?​medium }} 
  
 +===== Použitá literatura =====
 +[1] //DN503 -- SPI Access (Rev. B)// Texas Instruments [online]. [cit. 2017-01-15]. Dostupné z: http://​www.ti.com/​lit/​pdf/​swra112 \\
 +[2] //CC2500// Texas Instruments [online]. [cit. 2017-01-15]. Dostupné z: http://​www.ti.com/​lit/​gpn/​cc2500 \\
 +[3] POVALAČ, A. //​STM32F4DISCOVERY (EmBitz+STM32CubeMX):​ USB myš standardu HID// [online]. [cit. 2017-01-15]. Dostupné z: https://​moodle.vutbr.cz/​mod/​resource/​view.php?​id=100242 \\
 +[4] AXELSON, Jan. //USB complete everything you need to develop custom USB peripherals.//​ 3rd ed. Madison, WI: Lakeview Research, 2005. ISBN 9781931448031.
 ----- -----
-**Kompletní zdrojové kódy pro Keil uVision5 jsou ke [[2016:​cc2500-hid:​mpoa_xrozum00.zip|stažení zde]].**+**Kompletní zdrojové kódy pro Keil uVision5 jsou ke {{ :2016:​cc2500-hid:​mpoa_xrozum00.zip |stažení zde}}.**
2016/cc2500-hid.1484486970.txt.gz · Poslední úprava: 2017/01/15 14:29 autor: Stanislav Rozum