FOC系列(四)----重新绘制DRV8301驱动板

声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。

一、前言

由于之前DRV8301的驱动板出现了问题,而且在结构上也出现了部分问题,所以最近又重新绘制了一版,不过还是存在一些小问题,后面我还会重新绘制一版,并且修改控制板和驱动板"上-下"的结构,采用平行线的结构进行连接,修改后的DRV8301原理图如下:

   PCB如下:


  实物如下:

  由于改版还不是最后一版,所以有些地方使用了比较便宜的元器件,不过测试都正常:
  GVDD:12V
  AVDD:6.8V
  DVDD:3.3V
  下图是C相上下两个MOS管栅极的信号(蓝色为上管的栅极驱动信号为24V;黄色为下管的栅极驱动信号,为12V):

  DRV8301代码:

c 复制代码
#include "DRV8301.h"
#include "spi.h"
#include "math.h"

uint16_t tx, rx=10;
static uint8_t tx_buff[14];

// uint8_t status[10] = {100,100,100,100,100,100,100,100,100,100};
uint8_t addr,dat;


uint8_t MCT8316_read_buffer(uint8_t const regAddr, uint8_t *pData, uint8_t len)
{
  CS_LOW;
  tx = regAddr | 0x80;
  tx_buff[0] = tx;
  HAL_SPI_TransmitReceive(&hspi1, (uint8_t *)&tx, (uint8_t *)&rx, 1, 55);
  HAL_SPI_TransmitReceive(&hspi1, tx_buff, pData, len, 55);
  CS_HIGH;
  return 0;
}
 
 
uint16_t DRV8301_read_reg(uint8_t *pData, uint8_t len)
{
	CS_LOW;
	HAL_SPI_Receive(&hspi1, pData, len,55);
	CS_HIGH;//源代码发送的是ff
	
	return rx&0xFFFF;
}

uint8_t MCT8316_write_reg(uint16_t reg)
{
	CS_LOW;
  HAL_SPI_Transmit(&hspi1, (uint8_t *)&reg, 1,55);
	CS_HIGH;
 
	return 0;
}

uint8_t MCT8316_read(uint16_t reg)
{
	uint8_t result;
	MCT8316_write_reg(READ | reg << 11);
	DRV8301_read_reg((uint8_t *)&result,1);
	return  result;
}

void DRV8301_Init(void)
{
	uint8_t dat1,dat2;
	dat1 = 0x03; // B10~B8
	dat2 = 0xF1; // B7~B0
	tx = WRITE | Control_Register_1<<11 | ((dat1<<6| dat2)&0x07FF);
//	tx = 0x13F1;
	MCT8316_write_reg(tx);
	HAL_Delay(10);
	
	dat1 = 0x00;
	dat2 = 0x0F;
	tx = WRITE | (Control_Register_2<<11)|((dat1<<6|dat2)&0x07FF);
//	tx = 0x180F;
	MCT8316_write_reg(tx);
	HAL_Delay(10);
}

二、下版需要修改之处

  1. 修改MR30和XT60尺寸
  2. DRV8301的封装需要注意一下
  3. 驱动板、控制板修改连接线
  4. 使用STM32F405RGT6重新绘制控制板

三、往期回顾

FOC系列(一)----DRV8301芯片的学习
FOC系列(二)----继续学习DRV8301芯片
FOC系列(三)----AS5600磁编码器

相关推荐
youcans_21 天前
【动手学电机驱动】STM32-FOC(10)使用旋钮调节电机转速
stm32·单片机·电机控制·foc·pmsm
youcans_22 天前
【动手学电机驱动】STM32-FOC(9)无感 FOC 电机转速调节
stm32·单片机·嵌入式硬件·电机控制·foc
youcans_1 个月前
【动手学电机驱动】STM32-FOC(8)MCSDK Profiler 电机参数辨识
stm32·单片机·嵌入式硬件·电机控制·foc
朴人3 个月前
【从零开始实现stm32无刷电机FOC】【实践】【7.2/7 完整代码编写】
stm32·单片机·嵌入式硬件·foc
mengjiexu_cn3 个月前
FOC电机驱动开发踩坑记录
c++·svpwm·foc·滑膜控制器
别问,问就是全会3 个月前
FOC矢量控制
电机控制·svpwm·foc·bldc
朴人5 个月前
【从零开始实现stm32无刷电机FOC】【实践】【5/6 stm32 adc外设的高级用法】
stm32·单片机·嵌入式硬件·foc
朴人5 个月前
【从零开始实现stm32无刷电机FOC】【理论】【3/6 位置、速度、电流控制】
stm32·单片机·嵌入式硬件·电机控制·foc
爱出名的狗腿子7 个月前
细说SVPWM原理及软件实现原理,关联PWM实现
mcu·嵌入式·电机控制·svpwm·foc·无刷电机·矢量控制
流动的星8 个月前
STM32电机控制固件架构
stm32·电机控制·foc