FRDM-KL43Z

This Freedom board is based on the KL43Z256VLLZ4 which is a 48MHz device from the ultra-low-power KL family with Cortex-M0+ core. This KL43 device has 256k Flash and 32k SRAM and is in a 64 pin LQFP package, whereby the KL43 is also available in 64 MAPBGA with 128k .. 256k Flash and 16k .. 32k RAM. There is a 32.768kHz crystal on the board for clocking the part and/or its RTC.

Full details and documentation for this board can be obtained from the Freescale web site: FRDM-KL43Z

To configure the µTasker project for this board simply enable the define FRDM_KL43Z in the project's config.h file. The compiler needs to be set to build for Cortex m0+ (and not Cortex M4) and the linker script KL_256_32.ld should be selected [KL_256_32_BM.ld for downloadable version] {the linker script extension may vary for different compilers, whereby *.ld is valid for GCC}

FRDM-KL43Z Binaries

Here are some binary files that can be loaded to the board. These were built using the µTasker applications (serial loader and V1.4 application) and can be simply generated using the supported compilers/IDEs [these were built using GCC], built using different configuration options or modified to suit specific requirements or hardware derived from this board :

  • uTaskerSerialBoot_FRDM-KL43Z_KBOOT_UART_KBOOT_HID_USBMSD.bin KBOOT compatible UART loader or KBOOT compatible HID or USB-MSD allowing applications to be loaded at link address 0x8080. When operating, the green LED blinks at 5Hz.
    To force the loader reset the board with SW1 held down.
    To disable the watchdog reset the board with SW3 held down.
    This can be loaded using the FRDM-KL43Z's USB-MSD boot loader. Note that the loader limits application sizes to 70k - it can be built without limits using the µTasker project. When USB is connected "USb" is displayed in the segment display on the board ("b" flashes in the segment display to signal boot loader mode). [17.2k]
  • uTaskerV1.4.8_BM_FRDM_KL43Z_MSD_CDCx3_RF_8080.bin KL43 application with command-line menu on the virtual COM connection (115'200 Baud). Low power modes can be set in the application menu and the processor runs at 48MHz from the 48MHz HIRC clock, whereby it is also used for crystal-less USB device operation. The RTC is clocked by the 1kHz LPO RC ocillator and the time is displayed in the GLCD.
    The USB device appears as composite USB-MSD with three USB-CDC interfaces.
    The flash drive is in the second half of the internal flash (128kBytes) and can be formatted by a PC host when connected via USB and is then seen as a 128k disk. Usually it will format it as FAT12 which gives a usable space of 108k due to the FAT12 overhead.

    The command line menu shell on the debug UART (OpenSDA virtual COM) allows the file system to also be used in the "Disk Interface" menu (this is a DOS like interface but with various extra tools for analysing visible, deleted and hidden files). The interface additionally allows formatting for FAT16 or FAT32, as well as FAT12, if desired.

    Three USB-CDC interfaces are added in the composite device and these are connected to three UARTs (the maximum number of usable UARTs on the FRDM-KL43Z) as follows:
    - CDC Interface 0 - Connected to the command line input but can be commanded to a USB-LPUART0 bridge in the USB menu. LPUART0 is connected to the OpenSDA virtual COM port connection.
    - CDC Interface 1 - LPUART 1 (LPUART1_TX = PTA19, LPUART1_RX = PTA18)
    - CDC Interface 2 - UART 2 (UART2_TX = PTE22 [J4-5], UART2_RX = PTE23 [J4-7])
    All UARTs (two LPUARTs and one UART) are using DMA for transmission. Read more details about the UART/LPUARTs in the KL43 at µTasker UART/LPUART interface.

    The application was configured with USB_INTERFACE to enable USB, USE_USB_MSD to enable the USB-MSD operation as well as USE_USB_CDC and #define USB_CDC_COUNT 3 for three CDC interfaces. The define FLASH_FAT is used instead of SDCARD_SUPPORT to specify that internal flash is used (the SD-card could be used in parallel with the SDCARD_SUPPORT define) and the following defines to control the location and size of the Flash area dedicated to the FAT:
    #define INTERNAL_FLASH_FAT_SIZE (128 * 1024) // size of the flash area used as disk
    #define FAT_FLASH_MANAGEMENT_ADDRESS (128 * 1024) // physical address where the used flash starts

    This application also supports the Nordic Semiconductor 2.4GHz wireless transceiver nRF24L01+ as either master (primary Tx) or slave to another device - having no such module connected will not disturb the other operation. When the transceiver is connected it is initialised on channel 15 at 1Mb/s with auto-ack enabled. Then messages are sent out once every 5s so that they can be received by other devices on the channel with the same configuration and echoed responses are displayed on the UART (OpenSDA virtual COM). As slave it will display receptions on its UART output and echoes modified data back to the master.

    Use together with another FRDM-KL43Z as master/slave pair or any other of the Kinetis boards with a binary available for this configuration.

    To build for this configuration the nRF24L01P+ interface is enabled by the define nRF24L01_INTERFACE in config.h.

    Wiring Details:
    nRF24L01P_CS - PORTB_BIT16 - J2-19
    nRF24L01P_TX_ENABLE - PORTB_BIT17 - J2-17
    nRF24L01P_DOUT - PORTD_BIT7 - J2-10
    nRF24L01P_SCLK - PORTD_BIT5 - J2-12
    nRF24L01P_DIN - PORTD_BIT6 - J2-8
    nRF24L01P_IRQ - PORTA_BIT13 - J2-2

    The default mode is master (primary Tx). To set slave mode connect the input PTC5 (J1-15) to GND at reset.

    Linked to 0x8080, this software can be loaded using drag-and-drop with the USB-MSD loader mode or with the Freescale KBOOT utility via UART or USB-HID. When the application is running the red LED blinks at 2.5Hz. [60.1k]
  • uTaskerV1.4.8_FRDM_KL43Z_MSD_CDCx3_RF.bin The same KL43 application as stand-alone software that can be loaded using the FRDM-KL43's USB-MSD OpenSDA boot loader [61.1k].

  • For details of the utFAT used for the internal file system interface see the utFAT2.0 User's Guide.
    This application requires the following USB driver due to its CDC interfaces
  • uTaskerFreescaleMultiVirtualCOMx3.inf USB CDC installation file for 32-bit windows (usable for 3 USB-CDC composite interfaces plus MSD).
  • uTaskerFreescaleMultiVirtualCOMx3_64bit.inf USB CDC installation file for 64-bit windows (usable for 3 USB-CDC composite interfaces plus MSD). See the following for a guide to installing unsigned drivers on Windows 8.1


Return to the Kinetis landing page


µTasker Kinetis support. Copyright (c) 2004..2018 M.J.Butcher Consulting