- 博客(19)
- 资源 (10)
- 收藏
- 关注
原创 DCDC的Layout终极奥义
可以看到,基频就是BUCK芯片LTC3307A的开关频率2Mhz,2Mhz两者的强度相差不是很大,就2-3个db左右,但是在10Mhz的时候,就已经相差20db了,频率越高,差得越多。,这个二极管构成了输入回路的一部分,那么它的位置,与输入滤波电容的重要性是同级别的,要放得离芯片的SW比较近,具体怎么摆,咱们看回路面积怎么小就知道了。然后找到电流突变的那个环,那就是最重要的,得优先处理。,也就是会有很大的di/dt,那么输入环路的磁通量也是突变的(准确的说是变化速度很快),存在很多的高次谐波。
2024-05-06 10:43:13 965
原创 手撕Boost!Boost公式推导及实验验证
当然,也不是说铝电解电容不能用,因为我举的例子负载电流达到了1.667A的,这个算是比较大的,如果负载电流减小到三分之一,输出纹波(包括毛刺振荡)噪声也降低了,如下图,降低到了110mV左右,纹波要求不严格的话也可以用了。整个电路稳定之后,因为负载电流恒定,那么一个周期时间之内,在开关导通时电感电流增加的量,要等于开关截止时,电感电流减小的量,即电感充了多少电就要放多少电,不然负载的电流或者电压就要发生变化。显然,放电的时候更好计算,因为放电电流就是负载电流,是恒定的,为Io=Vo/RL。
2024-05-06 10:37:28 1543
原创 Proteus添加库中没有的元器件(以STM32F103VET6为例)
Proteus添加库中没有的元器件(以STM32F103VET6为例) - 知乎
2024-03-05 09:21:36 2454 2
原创 Linux i2c和spi(十二)
构建i2c_driver构建i2c_msg发送数据之前要先构建好i2c_msg发送数据读取寄存器数据最后用client->adaptermsg2函数发送。
2023-06-28 16:56:31 200 1
原创 Linux 中断(十一)
下半部:如果中断处理过程比较耗时,那么就将这些比较耗时的代码提出来,交给下半部去执行,这样中断处理函数就会快进快出。,那些处理过程比较快,不会占用很长时间的处理就可以放在上半部完成。3、 free_irq 函数。:中断标志,//在文件。:要申请中断的中断号。里面查看所有的中断标志。5、设备树中断信息节点。
2023-06-21 15:38:56 493
原创 linux - timer定时器(八)
* 将设备结构体作为参数 */(传递给回调函数function的参数)function 就是定时器超时以后的定时处理函数,我们要做的工作就放到这个函数里面,需要我们编写这个定时处理函数。器,那么这个定时器的超时时间就是 jiffies+(2*HZ),因此 expires=jiffies+(2*HZ)del_timer_sync 函数是 del_timer 函数的同步版,会等待其他处理器使用完定时器再删除,内核定时器并不是周期性运行的,Linux 内核使用 timer_list 结构体表示内核定时器。
2023-06-01 10:58:41 433
原创 Linux MISC 驱动(七)
注册设备用 misc_register。MISC 设备 misc_deregister。其他和设备树使用一样,就是省去了创建cdev。设备驱动最终是需要使用用户提供的。就是字符设备的操作集合,
2023-05-31 17:26:00 49 1
原创 linux内核自带的LED驱动(六)
选择“LED Support for GPIO connected LEDs”,将其编译进 Linux 内核此选项上按下“Y”键,使此选项前面变为“”⑤可以设置“default-state”属性值,可以设置为 on、 off 或 keep,为 on 的时候 LED 灯默。认打开,为 off 的话 LED 灯默认关闭,为 keep 的话 LED 灯保持当前模式。heartbeat: LED 灯作为心跳指示灯,可以作为系统运行提示灯。timer: LED 灯周期性闪烁,由定时器驱动,闪烁频率可以修改。
2023-05-31 16:57:38 394 1
原创 linux GPIO(四)
打开 imx6ull-alientekemmc.dts,4.进入“/proc/device-tree”目录中,检查节点是否存在。在根节点“/”下创建 LED 灯节点,节点名为“gpioled”子节点下创建一个名为“pinctrl_led”的子节点,LED 灯使用了 GPIO1_IO03 这个 PIN。3.检查PIN是否被其他外设使用。1、添加 pinctrl 节点。2、添加 LED 设备节点。LED 灯驱动程序编写。
2023-05-30 17:17:02 147 1
原创 linux设备树-LED(三)
1.打开 imx6ull-alientek-emmc.dts,在根节点下创建子节点。定义一个结构体、实现init初始化、write写函数、exit出口函数。2 make dtbs 编译设备树,发送到开发板。子节点reg存放的是是寄存器地址。
2023-05-30 16:35:56 89 1
原创 C++基础知识(一)
在类里面定义了一个函数,但是没有给出具体定义。全局变量和局部变量定义成一样的。3.作用域分解运算符 函数定义。不同的类里面的成员名称可能相同。1.(类)作用域符号。4、命名空间作用域符号。二、C++中 ::作用。
2023-05-25 20:05:55 68
原创 linux设备树(二)
i2c1 表示要访问 i2c1 这个 label 所对应的节点,也就是 imx6ull.dtsi 中的“i2c1:i2c@021a0000”make dtbs。从驱动函数中调用设备树值。
2023-05-09 18:14:32 179 1
原创 linux设备树(一)
unit-address”一般表示设备的地址或寄存器首地址,如果某个节点没有地址或者寄存器的话“unit-address”可以不要。在驱动程序中,如果设备节点的 compatible 属性值和 OF 匹配表中的任何一个值相等,那么就表示设备可以使用这个驱动。“兼容性”属性,compatible 属性的值格式如下所示:"manufacturer,model"。#address-cells 属性值决定了子节点 reg 属性中。#size-cells 属性值决定了子节点 reg 属性中。
2023-05-09 17:53:33 99 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人