am13e23019-spi-driver-config.ino
Comunicación SPI con los controladores de puerta de potencia para habilitar y configurar las protecciones del motor.
Cada motor BLDC usa un DRV8323S conectado vía SPI. Este código inicializa el bus y escribe en los registros de configuración. Verifique los bits de control de corriente y dead-time en la hoja de datos de TI.
am13e23019-spi-driver-config.ino
#include <ti/drv/spi/spi.h>
#include <ti/drv/spi/soc/spi_soc.h>
#include <ti/drv/uart/UART_stdio.h>
SPI_Handle spiHandle;
SPI_Params spiParams;
#define DRV8323_REG_CONTROL 0x01
#define DRV8323_VAL_ENABLE 0x0010
void init_spi(void) {
SPI_Params_init(&spiParams);
spiParams.bitRate = 1000000; // 1 MHz
spiParams.mode = SPI_MASTER;
spiParams.dataMode = SPI_MODE_1; // CPOL=0, CPHA=1 (à vérifier datasheet DRV8323)
spiHandle = SPI_open(SPI_INSTANCE_0, &spiParams);
if (spiHandle == NULL) {
UART_printf("Erreur SPI\n");
}
}
void write_drv_register(uint8_t reg, uint16_t value) {
uint8_t txBuf[3];
uint8_t rxBuf[3];
SPI_Transaction transaction;
txBuf[0] = reg | 0x80; // Bit R/W = 1 (Write)
txBuf[1] = (value >> 8) & 0xFF;
txBuf[2] = value & 0xFF;
transaction.txBuf = txBuf;
transaction.rxBuf = rxBuf;
transaction.count = 3;
SPI_transfer(spiHandle, &transaction);
}