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

書白的個(gè)人空間 http://www.qingdxww.cn/space-uid-134862.html [收藏] [復(fù)制] [RSS]

博客

嵌入式開發(fā)-迅為4412開發(fā)板怎么修改電源管理芯片的輸出電壓?

已有 1861 次閱讀2017-4-17 09:24 | 嵌入式開發(fā)板, 迅為4412開發(fā)板

iTOP-4412開發(fā)板的核心板使用的電源管理芯片是三星專門針對4412研發(fā)的S5M8767,S5M8767提供9路BUCK和28路LDO輸出,每路電壓的大小可以通過軟件進(jìn)行設(shè)置。 
詳情了解:http://topeetboard.com 更多了解:https://arm-board.taobao.com
S5M8767的驅(qū)動位于內(nèi)核的drivers/regulator/s5m8767.c文件中,Exynos 4412處理器是通過I2C總線來控制S5M8767的。S5M8767在系統(tǒng)啟動的過程中會注冊到內(nèi)核里面的regulator模塊里面。 
regulator模塊是內(nèi)核用于控制系統(tǒng)中某些設(shè)備的電壓/電流供應(yīng),在嵌入式系統(tǒng)(尤其是手持設(shè)備)中,控制耗電量很重要,它直接影響到電池的續(xù)航時(shí)間。所以,如果系統(tǒng)中某一個(gè)模塊暫時(shí)不使用,就可以通過regulator關(guān)閉其電源;或者降低提供給該模塊的電壓、電流大小來達(dá)到降低功耗的目的。 S5M8767驅(qū)動的主要作用就是調(diào)用regulator_register函數(shù)向內(nèi)核注冊regulator_dev設(shè)備,每個(gè)regulator_dev代表一個(gè)regulator設(shè)備,內(nèi)核可以分別控制每個(gè)regulator。 
為了實(shí)現(xiàn)S5m8767驅(qū)動還需要在平臺相關(guān)的代碼里定義regulator_init_data結(jié)構(gòu),regulator_init_data用來建立父子regulator、受電模塊之間的樹狀結(jié)構(gòu),以及一些regulator的基本信息,比如電壓大小等,下面我們來看下regulator_init_data結(jié)構(gòu)的定義,代碼在arch/arm/mach-exynos/mach-itop4412.c里面,在這個(gè)文件里使用宏REGULATOR_INIT定義了28個(gè)LDO的regulator_init_data結(jié)構(gòu),代碼如下: #define REGULATOR_INIT(_ldo, _name, _min_uV, _max_uV, _always_on, _ops_mask,\ 
_disabled) \ 
static struct regulator_init_data s5m8767_##_ldo##_init_data = { \ 
.constraints = { \ 
.name = _name, \ 
.min_uV = _min_uV, \ 
.max_uV = _max_uV, \ 
.boot_on = _always_on, \ 
.apply_uV = 1, \ 
.valid_ops_mask = _ops_mask, \ 
.state_mem = { \ 
.disabled = _disabled, \ 
.enabled = !(_disabled), \ 
} \ 
}, \ 
.num_consumer_supplies = ARRAY_SIZE(s5m8767_##_ldo##_supply), \ 
.consumer_supplies = &s5m8767_##_ldo##_supply[0], \ 

上面的宏定義中,第三個(gè)和第四個(gè)參數(shù)指定了LDO的電壓最小值和最大值,第五個(gè)參數(shù)設(shè)置LDO在系統(tǒng)開始運(yùn)行時(shí)是輸出還是關(guān)閉的(1是輸出,0是關(guān)閉)。 
第六個(gè)參數(shù)是LDO具有哪些功能,例如可以修改電壓,電流,改變狀態(tài)等等,通過位掩碼的方式設(shè)置,第七個(gè)參數(shù)是設(shè)置在休眠的時(shí)候是否由PWREN引腳控制它的開關(guān)(1是由PWREN控制,0是不受PWREN控制),休眠的時(shí)候PWREN為低電平,LDO會關(guān)閉,系統(tǒng)喚醒,PWREN為高電平,LDO會輸出。 
例如LDO2的定義,如下: 
REGULATOR_INIT(ldo2, "VDDQ_M12", 1500000, 1500000, 1, 
REGULATOR_CHANGE_STATUS, 1) 
根據(jù)定義,可以知道LDO2輸出的電壓是1.5v,系統(tǒng)啟動的時(shí)候會默認(rèn)輸出,系統(tǒng)休眠的時(shí)候會關(guān)閉。其他的LDO的設(shè)置原理與LDO2是一樣的。 
系統(tǒng)中BUCK的定義,例如BUCK1: 
static struct regulator_init_data s5m8767_buck1_data = { 
.constraints = { 
.name = "vdd_mif range", 
.min_uV = 900000, 
.max_uV = 1100000, 
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | 
REGULATOR_CHANGE_STATUS, 
.state_mem = { 
.disabled = 1, 
}, 
}, 
.num_consumer_supplies = 1, 
.consumer_supplies = &s5m8767_buck1_consumer, 
}; 
根據(jù)上面的定義,可以知道BUCK1的電壓范圍在0.9v到1.1v,他具有可以修改電壓,修改狀態(tài)的功能(變量valid_ops_mask)。可以使用函數(shù)regulator_set_voltage修改BUCK1的電壓。其他幾個(gè)BUCK的定義原理和BUCK1是一樣的 
如果我們想要修改8767的某個(gè)LDO的輸出電壓,就可以通過修改對應(yīng)LDO的regulator_init_data結(jié)構(gòu)體里面的電壓值來實(shí)現(xiàn),修改BUCK的電壓可以使用函數(shù)regulator_set_voltage來實(shí)現(xiàn)。 
注意:因?yàn)镾5M8767的每個(gè)BUCK和LDO都有各自規(guī)定的輸出最大值,因此在修改輸出電壓的時(shí)候,一定要參照S5M8767的datasheet,確保修改的電壓在datasheet規(guī)定的范圍內(nèi)。



路過

雞蛋

鮮花

握手

雷人

評論 (0 個(gè)評論)

facelist

您需要登錄后才可以評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
返回頂部
主站蜘蛛池模板: 国产女人好爽好多水 | 九九精品在线观看 | 日本夫妇交换456高清 | 欧美视频在线观看免费播放 | 91啦视频在线观看 | 91人前露出精品国产 | 国产天天色 | 亚洲激情99 | 91蜜桃在线观看 | 九九视频高清视频免费观看 | 在线精品日韩一区二区三区 | 青青草国产一区二区三区 | 四虎永久成人免费 | 国产成人综合洲欧美在线 | 日韩性黄色一级 | 欧美天天视频 | 97在线观看 | 国产高清在线视频 | 四虎影视国产精品婷婷 | 国产午夜精品久久久久免费视小说 | 国产欧美一区二区三区在线看 | 视频成人app永久下载 | 亚洲视频免费在线播放 | 午夜看片在线 | eeuss免费快捷 | 伊人网色 | 麻豆蜜桃传媒在线观看 | 国产成人精品一区二区 | 香蕉视频成人在线观看 | 日韩不卡视频在线观看 | 国产精品视频一区二区噜噜 | 日本黄色网站在线观看 | 国产三级视频网站 | 天天做天天爱天天做天天吃中 | 国产九九在线视频 | 国产午夜精品免费一二区 | 久久6视频 | 2018天天夜夜 | 国产福利免费 | 亚洲一级毛片在线观播放 | 国产v视频 |