segunda-feira, 31 de julho de 2023

LSM110A - GPIOS COM ARDUINO

         

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

Aqui é mostrado o mapa de GPIOS para uso do LSM110A com ARDUINO


LSM110A Starter KIT
Módulo

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)

BREAKOUT para testes

Esquema Elétrico - últimas correções





PLACA MONTADA




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!



//---------------------------------------------------------------------------

GPIOS

PB6 = DIGITAL INPUT/OUTPUT
PB7 = DIGITAL INPUT/OUTPUT
PA2 = TXD1
PA3 = RXD1
PA9 = TXD2 
PA10 = RXD2
PB2 = ADC_IN4/DIGITAL INPUT/OUTPUT
PB3 = ADC_IN2/DIGITAL INPUT/OUTPUT
PB4 = ADC_IN3/DIGITAL INPUT/OUTPUT
PA15 = ADC_IN10/DIGITAL INPUT/OUTPUT
PB8 = DIGITAL INPUT/OUTPUT
PA0 = DIGITAL INPUT/OUTPUT
PA11 = I2C/SDA/ADC_IN7/SDA/DIGITAL INPUT/OUTPUT
PA12 = I2C/SCL/ADC_IN8/SCL/DIGITAL INPUT/OUTPUT
PA1 = DIGITAL INPUT/OUTPUT
PA7 = DIGITAL INPUT/OUTPUT
PA8 = DIGITAL INPUT/OUTPUT
PA4 = NSS/DIGITAL INPUT/OUTPUT
PA5 = SCK/DIGITAL INPUT/OUTPUT
PA6 = MISO/DIGITAL INPUT/OUTPUT
PB5 = MOSI/DIGITAL INPUT/OUTPUT

Para Serial1, incluir no código

HardwareSerial Serial1(USART1);

Variants

/* ******************************************************************************* * Copyright (c) 2020, STMicroelectronics * All rights reserved. * * This software component is licensed by ST under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * ******************************************************************************* */ #pragma once /*---------------------------------------------------------------------------- * STM32 pins number *----------------------------------------------------------------------------*/ #define PA0 0 #define PA1 1 #define PA2 2 #define PA3 3 #define PA4 4 #define PA5 5 #define PA6 6 #define PA7 7 #define PA8 8 #define PA9 9 #define PA10 PIN_A0 #define PA11 PIN_A1 #define PA12 PIN_A2 #define PA13 PIN_A3 #define PA14 PIN_A4 #define PA15 PIN_A5 #define PB0 16 #define PB2 PIN_A6 #define PB3 PIN_A7 #define PB4 PIN_A8 #define PB5 20 #define PB6 21 #define PB7 22 #define PB8 23 #define PB12 24 #define PC13 25 #define PC14 26 #define PC15 27 #define PH3 28 // Alternate pins number #define PA1_ALT1 (PA1 | ALT1) #define PA2_ALT1 (PA2 | ALT1) #define PA3_ALT1 (PA3 | ALT1) #define PA4_ALT1 (PA4 | ALT1) #define PA5_ALT1 (PA5 | ALT1) #define PA6_ALT1 (PA6 | ALT1) #define PA7_ALT1 (PA7 | ALT1) #define PB8_ALT1 (PB8 | ALT1) #define NUM_DIGITAL_PINS 29 #define NUM_ANALOG_INPUTS 9 // On-board LED pin number #ifndef LED_BUILTIN #define LED_BUILTIN PNUM_NOT_DEFINED #endif // On-board user button #ifndef USER_BTN #define USER_BTN PNUM_NOT_DEFINED #endif // 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 // I2C definitions #ifndef PIN_WIRE_SDA #define PIN_WIRE_SDA PA11 #endif #ifndef PIN_WIRE_SCL #define PIN_WIRE_SCL PA12 #endif // Timer Definitions // Use TIM6/TIM7 when possible as servo and tone don't need GPIO output pin #ifndef TIMER_TONE #define TIMER_TONE TIM16 #endif #ifndef TIMER_SERVO #define TIMER_SERVO TIM17 #endif // UART Definitions #ifndef SERIAL_UART_INSTANCE #define SERIAL_UART_INSTANCE 101 #endif // Default pin used for generic 'Serial' instance // Mandatory for Firmata #ifndef PIN_SERIAL_RX #define PIN_SERIAL_RX PA3 #endif #ifndef PIN_SERIAL_TX #define PIN_SERIAL_TX PA2 #endif // Alias #ifndef DEBUG_SUBGHZSPI_MOSI #define DEBUG_SUBGHZSPI_MOSI PA7_ALT1 #endif #ifndef DEBUG_SUBGHZSPI_MISO #define DEBUG_SUBGHZSPI_MISO PA6_ALT1 #endif #ifndef DEBUG_SUBGHZSPI_SCLK #define DEBUG_SUBGHZSPI_SCLK PA5_ALT1 #endif #ifndef DEBUG_SUBGHZSPI_SS #define DEBUG_SUBGHZSPI_SS PA4_ALT1 #endif // Extra HAL modules #if !defined(HAL_DAC_MODULE_DISABLED) #define HAL_DAC_MODULE_ENABLED #endif /*---------------------------------------------------------------------------- * Arduino objects - C++ only *----------------------------------------------------------------------------*/ #ifdef __cplusplus // These serial port names are intended to allow libraries and architecture-neutral // sketches to automatically default to the correct port name for a particular type // of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, // the first hardware serial port whose RX/TX pins are not dedicated to another use. // // SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor // // SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial // // SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library // // SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. // // SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX // pins are NOT connected to anything by default. #ifndef SERIAL_PORT_MONITOR #define SERIAL_PORT_MONITOR Serial #endif #ifndef SERIAL_PORT_HARDWARE #define SERIAL_PORT_HARDWARE Serial #endif #endif



Exemplos:

    pinMode(PB2,OUTPUT);
    analogRead(PB3);

Atenção

ATENÇÃO: RTC BACKUP (generic_clock.c)
C:\Users\Usuario\AppData\Local\arduino15\packages\STMicroelectronics\hardware\stm32\2.6.0\variants\STM32WLxx\WL54JCI_WL55JCI_WLE4J(8-B-C)I_WLE5J(8-B-C)I

void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; HAL_PWR_EnableBkUpAccess(); __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2); RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSE; RCC_OscInitStruct.LSEState = RCC_LSE_ON; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK3|RCC_CLOCKTYPE_HCLK |RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1 |RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.AHBCLK3Divider = RCC_SYSCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) { Error_Handler(); } }


Dúvidas

FORUM

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