- 博客(11)
- 收藏
- 关注
原创 数字开关电源的峰值电流控制模式理解
当输入电压突然下降,为了保持输出电压的恒定,占空比就会变大,在下图中,绿色的线即为这种情况。这样就会造成输出电压的增高,那么当要实现稳压,就会出现内环导致电压升高,外环要让输出电压减小,这样就会造成输出电压的震荡。利用buck电路举例,如图一,当电压外环的输出值Vc,反馈到电流内环,电流内环控制PWM占空比,当电感电流的输出值大于Vc映射的电感电流参考值时,立即关断PWM。在开关管断开的时候,输出端电压为Vo,二极管导通,那么电感右侧就是Vo,电感左侧接的是-Vd,所以此时电感两端电压是Vo+Vd。
2025-09-19 11:01:55
671
原创 C2000 F2803X的ADC模块学习笔记
该寄存器主要控制当EOCx信号来了之后,通过INTSELxNy[INTxSEL]选择通过哪个INT模块的哪个EOC信号作为触发源,比如设置INTSEL1N2.INT1SEL =0x01,就是设置ECO1作为ADCINT1中断的触发源,INTSEL1N2.INT1E选择是否使能ADC中断,INTSEL1N2.INT1CONT选择是否只要EOC脉冲生成,就会产生ADCINTy脉冲。另外,一般配置偶数SOC来实现同时采样,但是也可以配置奇数SOC或者两个都配置(两个触发,其中一个产生时都会进行转换)。
2025-09-13 16:15:57
866
原创 C2000 F2803X的比较器、EPWM的DC与TZ模块联动的学习笔记
抛开斜坡发生器,我们直接选择DACCTL[DACSOURCE]=0,再把COMPCTL[COMPSOURCE]位置为0,这时我们就成功选择用DACVAL寄存器里的值作为10位DAC的输出,并通过COMPCTL[COMPDACEN]置1激活比较器的参考电源,再往前我们置COMPCTL[SYNCSEL]为1,比较器的输出需要同步时钟源,再把COMPCTL[QUALSEL]置为0x00-0x1F,比如置为5就代表需要4个时钟源周期比较器的输出都一致时,比较器才会真正的输出,最后COMPCTL[CMPINV。
2025-09-12 17:09:58
1045
原创 C2000 F2802x的EPWM实现移相功能
3、关于CBA,即平均输出电感电流的采样点的选取,由于EPWM1A与EPWM2B的占空比交叠区的中点并不是平均电感电流的精确点,计算CBA的逻辑是:由于EPWM2B相位超前EPWM1A300,那么EPWM1A与EPWM2B的交叠区总共占300计数,由于RED占40计数,那么交叠区占260,即交叠区的中点在40+260/2=170,取200是由于平均电感电流的采样点滞后于交叠区的中点。由于相位由从属模块的相位寄存器(TBPHS)控制,而主模块的相位寄存器未被使用,因此可初始化为零。PHSEN寄存器置1。
2025-09-09 12:16:22
502
原创 C2000 EPWM的主要模块学习笔记(一)
1.时基模块(TB)2.计数比较模块(CC)3.功能限定模块(AQ)4.死区控制模块 ( DB )5.斩波模块 ( PC ),暂时未用到6.制动模块 ( TZ )7.事件模块 ( ET )8.数字比较(DC),暂时未用到先理解各个寄存器的作用,然后举实际的例子来进行特定的设置。
2025-09-08 16:34:36
1319
原创 NXP K142 .LD .S .HEX文件学习笔记
本文分析了NXP K142芯片启动流程和存储器配置。系统上电后从0x0001A410的Reset_Handler开始执行,该地址与中断向量表和.text段首地址一致。LD文件定义了256KB Flash存储器布局,其中前0x1A000-0x1A400为中断向量表,并配置了1KB的堆栈空间。启动过程包括设置栈指针、拷贝数据段、初始化BSS段等步骤,最后跳转至main函数。文章还解释了栈帧的工作原理及函数调用时的寄存器配合机制,通过.map文件验证了存储器分配的正确性,并展示了Flash配置寄存器的具体设置。
2025-06-09 14:21:16
766
原创 常规项目编码准则
14 使用软件的特殊使用方法时,必须在注释中说明原理。3 中断中赋值的全局变量在主循环中不能直接使用,必须将该值赋值给一个局部变量,使用局部变量进行计算或其他操作。1 应禁止存在同时运行的多任务对同一个变量赋值,如中断与主循环之间禁止对同一变量赋。6 多任务同时对底层外设模块进行操作时,应使用SpinLock的原理添加互斥逻辑。8 应避免不同类型的变量进行比较,如无符号数与有符号数的比较,浮点型变量和整形变量。13 应减少全局变量的使用,尽量以形参或函数返回值的形式传递数据。/* 这里填写执行内容 */
2024-08-26 14:21:40
333
原创 union中嵌套struct的作用
先去学习了结构体中的位域操作,熟悉C语言结构体的都知道,结构体中的变量是按字节数最大的进行对齐,这样会造成比如一个bool型变量只用到1位数据,却要占8位,为了更加节约空间,可以约束变量的占位数。而使用union进行嵌套,便可以再定义一个变量来管理这些位数据,比如直接定义好all的数据,便可以将32位数据依次存储在结构体中的变量位中。
2024-08-19 16:27:52
845
原创 解决pytouch导入模型torch.load报错:AttributeError: Can‘t get attribute ‘XXX‘ on <module ‘__main__‘ from XXX>
解决办法:在torch.load()之前,加入你定义的模型的CLASS,也就是把训练模型时的定义的模型的类复制到torch.load()之前。
2024-01-02 17:02:46
1558
原创 基于colab的yolov3-tensorflow训练自己的数据集(全小白教程)
基于colab的yolov3-tensorflow训练自己的数据集(全小白教程)1.站在巨人的肩上2.colab的使用1. 创建谷歌账号;2. 创建云盘;3.挂载云盘文件夹3.YOLOV3-Tensorflow1.下载源码2.下载Labelimg标注工具3.创建VOC文件夹4.标注图像5.分割训练集与测试集6.放入yolov3.weights文件7.上传文件夹4.在colab服务器上进行训练1.服务器基本设置2.挂载colab文件夹3.生成tfrecord文件4.迁移训练5.测试模型总结本文原创:转载请说
2021-07-30 11:37:42
2244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅