am13e23019-spi-driver-config.ino

BeagleConnect QuadESC: Controlador BLDC de 4 canales · Archivo : am13e23019-spi-driver-config.ino · Lenguaje : C · Uso : Configurer un driver moteur DRV8323S via le bus SPI.

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);
}

← Volver a la ficha