terça-feira, 21 de maio de 2024

LSM110A - TESTES DA MOTHER BOARD - A/D - 4-20mA

                                                  LSM110A - TESTES DA MOTHER BOARD

      


O objetivo deste BLOG é demonstrar como é possível programar o módulo WISOL LSM110A via VISUINO e assim utilizá-lo como OPENCPU.

Neste exemplo será feito um projeto para:

-PISCA LED NO PINO PA7
-IMPRIMIR HELLO WORLD NO TERMINAL A CADA 1 SEGUNDO
-MANDAR UM CONTADOR VIA "SPI" PARA DISPLAY 7 SEGMENTOS (TM1637)
-LER HORA/DATA DO DS3231 E MOSTRAR NA UART
-LER A/D  E MOSTRAR NA UART
-LER DS3221 E MOSTERA NO TM1637
-ESCREVER E LER REGISTRADOR MODBUS VIA RS485
-PWM LED
-RELAY
-OPTO DIGITAL INPUT
-LoRa RECEIVE
-LER A/D (4-20mA) E MOSTRAR NA UART
 

LSM110A Mother Board

Módulo LSM110A

O LSM110A é um módulo de última geração que integra o STMicroelectronics STM32WL. É muito menos consumo atual para o dispositivo IoT para estender a vida útil da bateria. E, também suporta ambas as tecnologias – Sigfox e LoRa – com o próprio módulo LSM110A.

Você pode trocar Sigfox ou LoRa com ele para que você também possa reduzir o custo. É altamente otimizado para solução de IoT (Alto Consumo de Energia, Baixo Custo)


Esquema Elétrico - últimas correções


Placa Montada


CONEXÃO COM ST-LINK V2 E UART

ST-LINK V2 e UART1

VISUINO

Visuino é o mais recente software inovador da Mitov Software. Um ambiente de programação visual que permite programar suas placas Arduino.
Os componentes encontrados no software Visuino representam seus componentes de hardware e você poderá facilmente criar e projetar seus programas arrastando e soltando. Nenhum equipamento ou hardware é necessário para executar o software no modo de design. Depois de concluir o projeto, você pode conectar o upload da placa Arduino e executá-lo.
Para aquelas pessoas que não são fortes em escrever código, projetar, compilar e criar programas Arduino nunca foi tão fácil! Por que perder tempo codificando quando todo o trabalho duro é feito para você? Você tem sua placa Arduino e um ótimo design de hardware, coloque-a em funcionamento em minutos, não em horas!

Para utilizar o Visuino para programar o LSM110A, deve-se copiar o arquivo Visuino_Wisintainer.zip para a pasta 

Wisintainer : Namespace //--------------------------------------------------------------------------- +TArduinoSTM32_STM32WL_HardwareSerial : TArduinoSTM32DefinedPinsBasicSerial RXPin = 3 TXPin = 2 ; //--------------------------------------------------------------------------- //Miguel Wisintainer [Name( 'STM32WL' )] [ArduinoBoardArchitecture_STM32] [ArduinoBoardCompileParams( 'STMicroelectronics:stm32:GenWL:pnum=GENERIC_WL55JCIX' )] [Category( TSTM32Category )] [ParentImage] +TArduino_STM32_STM32WL_Board : TArduino_STM32_Basic_Shared_Modules_Board [AddItem( TArduinoSTM32HardwareSerial0 )] [AddItem( TArduinoSTM32_STM32WL_HardwareSerial )] Serial [AddItem( TArduinoI2C, 1 )] I2CChannels [AddItem( TArduinoSPI, 1 )] SPIChannels [ArduinoBoard_Add_DigitalAnalogChannel( 0, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PA0 (BUT1) 3.3V', 'PA0' )] [ArduinoBoard_Add_DigitalAnalogChannel( 1, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PA1 (BUT2) (WKUP) 3.3V', 'PA1' )] [ArduinoBoard_Add_DigitalAnalogChannel( 2, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMSerial0Channel, 'PA2 (TX0) 3.3V', 'PA2' )] [ArduinoBoard_Add_DigitalAnalogChannel( 3, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMSerial0Channel, 'PA3 (RX0) 3.3V', 'PA3' )] [ArduinoBoard_Add_DigitalAnalogChannel( 4, TArduinoCombinedAnalogDigitalPullDownOpenDrainChannel, 'PA4 (SPI1-NSS) 3.3V', 'PA4' )] [ArduinoBoard_Add_DigitalAnalogChannel( 5, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMSPI0Channel, 'PA5(SPI1-SCK) 3.3V', 'PA5' )] [ArduinoBoard_Add_DigitalAnalogChannel( 6, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMSPI0Channel, 'PA6(SPI1-MISO) 3.3V', 'PA6' )] [ArduinoBoard_Add_DigitalAnalogChannel( 7, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PA7 3.3V', 'PA7' )] [ArduinoBoard_Add_DigitalAnalogChannel( 8, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PA8 3.3V', 'PA8' )] [ArduinoBoard_Add_DigitalAnalogChannel( 9, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMSerial1Channel, 'PA9 (TX1) 3.3V', 'PA9' )] [ArduinoBoard_Add_DigitalAnalogChannel( 10, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMSerial1Channel, 'PA10 (RX1) 3.3V', 'PA10' )] [ArduinoBoard_Add_DigitalAnalogChannel( 11, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMI2C0Channel, 'PA11 (I2C0-SDA) 3.3V', 'PA11' )] [ArduinoBoard_Add_DigitalAnalogChannel( 12, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMI2C0Channel, 'PA12 (I2C0-SCL) 3.3V', 'PA12' )] [ArduinoBoard_Add_DigitalAnalogChannel( 13, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PA13 (SWDIO) 3.3V', 'PA13' )] [ArduinoBoard_Add_DigitalAnalogChannel( 14, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PA14 (SWCLK) 3.3V', 'PA14' )] [ArduinoBoard_Add_DigitalAnalogChannel( 15, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PA15 (LED3) 3.3V', 'PA15' )] [ArduinoBoard_Add_DigitalAnalogChannel( 18, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PB2 3.3V (ADC-IN4)', 'PB2' )] [ArduinoBoard_Add_DigitalAnalogChannel( 19, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PB3 3.3V', 'PB3' )] [ArduinoBoard_Add_DigitalAnalogChannel( 20, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PB4 3.3V', 'PB4' )] [ArduinoBoard_Add_DigitalAnalogChannel( 21, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMSPI0Channel, 'PB5(SPI1-MOSI) 3.3V', 'PB5' )] [ArduinoBoard_Add_DigitalAnalogChannel( 22, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PB6 3.3V', 'PB6' )] [ArduinoBoard_Add_DigitalAnalogChannel( 23, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PB7 3.3V', 'PB7' )] [ArduinoBoard_Add_DigitalAnalogChannel( 24, TArduinoCombinedAnalogDigitalPullDownOpenDrainPWMChannel, 'PB8 3.3V', 'PB8' )] Digital : TArduinoDigitalChannels ; //--------------------------------------------------------------------------- ; // Wisintainer

C:\Users\Usuario\libraries

 e descompactar.

Também alterar variant_generic.h para

C:\Users\UsuA!rio\AppData\Local\Arduino15\packages\STMicroelectronics\hardware\stm32\2.7.1\variants\STM32WLxx\WL54JCI_WL55JCI_WLE4J(8-B-C)I_WLE5J(8-B-C)I

// I2C definitions
#ifndef PIN_WIRE_SDA
  #define PIN_WIRE_SDA          PA11
#endif
#ifndef PIN_WIRE_SCL
  #define PIN_WIRE_SCL          PA12
#endif

e

// SPI definitions
#ifndef PIN_SPI_SS
  #define PIN_SPI_SS            PA4
#endif
#ifndef PIN_SPI_SS1
  #define PIN_SPI_SS1           PA15
#endif
#ifndef PIN_SPI_SS2
  #define PIN_SPI_SS2           PB2
#endif
#ifndef PIN_SPI_SS3
  #define PIN_SPI_SS3           PNUM_NOT_DEFINED
#endif
#ifndef PIN_SPI_MOSI
  #define PIN_SPI_MOSI          PB5
#endif
#ifndef PIN_SPI_MISO
  #define PIN_SPI_MISO          PA6
#endif
#ifndef PIN_SPI_SCK
  #define PIN_SPI_SCK           PA5
#endif

Execute o Visuino faça o projeto abaixo

Projeto Visuino para imprimir conteúdo do conversor A/D - 4-20mA

Configure as Seriais 1 e 2



Altere Placa para STM32WL series e compile


Transferindo (utilizado o STM32CubeProgrammer)

Via ST-LINK V2


Execução 

Gerador 4-20mA




Gerador 4-20mA





Fontes:


Dúvidas

suporte@smartcore.com.br

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