网站首页 > 技术教程 正文
太阳能电源管理模块电路分析
前阵子买了好几个微雪的USB转RS485转化器,用起来感觉还是很不错的,测试波形非常不错,丢包率也很少。买的是FT232版本的,体验还不错。需要的小伙伴也可以去阿宝自行搜索。感觉微雪的质量还是蛮有保障的。
然后今天去官网看,也有一些原理图是开源的,今天就分享一下太阳能电源管理模块方案,与各位同好一同分享,希望对各位的工作学习有所帮助:
这个充电模块支持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-EVKB
void 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-EVKB
void 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);
}
////////////////////////////////////////////////////////////////////////////////
// TP26
void 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/)
猜你喜欢
- 2024-12-19 深入浅出FOC矢量控制--PWM波、SPWM波、SVPWM波
- 2024-12-19 dsp中的tms320的延时函数如何使用
- 2024-12-19 圈内分享:电力谐波检测改进算法在DSP上的应用与实现
- 2024-12-19 学习笔记无人机(1):基于DSP的无人机高度采集系统设计
- 2024-12-19 基于TMS320F2812的ADC校正算法设计与实现
- 2024-12-19 步进电机控制系统的设计及应用 步进电机控制技术
你 发表评论:
欢迎- 04-26偶尔摸鱼18--招新海报
- 04-26一张还不知道能不能被采用的海报
- 04-26美工技巧:如何快速找素材找灵感?
- 04-26收集24个学好PPT的网站,拿走不谢
- 04-26美工设计必备的国内外素材网站大全
- 04-26电商设计师必备的国内外素材网站大全!
- 04-26安全防护标准化高清图,安全文明施工必备
- 04-26图说筏板基础施工那些事儿
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)