Skip to content

Commit

Permalink
v2.11.1
Browse files Browse the repository at this point in the history
+ released: 2024-06-27

STM32 MCUs supported!

|        MCU         |        MCU         |        MCU         |        MCU         |        MCU         |
| :----------------: | :----------------: | :----------------: | :----------------: | :----------------: |
|    STM32C011D6     |    STM32C011F6     |    STM32L4P5ZG     |    STM32G431RB     |     STM32C011J6    |
|    STM32C011F4     |    STM32C011J4     |    STM32L4P5AE     |    STM32L4P5AG     |     STM32L4P5CE    |
|    STM32L4P5QE     |    STM32L4P5QG     |    STM32L4P5RE     |    STM32L4P5RG     |     STM32L4P5VE    |
|    STM32L4P5ZE     |    STM32G431C6     |    STM32G431C8     |    STM32G431CB     |     STM32G431K6    |
|    STM32G431KB     |    STM32G431M6     |    STM32G431M8     |    STM32G431MB     |     STM32G431R6    |
|    STM32G431V6     |    STM32G431V8     |    STM32G431VB     |    STM32G441CB     |     STM32G441KB    |
|    STM32G441RB     |    STM32G441VB     |    STM32G473CB     |    STM32G473CC     |     STM32G473CE    |
|    STM32G473MC     |    STM32G473ME     |    STM32G473PB     |    STM32G473PC     |     STM32G473PE    |
|    STM32G473QC     |    STM32G473QE     |    STM32G473RB     |    STM32G473RC     |     STM32G473RE    |
|    STM32G473VC     |    STM32G473VE     |    STM32G474CB     |    STM32G474CC     |     STM32G474CE    |
|    STM32G474MC     |    STM32G474ME     |    STM32G474PB     |    STM32G474PC     |     STM32G474PE    |
|    STM32G474QC     |    STM32G474QE     |    STM32G474RB     |    STM32G474RC     |     STM32G474RE    |
|    STM32G474VC     |    STM32G474VE     |    STM32G483CE     |    STM32G483ME     |     STM32G483PE    |
|    STM32G483RE     |    STM32G483VE     |    STM32G484CE     |    STM32G484ME     |     STM32G484PE    |
|    STM32G484RE     |    STM32G484VE     |    STM32G491CC     |    STM32G491CE     |     STM32G491KC    |
|    STM32G491MC     |    STM32G491ME     |    STM32G491RC     |    STM32G491RE     |     STM32G491VC    |
|    STM32G4A1CE     |    STM32G4A1KE     |    STM32G4A1ME     |    STM32G4A1RE     |     STM32G4A1VE    |
|    STM32L4Q5CG     |    STM32L4Q5QG     |    STM32L4Q5RG     |    STM32L4Q5VG     |     STM32L4Q5ZG    |
|    STM32C031C6     |    STM32C031F4     |    STM32C031F6     |    STM32C031G4     |     STM32C031G6    |
|    STM32C031K6     |    STM32G051C6     |    STM32G051C8     |    STM32G051F6     |     STM32G051F8    |
|    STM32G051G8     |    STM32G051K6     |    STM32G051K8     |    STM32G061C6     |     STM32G061C8    |
|    STM32G061F8     |    STM32G061G6     |    STM32G061G8     |    STM32G061K6     |     STM32G061K8    |
|    STM32G0B1CC     |    STM32G0B1CE     |    STM32G0B1KB     |    STM32G0B1KC     |     STM32G0B1KE    |
|    STM32G0B1MC     |    STM32G0B1ME     |    STM32G0B1NE     |    STM32G0B1RB     |     STM32G0B1RC    |
|    STM32G0B1VB     |    STM32G0B1VC     |    STM32G0B1VE     |    STM32G0C1CC     |     STM32G0C1CE    |
|    STM32G0C1KE     |    STM32G0C1MC     |    STM32G0C1ME     |    STM32G0C1NE     |     STM32G0C1RC    |
|    STM32G0C1VC     |    STM32G0C1VE     |    STM32L4P5CG     |    STM32L4P5VG     |     STM32G431K8    |
|    STM32G431R8     |    STM32G441MB     |    STM32G473MB     |    STM32G473QB     |     STM32G473VB    |
|    STM32G474MB     |    STM32G474QB     |    STM32G474VB     |    STM32G483QE     |     STM32G484QE    |
|    STM32G491KE     |    STM32G491VE     |    STM32L4Q5AG     |    STM32C031C4     |     STM32C031K4    |
|    STM32G051G6     |    STM32G061F6     |    STM32G0B1CB     |    STM32G0B1MB     |     STM32G0B1RE    |
|    STM32G0C1KC     |    STM32G0C1RE     |

Supported modules:

+ ADC (Full module support)
+ SPI (Full module support)
+ UART (Full module support)
+ I2C (Full module support)
+ PWM (Full module support)
+ GPIO (Full module support)
+ OW (Full module support)
+ DMA (Full module support)
+ CAN (Full module support)

XC16 USB

+ Third party modules supported
  + TinyUSB (An open source cross-platform USB stack for embedded systems)

XC32 ETHERNET

+ Third party modules supported
  + CycloneTCP (An open source cross-platform USB stack for embedded systems)
  + Support added for XC32 compiler

Fixes

+ Added PD0 and PD1 pins connection for all GD32VF103 MCUs
+ Fixed pin configuration for pins with indexes below 8 in "hal_ll_one_wire.c" implementation for GD32VF103 MCUs
+ Set default CAN baudrate to 125K for all architectures that have CAN module supported
+ Modified error handling in ADC implementation for MKV58x MCUs to detect and notify when an unsupported resolution is attempted to be set
+ Modified low-level GPIO implementation for STM32 so now PORT G pins on STM32L4Rxx MCUs can be set as inputs or outputs
+ Resistive mikromedias naming fixed according to the product names
  + "Mikromedia 3 for STM32 Resistive" changed to "Mikromedia 3 for STM32F4 Resistive"
  + "Mikromedia 3 for STM32 Resistive FPI" changed to "Mikromedia 3 for STM32F4 Resistive FPI"
  + "Mikromedia 4 for STM32 Resistive" changed to "Mikromedia 4 for STM32F4 Resistive"
  + "Mikromedia 5 for STM32 Resistive" changed to "Mikromedia 5 for STM32F4 Resistive"
+ Fixed values for display configuration so now it is configured as an 800x480 display istead of 480x800
  + "Mikromedia 5 for Kinetis Resistive"
  + "Mikromedia 5 for Kinetis Resistive FPI"
+ Fixed regex for including an appropriate dip28 header files for the boards that have this socket

Improvements

+ Added helper function in ./tp.c(./api/tp/lib/src/tp/tp.c) for simplifying code operations on PIC architecture.
+ Added default CAN receive FIFO number and default filter bank number for all architectures that have CAN module supported
+ Added CAN_RX and CAN_TX pins for "EasyPIC v8", "EasyPIC v8 for dsPIC30" and "EasyPIC v8 for PIC24/dsPIC33" boards
+ Added mapping for LCD pins in board.h, lcd.h now uses these pins instead of TFT
+ Changed the approach to adding new BSP
  + BSP files are now included as separate cmake files per board
+ Implemented an option to add all header files that are used in LVGL project into the LVGL library
+ Structure typecast for GPIO changed to match other architectures

NEW HARDWARE

Support added for following hardware:

+ EasyAVR v8
+ Mikromedia 3 for Kinetis Resistive
+ Mikromedia 3 for STM32F2 Resistive
  • Loading branch information
StrahinjaJacimovic committed Jun 27, 2024
1 parent 958062f commit a81efc6
Show file tree
Hide file tree
Showing 1,017 changed files with 242,127 additions and 3,253 deletions.
4 changes: 1 addition & 3 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,7 @@ jobs:
- name: Run Keyword Replacement Script
## Replace keyword 'code' with '_code' (Microchip MCUs)
run: |
python -u scripts/keyword_replace.py "code" "_code" "thirdparty/ethernet/cyclonetcp" "cp1252"
python -u scripts/keyword_replace.py "code" "_code" "thirdparty/lvgl" "UTF-8"
run: python -u scripts/keyword_replace.py "code" "_code" "thirdparty/ethernet/cyclonetcp" "cp1252"

- name: Run Package Script
run: python -u scripts/package.py ${{ secrets.GITHUB_TOKEN }} ${{ github.repository }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "BOARD_ARDUINO_MEGA_2560_REV3")
set(BOARD_PATH "include/boards/board_arduino_mega_2560_rev3")
set(MCU_CARD FALSE)
set(SHIELD TRUE)
endif()
5 changes: 5 additions & 0 deletions bsp/board/include/boards/board_arduino_uno_rev3/board.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "BOARD_ARDUINO_UNO_REV3")
set(BOARD_PATH "include/boards/board_arduino_uno_rev3")
set(MCU_CARD FALSE)
set(SHIELD TRUE)
endif()
5 changes: 5 additions & 0 deletions bsp/board/include/boards/board_curiosity_hpc/board.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "BOARD_CURIOSITY_HPC")
set(BOARD_PATH "include/boards/board_curiosity_hpc")
set(MCU_CARD FALSE)
set(DIP_SOCKET TRUE)
endif()
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "BOARD_CURIOSITY_NANO_WITH_PIC18F47K42")
set(BOARD_PATH "include/boards/board_curiosity_nano_with_pic18f47k42")
set(MCU_CARD FALSE)
set(SHIELD TRUE)
endif()
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "BOARD_CURIOSITY_NANO_WITH_PIC18F47Q10")
set(BOARD_PATH "include/boards/board_curiosity_nano_with_pic18f47q10")
set(MCU_CARD FALSE)
set(SHIELD TRUE)
endif()
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "BOARD_CURIOSITY_NANO_WITH_PIC18F57Q43")
set(BOARD_PATH "include/boards/board_curiosity_nano_with_pic18f57q43")
set(MCU_CARD FALSE)
set(SHIELD TRUE)
endif()
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "BOARD_CURIOSITY_PIC24FJ256GA7")
set(BOARD_PATH "include/boards/board_curiosity_pic24fj256ga7")
set(MCU_CARD FALSE)
endif()
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "BOARD_CURIOSITY_PIC32MZ_EF")
set(BOARD_PATH "include/boards/board_curiosity_pic32_mz_ef")
set(MCU_CARD FALSE)
endif()
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "KIT_DISCOVERY_WITH_STM32F303VC_MCU")
set(BOARD_PATH "include/boards/board_discovery_with_stm32f303vc")
set(MCU_CARD FALSE)
set(SHIELD TRUE)
endif()
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "KIT_DISCOVERY_WITH_STM32F407VG_MCU")
set(BOARD_PATH "include/boards/board_discovery_with_stm32f407vg")
set(MCU_CARD FALSE)
set(SHIELD TRUE)
endif()
5 changes: 5 additions & 0 deletions bsp/board/include/boards/board_easy24_33_v6/board.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "EASY24_33_V6")
set(BOARD_PATH "include/boards/board_easy24_33_v6")
set(MCU_CARD FALSE)
set(DIP_SOCKET FALSE)
endif()
3 changes: 3 additions & 0 deletions bsp/board/include/boards/board_easyavr_pro_v8/board.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "BOARD_EASYAVR_PRO_V8")
set(BOARD_PATH "include/boards/board_easyavr_pro_v8")
endif()
5 changes: 5 additions & 0 deletions bsp/board/include/boards/board_easyavr_v7/board.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "BOARD_EASYAVR_V7")
set(BOARD_PATH "include/boards/board_easyavr_v7")
set(MCU_CARD FALSE)
set(DIP_SOCKET TRUE)
endif()
5 changes: 5 additions & 0 deletions bsp/board/include/boards/board_easyavr_v8/board.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if(${_MSDK_BOARD_NAME_} STREQUAL "BOARD_EASYAVR_V8")
set(BOARD_PATH "include/boards/board_easyavr_v8")
set(MCU_CARD FALSE)
set(DIP_SOCKET TRUE)
endif()
191 changes: 191 additions & 0 deletions bsp/board/include/boards/board_easyavr_v8/board.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
/****************************************************************************
**
** Copyright (C) 2024 MikroElektronika d.o.o.
** Contact: https://www.mikroe.com/contact
**
** This file is part of the mikroSDK package
**
** Commercial License Usage
**
** Licensees holding valid commercial NECTO compilers AI licenses may use this
** file in accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The MikroElektronika Company.
** For licensing terms and conditions see
** https://www.mikroe.com/legal/software-license-agreement.
** For further information use the contact form at
** https://www.mikroe.com/contact.
**
**
** GNU Lesser General Public License Usage
**
** Alternatively, this file may be used for
** non-commercial projects under the terms of the GNU Lesser
** General Public License version 3 as published by the Free Software
** Foundation: https://www.gnu.org/licenses/lgpl-3.0.html.
**
** The above copyright notice and this permission notice shall be
** included in all copies or substantial portions of the Software.
**
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
** OF MERCHANTABILITY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
** TO THE WARRANTIES FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
** OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**
****************************************************************************/
/*!
* @file board.h
* @brief Main board pin mapping.
*/

#ifndef _BOARD_H_
#define _BOARD_H_

#ifdef __cplusplus
extern "C"{
#endif

// Hardware revision number
#define BOARD_REV_MAJOR (1)
#define BOARD_REV_MINOR (01)

#define BOARD_NAME "EasyAVR v8"

#include "dip_socket.h"
#include "mikrobus.h"

/// Mapping
#define MIKROBUS_1 1
#define MIKROBUS_1_AN MIKROBUS_1_DIP_AN
#define MIKROBUS_1_RST MIKROBUS_1_DIP_RST
#define MIKROBUS_1_CS MIKROBUS_1_DIP_CS
#define MIKROBUS_1_SCK MIKROBUS_1_DIP_SCK
#define MIKROBUS_1_MISO MIKROBUS_1_DIP_MISO
#define MIKROBUS_1_MOSI MIKROBUS_1_DIP_MOSI
#define MIKROBUS_1_PWM MIKROBUS_1_DIP_PWM
#define MIKROBUS_1_INT MIKROBUS_1_DIP_INT
#define MIKROBUS_1_RX MIKROBUS_1_DIP_RX
#define MIKROBUS_1_TX MIKROBUS_1_DIP_TX
#define MIKROBUS_1_SCL MIKROBUS_1_DIP_SCL
#define MIKROBUS_1_SDA MIKROBUS_1_DIP_SDA

#define MIKROBUS_2 2
#define MIKROBUS_2_AN MIKROBUS_2_DIP_AN
#define MIKROBUS_2_RST MIKROBUS_2_DIP_RST
#define MIKROBUS_2_CS MIKROBUS_2_DIP_CS
#define MIKROBUS_2_SCK MIKROBUS_2_DIP_SCK
#define MIKROBUS_2_MISO MIKROBUS_2_DIP_MISO
#define MIKROBUS_2_MOSI MIKROBUS_2_DIP_MOSI
#define MIKROBUS_2_PWM MIKROBUS_2_DIP_PWM
#define MIKROBUS_2_INT MIKROBUS_2_DIP_INT
#define MIKROBUS_2_RX MIKROBUS_2_DIP_RX
#define MIKROBUS_2_TX MIKROBUS_2_DIP_TX
#define MIKROBUS_2_SCL MIKROBUS_2_DIP_SCL
#define MIKROBUS_2_SDA MIKROBUS_2_DIP_SDA

#define MIKROBUS_3 3
#define MIKROBUS_3_AN MIKROBUS_3_DIP_AN
#define MIKROBUS_3_RST MIKROBUS_3_DIP_RST
#define MIKROBUS_3_CS MIKROBUS_3_DIP_CS
#define MIKROBUS_3_SCK MIKROBUS_3_DIP_SCK
#define MIKROBUS_3_MISO MIKROBUS_3_DIP_MISO
#define MIKROBUS_3_MOSI MIKROBUS_3_DIP_MOSI
#define MIKROBUS_3_PWM MIKROBUS_3_DIP_PWM
#define MIKROBUS_3_INT MIKROBUS_3_DIP_INT
#define MIKROBUS_3_RX MIKROBUS_3_DIP_RX
#define MIKROBUS_3_TX MIKROBUS_3_DIP_TX
#define MIKROBUS_3_SCL MIKROBUS_3_DIP_SCL
#define MIKROBUS_3_SDA MIKROBUS_3_DIP_SDA

#define MIKROBUS_4 4
#define MIKROBUS_4_AN MIKROBUS_4_DIP_AN
#define MIKROBUS_4_RST MIKROBUS_4_DIP_RST
#define MIKROBUS_4_CS MIKROBUS_4_DIP_CS
#define MIKROBUS_4_SCK MIKROBUS_4_DIP_SCK
#define MIKROBUS_4_MISO MIKROBUS_4_DIP_MISO
#define MIKROBUS_4_MOSI MIKROBUS_4_DIP_MOSI
#define MIKROBUS_4_PWM MIKROBUS_4_DIP_PWM
#define MIKROBUS_4_INT MIKROBUS_4_DIP_INT
#define MIKROBUS_4_RX MIKROBUS_4_DIP_RX
#define MIKROBUS_4_TX MIKROBUS_4_DIP_TX
#define MIKROBUS_4_SCL MIKROBUS_4_DIP_SCL
#define MIKROBUS_4_SDA MIKROBUS_4_DIP_SDA

#define MIKROBUS_5 5
#define MIKROBUS_5_AN MIKROBUS_5_DIP_AN
#define MIKROBUS_5_RST MIKROBUS_5_DIP_RST
#define MIKROBUS_5_CS MIKROBUS_5_DIP_CS
#define MIKROBUS_5_SCK MIKROBUS_5_DIP_SCK
#define MIKROBUS_5_MISO MIKROBUS_5_DIP_MISO
#define MIKROBUS_5_MOSI MIKROBUS_5_DIP_MOSI
#define MIKROBUS_5_PWM MIKROBUS_5_DIP_PWM
#define MIKROBUS_5_INT MIKROBUS_5_DIP_INT
#define MIKROBUS_5_RX MIKROBUS_5_DIP_RX
#define MIKROBUS_5_TX MIKROBUS_5_DIP_TX
#define MIKROBUS_5_SCL MIKROBUS_5_DIP_SCL
#define MIKROBUS_5_SDA MIKROBUS_5_DIP_SDA

#define USB_UART_TX USB_UART_DIP_TX
#define USB_UART_RX USB_UART_DIP_RX

#define LCD_CS1 PB0
#define LCD_CS2 PB1
#define LCD_RS PA2
#define LCD_E PD6
#define LCD_D4 PC4
#define LCD_D5 PC5
#define LCD_D6 PC6
#define LCD_D7 PC7
#define LCD_BPWM PD5

#define TFT_CS1 PB0
#define TFT_CS2 PB1
#define TFT_RS PA2
#define TFT_R_W PA3
#define TFT_E PD6
#define TFT_D0 PC0
#define TFT_D1 PC1
#define TFT_D2 PC2
#define TFT_D3 PC3
#define TFT_D4 PC4
#define TFT_D5 PC5
#define TFT_D6 PC6
#define TFT_D7 PC7
#define TFT_RST PD7
#define TFT_BPWM PD5

#define TFT_RD TFT_CS1
#define TFT_WR TFT_CS2
#define TFT_CS TFT_E

#define TP_MIKROE_XL PA1
#define TP_MIKROE_XR PA2
#define TP_MIKROE_YU PA3
#define TP_MIKROE_YD PA0

// Default TP_MIKROE touch panel calibration values.
#define TP_MIKROE_CALIBRATION_XMIN 120
#define TP_MIKROE_CALIBRATION_XMAX 910
#define TP_MIKROE_CALIBRATION_YMIN 78
#define TP_MIKROE_CALIBRATION_YMAX 945

#define TP_MIKROE_PRESSURE_THRESHOLD_LOWER (70)
#define TP_MIKROE_PRESSURE_THRESHOLD_UPPER (1000)

#define TFT_8BIT_DATA_PORT_CH0 PORT_C
#define TFT_8BIT_DATA_PORT_CH0_MASK 0xFF

#define TFT_16BIT_DATA_PORT_CH0 HAL_PORT_NC
#define TFT_16BIT_DATA_PORT_CH0_MASK 0x0000

#define TFT_16BIT_DATA_PORT_CH1 HAL_PORT_NC
#define TFT_16BIT_DATA_PORT_CH1_MASK 0x0000
#ifdef __cplusplus
}
#endif

#endif // _BOARD_H_
// ------------------------------------------------------------------------- END
Loading

0 comments on commit a81efc6

Please sign in to comment.