HF-TMC9660 Driver 0.1.0-dev
Hardware Agnostic C++ Driver for the TMC9660
Loading...
Searching...
No Matches
bootloader_protocol.hpp File Reference

TMC9660 bootloader communication protocol structures and enumerations. More...

#include "bootloader_utils.hpp"
#include <array>
#include <cstddef>
#include <cstdint>
Include dependency graph for bootloader_protocol.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tmc9660::BootloaderVersion
 Bootloader version information structure. More...
 
struct  tmc9660::BootloaderFeatures
 Feature flags indicating available bootloader capabilities. More...
 
struct  tmc9660::GitInfo
 Git version control information from bootloader firmware. More...
 
struct  tmc9660::PartitionVersion
 External memory partition version information. More...
 
struct  tmc9660::OtpLoadResult
 OTP load operation result information. More...
 
struct  tmc9660::OtpBurnResult
 OTP burn operation result information. More...
 
struct  tmc9660::BootloaderCommandSPI
 Bootloader command structure for SPI (40-bit / 5-byte protocol). More...
 
struct  tmc9660::BootloaderCommandUART
 Bootloader command structure for UART (64-bit / 8-byte protocol). More...
 
struct  tmc9660::BootloaderReplySPI
 Bootloader reply structure for SPI (40-bit / 5-byte protocol). More...
 
struct  tmc9660::BootloaderReplyUART
 Bootloader reply structure for UART (64-bit / 8-byte protocol). More...
 

Namespaces

namespace  tmc9660
 

Enumerations

enum class  tmc9660::BootloaderStatus : uint8_t {
  tmc9660::OK = 0 , tmc9660::CMD_NOT_FOUND = 1 , tmc9660::INVALID_ADDR = 3 , tmc9660::INVALID_VALUE = 4 ,
  tmc9660::INVALID_BANK = 14 , tmc9660::BUSY = 15 , tmc9660::MEM_UNCONFIGURED = 17 , tmc9660::OTP_ERROR = 18 ,
  tmc9660::SESSION_START = 19 , tmc9660::CMD_NOT_AVAILABLE = 20 , tmc9660::BOOTLOADER_RESUMED
}
 Bootloader status codes returned by command replies. More...
 
enum class  tmc9660::BootloaderCommand : uint8_t {
  tmc9660::GET_INFO = 0 , tmc9660::GET_BANK = 8 , tmc9660::SET_BANK = 9 , tmc9660::GET_ADDRESS = 10 ,
  tmc9660::SET_ADDRESS = 11 , tmc9660::READ_32 = 12 , tmc9660::READ_32_INC = 13 , tmc9660::READ_16 = 14 ,
  tmc9660::READ_16_INC = 15 , tmc9660::READ_8 = 16 , tmc9660::READ_8_INC = 17 , tmc9660::WRITE_32 = 18 ,
  tmc9660::WRITE_32_INC = 19 , tmc9660::WRITE_16 = 20 , tmc9660::WRITE_16_INC = 21 , tmc9660::WRITE_8 = 22 ,
  tmc9660::WRITE_8_INC = 23 , tmc9660::NO_OP = 29 , tmc9660::OTP_LOAD = 30 , tmc9660::OTP_BURN = 31 ,
  tmc9660::MEM_IS_CONFIGURED = 32 , tmc9660::MEM_IS_CONNECTED = 33 , tmc9660::FLASH_SEND_CMD = 36 , tmc9660::FLASH_ERASE_SECTOR = 37 ,
  tmc9660::MEM_IS_BUSY = 40 , tmc9660::BOOTSTRAP_RS485 = 255
}
 Bootloader command codes for memory and configuration operations. More...
 
enum class  tmc9660::MemoryBank : uint8_t {
  tmc9660::RAM = 0 , tmc9660::OTP = 1 , tmc9660::SPI_FLASH = 2 , tmc9660::I2C_EEPROM = 3 ,
  tmc9660::RESERVED = 4 , tmc9660::CONFIG = 5
}
 Memory bank identifiers for bootloader operations. More...
 
enum class  tmc9660::InfoQuery : uint32_t {
  tmc9660::CHIP_TYPE = 0 , tmc9660::BL_VERSION = 1 , tmc9660::FEATURES = 2 , tmc9660::GIT_INFO = 12 ,
  tmc9660::CHIP_VERSION = 13 , tmc9660::CHIP_FREQUENCY = 14 , tmc9660::CONFIG_MEM_START = 17 , tmc9660::CONFIG_MEM_SIZE = 18 ,
  tmc9660::OTP_MEM_SIZE = 19 , tmc9660::I2C_MEM_SIZE = 20 , tmc9660::SPI_MEM_SIZE = 21 , tmc9660::PARTITION_VERSION = 22 ,
  tmc9660::SPI_MEM_PARTITIONS = 25 , tmc9660::I2C_MEM_PARTITIONS = 26 , tmc9660::CHIP_VARIANT = 28
}
 GET_INFO query types for retrieving system information. More...
 
enum class  tmc9660::OtpBurnError : int8_t {
  tmc9660::INVALID_PAGE = -1 , tmc9660::NO_MORE_BURNS = -2 , tmc9660::CHARGE_PUMP_FAILED = -3 , tmc9660::BURN_PROCEDURE_FAILED = -4 ,
  tmc9660::CLOCK_SETUP_FAILED = -5 , tmc9660::CLOCK_RESTORE_FAILED = -6
}
 OTP burn operation error codes. More...
 

Detailed Description

TMC9660 bootloader communication protocol structures and enumerations.