logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

UCC3803电源芯片使用

BAT54和C11、R3构成了外部电压软启动电路,上电开始前几ms5V电源给C11充电,同时芯片内部完成4ms软起动,但是COMP端电压要到2V芯片才能工作,此时由于C11电压还没充到2V-管压降,因此COMP也要通过BAT54给C11充电,直到C11充够电压让COMP端达到2V,这个充电时间不好算;(4V的REF电压)FB和COMP之间连接一个电阻和电容,其中电容取值为几十-几百pf用于滤波,而

文章图片
#单片机#嵌入式硬件
锁相环电角度滤波(定点\浮点C语言实现)

参考文章:(36 封私信 / 80 条消息) 霍尔角度使用锁相环(PLL)原理的应用 - 知乎(36 封私信 / 80 条消息) 20231221-基于锁相环PLL的电角度滤波 - 知乎使用锁相环对霍尔角度滤波_哔哩哔哩_bilibili红色方框部分即为PLL滤波器,包括鉴相器、PID滤波、震荡器三个部分鉴相器:为正弦鉴相器,由于输入的电角度是锯齿波,因此存在很多谐波,其使用限制是震荡器:类比压控

#stm32#单片机#c语言
DRV8323/8353驱动

主要是将drv83xx对寄存器的操作封装成基于位域的结构体,这里我在SPI Interface Begin中将对SPI的操作、延时函数、系统时钟等封装成了接口和宏定义,根据自己的硬件进行对应修改即可使用;注意选用不同的drv83xx系列芯片时,需要在.h文件中修改成对应芯片型号的宏定义;SPI 配置为16bit 、FIRSTBIT_MSB 模式,时钟极性CPOL为LOW,CPHA为2EDGE,通讯

#stm32#单片机#c语言
VF/IF斜坡强拖(浮点、定点)代码

VF强拖就是电压开环强拖,给定一个固定的Ud和Uq,然后执行反Park变换和SVPWM(此时不需要执行完整的FOC环路,最易实现),IF强拖则是给定一个固定的id_ref和iq_ref,然后执行FOC电流环让id和iq逐渐接近给定的id_ref和iq_ref(此时需要保证电流环的PID参数是合理的,稍微复杂,但比VF强拖更稳定);/************* 斜坡强拖具体代码实现(浮点和定点)**

#stm32#单片机
STM32G070系列芯片擦除、写入Flash错误解决

在用G070KBT6芯片调用HAL_FLASHEx_Erase(&EraseInitStruct, &PageError)时,调试发现该函数返回HAL_ERROR,最后定位到FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE)函数出现错误,pFlash.ErrorCode为0xA0,即FLASH错误标志位 FLASH_SR_PGSERR和FLASH_SR_

文章图片
#stm32#嵌入式硬件#单片机
STM32G070系列芯片擦除、写入Flash错误解决

在用G070KBT6芯片调用HAL_FLASHEx_Erase(&EraseInitStruct, &PageError)时,调试发现该函数返回HAL_ERROR,最后定位到FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE)函数出现错误,pFlash.ErrorCode为0xA0,即FLASH错误标志位 FLASH_SR_PGSERR和FLASH_SR_

文章图片
#stm32#嵌入式硬件#单片机
C语言 Float、double、定点数计算浮点数精度

编程语言:C语言编译器平台:keil MDK 5.36单片机型号:Stm32F407VET6根据float单精度浮点数和Double双精度浮点数遵循的IEEE 754规则我们可以知道,前者的有效位数为6-7位,后者的有效位数为15-16位,在有效位数内能够无误差的表示数值,这里我们通过keil MDK编译器做一个实验,观察Float、double、定点数三类的表示精度和计算精度怎样,以及不同计算方

#stm32#嵌入式硬件#单片机
STM32CubeMX6.13.0打开后不显示界面,但是任务管理器显示该程序正在运行

最近在更新了CubeMX6.13.0版本后,刚开始还能正常使用,后面突然就出现打开后不显示界面这个问题,但是任务管理器显示该程序正在运行,其他版本的Cubemx能正常打开。最后认为可能是自己的Windows账户名称为中文导致路径有问题,然后选择另一个英文名的Windows管理员账户进行登录并打开STM32CubeMX6.13.0,一切正常成功解决问题。

文章图片
#stm32#嵌入式硬件#单片机
INA220电流电压采样方案

RSHUNT为采样电阻的值,这里我们通过设置Cal的值来控制电流寄存器的分辨率Current_LSB,例如当采样电阻为0.1欧姆的时候,我们设置Cal = 2000h = 8192 ,那么Current_LSB = 0.05mA,而由于电流寄存器数据位只有15位,最大值为32767(这里作者不明白为什么上述公式2的分母是2^15,作者认为应该是2^15-1才对),因此量程为32767*Curren

#单片机#嵌入式硬件
STM32上电后串口能发送数据,但无法接收处理数据,需手动复位(DMA无法正常工作)

今天在用一块自己画的板子的时候,发现给板子上电之后,可以接收到串口发出来的数据,但给芯片串口发数据,芯片没反应,只有手动再按一次复位按钮后串口才能正常工作;百思不得其解,上网查询后发现可能是上电时序的问题:芯片的电源、时钟、外设都各自有一个上电稳定时间,即上电后这些组件的电压需要在一定时间内达到稳定才能正常工作。

文章图片
#stm32#嵌入式硬件#单片机
    共 11 条
  • 1
  • 2
  • 请选择