然后本日辞官网看,也有一些事理图是开源的,本日就分享一下太阳能电源管理模块方案,与各位同好一同分享,希望对各位的事情学习有所帮助:
这个充电模块支持micro usb口充电,或者太阳能板充电(6-24V),然后具有一些保护功能,例如防过充,过放等。
然后电源充电分两部分,先看第一部分,便是太阳能充电:这部分采取了芯片CN3791作为太阳能电池充电芯片,CN3791 是一款可利用太阳能板供电的PWM 降压模式单节锂电池充电管理集成电路,独立对单节锂电池充电进行管理。

D1可以不用,在CN3791的数据手册里写有,二极管D1用来作为阻流二极管,防止在输入电源掉电时花费电池的能量。在就寝模式,纵然不用二极管D1, CN3791花费的电池电流也只有约30微安,以是可以考虑去掉二极管D1。D1的浸染是防止输入端没有电源输入的时候,电流利过芯片泄电。
然后防过充过放便是经典的DW01+8205(集成的双NMOS)方案了,也防过流,这个可以说很是经典。这个很多锂电池已经内置了这DW01+8205,阿宝卖的那个4056的锂电池充电小板上用的也是这个锂电池保护方案:
这个DW01的掌握逻辑大概是(用单片机掌握也是一样的思路),当DW01检测电池电量很低的时候(过放),掌握让OD的NMOS截止,让OC的NMOS导通,然后此时电池就不可以放电(蓝色路径),只可以通过赤色路径进行充电(通过OD的体二极管),以实现防止电池过放。
充电时,当DW01检测电池电量过高的时候(过充),掌握让OD的NMOS导通,让OC的NMOS截止,然后此时电池就不可以充电(赤色路径),只可以通过蓝色路径进行放电(通过OC的体二极管),以防止过充破坏电池……
查看原文:https://www.dianyuan.com/eestar/article-7987.html
手机拍摄下的WS2812,内部有颗小ic
最近买了几颗WS2812,本日拿手机拍出来还蛮好看的,分享给各位,可以看到里面是封了一颗小芯片的,也便是这颗芯片作为RGB的掌握芯片:
这个RGB灯珠的芯片内部集成了电源钳位模块、旗子暗记解码模块、振荡模块、数据再生模块、输出电流驱动模块等。个中数据再生模块在接管本芯片的数据后,自动将级联输出的数据整形转发,担保数据串联传输过程不衰减。不得不说麻雀虽小,五脏俱全……
查看原文:https://www.dianyuan.com/eestar/article-7988.html
干货 | 如何快速准确的丝印反查
相信很多同好在事情中也会碰着拆解或者剖析之类的,须要丝印反查,那么如何快速的丝印反查呢?本文就大致总结一下自己反查丝印的一点小技巧。
例如这个图,来自群友的提问,丝印TAF,这是什么器件?方法一:那么最快速最快速的查找方法,便是打开tb,然后搜索:丝印TAF。我敢说,基本这70%可以查的到型号。这种查找方法很直接,而且很有效,如果有不认识的器件,冷门的器件也可以直接拍照识物。
方法二:半导小芯APP或者芯查查APP也有丝印反查的功能,不过查找效果个人觉得不如tb,大致例如下图:
方法三:丝印反查网站,不过可以看出这个该当是没有查到。个人还是更喜好第一种方法。
http://www.smdmarkingcodes.com/chinese.php
方法四:看芯片Logo,然后去对应的官网去查找,很多芯片的logo大家看得多了也就认识了,我列举一下平时见到比较多的一些国外大厂的logo,大致如下图……
查看原文:https://www.dianyuan.com/eestar/article-7989.html
如何操控未来:F1C100s(荔枝派)引领你踏入嵌入式天下
本文将涵盖以下主题:F1C100s简介、Uboot、Linux内核裁剪定制,以及利用C或C++进行运用程序开拓。我们还将供应两个示例:一个掌握LED灯闪烁的大略示例,另一个创建带有按钮的GUI界面程序。
F1C100s 性能参数
F1C100s是一款低本钱、低功耗的32位处理器,常用于嵌入式系统和物联网设备中。它具有ARM926EJ-S CPU架构、16KByte D-Cache、32KByte I-Cache和32MB DDR1 SIP内存。它支持H.264 1920x1080@30fps解码和MJPEG 1280x720@30fps编码。F1C100s是一款720P高清多媒体处理器。
F1C100s 参数如下:
USB OTG(USB On-The-Go)是一种规范,许可某些Android智好手机和平板电脑充当USB主机,以便您可以将其他USB外设(例如键盘或闪存驱动器)插入它们。USB OTG可以通过单个USB端口实现这种功能。USB连接常日从打算机(主机)开始并链接到另一个设备,常日是外围设备,例如打印机、鼠标、键盘或USB闪存驱动器。支持USB OTG的设备可以作为主机或外围设备。许多Android智好手机都支持USB OTG,包括较新的三星手机。有些安卓设备产品包装上是否有USB OTG标志,或者在设备设置中查找USB OTG信息。iOS设备不支持USB OTG,但有办法得到类似的功能并将USB设备连接到iPhone和iPad。
F1C100S处理器的框图如下:
F1C100s 比拟全志自家其他芯片:
除内存参数外,F1C200s 与F1c100s 参数完备一样,但是 F1C200s 的内存是64M, F1C100s 是32M。
荔枝派(Lichee Pi) Nano 开拓板的参数如下……
查看原文:https://www.dianyuan.com/eestar/article-7981.html
利用GPIO模块来丈量Cortex-M7系统中断延迟
大家好,我是痞子衡,是正经搞技能的痞子。本日痞子衡给大家先容的是i.MXRT1xxx的系统中断延迟韶光。
在 《Cortex-M系统中断延迟及其丈量方法简介》 一文里,痞子衡先容了 Cortex-M 中断延迟的基本观点及一种用 GPIO 模块来丈量中断延迟韶光的方法,本日我们就在 i.MXRT1xxx 系列芯片上用这种方法实测一下中断延迟:
一、官方指标
恩智浦 i.MXRT1xxx 系列目前有很多型号,都是基于 Cortex-M7 内核,主频从 500MHz 到 1GHz 不等。拿该系列第一款型号 i.MXRT1050 来说,在其官方主页可以看到其标称中断延迟韶光低至 20ns。
在 《Cortex-M系统中断延迟》 一文第一小节里我们知道 Cortex-M7 的标准中断延迟是 12 - 14 个内核时钟周期,i.MXRT1050 主频是 600MHz ,理论打算可得 (1s / 600MHz) 12 = 20ns,以是 i.MXRT1050 上这 20ns 的中断延迟是符合 ARM 标准的。
二、测试代码
现在我们在芯片上实测一下,痞子衡把 i.MXRT1011/1021/1052/1062/1176 这五个型号均测了一遍,测试代码可以基于其各自 SDK 包。
以 i.MXRT1052 为例,选用 \SDK_2.10.0_EVKB-IMXRT1050\boards\evkbimxrt1050\driver_examples\gpio\input_interrupt 例程为模板(把稳选择 debug build,即代码链接在 TCM 里,知足零等待内存的测试需求),按 《Cortex-M系统中断延迟》 一文第二小节设计思想修正主函数如下(关于 GPIO 中断利用可以参考 《以i.MXRT1xxx的GPIO模块为例谈谈中断处理函数(IRQHandler)的标准流程》 一文):
Note1: 为了却果的准确性,痞子衡同时测试了多个不同类型的 GPIO 中断,由于部分 i.MXRT 型号中包含普通 GPIO 和 HSGPIO,并且有些 GPIO 事宜既可以触发 Combined 型中断,也可以触发独立的中断。
Note2: 输出旗子暗记用的 GPIO 类型对付本次测试不主要,无论选择普通 GPIO 还是 HSGPIO 去翻转,其翻转时长不影响终极测试结果。
uint32_t s_pin_low = 0x000000;uint32_t s_pin_high = 0x800000;////////////////////////////////////////////////////////////////////////////////// User Button SW8 - Pin4 in RT1050-EVKBvoid GPIO5_Combined_0_15_IRQHandler(void){ GPIO2->DR = s_pin_low; GPIO2->DR = s_pin_high; GPIO_PortClearInterruptFlags(GPIO5, 1U << 0); __DSB();}void init_gpio5_0(void){ gpio_pin_config_t din_config = {kGPIO_DigitalInput, 0, kGPIO_IntFallingEdge}; IOMUXC_SetPinMux(IOMUXC_SNVS_WAKEUP_GPIO5_IO00, 0U); GPIO_PinInit(GPIO5, 0, &din_config); NVIC_EnableIRQ(GPIO5_Combined_0_15_IRQn); GPIO_PortEnableInterrupts(GPIO5, 1U << 0); }////////////////////////////////////////////////////////////////////////////////// Arduino Interface, J24-2 in RT1050-EVKBvoid GPIO1_Combined_0_15_IRQHandler(void){ GPIO2->DR = s_pin_low; GPIO2->DR = s_pin_high; GPIO_PortClearInterruptFlags(GPIO1, 1U << 2); __DSB();}void GPIO1_INT2_IRQHandler(void){ GPIO2->DR = s_pin_low; GPIO2->DR = s_pin_high; GPIO_PortClearInterruptFlags(GPIO1, 1U << 2); __DSB();}void init_gpio1_2(void){ gpio_pin_config_t din_config = {kGPIO_DigitalInput, 0, kGPIO_IntFallingEdge}; IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_02_GPIO1_IO02, 0U); GPIO_PinInit(GPIO1, 2, &din_config); NVIC_EnableIRQ(GPIO1_Combined_0_15_IRQn); //NVIC_EnableIRQ(GPIO1_INT2_IRQn); GPIO_PortEnableInterrupts(GPIO1, 1U << 2); }////////////////////////////////////////////////////////////////////////////////// TP26void init_gpio2_23(void){ gpio_pin_config_t dout_config = {kGPIO_DigitalOutput, 0, kGPIO_NoIntmode}; IOMUXC_SetPinMux(IOMUXC_GPIO_B1_07_GPIO2_IO23, 0U); IOMUXC_SetPinConfig(IOMUXC_GPIO_B1_07_GPIO2_IO23, 0x70F9U); GPIO_PinInit(GPIO2, 23, &dout_config); GPIO2->DR |= 0x800000;}int main(void){ BOARD_ConfigMPU(); BOARD_InitBootClocks(); CLOCK_EnableClock(kCLOCK_Iomuxc); CLOCK_EnableClock(kCLOCK_IomuxcSnvs); init_gpio5_0(); init_gpio1_2(); init_gpio2_23(); while (1);}
三、测试结果
现在我们来看 5 个 i.MXRT 型号的详细测试结果,根据测试结果,我们得出如下结论……
查看原文:https://www.dianyuan.com/eestar/article-7937.html
更多精彩内容,尽在电子星球 APP(https://www.eestar.com/)
六篇技能文章,让你秒懂电容的脾气秉性
七篇DIY技能文章献给你,让你脑洞全开
五篇文章帮你开启DSP的学习思路
汇总篇:关于PID知识,重点在此