U-BLOX NINA W e PlatformIO - Arduino DEBUGGING
(Testado com FrameWork Arduino)
O objetivo deste BLOG é demonstrar como é possível utilizar o PlatformIO para programar o módulo U-BLOX NINA W com framework ARDUINO e então DEBUGAR um programa. Foi utilizado o EVK-NINA-W102 para o teste.
O kit de desenvolvimento EVK-NINA-W102 foi desenvolvido para facilitar testes e desenvolvimentos com o chip u-blox NINA-W10X que apresenta importantes recursos:
- Wi‑Fi 802.11b/g/n
- Bluetooth dual mode clássico BR/EDR v4.2 e Bluetooth Low Energy v4.2
- Permite embarque de aplicações
- Pino a pino compativel com outros itens da família u-blox NINA tais como o NINA-B112, NINA-B111 entre outros
- Longo alcance: estimado em 300m sem barreira
- Várias interfaces: UART, RMII (Ethernet), SPI, SDIO host, CAN, JTAD< I2S, I2C, GPIO, DAC/ADC
- Opera como estação WiFi ou access point WiFi
- Vários recuros de segurança: WPA/WPA2, WPS, Enterperise Security, Secure boot
Para se obter sucesso com DEBUG, foi baseado no material do link abaixo e também alguns debates com um cliente Smartcore.
Após uma longa busca pela Internet sobre DEBUG com ESP32, vários links apontaram para uma placa MINI-MODULE ou ESP-prog. Após uma análise na placa, constatou-se que trata-se de um chip FTDI com várias GPIOS, modelo FTDI2232 que, com um driver específico, consegue implementar o protocolo JTAG em uma das saídas.
Ao analisar o EVK-NINA-W102, constatou-se que o mesmo tem um FTDI4232 e que os pinos são os mesmos do FTDI2232.
Analisando o DATASHEET do EVK-NINA-W102, constatou-se que FTDI4232 (PORTA) tem conexão com o MODELO W102 (JTAG)...
No EVK-NINA-W106, seguem JUMPERS, desloque os 4 para esquerda, pois o mesmos de fábrica estão conectados no cartão uSD
No EVK-NINA-W106, seguem JUMPERS, desloque os 4 para esquerda, pois o mesmos de fábrica estão conectados no cartão uSD
Após esta análise, partiu-se para o Software, instalando o DRIVER para fazer o FTDI funcionar com JTAG
Em ZADDIG, selecione

upload_port = COM32
debug_tool = esp-prog
debug_init_break = tbreak setup
Ao tentar finalmente executar o DEBUG, foi detectado que VID/PID do FTDI do EVK-NINA-W102, não batia pelo VID/PID solicitado pelo DRIVER, como os dois FTDI são basicamente parecidos, alterei o VID/PID para o solicitado para, digamos assim, para ACEITAR o FTD4232, o arquivo
esp32_devkitj_v1.cfg
previamente atualizado com a descompactação do arquivo
C:\Users\Usuario\.platformio\packages\tool-openocd-esp32\share\openocd\scripts\interface\ftdi\esp32_devkitj_v1.cfg
#
# Driver for the FT2232H JTAG chip on the Espressif DevkitJ board
# (and most other FT2232H and FT232H based boards)
#
adapter driver ftdi
ftdi_vid_pid 0x0403 0x6011 0x0403 0x6014
# interface 1 is the uart
ftdi_channel 0
# TCK, TDI, TDO, TMS: ADBUS0-3
# LEDs: ACBUS4-7
ftdi_layout_init 0x0008 0xf00b
ftdi_layout_signal LED -data 0x1000
ftdi_layout_signal LED2 -data 0x2000
ftdi_layout_signal LED3 -data 0x4000
ftdi_layout_signal LED4 -data 0x8000
# ESP32 series chips do not have a TRST input, and the SRST line is connected
# to the EN pin.
# The target code doesn't handle SRST reset properly yet, so this is
# commented out:
# ftdi_layout_signal nSRST -oe 0x0020
reset_config none
# The speed of the JTAG interface, in KHz. If you get DSR/DIR errors (and they
# do not relate to OpenOCD trying to read from a memory range without physical
# memory being present there), you can try lowering this.
#
# On DevKit-J, this can go as high as 20MHz if CPU frequency is 80MHz, or 26MHz
# if CPU frequency is 160MHz or 240MHz.
adapter speed 20000
1) Baixe e instale o Visual Studio Code
2) Execute o Visual Studio Code
3) Na opção EXTENSIONS (canto esquerdo), procure por PlatformIO e Instale. Aguarde!
4) Uma vez instalado o PlatformIO, vá em PIO Home e crie um Novo Projeto e digite os parâmetros abaixo e então Finish
Aguarde alguns minutos para instalação do SDK. A instalação do SDK ficará em
C:\Users\USER\.platformio>
e os fontes em
C:\Users\USER\Documents\PlatformIO\Projects\blink\src\main.cpp
5) Na opção EXPLORER você verá o projeto e o código fonte (Arduino Sintax).
6) Observe o arquivo Platformio.ini que foi criado, você pode futuramente mudar para aceitar outro tipo de framework, como exemplo, ESP-IDF.
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
upload_port = COM32
debug_tool = esp-prog
debug_init_break = tbreak setup
7) Altere o código para
#include <Arduino.h>
void setup() {
// put your setup code here, to run once:
pinMode(23, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(23, HIGH);
delay(1000);
digitalWrite(23, LOW);
delay(1000);
}
8) Compile (seja paciente), a primeira vez demora mais tempo.
9) Faça o UPLOAD (pressione tecla BOOT e então RESET) e você verá o LED alterando de estado a cada 1 segundo!
10) Faça o UPLOAD (pressione tecla BOOT e então RESET) e você verá o LED alterando
11) Para DEBUG, pressione F5 ou vá no menu RUN-->START DEBUGGING
12) Questões: suporte@smartcore.com.br
Thanks to Brian Lough
FONTES:
No próprio BLOG e
Sobre a SMARTCORE
A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br
Nenhum comentário:
Postar um comentário