Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2016:nfc-reader

Rozdíly

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

Odkaz na výstup diff

2016:nfc-reader [2017/01/14 21:42]
Ondřej Sládek vytvořeno
2016:nfc-reader [2017/01/14 22:21] (aktuální)
Ondřej Sládek
Řádek 21: Řádek 21:
   * NFC modul s obvodem PN532   * NFC modul s obvodem PN532
  
-=== STM32F429I-Discovery ===+==== STM32F429I-Discovery ===
 Vývojová deska s procesorem od ST a s jádrem ARM Cortex-M4 má vestavěný LCD displej, vhodný pro zobrazení dat. Displej je dotykový-rezistivní a deska je vybavena dedikovaným obvodem STMPE811 pro jeho ovládání. Z těchto důvodů byla tato deska vybrána jako Master zařízení pro tento projekt. Vývojová deska s procesorem od ST a s jádrem ARM Cortex-M4 má vestavěný LCD displej, vhodný pro zobrazení dat. Displej je dotykový-rezistivní a deska je vybavena dedikovaným obvodem STMPE811 pro jeho ovládání. Z těchto důvodů byla tato deska vybrána jako Master zařízení pro tento projekt.
 {{ :​2016:​stm32f429-disco_g.png?​200 |}} {{ :​2016:​stm32f429-disco_g.png?​200 |}}
-=== NFC modul === + 
-Řídícím obvodem použitého NFC modulu je PN532 od NXP, zakoupený na stránce Ebay[[http://​www.ebay.com/​itm/​New-PN532-NFC-module-Reader-Writer-3-3V-5V-Arduino-compatible-with-2-S50-card-/​161292573998?​hash=item258dc95d2e:​g:​ecAAAOxyOalTYvHW]] Na desce je vytvořena PCB anténa pro kmitočet 13,56 MHz a celé zařízení dokáže zajistit komunikaci s NFC kartou (modulace a demodulace, synchronizace atd.). Pro komunikaci s externími zařízeními jsou k dispozici sběrnice I2C, SPI a HSU. Pro projekt+==== NFC modul ===
 + 
 +Řídícím obvodem použitého NFC modulu je PN532 od NXP, zakoupený na [[http://​www.ebay.com/​itm/​New-PN532-NFC-module-Reader-Writer-3-3V-5V-Arduino-compatible-with-2-S50-card-/​161292573998?​hash=item258dc95d2e:​g:​ecAAAOxyOalTYvHW|Ebay]]Na desce je vytvořena PCB anténa pro kmitočet 13,56 MHz a celé zařízení dokáže zajistit komunikaci s NFC kartou (modulace a demodulace, synchronizace atd.). Pro komunikaci s externími zařízeními jsou k dispozici sběrnice I2C, SPI a HSU, po kterých obvod komunikuje prostřednictvím datových rámců. Pro projekt ​byl tento modul vybrán jako Slave zařízení. 
 + 
 +===== Řešení ===== 
 + 
 +==== Softwarové prostředky ==== 
 +Pro konfiguraci periferií Master desky byl použit program STM32CubeMX,​ programování probíhalo v prostředí EmBitz. Pro práci byly využity HAL knihovny od STMicroelectronics. 
 + 
 +==== Komunikace mezi Master a Slave ==== 
 +Základním úkolem bylo nejprve zajistit komunikaci mezi Master a Slave deskou. Pro komunikační rozhraní byla vybrána sběrnice SPI. Parametry přenosu byly dány firmwarem obvodu PN532 a podle nich byla konfigurována periférie SPI4 v programu STM32CubeMX. Pro ověření funkčnosti byl použit příkaz //​GetFirmwareVersion//,​ pro který je známa očekávaná odpověď. Výpis odpovědi byl realizován přímo do okna prostředí EmBitz pomocí semihostingu. Následující kód ukazuje způsob odeslání příkazu a výpisu odpovědi:​ 
 + 
 +<code c> 
 +... 
 +// frame for command 
 +  Transmit[0]= 0x01;  //Data write byte 
 +  Transmit[1]= 0x00; 
 +  Transmit[2]= 0x00; 
 +  Transmit[3]= 0xff; 
 +  Transmit[4]= PN532_COMMAND_GETFIRMWAREVERSION;​ 
 +  Transmit[5]= 0xfe; 
 +  Transmit[6]= 0xd4; 
 +  Transmit[7]= 0x02; 
 +  Transmit[8]= 0x2a; 
 +  Transmit[9]= 0x00; 
 + 
 +  switch(HAL_SPI_Transmit(&​hspi4,​ (uint8_t *)Transmit, B_SIZE, 5000)) 
 +  { 
 +  case HAL_OK: 
 +    printf("​Transmission OK\n"​);​ 
 + 
 +    HAL_SPI_Receive(&​hspi4,​ (uint8_t *)Receive, B_SIZE, 5000); 
 +    printf("​Received:​\n"​);​ 
 + 
 +    for (uint8_t i = 0; i < B_SIZE; i++) { 
 +        printf("​ %2X", Receive[i]);​ 
 +        fflush(stdout);​ 
 +    } 
 +    break; 
 + 
 +  case HAL_TIMEOUT:​ 
 +    printf("​Timeout\n"​);​ 
 + 
 +    break; 
 + 
 +  case HAL_ERROR:​ 
 +    printf("​Error\n"​);​ 
 +    break; 
 + 
 +  default: 
 +    break; 
 +  } 
 +</​code>​ 
 + 
 +===== Závěr ===== 
 +Bohužel se nepodařilo zprovoznit komunikaci mezi Master a Slave deskou, ani při explicitním zadání rámce příkazu (viz kód) nebyla odpověď obvodu podle očekávání. Další části projektu realizovány nebyly a celkové vypracování je nedostačující. 
2016/nfc-reader.1484426533.txt.gz · Poslední úprava: 2017/01/14 21:42 autor: Ondřej Sládek