WIFI MULTIMODALITÀ,
BLUETOOTH, ZIGBE
QCA4020: WiFi dual band multimodale, Bluetooth 5 e ZigBee (802.15.4)
Scopo del documento
Lo scopo di questo documento è spiegare il QCA4020 che è WiFi dual band multimodale, Bluetooth 5 e ZigBee (802.15.4). Questo documento contiene le caratteristiche del QCA4020 e come configurarlo.
Cronologia del documento
Versione |
Autore | Data | Descrizione |
A | HUB 5G | 8.16.2021 |
Documento iniziale |
1 Introduzione
Questa è una scheda miniPCIe che supporta la connettività intelligente multimodale. Supporta Wi-Fi dual-band, Bluetooth 5 e ZigBee. Si basa su Qualcomm QCA4020 System-On-Chip (SoC). Ha un SoC a bassa potenza che integra un Cortex M4F per l'elaborazione delle applicazioni, Cortex M0 per l'elaborazione dello stack di rete e un processore separato per lo stack Wi-Fi progettato per consentire una soluzione radio multipla altamente simultanea.
L'SDK QCA4020 preintegra il supporto per funzionalità di sicurezza avanzate e più software e ecosistemi cloud.
Progettata per affrontare la frammentazione dell'IoT e il supporto per l'interoperabilità, questa soluzione è ideale per più settori IoT dal controllo domestico e automazione, networking, intrattenimento domestico e città intelligenti.
Caratteristiche principali
- SoC multimodale che supporta contemporaneamente Wi-Fi dual band, Bluetooth 5 e IEEE 802.15.4
- Processore dedicato per Bluetooth LE LC e 15.4 MAC
- Processore dedicato per 802.11 a/b/g/n
- Zigbee 3.0 e supporto OpenThread
- Isole di alimentazione isolate per il funzionamento a bassa potenza
- Sicurezza avanzata basata su hardware con avvio sicuro, ambiente di esecuzione affidabile, archiviazione crittografata, provisioning delle chiavi e sicurezza a livello di applicazione
- Set completo di periferiche e interfacce: SPI, I2C, UART, HS-UART, ADC e GPIO
- Hub sensore integrato per la post-elaborazione progettato per consentire casi d'uso di sensori a bassa potenza
- Le dimensioni ridotte del pacchetto consentono fattori di forma ottimizzati
- 300+KB di RAM riservata alle applicazioni
- Dettagli radio Bluetooth: v5.0 con PA =+4dBm/+10dBm (per lungo raggio)
- Dettagli radio 802.15.4: conforme al 2006, 15.4e, 2.4GHz DSSS +4dBm/+21dBm (per lungo raggio)
Specifiche
Wifi
Standard: 802.11a/b/g, 802.11n
Bande spettrali Wi-Fi: 2.4 GHz, 5 GHz
Velocità di picco: 150 Mbps
Configurazione MIMO: 1×1 (1 flusso)
Bluetooth
Versione specifica Bluetooth: Bluetooth 5.0
Tecnologia Bluetooth: Rete Bluetooth Qualcomm, Bluetooth Low Energy
802.15.4
Protocollo LR-WPAN: Filo, Zigbee
USB
Versione USB: USB 2.0
processore
Velocità di clock della CPU: Fino a 128 MHz
Core della CPU: CPU Arm Cortex-M4F, CPU Arm Cortex-M0, Tensilica Xtensa
Supporto alla sicurezza
Funzionalità di sicurezza: Sicurezza a livello di applicazione, Motore crittografico basato su hardware, Sicurezza del provisioning delle chiavi, Qualcomm® Trusted Execution Environment (TEE), Avvio protetto, Archiviazione sicura, Crittografia delle immagini del software, Generatore di numeri casuali reali
Sicurezza Wi-Fi: Interfaccia WPS
2 Layout miniPCIe QCA4020
La figura seguente spiega il miniPCIe QCA4020. Ha due intestazioni P1 e P2 che espongono molti dei GPIO e l'interfaccia del QCA4020. Inoltre, ha un JTAG interfaccia per il debug e l'immagine lampeggiante. Inoltre, ha un'intestazione del ponticello EDL (Emergency Download Mode).
1- Modulo QCA402 M20
2- Interfaccia miniPCle
3-J3 (EDL)
4- J2 (configurare JTAG interfaccia)
5- J1 (Forza JTAG) 5- presa miniPCIe
6- Intestazione P2
7- Intestazione P1
8-JTAG Interfaccia
Figura 1: Layout miniPCIe QCA4020.
La figura seguente mostra le dimensioni e le dimensioni del miniPCIe QCA4020.
Figura 2: Dimensione fisica miniPCIe QCA4020.
3 Pinout miniPCIe QCA4020
La QCA4020 è una scheda e un'interfaccia miniPCIe. La figura seguente mostra il pin out del miniPCIe:
Figura 3: Pin out QCA4020 miniPCIe.
Per utilizzare il modulo miniPCIe, puoi utilizzare l'adattatore USB (noto anche come Raspberry PI HAT). La mappatura dei pin miniPCIe come nella tabella seguente. Se il miniPCIe viene utilizzato con il Raspberry PI HAT, i pin miniPCIe vengono mappati su Raspberry PI per funzionalità aggiuntive e interfaccia a Raspberry PI.
Tabella 1: Interfaccia miniPCIe QCA4020.
SPILLO # |
QCA4020 | QCA4020 PIN GPIO# | PIN Raspberry PI# |
1 | SVEGLIATI | GPIO29_BE |
|
2 |
VCC_3V3 | ||
3 |
|
||
4 |
|||
5 |
|
||
6 |
|||
7 |
|
||
8 |
|||
9 |
|
||
10 |
|||
11 | M0&M4_UART0_RX | GPIO8_BE |
GPIO14 (8) |
12 |
|||
13 | M0&M4_UART0_TX | GPIO9_BE |
GPIO15 (10) |
14 |
|||
15 |
|
||
16 |
|||
17 |
|
||
18 |
|||
19 |
|
||
20 |
|||
21 |
|
||
22 |
CHIP_PWD_L_BE | T4 | |
23 |
|
||
24 |
|||
25 |
|
||
26 |
|||
27 |
|
||
28 |
|||
29 |
|
||
30 |
I2C0_MASTER_SCL | GPIO10_BE | GPIO19 (35) |
31 | DTR |
33 |
|
32 |
I2C0_MASTER_SDA | GPIO11_BE | GPIO18 (12) |
33 |
|
||
34 |
|||
35 |
|
||
36 |
USB20_DM_BE | USB20_DM_BE | |
37 |
|||
38 |
USB20_DP_BE | USB20_DP_BE | |
39 |
|
||
40 |
|||
41 |
|
||
42 |
LED_ZIGBEE | GPIO13_BE | |
43 |
|
||
44 |
|||
45 | SPI_SLAVE_CLK | GPIO18_BE |
GPIO11 (23) |
46 |
LED_BLE | GPIO60_BE | |
47 | SPI_SLAVE_MOSI | GPIO23_BE |
GPIO9 (21) |
48 |
LED_WLAN | GPIO12_BE | |
49 | SPI_SLAVE_MISO | GPIO20_BE |
GPIO10 (19) |
50 |
|||
51 | SPI_SLAVE_CS_N | GPIO19_BE |
GPIO8 (24) |
52 |
4 Come eseguire il flashing dell'immagine su QCA4020 miniPCIe
È possibile eseguire il flashing dell'immagine del miniPCIe QCA4020 utilizzando uno dei due metodi seguenti:
4.1 Metodo 1: tramite la modalità di download di emergenza (EDL)
In questo passaggio, l'utente può eseguire le seguenti operazioni:
1- Collegare J3 (PIN 1 e PIN 2). Questo è il GPIO22_BE utilizzato per EDL.
2- Collegare il cavo USB tra il PC e la porta USB di M20.
4.2 Metodo 2: Attraverso JTAG
In questo passaggio, l'utente può eseguire le seguenti operazioni:
1- Collegare J1 (PIN 1 e PIN 2). Questo è il GPIO20_BE che ha usato per forzare JTAG modalità
2- Collega JTAG cavo al JTAG Intestazione a 10 PIN che include i segnali TCK, TDI, TDO, TMS
Seguire la normale procedura per eseguire il flashing di *.elf file sopra il JTAG interfaccia.
QCA4020JTAG pin utilizzati come nella tabella seguente:
Tabella 2: JTAG Interfaccia.
Codice PIN QCA4020 |
JTAG Segnale |
GPIO_50 |
JTAG3_BE_TCK |
GPIO_51 |
JTAG3_BE_TDO |
GPIO_52 |
JTAG3_BE_TMS |
GPIO_53 |
JTAG3_BE_TDI |
J2 sul QCA4020 viene utilizzato per configurare JTAG. Collegando J2 (PIN 1 e PIN2), forzare quanto segue JTAG configurazione:
Tabella 3: Impostazione J2 per JTAG Interfaccia.
Boot_Configure_B E_0GPIO_9_BE |
Boot_Configure_B E_1GPIO_25_BE | Boot_Configure_B E_2GPIO_18_BE | JTAG Interfaccia per M4 |
0 | 0 | 1 |
JTAG nel GPIO[53:50] |
5 Pin out QCA4020
Il QCA4020 ha un numero abbondante di pin e GPIO e funzionalità che sono esposte attraverso le intestazioni dei ponticelli P1 e P2. La tabella seguente riassume tutti i pin esposti tramite le intestazioni dei ponticelli P1 e P2 e le relative funzionalità hardware.
Tabella 4: Mappatura PIN P1 e P2.
Intestazione e PIN |
GPIO n. | SPI o I2C o QSPI | UART | PWMADC/ SensoADC | Genitori-insegnanti |
P2 – PERNO 1 | 3.3V |
|
|||
P2 – PERNO 2 |
GPIO4_BE | ||||
P2 – PERNO 3 | GPIO5_BE |
BT_ ATTIVO |
|||
P2 – PERNO 4 |
GPIO6_BE | WLAN_ATTIVO | |||
P2 – PERNO 5 | GPIO7_BE |
BT_ PRIORITÀ |
|||
P2 – PERNO 6 |
GPIO14_BE | HS_UART0_DM_CTS | |||
P2 – PERNO 7 | GPIO15_BE | HS_UART0_DM_TXD |
|
||
P2 – PERNO 8 |
GPIO16_BE | I2C1_Master_SCL | HS_UART0_DM_RFR | BT_ ATTIVO | |
P2 – PERNO 9 | GPIO17_BE | I2C1_Master_SDA | HS_UART0_DM_RXD |
WLAN_ATTIVO |
|
P2 – PERNO 10 |
GPIO24_BE | ||||
P2 – PERNO 11 |
GPIO26_BE |
||||
P2 – PERNO 12 |
GPIO27_BE | ||||
P2 – PERNO 13 |
GPIO28_BE |
||||
P2 – PERNO 14 |
GPIO30_BE |
||||
P2 – PERNO 15 |
GPIO31_BE | ||||
P2 – PERNO 16 |
GPIO32_BE |
||||
P2 – PERNO 17 |
GPIO33_BE | ||||
P2 – PERNO 18 |
Terra |
||||
P1 – PERNO 10 |
A0 (SENSEADC_1_BE) | ||||
P1 – PERNO 9 |
A1 (SENSEADC_0_BE) |
||||
P1 – PERNO 8 |
GPIO_41_BE | ||||
P1 – PERNO 7 |
GPIO48_BE |
||||
P1 – PERNO 6 |
GPIO49_BE | ||||
P1 – PERNO 5 | GPIO54_BE |
SENSEDC2 |
|||
P1 – PERNO 4 |
GPIO55_BE | SENSEDC3 | |||
P1 – PERNO 3 | GPIO56_BE |
SENSEDC4 |
|||
P1 – PERNO 2 |
GPIO57_BE | SENSEDC5 | |||
P1 – PERNO 1 | GPIO58_BE |
SENSEDC6 |
6 Strumenti software da installare
Si prega di installare i seguenti strumenti
– Python 2.7.X (Scarica Python | Python.org)
– Eclipse IDE per C/C++ (Eclipse IDE per sviluppatori C/C++ | Pacchetti Eclipse)
Questo è un ambiente di sviluppo integrato basato su GUI
Versione supportata: versione Oxygen – Release 4.7.2
– Giava:
Eclipse IDE ha dipendenza da Java, JDK 8 o versioni successive
– ApriOCD (Scarica OpenOCD per Windows (gnutoolchains.com))
versione 0.10.0 [2017-06-09] – Toolchain incorporato di GNU Arm (Toolchain GNU ARM)
versione 6.x
– Qualcomm SDK per QCA4020: L'SDK contiene sample applicazioni demo con codice sorgente per dimostrare diverse funzionalità e tecnologie supportate da QCA4020.
7 Configurazione dell'ambiente di sviluppo software
7.1 Pitone
Dopo aver installato Python, aggiungi il percorso a python.
Exampon:
Se python.exe è nella cartella
C:\CRMApps\App\Python276-64 |
impostare il percorso come segue:
%PERCORSO%=%PERCORSO%:C:\CRMApps\Apps\Python276-64 |
7.2 Giava
Dopo aver installato Java, aggiungi il percorso a Java.
Exampon:
Se Java.exe è nella cartella
C:\ProgramData\Oracle\Java\javapath |
impostare il percorso come segue:
%PERCORSO%=%PERCORSO%: C:\Programma Files\Java\jdk1.8.0_161\bin |
7.3 ApriOCD
Il plug-in OpenOCD è necessario per stabilire la connessione tra Eclipse IDE e FTDI J integratoTAG debugger. Dopo l'installazione, aggiungi il percorso a OpenOCD.
Exampon:
Se openocd.exe è nella cartella
C:\Program Files\OpenOCD-20170609\bin |
impostare il percorso come segue:
imposta %PERCORSO%=%PERCORSO%:C:\Programma Files\OpenOCD-20170609\bin |
7.4 Toolchain GNU ARM
Installa la toolchain ARM eseguendo ".exe" file e assicurati di selezionare l'opzione "Aggiungi percorso alle variabili di ambiente" durante il passaggio finale.
7.5 Configurazione dell'utilizzo del plug-in OpenOCD con Eclipse
Procedere come segue:
1- Vai a Aiuto > Installa nuovo software in EclipseIDE e assicurati che i seguenti plugin siano installati e abilitati per impostazione predefinita.
2- Imposta il percorso su openOCD. Riavvia l'IDE Eclipse e sotto Finestra -> preferenze. Imposta il percorso su openOCD come mostrato di seguito:
3- Dopo aver installato l'SDK di Qualcomm, SDK OEM QCA4020+CDB, Demo sampi le si trovano nella seguente cartella:
obiettivo\quarto\demo\ |
4- Installa il jar del plug-in QCA file disponibile presso
/target/quarzo/demo/EclipseSupportFiles |
– Copia il barattolo file (QCA402x_plugin.jar) nella cartella "dropin" nella cartella installata di Eclipse IDE.
– Riavvia l'IDE Eclipse se in esecuzione. Per riavviare Eclipse, fai clic su File-> Riavvia dopo aver installato il plug-in.
5- Assicurati che tutte le variabili di ambiente siano impostate correttamente
8 Importazione dell'applicazione “Hello World”.
1- Installa il progetto Eclipse files per sample applicazioni demo.
Per installare c'è eclipseSupport.bat per Windows e eclipseSupport.sh per Linux nella seguente cartella:
/obbiettivo |
2- Apri una finestra del terminale e vai a
/obbiettivo |
3- Esegui il seguente comando
sh eclipseSupport.sh |
Or
eclipseSupport.bat |
Dopo aver eseguito lo script, il progetto Eclipse files .cprogetto, .progetto E .impostazioni cartella vengono aggiornati nelle rispettive cartelle dell'applicazione demo.
4- Apri l'applicazione Eclipse e vai a File-> Apri progetto e scegli la cartella dell'applicazione "Hello World" e seleziona la casella accanto all'applicazione. Clic Fine
5- Per eseguire il debug del progetto, impostare Debug Config. Vai a Esegui->Configurazione debug->GDB OpenOCD. Imposta le opzioni Applicazione e OpenOCD come mostrato nelle immagini sottostanti. Seleziona Quartz.elf come applicazione C/C++. Se hai già creato l'immagine, seleziona Disattiva build automatica. Se l'immagine non è stata creata, seleziona Usa impostazioni spazio di lavoro.
6- Nella finestra Debugger, fornire il percorso eseguibile di openocd con l'opzione config
-f ${progetto_loc}\build\gcc\qca402x_openocd.cfg |
7- Fornire il percorso eseguibile arm-none-eabi-dgb per il client GDB come mostrato di seguito.
9 Creazione dell'applicazione "Hello World".
Per creare l'applicazione, procedere come segue:
1. Vai al progetto proprietà->Configura build. Fai clic con il pulsante destro del mouse sul nome del progetto in Esplora progetti e vai a Proprietà
2. Verificare il comando build e la directory build nella scheda Impostazioni Builder.
3. Vai a build C/C++ e imposta il comando build su "build.bat" e la directory build su "path to source" come nelle schermate seguenti.
4. Fare clic Applica e chiudi
5. Compila l'applicazione e vedrai il seguente messaggio nella finestra della console
L'uscita e *.elfo files sono generati e disponibili sotto il produzione cartella:
10 Eseguire il flashing dell'applicazione sul miniPCIe QCA4020 tramite USB
È possibile eseguire il flashing di un'applicazione sul miniPCIe QCA4020 tramite la porta USB. Per fare ciò, attenersi alla seguente procedura:
1- Collegare un ponticello su J3 per cortocircuitarlo. Questo pone il QCA4020 in EDL (Emergency Download Mode) che consente di scaricare un'immagine nel flash QCA4020.
2- Collegare un cavo Micro USB tra la porta USB dell'adattatore USB (HAT) e una porta USB su un PC Windows.
Apri Gestione dispositivi e vedrai Qualcomm DLoader enumerato su una porta seriale (ad esempio, COM40 in questo caso).
3- Usa lo strumento basato su Python chiamato qflash.py (che è incluso nell'SDK QCA4020). Lo strumento consente di eseguire il flashing di immagini tramite USB. Lo strumento è disponibile nella seguente cartella:
destinazione\build\strumenti\flash |
Se lo strumento viene richiamato senza parametri opzionali, esegue le seguenti operazioni:
a) Genera una tabella dei descrittori del firmware predefinita.
b) Genera una tabella delle partizioni predefinita.
c) Flash il default sampl'applicazione *.elfo files al flash qca4020.
Quando esegui questo strumento con -h parametro, ottieni quanto segue come in questo screenshot:
4- Eseguire il comando seguente per eseguire il flashing dell'applicazione sul QCA4020
python qflash.py –comm_port 40 –app C:\QCA4020\SDK\qca4020-or-3-4_qca_oem_sdk-cdb-master-2e23b7b0933311a33dc090ed0f647de9b31d7954\target\quartz\demo\Helloworld_demo\build\g cc\output\Quartz_HASHED.elf |
Noe l'immagine da flashare è la Quartz_HASHED.elfo.
Vedrai l'output come nella schermata seguente che indica che l'immagine è stata flashata correttamente su QCA4020.
11 Eseguire il flashing dell'applicazione sul miniPCIe QCA4020 utilizzando JTAG
Puoi usare JTAG interfaccia sul miniPCIe QCA4020 per eseguire il flashing dell'immagine. Viene utilizzato un hardware SEGGER J-link per la connessione e l'interfaccia con JTAG.
Sul miniPCIe QCA4020, effettuare le seguenti operazioni
– Collegare J1 (PIN1 e PIN2). Questa forza JTAG modalità
– Collegare J3 (PIN1 e PIN2). Ciò consente a JTAG interfaccia
Nelle variabili di ambiente di Windows, aggiungi la seguente variabile di ambiente:
– JLINK_PATH impostalo su J-link GDB server eseguibile file (per esempio, C:\Program Files (x86)\SEGGER\JLink)
– PERCORSO_CLIENTE impostalo su strumenti ARM GNU (ad es. C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2020-q4-major\bin)
Usando Eclipse IDE, vai a Esegui->Strumenti esterni->Configurazioni strumenti esterni e aggiungi una nuova configurazione. Indica il flash.bat file nell'SDK che viene utilizzato per configurare e avviare il server GDB. Clic Fare domanda a poi Correre.
Vedrai lo screenshot seguente e ti verrà chiesto di selezionare il dispositivo o il core. Scegliere Corteccia-M4. Fare clic OK.
Eclipse inizierà a eseguire il flashing dell'immagine sul miniPCIe QCA4020 su JTAG. Vedrai lo screenshot seguente.
Quando il lampeggio è completato. Vedrai la seguente schermata con l'output:
Operazione Flash completata con successo...
Arresto del server GDB….
SUCCESSO: il processo con PID 23756 è stato terminato.
Dopo aver terminato il flashing dell'immagine, assicurati di rimuovere J1 e J3 su QCA4020 miniPCIe per uscire da JTAG modalità.
12 Collegamento del QCA4020 al terminale seriale tramite UART
È possibile utilizzare il miniPCIe QCA4020 quando montato su adattatore USB (HAT) con qualsiasi dispositivo dotato di interfaccia UART (Tx/Rx) come una scheda Raspberry PI, una scheda Arduino o qualsiasi altra scheda hardware, con interfaccia UART.
È inoltre possibile utilizzare e collegare l'adattatore miniPCIe/USB (HAT) QCA4020 a una porta USB del computer tramite un cavo da USB a UART. Puoi usare un cavo come questo:
Cavo seriale USB TO UART TTL (fili) (PL2303HX) Programmatore MCP00102W Arduino compatibile nel bazar di Elecrow!
Tale cavo ha quattro fili colorati come segue:
Rosso: +5V
: Tx
Verde: Rx
Nero: GND
Collegare il Bianco cavo a UART_TX E Verde cavo a UART_RX. Collegare anche il Nero cavo al Terra).
Come nell'immagine qui sotto, connetti UART_TX su SJ2 (PIN2) E UART_RX su SJ1 (PIN2).
Assicurati che quando colleghi il cavo da USB a UART, venga visualizzato correttamente in Gestione dispositivi di Windows e tutto il suo driver sia installato come in questa schermata.
13 Utilizzo del terminale seriale
Si consiglia di utilizzare lo strumento Tera Term come terminale seriale. Puoi scaricarlo da qui:
https://osdn.net/projects/ttssh2/downloads/54081/teraterm-4.72.exe/
Avvia Tera Terminal e seleziona il Seriale opzione e selezionare da USB a porta seriale.
In Tera Termine, scegli Configurazione->Porta seriale e configurare le porte seriali in base a quanto segue:
E ora sei pronto per vedere l'output dell'applicazione "hello World" sul monitor seriale.
Se stai usando JTAG per flashare l'immagine sul miniPCIe QCA4020, vedrai il seguente output sul terminale Tera
14 Applicazione demo QCLI
L'applicazione demo CLI è una demo completa che fornisce un meccanismo per dimostrare tutte le caratteristiche e le tecnologie supportate da QCA4020 miniPCIe. Fornisce inoltre l'implementazione di riferimento e l'utilizzo delle QAPI rivolte ai clienti.
L'applicazione QCLI-demo è disponibile con l'SDK QCA4020 ed è possibile seguire gli stessi passaggi descritti in precedenza in Eclipse per compilarla e eseguirne il flashing su QCA4020 miniPCIe. Una volta eseguito il flashing, puoi vedere l'output sul terminale seriale come nello screenshot qui sotto. Inoltre, puoi esercitarti connettendoti alla rete WLAN di casa/ufficio
La schermata seguente mostra come connettersi a un punto di accesso WLAN.
MiniPCIe QCA4020 Copyright © 5GHUB.IT
Documenti / Risorse
![]() |
5G-HUB QCA4020 Wi-Fi multimodale dual band Bluetooth Zigbee [pdf] Istruzioni QCA4020, Zigbee Bluetooth Wi-Fi Dual Band multimodale, Zigbee Bluetooth Wi-Fi Dual Band, Zigbee Bluetooth Wi-Fi, QCA4020, Zigbee Bluetooth |