打印
[活动专区]

【N32G430开发板试用】+可调电源模块设计历程

[复制链接]
547|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lcdi|  楼主 | 2022-8-31 22:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lcdi 于 2022-8-31 23:06 编辑

【N32G430开发板试用】+可调电源模块设计历程
@安小芯
@安小芯

电子设计中经常需要不同的电压,所以调压简直是最常见最常需要的部分了。
从需求上来说,大的高性能的有实验室电源,小的有LDO微芯片稳压。但通常电路中的电压变换都是为了满足各种实际需要,比较固定,调节起来需要更换电阻,不是那么方便。

所以就想设计一款可以数控调节的电源板。

目标是低成本高效率,简易,紧凑,数控调节。
刚好遇到N32G430试用活动,这款芯片是国民技术新推的低成本高性能芯片,参数优异,看起来很适合目标应用,所以在此记录设计历程。

设计思路:
可调电源追求低成本高效率,只能是DCDC,为了方便使用,输入输出只要满足一定范围(初始设计为3~20V,较常用的范围),就应该正常使用。那么需要既能降压也能升压才行。
较有优势的是两种结构,sepic和buck-boost。
sepic结构较简单,但是效率也低,要用2个电感,成本高点,中间电容也有要求,当然在微小功率应用中也可以考虑,所以sepic备用。
为了效率考虑,首要选择是4管buck-boost方案,通常是4个NMOS,但是上端的NMOS需要自举升压才能驱动,mcu直驱是不行的,增加了成本和复杂性。所以改成了简化的版本,上端MOS用PMOS,这里就造成一个问题,后面实验中才发现。
为了更为简化设计,先设计为非同步整流,如图:


电感L3上的电流也需要监测,以便控制PWM并做安全保护,大电压上的微小电压差的检测比较难,使用现成的电流放大器是一个选择,但是频宽不够,只有几十k。而PWM设计频率要在100K以上,因此自己设计了2级差分放大器。

但这种放大电路对电阻精度要求较高,不过本设计不需要太精确的测量,可能通过软件测试校准即可适用。

调节方面力求简化,不涉及GUI,只使用串口通讯完成电压电流设置和测量监控。为了方便使用,使用printf方式,不过例程里面只有printf,还需重定义scanf函数,添加fgetc函数即可:

int fgetc(FILE* f)
{uint8_t ch;
    while (USART_Flag_Status_Get(USARTx, USART_FLAG_RXDNE) == RESET)
        ;
            ch=USART_Data_Receive(USARTx);
return (ch);        
}

这样就可以使用scanf函数接收上位机传来的数据啦。(当然这个函数是阻塞型的,这样设计会造成等待,不过对于本设计主要就是等待上位机的指令,所以尚可。)
(提示:如果程序上有多线程的需要,那么不应该设计需要等待的函数。)

结果:
后续实验中发现PMOS驱动范围太窄,导致输入电压范围不够,不满足要求。因为3401这类管子GS只能承受20V压差(一般MOS管也都是这样的),使用时要留较大余量,否则很容易烧掉,使用时限制为15V以内。不满足要求。并且DCDC需要提高开关频率,GS上的跨接电阻为了快速关断,只能取较小值,但是导通时电流将比较大,MCU的管脚吸入电流不能支持。以上图的数值也难以支持到15V。
如果要改上端为NMOS,需要驱动芯片,这样小mos管就浪费了,选用大电流mos管更能发挥功率提高性能,这样也需要谨慎设计过流保护过压保护,一众电路都变得更为复杂,成本上升。而且完全由mcu软件控制pwm想要实现buck-boost,软件会相当复杂,难度较高。不适合低成本模块的应用。
所以这个方案现在准备放弃了。

设计过程中使用了N32G430芯片的几部分功能。首先是高主频的设计才能够支持高频率的PWM调节,DCDC的PWM频率越高,电感体积和成本越低,电流可以增大。
然后调好串口,调试更为方便,满足本设计需要。PWM部分取例程修改即可。ADC选择TIMTrigger_AutoInjection这个例程修改更好,里面也包含了PWM2路输出,刚好符合需要。整合串口部分即可。
N32G430整体使用起来顺利正常,方便直接,例程也容易学习理解,感受非常棒。

不过因为硬件设计不合适,经过考量和取舍,接下来将改为控制专用buck-boost芯片,经过比对选型,选择SC8721芯片(之前不选择它,一是因为成本高些,二是工作范围没有更大。),有符合目标的电参数性能,较低的成本,完善的保护,设计上应该也比较简单。只需I2C控制即可。内置也有电流放大器。
所以接下来修改设计,新版将推翻前面的软硬件设计重新来过。

sc8721电路:


pcb:

目前待调试,期待能够及时完善,以作为参加立创竞赛的项目~~。


使用特权

评论回复
沙发
lcdi|  楼主 | 2022-9-7 20:55 | 只看该作者
本帖最后由 lcdi 于 2022-9-10 16:28 编辑

续:
调试sc8721的过程:

主要是I2C的调试,过程一波三折,结果都是自己粗心,搞错了地址,写错了参数。修正之后,成功的用串口改变电压。功能打通了。
系统:

开发板配合电源板,接了一个风扇当做负载,比较轻的,6V到14V都能转,再高不敢试了。没有合适的可调负载,后续再做详细些的测试吧。

电源板:

测试图:
为了简单起见,输入固定为4位数字,0900表示9V,1200表示12V。
测量的电压回传上位机,单位是mv,第一个测量值是输入(5V),图形是红色线。第二个测量值为输出电压,图形显示为绿色线。




参考ADC例程用了PA0,PA1,结果都有些偏差,PA0偏差尤其大。调试中发现,不接PA0,分压点电压正确,接上后,电压被拉低了。
~~
首先怀疑是ADC输入电阻小,计算了一番,应该只会有小量影响,不该拉低明显。接着发现PA2,PA3,PA4接上都不会拉低分压点电压。
所以~~检查了开发板电路图发现PA0接了10K电阻到地(为了wakeup),PA1也接了LED。
所以改到PA2,PA3就好了。

测试过程中也发现ADC采集的并不稳定,跳动较大,想来N32G430芯片不应如此,还需测试改进。(经测试,开发板上分压,ADC测量非常稳定,所以可见是电磁环境下接线引入的,用示波器测量纹波也验证了这一点)

代码如下:
I2C_Master.zip (3.11 MB)

使用特权

评论回复
板凳
天天向善| | 2022-9-9 13:10 | 只看该作者
大佬这闲时间很多呀,还有时间参加各种比赛!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://www.eeboard.com/avago-shengji?invite_id=5579

33

主题

416

帖子

7

粉丝