迅為iTOP-4412核心板調(diào)整電壓-創(chuàng)新互聯(lián)

本文轉(zhuǎn)自:http://www.topeetboard.com

成都創(chuàng)新互聯(lián)專注于渾江企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站定制開發(fā)。渾江網(wǎng)站建設(shè)公司,為渾江等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

iTOP-4412核心板使用的電源管理芯片是三星專門針對4412研發(fā)的S5M8767,8767提供9路BUCK和28路LDO輸出,每路電壓的大小可以通過軟件進(jìn)行設(shè)置。S5M8767的驅(qū)動位于內(nèi)核drivers/regulator/s5m8767.c,CPU是通過I2C總線來控制它。S5M8767注冊到內(nèi)核里面的regulator模塊。Regulator模塊是內(nèi)核中用于控制系統(tǒng)中某些設(shè)備的電壓/電流供應(yīng),在嵌入式系統(tǒng)(尤其是手持設(shè)備)中,控制耗電量很重要,直接影響到電池的續(xù)航時間。所以。如果系統(tǒng)中某一個模塊暫時不使用,就可以通過regulator關(guān)閉其電源;或者降低提供給該模塊的電壓、電流大小。

S5M8767驅(qū)動的主要作用就是調(diào)用regulator_register函數(shù)向內(nèi)核注冊regulator_dev設(shè)備,每個regulator_dev代表一個regulator設(shè)備,

內(nèi)核可以分別控制每個regulator。

為了實現(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里面,在這個文件里使用宏REGULATOR_INIT來定義28個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, \

.always_on = _always_on, \

.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], \

}

上面的宏定義中,第三個和第四個參數(shù)指定了LDO的電壓最小值和大值,第五個參數(shù)設(shè)置LDO在系統(tǒng)開始運行時是輸出還是關(guān)閉的(1是輸出,0是關(guān)閉),

第六個參數(shù)是LDO具有哪些功能,例如可以修改電壓,電流,改變狀態(tài)等等通過位掩碼的方式設(shè)置,第七個參數(shù)是設(shè)置在休眠的時候是否由PWREN引腳控制它的開關(guān)(1是由PWREN控制,0是不受PWREN控制),休眠的時候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)啟動的時候會默認(rèn)輸出,系統(tǒng)休眠的時候會關(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的電壓。其他幾個BUCK的定義原理和BUCK1是一樣的

如果我們想要修改8767的某個LDO的輸出電壓,就可以通過修改對應(yīng)的LDO的regulator_init_data結(jié)構(gòu)體里面的電壓值來實現(xiàn),修改BUCK的電

壓可以使用函數(shù)regulator_set_voltage來實現(xiàn)。注意:在修改輸出電壓的時候,一定要參照8767的datasheet,確保修改的電壓在datasheet規(guī)

定的范圍內(nèi)

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。

名稱欄目:迅為iTOP-4412核心板調(diào)整電壓-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://muchs.cn/article48/dhehhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站維護(hù)、網(wǎng)站導(dǎo)航電子商務(wù)、商城網(wǎng)站網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化