![]() |
Kinetis Bootloader Host
2.0.0
Host Tools for Kinetis devices
|
Interface with the BusPal. More...
#include <BusPal.h>
Classes | |
| struct | BusPalConfigData |
| BusPal configuration data. More... | |
Public Types | |
| enum | { kResetCount = 20, kResponseOk = 0x01, kBulkTransferMax = 4096, kMaxResponse = kBulkTransferMax } |
| Constants. More... | |
| enum | bus_pal_function_t { kBusPalFunction_None, kBusPalFunction_SPI, kBusPalFunction_I2C, kBusPalFunction_CAN, kBusPalFunction_GPIO_CONFIG, kBusPalFunction_GPIO_SET, kBusPalFunction_FPGA_CLOCK_SET } |
| BusPal Transports. | |
| enum | spi_clock_polarity_t { kSpiClockPolarity_ActiveHigh = 0, kSpiClockPolarity_ActiveLow = 1 } |
| SPI clock polarity configuration. More... | |
| enum | spi_clock_phase_t { kSpiClockPhase_FirstEdge, kSpiClockPhase_SecondEdge } |
| SPI clock phase configuration. More... | |
| enum | spi_shift_direction_t { kSpiMsbFirst = 0, kSpiLsbFirst = 1 } |
| SPI data shifter direction options. More... | |
Public Member Functions | |
| BusPal (int fileDescriptor) | |
| Constructor. | |
| virtual | ~BusPal () |
| Destructor. | |
| virtual bool | reset () |
| Reset to bit bang mode from another peripheral mode. | |
| virtual bool | resetHardware () |
| Reset the bus pal, comes up in terminal mode. | |
| virtual bool | enterBitBangMode () |
| Enter bit bang (binary scripting) mode. More... | |
| virtual bool | enterSpiMode () |
| Enter Spi mode. | |
| virtual bool | enterCanMode () |
| Enter Can mode. | |
| virtual bool | enterI2cMode () |
| Enter I2c mode. | |
| virtual bool | enterUartMode () |
| Enter Uart mode. Not currently supported for bus pal. | |
| virtual bool | enter1WireMode () |
| Enter 1wire mode. Not currently supported for bus pal. | |
| virtual bool | enterRawWireMode () |
| Enter raw wire mode. Not currently supported for bus pal. | |
| virtual bool | rawConfigurePins (uint8_t port, uint8_t pin, uint8_t muxVal) |
| Raw configure pins. | |
| virtual bool | rawSetPins (uint8_t port, uint8_t pin, uint8_t level) |
| Set GPIO pin. | |
| virtual bool | configurePins (uint8_t config=0) |
| Configure pins. | |
| virtual uint8_t | readPins () |
| Read pins. | |
| virtual bool | setFPGAClock (uint32_t clock) |
| Sets the FPGA clock, clock is in hertz. | |
| virtual bool | setSpiSpeed (unsigned int speed) |
| Set SPI speed. | |
| virtual bool | setSpiConfig (spi_clock_polarity_t polarity, spi_clock_phase_t phase, spi_shift_direction_t direction) |
| Sets the SPI configuration. | |
| virtual bool | setI2cAddress (uint8_t address) |
| Set I2c address. | |
| virtual bool | setI2cSpeed (uint32_t speed) |
| Set I2c speed. | |
| virtual bool | setCanSpeed (unsigned int speed) |
| Set CAN speed. | |
| virtual bool | setCanTxid (unsigned int txid) |
| Set CAN txid. | |
| virtual bool | setCanRxid (unsigned int rxid) |
| Set CAN rxid. | |
| virtual uint8_t * | response (size_t byteCount=1) |
| Read response. More... | |
| virtual bool | write (const uint8_t *data, size_t byteCount=1) |
| writes the data over the previously selected interface | |
| virtual int | read (uint8_t *data, size_t byteCount) |
| Read data. | |
Static Public Member Functions | |
| static bool | parse (const string_vector_t ¶ms, BusPal::BusPalConfigData &config) |
| parse the passed in options into the config structure. | |
Static Public Attributes | |
| static const uint8_t | kBusPalDefaultI2cSlaveAddress = 0x10 |
| I2C default address. | |
Protected Types | |
| enum | bus_pal_mode_t { kBusPalModeBitBang, kBusPalModeSpi, kBusPalModeI2c, kBusPalModeCan } |
Protected Member Functions | |
| virtual bool | writeCommand (uint8_t commandByte, const char *expectedResponse) |
| Write command, check string response. | |
| virtual uint8_t | writeCommand (uint8_t commandByte) |
| Write command, return 1 byte response. | |
| virtual uint8_t | writeCommand (uint8_t *command, unsigned int length) |
| write multi-byte command, return 1 byte response. | |
| virtual bool | writeSpi (const uint8_t *data, size_t byteCount=1) |
| write via Spi | |
| virtual bool | writeI2c (const uint8_t *data, size_t byteCount=1) |
| write via I2c | |
| virtual bool | writeCan (const uint8_t *data, size_t byteCount=1) |
| write via Can | |
| virtual int | readSpi (uint8_t *data, size_t byteCount) |
| read via Spi | |
| virtual int | readCan (uint8_t *data, size_t byteCount) |
| read via Can | |
| int | readSpiActual (uint8_t *data, size_t byteCount) |
| worker function to actually read SPI data | |
| virtual int | readI2c (uint8_t *data, size_t byteCount) |
| read via I2c | |
| int | buspal_serial_read (uint8_t *buf, int size, bool isCommandData=false) |
| Overriden serial_read for logging. | |
| int | buspal_serial_write (uint8_t *buf, int size, bool isCommandData=false) |
| Overriden serial_write for logging. | |
| void | flushRX () |
| Flushes the serial port of any RX data. | |
Protected Attributes | |
| int | m_fileDescriptor |
| PC COM port file descriptor. | |
| uint8_t | m_responseBuffer [kMaxResponse] |
| Command response buffer. | |
| bus_pal_mode_t | m_mode |
| unsigned int | m_spiWriteByteCount |
| unsigned int | m_canWriteByteCount |
| unsigned int | m_canFirstReadDelay |
Interface with the BusPal.
For hardware documentation, see http://dangerousprototypes.com/docs/Bus_Pirate. This class is based on the pyBusPirateLite python package, see http://dangerousprototypes.com/docs/Bus_Pirate_Scripting_in_Python.
| anonymous enum |
|
virtual |
Enter bit bang (binary scripting) mode.
Call this first before entering other peripheral modes.
|
virtual |
Read response.
| NULL | No response from device |
| Non-NULL | Pointer to internal array of bytes at least size byteCount |