am13e23019-spi-driver-config.ino
Communication SPI avec les drivers de porte de puissance pour activer et configurer les protections des moteurs.
Chaque moteur BLDC utilise un DRV8323S connecté en SPI. Ce code initialise le bus et écrit dans les registres de configuration. Vérifiez les bits de contrôle de courant et de dead-time dans la datasheet 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);
}