Releases: MikroElektronika/mikrosdk_v2
mikroSDK v2.14.3 released
v2.14.3
- released: 2025-03-28
Changes
New features
mikroSDK
- Button simulation library
- Implemented a useful new library, especially handy while using a remote setup on Planet Debug
- The library includes various button-handling simulation functions, enabling a range of applications
Improvements
mikroSDK
- Added
digital_out_read
function to the driver level- Allows reading the output value of a pin, which is required by some architectures
- Complements the existing
digital_in_read
function
Fixes
mikroSDK
- Updated the delay function calls in the PIC32
hal_ll_errata.c
file to fit the requirements of all adequate compilers - Eliminated wrong symbols from LCD
- LCD used to show "garbage" symbols regardless of achitecture
- Added missing LCD pin definitions for certain v7 boards
- Some v7 boards with an LCD socket lacked the necessary pin definitions for the LCD library
- Updated Clicker 4 board names
- They have been changed to fit the new naming convention
mikroSDK v2.14.2 released
v2.14.2
- released: 2025-03-14
Changes
Fixes
mikroSDK
- Set UART configuration to use interrupt-based approach by default
- Applied to both UART and logger for consistency across all projects
mikroSDK v2.14.1 released
mikroSDK v2.14.0 released
v2.14.0
- released: 2025-03-11
Changes
PIC18xx (Q10 | Q43| Q83 | Q84) and PIC32MZ EC (ECH | ECM | ECH)
PIC18xQ and PIC32MZ EC MCUs supported!
MCU | MCU | MCU | MCU | MCU |
---|---|---|---|---|
PIC18F24Q10 | PIC18F46Q43 | PIC18F26Q84 | PIC32MZ1024ECH064 | PIC32MZ2048ECG124 |
PIC18F25Q10 | PIC18F47Q43 | PIC18F27Q84 | PIC32MZ1024ECH100 | PIC32MZ2048ECG144 |
PIC18F26Q10 | PIC18F55Q43 | PIC18F46Q84 | PIC32MZ1024ECH124 | PIC32MZ2048ECH064 |
PIC18F27Q10 | PIC18F56Q43 | PIC18F47Q84 | PIC32MZ1024ECH144 | PIC32MZ2048ECH100 |
PIC18F45Q10 | PIC18F26Q83 | PIC18F56Q84 | PIC32MZ1024ECM064 | PIC32MZ2048ECH124 |
PIC18F46Q10 | PIC18F27Q83 | PIC18F57Q84 | PIC32MZ1024ECM100 | PIC32MZ2048ECH144 |
PIC18F25Q43 | PIC18F46Q83 | PIC32MZ1024ECG064 | PIC32MZ1024ECM124 | PIC32MZ2048ECM064 |
PIC18F26Q43 | PIC18F47Q83 | PIC32MZ1024ECG100 | PIC32MZ1024ECM144 | PIC32MZ2048ECM100 |
PIC18F27Q43 | PIC18F56Q83 | PIC32MZ1024ECG124 | PIC32MZ2048ECG064 | PIC32MZ2048ECM124 |
PIC18F45Q43 | PIC18F57Q83 | PIC32MZ1024ECG144 | PIC32MZ2048ECG100 | PIC32MZ2048ECM144 |
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)
New Features
mikroSDK
- Added functions to retrieve appropriate pin number and port name based on pin
- Two functions in total:
hal_gpio_fetch_pin
hal_gpio_fetch_port
- Both functions defined as static inline inside main gpio header file for ease of use
- For example, pin
GPIO_PC3
can be used to retrieve pin number as3
and port name asGPIO_PORT_C
- Two functions in total:
- Implemented UART polling mode
- Introduced UART polling mode as an alternative to the existing interrupt-based approach in the mikroSDK
- Provides an option for applications that require simpler control and do not rely on interrupt-driven operations
Improvements
mikroSDK
- Improved low level STM32 PWM implementation
- Timer modules can now use the same module but different channels without reinitializing the module every time
- Check THIS EXAMPLE to see how it works
- Added LCD_TFT macros into headers for all Mikromedias that don't use SIBRAIN socket the same way it is implemented for MCU Cards
- Previously LCD_TFT macros were defined in CMakeLists.txt for TFTs
- Added
errata
section in PIC32 low level implementation- Workarounds from the errata are now grouped and clearly marked for easier reference and maintenance
Fixes
mikroSDK
- Corrected UART stop bit configuration for STM32
- The support for 0.5 and 1.5 stop bits on UART4 and UART5 for certain MCUs was previously overlooked
- This issue has now been addressed in the code
- Updated low-level I2C implementation
- Some of the return value variables were originally declared as 8-bit, but they needed to handle larger values
- This has now been fixed
CORE
- Fixed STM32H7 library
- Previously initialization process was stuck in infinite loop while waiting for PLL to be enabled
- In project setup configuration clock settings values are now correct
mikroSDK v2.13.1 released
mikroSDK v2.13.0 released
v2.13.0
- released: 2024-12-24
Changes
SAM
SAM MCUs supported!
MCU | MCU | MCU |
---|---|---|
ATSAME70J19A | ATSAMS70J21A | ATSAMV70Q19A |
ATSAME70J19B | ATSAMS70J21B | ATSAMV70Q19B |
ATSAME70J20A | ATSAMS70N19A | ATSAMV70Q20A |
ATSAME70J20B | ATSAMS70N19B | ATSAMV70Q20B |
ATSAME70J21A | ATSAMS70N20A | ATSAMV71J19A |
ATSAME70J21B | ATSAMS70N20B | ATSAMV71J19B |
ATSAME70N19A | ATSAMS70N21A | ATSAMV71J20A |
ATSAME70N19B | ATSAMS70N21B | ATSAMV71J20B |
ATSAME70N20A | ATSAMS70Q19A | ATSAMV71J21A |
ATSAME70N20B | ATSAMS70Q19B | ATSAMV71J21B |
ATSAME70N21A | ATSAMS70Q20A | ATSAMV71N19A |
ATSAME70N21B | ATSAMS70Q20B | ATSAMV71N19B |
ATSAME70Q19A | ATSAMS70Q21A | ATSAMV71N20A |
ATSAME70Q19B | ATSAMS70Q21B | ATSAMV71N20A |
ATSAME70Q20A | ATSAMV70J19A | ATSAMV71N21A |
ATSAME70Q20B | ATSAMV70J19B | ATSAMV71N21B |
ATSAME70Q21A | ATSAMV70J20A | ATSAMV71Q19A |
ATSAME70Q21B | ATSAMV70J20B | ATSAMV71Q19B |
ATSAMS70J19A | ATSAMV70N19A | ATSAMV71Q20A |
ATSAMS70J19B | ATSAMV70N19B | ATSAMV71Q20B |
ATSAMS70J20A | ATSAMV70N20A | ATSAMV71Q21A |
ATSAMS70J20B | ATSAMV70N20B | ATSAMV71Q21B |
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)
Files updated:
- Updated due to SAM inclusion in all ARM-related CMake files
- Updated with more register handling macros for ARM architectures
- Updated with IRQ handling macros and regicters for SAM MCUs
Files added:
- hal_ll_adc.h
- hal_ll_adc_pin_map.h
- hal_ll_gpio.h
- hal_ll_gpio_port.h
- hal_ll_gpio_struct_type.h
- hal_ll_pin_names.h
- hal_ll_target.h
- hal_ll_target_names.h
- hal_ll_i2c_master.h
- hal_ll_i2c_pin_map.h
- hal_ll_one_wire.h
- hal_ll_spi_master.h
- hal_ll_spi_master_pin_map.h
- hal_ll_tim.h
- hal_ll_tim_pin_map.h
- hal_ll_uart.h
- hal_ll_uart_pin_map.h
- hal_ll_adc.c
- hal_ll_gpio.c
- hal_ll_gpio_port.c
- hal_ll_i2c_master.c
- hal_ll_one_wire.c
- hal_ll_spi_master.c
- hal_ll_tim.c
- hal_ll_uart.c
- hal_ll_core_port.c
- CMakeLists.txt
- hal_ll/CMakeLists.txt
- adc/CMakeLists.txt
- gpio/CMakeLists.txt
- i2c/CMakeLists.txt
- one_wire/CMakeLists.txt
- spi_master/CMakeLists.txt
- tim/CMakeLists.txt
- uart/CMakeLists.txt
./mcu_name/mcu_package/mcu_definitions.h
-https://github.com/MikroElektronika/mikrosdk_v2/blob/master/targets/arm/mikroe/common/include/mcu_definitions/SAM/mcu_name/mcu_package/mcu_definitions.h
- Added for all MCUs in mikroSDK where mcu_name is actual chip full name, i.e.
ATSAME70Q21B
etc. and mcu_package is actual package, i.e.LQFP64
etc.
- Added for all MCUs in mikroSDK where mcu_name is actual chip full name, i.e.
./mcu_name/mcu_package/mcu_reg_addresses.h
-https://github.com/MikroElektronika/mikrosdk_v2/blob/master/targets/arm/mikroe/common/include/mcu_definitions/SAM/mcu_name/mcu_package/mcu_reg_addresses.h
- Added for all MCUs in mikroSDK where mcu_name is actual chip full name, i.e.
ATSAME70Q21B
etc. and mcu_package is actual package, i.e.LQFP64
etc.
- Added for all MCUs in mikroSDK where mcu_name is actual chip full name, i.e.
mikroSDK v2.12.2 released
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
- Replaces
GPIO_PIN_x
- Replaces
PIN_xy
- Replaces
GPIO_PORT_x
- Replaces
PORT_xy
- Replaces
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 andy
is a number from 0 to 9
- Where
Note that these changes shall be reverted once the old pin definitions are removed from the SDK.
mikroSDK v2.12.1 released
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
- This caused build issues for FS if
mikroSDK v2.12.0 released
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
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.
- Added for all new MCUs in mikroSDK where mcu_name is actual chip full name with package, i.e.
./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.
- Added for all new MCUs in mikroSDK where mcu_name is actual chip full name, i.e.
CORE
- Added USB Clock schemes for the newly supported STM32L4 MCUs:
- STM32L412C8
- STM32L412K8
- STM32L412R8
- STM32L412T8
- STM32L412CB
- STM32L412KB
- STM32L412RB
- STM32L412TB
- STM32L422CB
- STM32L422KB
- STM32L422RB
- STM32L422TB