▌01 节能信标
1.前期调试
在 第十六届全国大学生智能车竞赛 竞速组比赛中,有一组节能信标组。它使用带有无线充电线圈的信号源,能够为比赛的车模提供:
- 50W无线充电
- 无线导航
- 红色、红外灯光导航;
- 它同时通过上面的霍尔传感器检测车模是否经过信标。
在 无线节能信标调试说明-2021-3-3 记录了第一版本的调试内容。验证了功能基本上满足了比赛需求。
2.调试前确认
(1)LCC参数
a.电感参数
使用两个LCC电感以及测量的SmartTwister测量两个电感的参数:
- L1:4.755uH
- L2:4.743uH
▲ 两个LCC电感以及测量的SmartTwister
上述电感是在 铁粉磁芯T94-2 上绕制23圈(包括最后引出线一圈)制作而成。
▲ 电感磁环材料信息
▲ 铁粉芯T94-2磁环参数
b.并联电容
▲ 串联与并联电容
使用了7个35nF的电容并联而成:
C p = 246.5 n F C_p = 246.5nF Cp=246.5nF
c.串联电容
C s = 47.33 n F C_s = 47.33nF Cs=47.33nF
(2)电路板工作电压
-
测量结果:
-
接入电压: +12V
驱动电压:+8V
MCU电压:3.28V
通过测量,说明电路板上的低压电源稳压电压正常。
▲ 测量工作电压
下图显示了输入电压从10V变化到24V所对应的8V以及3.3V的输出电压。
-
输出电压平均值:
-
8V 输出平均值:8.0562V
3.3V 输出平均值:3.3019V
▲ 测试输入电压从10V变化到24V板上稳压电压的输出
▌02 电路板调试
1.单片机软件下载
(1)电路板MCU
a.原设计所使用的单片机
电路板上的MCU包括两种:
- STM32F030K8T6
- STM32F030F4
b.替换芯马单片机型号
其中STM32F030F4被替换成 芯马XM1008K6T6 ;STM32F030K8T6被替换成:芯片表面没有任何信息。
▲ 电路板上的MCU
▲ XM32位单片机兼容STM32型号一栏表格
(2)MCU调试确认
虽然在 XM1008F 淘宝销售 信息熵介绍XM1008F6P6对于STM32F030F4P6 完全兼容。但它是否在芯片的调试功能、Bootloader功能是否完全兼容呢?
a.焊接下载端口
-
焊接端口:
-
VNTRB: 串行Bootloader下载端口
SWD: 对于STM32F030F4下载程序
RDCVG:对于STM32F030C8T6下载程序
▲ 对于XM1008K6T6下载程序
b.利用STM32Bootloader下载程序1
验证之后,可以看到对于U6(STM32F030F4)使用UART对应的Bootloader进行下载程序。下面为使用STM32Bootloader进行下载程序的过程。
▲ 利用STM32Bootloader 下载程序
c.使用ARMLINK下载U1固件2
经过验证可以看到,无法使用ARMLINK对于STM32F030C8的替代MCU下载程序。
所以需要将替换的STM32F030C8替换芯片重新更换回来。重新更换后之后,程序便可以顺利下载到U1了。
▲ 利用ARMLINK下载U1的固件
▲ 下载程序之后的电路板
2.测试无线功率输出
(1)测量条件
- 工作电压:16V
- 将输出LCC电感焊开,这样可以避免输出半桥在没有线圈的时候过流;
(2)测量输出波形
输出波形表示电流输出反馈出现问题。
▲ 半桥输出波形
测量半桥电流检测U5:AD8217的输出,对应的电流平均值非常低。因此故障应该出现的单片机上。
重新将XM1008K6T6更换到STM32F030K4,测量发现问题解决了。
▲ 更换单片机之后输出波形正常了
(3)调试问题所在
在主函数读取ADC,ADC[0]所对应的电流值为27左右。反映了外部的电流检测电压的大小。但是这个初始值可能比起STM32F030K4的读取的值(0)要大。
屏蔽AdjustIBus()功能,输出方波正常。
问题出现在:g_fLastD的初始化值上。前面是将g_fLastD初始化为0,则会出现对应的问题。现在将g_fLastD初始化为0.1,则问题解决了。
(4)功率限制
通过改变接收线圈与发射线圈之间的距离,可以看到输出波形的占空比在变化,显示了输出功率的限制过程。
a.电流限制:1A
-
设置电流限制:
-
头文件:control.h:
#define I_BUS_ADC_SET 500 // 1A
▲ 输出占空比变化
-
功率测量:
-
电源电压:+24V
电源电流:1.2A
输出电压:14.38V
- 输出功率:Pout=20.68W;输入功率:Pin=28.8W
- 功率传输效率:Pout/Pin=71.8%
b.电流限制:2A
将I_BUS_ADC_SET修改为1000,则对应的限制电流大约为2A。
-
功率测量:
-
电源电压:+24V
电源电流:2.33A
输出电压:19.82V
- 输出功率:Pout=39.28W;输入功率:Pin=55.92W
- 功率传输效率:Pout/Pin=70.24%
最终的の电流限制修改为:1200。
▌结论
通过调试验证了如下结论:
- 对于MCU更换之后,其中XM1008K6T6依然可以使用Bootloader:UART进行程序下载;
- 对于STM32F030C8的替换MCU无法使用ARMLINK下载程序
- XM1008K6T6对应的ADC转换与STM32F030K4不同,表现在对于AD出现的数值它读取会有一定的零偏。对于原来的程序做休整之后,则可以正常运行。
■ 相关文献链接:
▲ 节能信标驱动板
1.采集电压程序
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TESTVOLT.PY -- by Dr. ZhuoQing 2021-03-21
#
# Note:
#============================================================
from headm import *
from tsmodule.tsvisa import *
from tsmodule.tsstm32 import *
dm3068open()
#------------------------------------------------------------
setv = linspace(10, 24, 100)
v8dim = []
v33dim = []
for v in setv:
dh1766volt(v)
time.sleep(1)
meter = meterval()
v8dim.append(meter[1])
v33dim.append(dm3068vdc())
printff(v8dim[-1], v33dim[-1])
tspsave('volt', v8=v8dim, v33=v33dim, v=setv)
#------------------------------------------------------------
dh1766volt(12)
printf('\a')
plt.plot(setv, v8dim, label='8V')
plt.plot(setv, v33dim, label='3.3V')
plt.xlabel("Input Voltage(V)")
plt.ylabel("Regulate Voltage(V)")
plt.grid(True)
plt.legend(loc="upper right")
plt.tight_layout()
plt.show()
#------------------------------------------------------------
# END OF FILE : TESTVOLT.PY
#============================================================