国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

學習嵌入式小白基于4412修改電源管理芯片8767電壓輸出

發布時間:2019-12-31 14:36    發布者:落風
這周技術支持的時候遇到一個小伙伴,想把底板上2.8v的輸出修改為3.3v,但是不知道要從哪入手,所以,法師推文的素材就又有了~~~這位小伙伴看到記得給點個贊吶~
S5M8767電源管理芯片是三星專門針對4412研發的,S5M8767提供9路BUCK和28路LDO輸出,每路電壓的大小可以通過軟件進行設置。這里我們以迅為-4412精英底板VDD28_AF,VDD28_CAM這倆路為例。
原理圖分析
在底板原理圖中找到camera擴展端子,camera攝像頭驅動中將這倆路電壓設置為2.8v 的電壓。所以在后面我們修改這倆路電壓的時候要先去掉攝像的驅動。

通過核心板原理圖可知,VDD28_AF和VDD28_CAM分別對應電源芯片 S5M8767A 的VLDO20和VLDO21。如下圖所示:

然后我們打開8767的datasheet,找到對這倆路的描述,下圖最上面的紅框中,表示輸出的電流是150mA,最低輸出電壓是0.8v,最大電壓是3.95v。最下面的紅框中,介紹的是默認輸出電壓,可以看到LDO20和LDO21,默認輸出的是3.0v。如下圖所示:

軟件分析

     確定完硬件原理之后,我們知道這倆路的電壓范圍是0.8v到3.95v。然后我們打開內核源碼里面的平臺文件。

平臺文件位置:

rch/arm/mach-exynos/mach-itop4412.c
然后我們找到對應ldo20和ldo21的代碼,如下圖所示:

我們將紅框的中的代碼2800000修改為3950000,紅框函數中的第一個參數表示8767電源芯片的第20路,第三個參數表示輸出最低電壓,第四個參數表示輸出最高電壓。

     最后我們還要在menuconfig里面將5640的驅動去掉。這樣我們軟件的配置就完成了。

測試

     測試代碼如下:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
struct regulator *ov_vddaf_cam_regulator = NULL;
struct regulator *ov_vdd5m_cam_regulator = NULL;
struct regulator *ov_vdd18_cam_regulator = NULL;
struct regulator *ov_vdd28_cam_regulator = NULL;
MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("iTOPEET_dz");
static int power(int flag)
{
if(1 == flag){regulator_enable(ov_vdd18_cam_regulator);
udelay(10);
regulator_enable(ov_vdd28_cam_regulator);
udelay(10);
regulator_enable(ov_vdd5m_cam_regulator); //DOVDD DVDD 1.8v
udelay(10);
regulator_enable(ov_vddaf_cam_regulator); //AVDD 2.8v
udelay(10);
}
else if(0 == flag){
regulator_disable(ov_vdd18_cam_regulator);
udelay(10);
regulator_disable(ov_vdd28_cam_regulator);
udelay(10);regulator_disable(ov_vdd5m_cam_regulator);
udelay(10);regulator_disable(ov_vddaf_cam_regulator);
udelay(10);
}
return 0 ;
}
static void power_init(void)
{
int ret;
ov_vdd18_cam_regulator = regulator_get(NULL, "vdd18_cam");
if (IS_ERR(ov_vdd18_cam_regulator)) {
printk("%s: failed to get %s\n", __func__, "vdd18_cam");
ret = -ENODEV;
goto err_regulator;}ov_vdd28_cam_regulator = regulator_get(NULL, "vdda28_2m");
if (IS_ERR(ov_vdd28_cam_regulator)) {
printk("%s: failed to get %s\n", __func__, "vdda28_2m");
ret = -ENODEV;
goto err_regulator;
}
ov_vddaf_cam_regulator = regulator_get(NULL, "vdd28_af");
if (IS_ERR(ov_vddaf_cam_regulator)) {
printk("%s: failed to get %s\n", __func__, "vdd28_af");
ret = -ENODEV;goto err_regulator;
}
ov_vdd5m_cam_regulator = regulator_get(NULL, "vdd28_cam");
if (IS_ERR(ov_vdd5m_cam_regulator)) {
printk("%s: failed to get %s\n", __func__, "vdd28_cam");
ret = -ENODEV;goto err_regulator;
}
err_regulator:
regulator_put(ov_vddaf_cam_regulator);
regulator_put(ov_vdd5m_cam_regulator);
regulator_put(ov_vdd18_cam_regulator);
regulator_put(ov_vdd28_cam_regulator);
}
static int hello_init(void)
{
power_init();
power(1);
printk(KERN_EMERG "Hello World enter!\n");
return 0;
}
static void hello_exit(void)
{
power(0);
printk(KERN_EMERG "Hello world exit!\n");
}
module_init(hello_init);
module_exit(hello_exit);

Makefile如下所示。
#!/bin/bash
obj-m += power_s5m8767a_test.o
KDIR := /home/topeet/android4.0/iTop4412_Kernel_3.0
PWD ?= $(shell pwd)
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -rf *.o modules.order *.ko *mod.c Module.symvers
我們加載驅動之后,測量電壓大約為3V左右,有壓降,卸載驅動之后,電壓為0。說明驅動運行成功,如果在自己的項目中,假如需要用到電源控制,也可以參考本例程來實現。


本文地址:http://m.qingdxww.cn/thread-576009-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
落風 發表于 2020-1-3 11:01:22
iTOP4412開發板介紹        https://www.bilibili.com/video/av74453392
iTOP4412開發板系統編程前言        https://www.bilibili.com/video/av75754003
iTOP4412-fastboot燒寫Android        https://www.bilibili.com/video/av76115803
iTOP4412-安裝虛擬機軟件        https://www.bilibili.com/video/av75881580
iTOP4412-創建和配置虛擬機        https://www.bilibili.com/video/av75881653
iTOP4412-獲取并安裝ubuntu操作系統        https://www.bilibili.com/video/av75881774
iTOP-4412驅動教程一        https://www.bilibili.com/video/av74131033
iTOP-4412驅動教程二        https://www.bilibili.com/video/av74131033?p=2
iTOP-4412驅動教程三        https://www.bilibili.com/video/av74131033?p=3
iTOP-4412開發板之如何擴展不同規格LCD屏幕        https://www.bilibili.com/video/av75870604
itop4412-編譯4412對應的uboot        https://www.bilibili.com/video/av76737204
項目實戰-GPS定位簡介        https://www.bilibili.com/video/av78601887
項目實戰-迅為實戰教程介紹        https://www.bilibili.com/video/av78601813
項目實戰-機車導航-機車導航項目演示        https://www.bilibili.com/video/av78601986
項目實戰-機車導航-定制內核顯示logo        https://www.bilibili.com/video/av78729131
項目實戰-機車導航-修改安卓開機啟動動畫        https://www.bilibili.com/video/av78972262
項目實戰-智能家居-簡介        https://www.bilibili.com/video/av80835403
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美三级网站在线观看 | 成人三级在线播放线观看 | 中文字幕日本久久2019 | 国产日韩在线观看视频网站 | 久久精品免费i 国产 | 欧美黑大粗硬免费看 | 九九热视频在线 | 亚洲福利影视 | 四虎国产精品免费久久麻豆 | 国产精品尹人在线观看免费 | 亚洲欧美一区在线 | h黄动漫在线观看播放 | 欧美日韩国产另类在线观看 | 亚洲视频二 | xxxx日本在线播放免费不卡 | 久久综合色之久久综合 | 日韩一区二区三区视频 | 免费黄色网战 | 99福利在线观看 | 国产精品妖精视频 | 欧美三级成人观看 | 一级网站在线观看 | 毛片免费永久不卡视频观看 | 日本高清色www网站色 | 天天拍拍天天爽免费视频 | 国产女人又爽又大 | 天天操天天玩 | 四虎永久网站 | 手机在线观看亚洲国产精品 | 久草精彩视频 | 四虎免费永久观看 | 九九热在线视频播放 | 有没有www动漫在线观看高清 | 丝瓜小猪草莓芭乐榴莲幸福宝 | 亚洲精品亚洲人成在线麻豆 | 青青草手机在线视频 | 亚洲欧美91| 久青草网站 | 日本黄在线观看免费播放 | 黄色欧美在线观看 | 韩国一级片在线播放 |