1 Known Issues for MCC Melody 8-Bit MDFU Client Library

Provides a list of known issues in the 8-Bit MDFU Client Library.

  1. Issue:

    M8BTL-3377

    Issue Title:

    Using UART without a pull-up on the Rx pin can create unstable behavior

    Issue Description:

    There is unstable behavior with the UART peripheral when utilizing the pin re-entry mechanism at POR on a CNano Base Board for Click Boards (AC164162). We believe it is related to how the MCU and debugger are being powered when attached to a baseboard.

    It was recently discovered that the root cause of this issue is related to the floating signal on the Rx pin. Utilizing a pull-up on an Rx line is suggested to prevent from the floating signal from triggering some condition on the UART peripheral.

    Workaround:

    The issue is avoided when a pull-up is configured on the Rx pin. Navigate to the Pins Tab, and enable the Pull-up option for the UART RX pin.

  2. Issue:

    M8BTL-3325

    Issue Title:

    AVR DU/EB CNano Evaluation Boards fail to update with factory default settings

    Issue Description:

    The AVR DU and EB CNano devices have Device Configuration Protection enabled by default in the on-board debugger which prevents the correct BOOT fuse value from being programmed.

    Note: This is not an issue with the library design or embedded code

    Workaround:

    To work around this:

    1. Install Python 3.
    2. Run the package installation command from a command line interface with access to Python:
      pip install pydebuggerconfig
    3. First, run the read command to check the device's configuration. Check to see that the FUSE_PROTECTION bit in the TARGET_DEBUG_FEATURES register is set.
      pydebuggerconfig read
    4. Next, disable the Fuse Configuration Protection by running:
      pydebuggerconfig replace -r TARGET_DEBUG_FEATURES=0x07

    If that process yields no errors, then you have successfully disabled Fuse configuration protection in the on-board debugger.

    If for any reason you need to re-enable the Fuse Configuration Protection you can issue the command:
    pydebuggerconfig restore

    If you do this please remember that this command will only restore the factory settings of the debugger and will not reset your device's Fuse values. If you have changed a Fuse then that value will be held until the debugger protection is disabled once again and you reprogram the device.

  3. Issue:

    M8BTL-3326

    Issue Title:

    Some AVR devices fail the device id meta data check

    Issue Description:

    Some AVR devices will fail the device id meta data check which will prevent the update from occurring. This is due to an issue in the signature row address value given by the dependent interface and used by the client code.

    Workaround:

    The generated address could be some value or it could be 0x00, this should be changed to the SIGROW start address found in your specific device datasheet. Navigate to the bl_config.h file and replace the value found for the BL_DEVICE_ID_START_ADDRESS macro to the address that you found in the datasheet.

  4. Issue:

    M8BTL-3310

    Issue Title:

    DFU fails for Q20 devices due to incorrect TOML generation.

    Issue Description:

    For the Q20 family of devices, the generated WRITE_BLOCK_SIZE is incorrect which creates gaps in the program flash after update.

    Workaround:

    Replace the incorrect WRITE_BLOCK_SIZE with '0x100' in the TOML file and then rebuild the application image file using this updated TOML file.

  5. Issue:

    M8BTL-2786

    Issue Title:

    K40/42 devices can experience crashes due to the UART abstract interface object.

    Issue Description:

    The UART interface object that is used in the com_adapter.c file causes crashes when used on a K40 or K42.

    Workaround:

    To workaround this issue it is recommended to convert all usages of the UART interface object into direct function calls inside of the com_adapter.c file.

    Example:

    SERCOM.IsTxReady() => UART1_IsTxReady()
  6. Issue:

    M8BTL-2717

    Issue Title:

    XC8 compilation failed for AVREA by default.

    Issue Description:

    For some of the devices in the AVR EA Family, the option for "Map 32K segments of FLASH into the RAM address space" is set by default. This option can cause compilation failures for XC8.

    Workaround:

    To workaround this issue, it is suggested to disable the option for "Map 32K segments of FLASH into the RAM address space". To do this, navigate to the project properties XC8 Global Options > Global options > Map 32K segments of FLASH into the RAM address space, and uncheck the box. Another possible solution is to utilize the AVR-GCC compiler instead of the XC8 compiler.

  7. Issue:

    M8BTL-2667

    Issue Title:

    NVM driver generated for PIC16F1827 and few other older PIC16 devices interpreted the device id incorrectly.

    Issue Description:

    For few older PIC16F device such as PIC16F1827, device ID and revision ID is combined in a single register.

    Table 1-1. Device ID Register
    DEVICE IDDEVICE ID REGISTER
    bit 13-5 DEV<8:0>Device ID bit
    bit 4-0 REV<4:0>Revision ID bits

    DeviceID_Read API in NVM driver reads the whole register than extracting only device ID from bit 13-5. Therefore, the device ID entered on 8-Bit MDFU Client MCC UI does not match with the one read by NVM driver causing the firmware upgrade to fail.

    Workaround:

    On 8-Bit MDFU MCC UI, enter the value of complete DEVICE ID register that includes device ID and revision ID.