34 #include "host_types.h" 68 kBusPalFunction_GPIO_CONFIG,
69 kBusPalFunction_GPIO_SET,
70 kBusPalFunction_FPGA_CLOCK_SET
104 uint32_t spiSpeedKHz;
109 uint32_t i2cSpeedKHz;
117 uint32_t fpgaClockMhz;
140 BusPal(
int fileDescriptor);
149 virtual bool reset();
178 virtual bool rawSetPins(uint8_t port, uint8_t pin, uint8_t level);
212 virtual uint8_t *
response(
size_t byteCount = 1);
215 virtual bool write(
const uint8_t *data,
size_t byteCount = 1);
218 virtual int read(uint8_t *data,
size_t byteCount);
222 virtual bool writeCommand(uint8_t commandByte,
const char *expectedResponse);
228 virtual uint8_t
writeCommand(uint8_t *command,
unsigned int length);
231 virtual bool writeSpi(
const uint8_t *data,
size_t byteCount = 1);
234 virtual bool writeI2c(
const uint8_t *data,
size_t byteCount = 1);
237 virtual bool writeCan(
const uint8_t *data,
size_t byteCount = 1);
240 virtual int readSpi(uint8_t *data,
size_t byteCount);
243 virtual int readCan(uint8_t *data,
size_t byteCount);
249 virtual int readI2c(uint8_t *data,
size_t byteCount);
270 bus_pal_mode_t m_mode;
271 unsigned int m_spiWriteByteCount;
272 unsigned int m_canWriteByteCount;
273 unsigned int m_canFirstReadDelay;
virtual bool setCanTxid(unsigned int txid)
Set CAN txid.
Definition: BusPal.cpp:439
spi_shift_direction_t
SPI data shifter direction options.
Definition: BusPal.h:90
virtual bool enterBitBangMode()
Enter bit bang (binary scripting) mode.
Definition: BusPal.cpp:499
Interface with the BusPal.
Definition: BusPal.h:48
uint8_t m_responseBuffer[kMaxResponse]
Command response buffer.
Definition: BusPal.h:269
Definition: BlfwkErrors.h:16
virtual bool writeCommand(uint8_t commandByte, const char *expectedResponse)
Write command, check string response.
Definition: BusPal.cpp:522
virtual bool enterRawWireMode()
Enter raw wire mode. Not currently supported for bus pal.
Definition: BusPal.h:173
Active-low SPI clock (idles high).
Definition: BusPal.h:77
Successful command response.
Definition: BusPal.h:55
virtual bool setI2cSpeed(uint32_t speed)
Set I2c speed.
Definition: BusPal.cpp:694
virtual bool setSpiSpeed(unsigned int speed)
Set SPI speed.
Definition: BusPal.cpp:662
virtual bool writeI2c(const uint8_t *data, size_t byteCount=1)
write via I2c
Definition: BusPal.cpp:1014
int buspal_serial_write(uint8_t *buf, int size, bool isCommandData=false)
Overriden serial_write for logging.
Definition: BusPal.cpp:1148
virtual int readI2c(uint8_t *data, size_t byteCount)
read via I2c
Definition: BusPal.cpp:1053
virtual bool write(const uint8_t *data, size_t byteCount=1)
writes the data over the previously selected interface
Definition: BusPal.cpp:757
Data transfers start with least significant bit.
Definition: BusPal.h:93
First edge on SPSCK occurs at the middle of the first cycle of a data transfer.
Definition: BusPal.h:83
int m_fileDescriptor
PC COM port file descriptor.
Definition: BusPal.h:268
BusPal configuration data.
Definition: BusPal.h:101
virtual bool rawConfigurePins(uint8_t port, uint8_t pin, uint8_t muxVal)
Raw configure pins.
Definition: BusPal.cpp:709
int readSpiActual(uint8_t *data, size_t byteCount)
worker function to actually read SPI data
Definition: BusPal.cpp:856
virtual bool enterCanMode()
Enter Can mode.
Definition: BusPal.cpp:426
virtual bool setCanRxid(unsigned int rxid)
Set CAN rxid.
Definition: BusPal.cpp:455
bus_pal_function_t
BusPal Transports.
Definition: BusPal.h:62
virtual bool setFPGAClock(uint32_t clock)
Sets the FPGA clock, clock is in hertz.
Definition: BusPal.cpp:741
virtual int readSpi(uint8_t *data, size_t byteCount)
read via Spi
Definition: BusPal.cpp:850
Max number of nulls to send to enter BBIO mode.
Definition: BusPal.h:54
virtual uint8_t readPins()
Read pins.
Definition: BusPal.h:183
virtual bool enterI2cMode()
Enter I2c mode.
Definition: BusPal.cpp:486
virtual bool enter1WireMode()
Enter 1wire mode. Not currently supported for bus pal.
Definition: BusPal.h:171
virtual bool enterSpiMode()
Enter Spi mode.
Definition: BusPal.cpp:414
virtual ~BusPal()
Destructor.
Definition: BusPal.h:143
void flushRX()
Flushes the serial port of any RX data.
Definition: BusPal.cpp:258
int buspal_serial_read(uint8_t *buf, int size, bool isCommandData=false)
Overriden serial_read for logging.
Definition: BusPal.cpp:1103
virtual bool rawSetPins(uint8_t port, uint8_t pin, uint8_t level)
Set GPIO pin.
Definition: BusPal.cpp:725
static bool parse(const string_vector_t ¶ms, BusPal::BusPalConfigData &config)
parse the passed in options into the config structure.
Definition: BusPal.cpp:283
spi_clock_polarity_t
SPI clock polarity configuration.
Definition: BusPal.h:74
virtual bool configurePins(uint8_t config=0)
Configure pins.
Definition: BusPal.h:181
spi_clock_phase_t
SPI clock phase configuration.
Definition: BusPal.h:81
virtual bool reset()
Reset to bit bang mode from another peripheral mode.
Definition: BusPal.cpp:616
virtual int readCan(uint8_t *data, size_t byteCount)
read via Can
Definition: BusPal.cpp:953
virtual int read(uint8_t *data, size_t byteCount)
Read data.
Definition: BusPal.cpp:773
virtual bool setSpiConfig(spi_clock_polarity_t polarity, spi_clock_phase_t phase, spi_shift_direction_t direction)
Sets the SPI configuration.
Definition: BusPal.cpp:644
Max number of bytes per bulk transfer.
Definition: BusPal.h:56
virtual bool writeCan(const uint8_t *data, size_t byteCount=1)
write via Can
Definition: BusPal.cpp:907
virtual bool writeSpi(const uint8_t *data, size_t byteCount=1)
write via Spi
Definition: BusPal.cpp:808
Data transfers start with most significant bit.
Definition: BusPal.h:92
First edge on SPSCK occurs at the start of the first cycle of a data transfer.
Definition: BusPal.h:85
virtual bool resetHardware()
Reset the bus pal, comes up in terminal mode.
Definition: BusPal.cpp:604
virtual uint8_t * response(size_t byteCount=1)
Read response.
Definition: BusPal.cpp:581
virtual bool enterUartMode()
Enter Uart mode. Not currently supported for bus pal.
Definition: BusPal.h:169
Active-high SPI clock (idles low).
Definition: BusPal.h:76
virtual bool setCanSpeed(unsigned int speed)
Set CAN speed.
Definition: BusPal.cpp:471
virtual bool setI2cAddress(uint8_t address)
Set I2c address.
Definition: BusPal.cpp:678
BusPal(int fileDescriptor)
Constructor.
Definition: BusPal.cpp:275
static const uint8_t kBusPalDefaultI2cSlaveAddress
I2C default address.
Definition: BusPal.h:97