Skip to content

Releases: MikroElektronika/mikrosdk_v2

mikroSDK v2.12.2 released

10 Dec 14:13
4447365
Compare
Choose a tag to compare

v2.12.2

  • released: 2024-12-11

Changes

Improvements

mikroSDK

mikroSDK has been reworked to fit in all SDK supported PIC MCUs for XC8 toolchain.

In the XC8 compiler, there are some known considerations and potential issues when working with pointers and data widths greater than 8 bits, especially when working on 8-bit microcontrollers like the PIC series.

This is why the approach had to be modified. The modified approach bypasses this limitation by
splitting complex pieces of code into more simple steps.
The simpler steps result in XC8 toolchain generating appropriate assembly
instructions and therefore in working pieces of code.

New features

mikroSDK

Added following macro patterns:

  • GPIO_Pxy
    • Replaces Pxy
  • GPIO_PIN_x
    • Replaces PIN_xy
  • GPIO_PORT_x
    • Replaces PORT_xy

All use of the old macros has been changed by new ones. This affects all board and mcu packages as well.

Note that old macros shall be left in the SDK for a couple of upcoming versions, giving users time to make adequate changes to any code they might have.

CORE

All mcu.h header file for XC8 supported MCUs have the following change applied:

  • Changed all occurrences of Pxy to _Pxy
    • Where x i a letter from A to Z and y is a number from 0 to 9

Note that these changes shall be reverted once the old pin definitions are removed from the SDK.


mikroSDK v2.12.1 released

03 Dec 12:42
17a98c5
Compare
Choose a tag to compare

v2.12.1

  • released: 2024-12-03

Changes

Improvements

mikroSDK

mikroSDK LVGL now has the option to build either LIGHT or HEAVY LVGL configurations.

HEAVY configuration shall have all features of LIGHT configuration, with the addition of below listed features.

Additional options added for HEAVY configuration:

  • CANVAS
  • TABLE
  • ANIMIMG
  • CALENDAR
  • CHART
  • IMGBTN
  • LIST
  • MENU
  • METER
  • MSGBOX
  • SPAN
  • TABVIEW
  • TILEVIEW
  • WIN
  • FLEX
  • GRID

Note that this feature is chosen by NECTO based on MCU memory (RAM/FLASH).

i.e. if MCU has at least 128K RAM and 512K FLASH, heavy configuration will be built.

Fixes

mikroSDK

  • Fixed a stray space character before closing a comment
    • This caused build issues for FS if FF_USE_LFN was defined

mikroSDK v2.12.0 released

07 Nov 10:40
7932334
Compare
Choose a tag to compare

v2.12.0

  • released: 2024-11-08

Changes

Improvements

mikroSDK

mikroSDK now has the option to skip DRV to HAL layer jumps completely.

Note that this feature is enabled by default in NECTO.

Fixes

  • Fixed PIC XC8 SPI module so the code can be generated
    • Previous code was too complex for XC8 compiler, so it has been simplified
  • Fixed all timer module number definitions for all STM32L1x MCUs
    • Previously, timer/pwm was not working correctly as these values were incorrect

mikroSDK v2.11.5 released

31 Oct 11:49
bd5b622
Compare
Choose a tag to compare

v2.11.5

  • released: 2024-11-01

Changes

Improvements

mikroSDK

New STM32L4 MCUs supported!

MCU MCU MCU
STM32L412C8 STM32L412CB STM32L422CB
STM32L412K8 STM32L412KB STM32L422KB
STM32L412R8 STM32L412RB STM32L422RB
STM32L412T8 STM32L412TB STM32L422TB

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)

  • RTC (Full module support)

  • DMA (Full module support)

  • Third party modules supported

    • TinyUSB (An open source cross-platform USB stack for embedded system)
    • FatFs (Generic FAT Filesystem Module)

Files added:

  • ./mcu_name/mcu_definitions.h - https://github.com/MikroElektronika/mikrosdk_v2/blob/master/targets/arm/mikroe/common/include/mcu_definitions/STM32/mcu_name/mcu_definitions.h
  • ./mcu_name/can_definitions.h - https://github.com/MikroElektronika/mikrosdk_v2/blob/master/targets/arm/mikroe/common/include/mcu_definitions/STM32/mcu_name/can_definitions.h
  • ./mcu_name/dma_definitions.h - https://github.com/MikroElektronika/mikrosdk_v2/blob/master/targets/arm/mikroe/common/include/mcu_definitions/STM32/mcu_name/dma_definitions.h
    • Added for all new MCUs in mikroSDK where mcu_name is actual chip full name with package, i.e. STM32L412C8Tx etc.
  • ./mcu_name/mcu_reg_addresses.h.h - https://github.com/MikroElektronika/mikrosdk_v2/blob/master/targets/arm/mikroe/common/include/mcu_reg_addresses/STM32/mcu_name/mcu_reg_addresses.h
    • Added for all new MCUs in mikroSDK where mcu_name is actual chip full name, i.e. STM32L412C8 etc.

CORE

  • Added USB Clock schemes for the newly supported STM32L4 MCUs:
    • STM32L412C8
    • STM32L412K8
    • STM32L412R8
    • STM32L412T8
    • STM32L412CB
    • STM32L412KB
    • STM32L412RB
    • STM32L412TB
    • STM32L422CB
    • STM32L422KB
    • STM32L422RB
    • STM32L422TB

mikroSDK v2.11.4 released

17 Oct 11:39
70660f5
Compare
Choose a tag to compare

v2.11.4

  • released: 2024-10-18

Changes

Improvements

mikroSDK

  • Updated logger library error handling
    • log_init now returns an error (-1) if any of the configuration API calls used in it failed

CORE

  • Removed READONLY option from linker scripts for following MCUs (CLANG)
    • STM32H7S3A8
    • STM32H7S3I8
    • STM32H7S3L8
    • STM32H7S3R8
    • STM32H7S3V8
    • STM32H7S3Z8
    • STM32H7S7A8
    • STM32H7S7I8
    • STM32H7S7L8
    • STM32H7S7Z8
    • STM32U083CC
    • STM32U083HC
    • STM32U083KC
    • STM32U083MC
    • STM32U083RC
  • Updated project templates to report better errors
    • Case when openning designer project without a setup with TFT
      • Now reports error in the output

Fixes

mikroSDK

CORE

  • Removed CAN schema file (clock configuration) for PIC32MZ1024EFE144
    • Added by mistake initially

mikroSDK v2.11.3 released

03 Oct 07:07
Compare
Choose a tag to compare

v2.11.3

  • released: 2024-10-03

Changes

Fixes

  • Fixed touch panel implementation and TSC2003 library to recognize touch on TSC2003 RESISTIVE Displays while using LVGL projects
  • Fixed TP_ROTATION value to be "180" for all 4" CAPACITIVE Mikromedia Boards with PIC32MZ so touch position can be detected correctly

Improvements

  • Updated CMakeLists.txt to include MCU Cards headers differently
    • Headers are now included with new path with MCU_NAME
  • Clock schemas added for PIC32 mikromedia boards

mikroSDK v2.11.2 released

26 Aug 06:46
Compare
Choose a tag to compare

v2.11.2

  • released: 2024-08-23

Changes

NEW HARDWARE

Support added for following hardware:

mikroSDK v2.11.1 released

09 Aug 11:21
Compare
Choose a tag to compare

v2.11.1

  • released: 2024-06-27

Changes

  1. STM32 low level hal support
  2. dsPIC XC16 USB support
  3. PIC32 XC32 ETHERNET support
  4. Fixes
  5. Improvements
  6. NEW HARDWARE

STM32

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 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:


mikroSDK v2.11.0 released

02 Apr 15:07
Compare
Choose a tag to compare

v2.11.0

  • released: 2024-04-02

Changes

  1. XC32 support
  2. XC16 support
  3. XC8 support
  4. Fixes
  5. Improvements
  6. NEW HARDWARE

XC32

  • As of mikroSDK version 2.11.0, XC32 v4.35 is officially supported.
  • All 187 PIC32 MCUs can now be used with the XC32 toolchain along with full mikroSDK functionality.
  • Linker scripts are included upon selecting adequate setup for your project so it can be easily edited on the fly.
  • All standard modules supported (GPIO, ADC, I2C, PWM, SPI, UART, OneWire, RTC, CAN, DMA and LCD)
  • Third party modules supported
    • TinyUSB (An open source cross-platform USB stack for embedded system)
    • LVGL (Light and Versatile Embedded Graphics Library)
    • FatFs (Generic FAT Filesystem Module)

XC16

  • As of mikroSDK version 2.11.0, XC16 v2.10 is officially supported.
  • All 531 dsPIC/PIC24 MCUs can now be used with the XC16 toolchain along with full mikroSDK functionality.
  • Linker scripts are included upon selecting adequate setup for your project so it can be easily edited on the fly.
  • All standard modules supported (GPIO, ADC, I2C, PWM, SPI, UART, OneWire, CAN and LCD)
  • Third party modules supported
    • FatFs (Generic FAT Filesystem Module)

XC8

  • As of mikroSDK version 2.11.0, XC8 v2.46 is officially supported.
  • Due to the complexity of mikroSDK, only PIC18xxQ43 family of MCUs is supported.
  • All standard modules supported (GPIO, ADC, I2C, PWM, SPI, UART, OneWire, CAN, DMA and LCD)
  • Third party modules supported
    • FatFs (Generic FAT Filesystem Module)

Fixes

  • Fixed drv/lib/CMakeLists.txt to include the appropriate subdirectories.
    • Previously, lib_drv_i2c_master and lib_drv_port were switched. Now, the inclusion is based on their individual definitions – ensuring that each is included as intended.
  • Fixed all low level implementations for PIC32 MCUs to accommodate the release of XC32 toolchain.
  • Fixed issue with gl_text not drawing correct characters on XC compilers.
  • Fixed issue with tp not detecting TP_EVENT_PRESS_UP on tft7 boards.
  • Fixed wrong LCD_TFT_8BIT_CH0 port name for:
  • Fixed wrong HAL_LL_I2C_MAX_SPEED_VALUE for I2CxBRG register for dsPIC devices.
  • Fixed custom board inclusion into project
    • Custom board is not generated in mikroSDK BSP anymore, but in MIKROE app data

Improvements

  • Added doxy style help generation files for mikroSDK
    • Additionally, a layout file has been added as well
  • Changed directory so it can be built as bare metal
  • delays.h explicitly included in all files which use any delay API
  • Changed order of variables in ili9341.c for MikroC AI for dsPIC due to issue with W2 register.
  • Changed ./hal_ll_adc.c, added setting of pin analog functionality in hal_ll_adc_read function because of special case in tp_mikroe.c where we constantly change pin configuration.
  • Changed ./tsc2003.h, I2C slave address for touch controller is now defined in database.
  • Updated all tests to build with XC compilers
    • Additinally, added preinit routine to every test as well

NEW HARDWARE

  • Mikromedia 3 for PIC Resistive
  • Mikromedia 3 for PIC Resistive FPI
  • Mikromedia 3 for STM32 Resistive
  • Mikromedia 3 for STM32 Resistive FPI
  • Mikromedia 4 for kinetis Resistive
  • Mikromedia 4 for kinetis Resistive FPI
  • Mikromedia 4 for STM32 Resistive
  • Mikromedia 4 for STM32f2 Resistive FPI
  • Mikromedia 4 for STM32f4 Resistive FPI
  • Mikromedia 4 for STM32f7 Resistive
  • Mikromedia 5 for kinetis Resistive
  • Mikromedia 5 for kinetis Resistive FPI
  • Mikromedia 5 for STM32 Resistive
  • Mikromedia 5 for STM32f4 Resistive FPI
  • Mikromedia 5 for STM32f7 Resistive
  • Mikromedia 5 for STM32f7 Resistive FPI
  • Mikromedia 7 Resistive
  • Mikromedia 7 Resistive FPI

mikroSDK v2.10.2 released

20 Feb 11:57
Compare
Choose a tag to compare

v2.10.2

  • released: 2024-02-19

2.10.2 Changes

  1. Fixes
  2. Improvements
  3. NEW HARDWARE

2.10.2 Fixes

  • Fixed an issue on TIVA, where the DMA transfer would not be realized, if the source data buffer was stored in flash memory
    • Configured flash memory to allow the DMA access to the whole flash memory space
  • Added guards for tim_regs_map array in dsPIC low-level PWM implementation

2.10.2 Improvements

  • Removed option to choose receive buffer and filter config for FIFO1 in low level implementation for PIC18 CAN implementation
    • Receive buffers are not selectable due to HW restrictions. Filter and mask configuration for FIFO1 is going to be handled once CAN over interrupts is supported
  • Removed NC definition for not connected pins from MCU card headers for 61 MCU cards
    • Now user will have compile time error if he tries using pin that is not routed to mikroBUS
  • Added NC macro as HAL_PIN_NC to 20 PIM MCU card headers that didn't have it
  • Removed display support for MCU CARD 2 FOR KINETIS with MK20 MCUs as it doesn't have TFT pins

2.10.2 NEW HARDWARE