91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

新手通關(guān)指南!從寄存器入手搞定ES8389音頻驅(qū)動(dòng)調(diào)試

jf_44130326 ? 來源:Linux1024 ? 作者:Linux1024 ? 2026-02-03 11:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ES8389是嵌入式領(lǐng)域廣泛使用的音頻Codec芯片,不少新手調(diào)試其驅(qū)動(dòng)時(shí),常遇到無聲音、卡頓、采樣率不匹配等問題,卻不知從何下手。其實(shí)無論哪種音頻Codec,調(diào)試核心永遠(yuǎn)是寄存器的配置與讀寫——驅(qū)動(dòng)代碼只是翻譯官,真正指揮ES8389干活的,是芯片手冊(cè)里那些時(shí)鐘、I2S、ADC/DAC相關(guān)的寄存器。

wKgZO2mBaDaAUbnGAAF_XNItjyg814.pngwKgZO2mBaDaAVqxqAAG3C43CyNw428.png

本文結(jié)合ES8389的實(shí)際驅(qū)動(dòng)代碼(Linux內(nèi)核6.1版本),從寄存器根上拆解調(diào)試邏輯,從通用方法到芯片專屬實(shí)戰(zhàn),讓新手快速掌握ES8389調(diào)試技巧!

一、為什么寄存器是ES8389調(diào)試的靈魂

和所有音頻Codec一樣,ES8389的工作模式完全由寄存器定義,驅(qū)動(dòng)代碼的核心就是根據(jù)場(chǎng)景往對(duì)應(yīng)寄存器寫正確的值。新手調(diào)試的痛點(diǎn),往往是不知道“ES8389該看哪些寄存器”“寄存器值是否匹配當(dāng)前場(chǎng)景。

1. ES8389核心寄存器分類(對(duì)照手冊(cè)+驅(qū)動(dòng)代碼)

ES8389的寄存器按功能可分為五類,驅(qū)動(dòng)代碼中已明確映射關(guān)鍵寄存器:

寄存器類型

作用

驅(qū)動(dòng)中關(guān)鍵寄存器宏定義

時(shí)鐘配置類

采樣率、分頻、主時(shí)鐘源配置

ES8389_CLK_DIV1_REG04CLK_MUL_REG05

I2S/PCM格式類

總線模式、數(shù)據(jù)位寬、幀格式

ES8389_ADC_REG20、DAC_REG40

ADC/DAC功能類

使能、濾波、音量、復(fù)位

ES8389_ADC_EN_REG64、DAC_RESET_REG4D

電源/偏置類

芯片功耗、待機(jī)/工作模式切換

ES8389_HPSW_REG69、ANA_CTL1_REG61

路徑/混音類

音頻輸入輸出通路、混音控制

驅(qū)動(dòng)中DAPM路由(OUTL MUX/OUTR MUX

2. ES8389的寄存器操作方式

Linux驅(qū)動(dòng)中,ES8389并未直接使用ioremap+readl/writel,而是采用更通用的regmap框架(適配I2C/SPI等總線),核心操作函數(shù):

?regmap_write:直接寫寄存器;

?regmap_update_bits:修改寄存器指定位;

?regmap_read:讀寄存器值。

wKgZO2mBaDaAT50rAAIgEAbhbpo614.jpg

二、ES8389寄存器調(diào)試核心步驟(結(jié)合實(shí)戰(zhàn)代碼)

調(diào)試前必須拿到《ES8389數(shù)據(jù)手冊(cè)》,并對(duì)照驅(qū)動(dòng)代碼(6.1/es8389.c)梳理寄存器映射關(guān)系,以下是新手必掌握的4個(gè)核心步驟:

步驟1:定位ES8389核心寄存器(從代碼中找線索)

驅(qū)動(dòng)代碼中已封裝關(guān)鍵寄存器的宏定義(如ES8389_CLK_DIV1_REG04對(duì)應(yīng)0x04地址),且通過coeff_div數(shù)組固化了采樣率+主時(shí)鐘對(duì)應(yīng)的寄存器值——這是ES8389調(diào)試的核心參考,示例片段:

// 不同mclk+采樣率對(duì)應(yīng)的寄存器配置值struct_coeff_div {u16 fs;   // 分頻系數(shù)u32 mclk;  // 主時(shí)鐘頻率u32 rate;  // 采樣率u8 Reg0x04; // CLK_DIV1_REG04u8 Reg0x05; // CLK_MUL_REG05// ... 其他寄存器(共23個(gè))};staticconststruct_coeff_div coeff_div[] = {{32,256000,8000,0x00,0x57,0x84,0xD0,0x03,0xC1,0xB0,0x00,0x00,0x1F,0x7F,0xBF,0xC0,0xFF,0x7F,0x01,0x12,0x00,0x09,0x19,0x07},{32,1536000,48000,0x00,0x45,0xA4,0xD0,0x10,0xD1,0x80,0x00,0x00,0x1F,0x7F,0xBF,0xC0,0x7F,0x7F,0x00,0x12,0x00,0x35,0x91,0x28},// ... 更多采樣率-寄存器映射};

步驟2I2S格式配置(實(shí)戰(zhàn):es8389_set_dai_fmt函數(shù))

ES8389I2S格式由ADC_REG20DAC_REG40控制,驅(qū)動(dòng)中通過該函數(shù)配置主從模式、幀格式,核心代碼解析:

staticintes8389_set_dai_fmt(structsnd_soc_dai *codec_dai,unsignedintfmt){structes8389_private*es8389 =snd_soc_component_get_drvdata(codec);u8 state =0;// 1. 配置主從模式(MASTER_MODE_REG01)switch(fmt & SND_SOC_DAIFMT_MASTER_MASK) {caseSND_SOC_DAIFMT_CBM_CFM:// Codec為主設(shè)備regmap_update_bits(es8389->regmap, ES8389_MASTER_MODE_REG01,ES8389_MASTER_MODE_EN, ES8389_MASTER_MODE_EN);break;caseSND_SOC_DAIFMT_CBS_CFS:// Codec為從設(shè)備es8389->mastermode =0;break;}
// 2. 配置I2S幀格式(ADC_REG20/DAC_REG40)switch(fmt & SND_SOC_DAIFMT_FORMAT_MASK) {caseSND_SOC_DAIFMT_I2S:  // I2S格式(最常用)state |= ES8389_DAIFMT_I2S;break;caseSND_SOC_DAIFMT_LEFT_J: // 左對(duì)齊state |= ES8389_DAIFMT_LEFT_J;break;// ... 其他格式}// 寫入格式配置到ADC/DAC寄存器regmap_update_bits(es8389->regmap, ES8389_ADC_REG20, ES8389_DAIFMT_MASK, state);regmap_update_bits(es8389->regmap, ES8389_DAC_REG40, ES8389_DAIFMT_MASK, state);return0;}

調(diào)試要點(diǎn):若I2S通信異常,先查MASTER_MODE_REG01的主從位、ADC_REG20的幀格式位是否與CPU端匹配。

步驟3:采樣率/數(shù)據(jù)位寬配置(實(shí)戰(zhàn):es8389_pcm_hw_params函數(shù))

這是ES8389調(diào)試的核心環(huán)節(jié)——不同采樣率(44.1kHz/48kHz)、位寬(16bit/24bit)對(duì)應(yīng)不同的寄存器配置,驅(qū)動(dòng)中通過get_coeff匹配coeff_div數(shù)組,再批量寫入寄存器:

staticintes8389_pcm_hw_params(structsnd_pcm_substream *substream,structsnd_pcm_hw_params *params,structsnd_soc_dai *dai) {structes8389_private *es8389 = snd_soc_component_get_drvdata(codec);intcoeff;u8 state =0;// 1. 配置數(shù)據(jù)位寬(ADC_REG20/DAC_REG40)switch(params_format(params)){caseSNDRV_PCM_FORMAT_S16_LE:// 16bit小端state |= ES8389_S16_LE;break;caseSNDRV_PCM_FORMAT_S24_LE:// 24bit小端state |= ES8389_S24_LE;break;// ... 其他位寬}regmap_update_bits(es8389->regmap, ES8389_ADC_REG20, ES8389_DATA_LEN_MASK, state);regmap_update_bits(es8389->regmap, ES8389_DAC_REG40, ES8389_DATA_LEN_MASK, state);// 2. 匹配采樣率-主時(shí)鐘對(duì)應(yīng)的寄存器配置coeff = get_coeff(es8389->sysclk, params_rate(params));if(coeff >=0) {// 批量寫入時(shí)鐘、ADC/DAC相關(guān)寄存器regmap_write(es8389->regmap, ES8389_CLK_DIV1_REG04, coeff_div[coeff].Reg0x04);regmap_write(es8389->regmap, ES8389_CLK_MUL_REG05, coeff_div[coeff].Reg0x05);regmap_write(es8389->regmap, ES8389_ADC_REG21, coeff_div[coeff].Reg0x21);regmap_write(es8389->regmap, ES8389_DAC_REG41, coeff_div[coeff].Reg0x41);// ... 其他寄存器寫入}else{dev_warn(codec->dev,"Clock coefficients do not match");// 采樣率不匹配告警}return0;}

調(diào)試要點(diǎn):若聲音變調(diào),先查get_coeff是否匹配到正確的coeff_div項(xiàng),再驗(yàn)證CLK_DIV1_REG04/CLK_MUL_REG05的寫入值是否與手冊(cè)一致。

步驟4:電源/偏置電平配置(實(shí)戰(zhàn):es8389_set_bias_level函數(shù))

ES8389的工作/待機(jī)模式由該函數(shù)控制,核心是修改電源、復(fù)位、ADC/DAC使能寄存器,代碼解析:

staticintes8389_set_bias_level(structsnd_soc_component *codec,enumsnd_soc_bias_level level) {switch(level) {caseSND_SOC_BIAS_ON:// 工作模式:開啟時(shí)鐘、使能ADC、配置電源clk_prepare_enable(es8389->mclk);regmap_update_bits(es8389->regmap, ES8389_HPSW_REG69,0x20,0x20);regmap_write(es8389->regmap, ES8389_ANA_CTL1_REG61,0xD9);// 模擬電源配置regmap_write(es8389->regmap, ES8389_ADC_EN_REG64,0x8F); // 使能ADCregmap_write(es8389->regmap, ES8389_RESET_REG00,0x01);  // 芯片復(fù)位usleep_range(70000,72000);break;caseSND_SOC_BIAS_STANDBY:// 待機(jī)模式:關(guān)閉時(shí)鐘、禁用ADC、復(fù)位DACregmap_write(es8389->regmap, ES8389_ANA_CTL1_REG61,0x59);regmap_write(es8389->regmap, ES8389_ADC_EN_REG64,0x00);regmap_write(es8389->regmap, ES8389_RESET_REG00,0x3E);clk_disable_unprepare(es8389->mclk);break;// ... 其他模式}return0;}

調(diào)試要點(diǎn):若芯片無響應(yīng),先查BIAS_ON階段是否成功開啟時(shí)鐘,RESET_REG00是否完成復(fù)位,ANA_CTL1_REG61的電源配置是否正確。

三、ES8389常見問題+寄存器級(jí)排查(新手高頻踩坑)

結(jié)合通用音頻驅(qū)動(dòng)問題和ES8389的芯片特性,整理4類高頻問題的排查思路:

問題1:無聲音輸出(最常見)

現(xiàn)象:驅(qū)動(dòng)加載無報(bào)錯(cuò),播放音頻但喇叭/耳機(jī)無聲音。

寄存器排查步驟:

1.查電源寄存器:HPSW_REG69(電源使能)、ANA_CTL1_REG61(模擬電源)是否為工作模式值;

2.DAC/ADC使能:ADC_EN_REG64是否為0x8F(使能)、DAC_RESET_REG4D是否完成復(fù)位;

3.I2S配置:DAC_REG40I2S格式、數(shù)據(jù)位寬是否與CPU端匹配;

4.查路徑路由:驅(qū)動(dòng)中DAPM路由(OUTL MUX/OUTR MUX)是否指向正確通路(如IF DACL Mixer);

5.查時(shí)鐘配置:CLK_DIV1_REG04/CLK_MUL_REG05是否匹配當(dāng)前采樣率,主時(shí)鐘mclk是否正常。

問題2:聲音卡頓/爆音

現(xiàn)象:聲音斷斷續(xù)續(xù),有雜音。

寄存器排查步驟:

1.查中斷/FIFO(若有):ES8389FIFO相關(guān)寄存器是否有溢出/下溢標(biāo)志;

2.查時(shí)鐘穩(wěn)定性:OSC_CLK_REG0F(晶振時(shí)鐘)配置是否正確,主時(shí)鐘mclk是否抖動(dòng);

3.查偏置電平:ADC_HPF1_REG24/ADC_HPF2_REG25的濾波配置是否為0x0a(工作模式);

4.coeff_div匹配:是否因采樣率/主時(shí)鐘不匹配導(dǎo)致時(shí)鐘分頻錯(cuò)誤。

問題3:聲音變調(diào)(采樣率不匹配)

現(xiàn)象:44.1kHz音頻播放成48kHz效果,或反之。

寄存器排查步驟:

1.get_coeff返回值:是否為-1(未匹配到對(duì)應(yīng)coeff_div項(xiàng));

2.CLK_DIV1_REG04/CLK_MUL_REG05:寫入值是否與手冊(cè)中采樣率-分頻系數(shù)對(duì)應(yīng);

3.ADC_REG20/DAC_REG40:數(shù)據(jù)位寬配置是否與播放源一致;

4.sysclk值:es8389_set_dai_sysclk是否正確設(shè)置主時(shí)鐘頻率。

問題4:芯片無響應(yīng)(驅(qū)動(dòng)加載但通信失?。?/span>

現(xiàn)象:regmap_write無報(bào)錯(cuò),但寄存器讀寫無反饋。

寄存器排查步驟:

1.查復(fù)位寄存器:RESET_REG00是否寫入0x01完成復(fù)位,復(fù)位延時(shí)是否足夠;

2.I2C/SPI通信:ES8389的總線地址是否正確,regmap初始化是否成功;

3.查電源引腳:硬件上VDD/VCCA是否供電,HPSW_REG69是否開啟電源;

4.查主時(shí)鐘:mclk是否正常輸出,CLK_OFF1_REG03是否為0xC3(時(shí)鐘使能)。

四、ES8389寄存器調(diào)試流程

wKgZO2mBaDaAcjUsAACCMUeKH1I162.png

五、ES8389調(diào)試專屬小技巧

1.補(bǔ)充寄存器讀回驗(yàn)證:驅(qū)動(dòng)中僅寫寄存器未讀回,調(diào)試時(shí)可在regmap_write后加regmap_read,驗(yàn)證值是否寫入成功;

u8val;regmap_write(es8389->regmap, ES8389_CLK_DIV1_REG04,0x00);regmap_read(es8389->regmap, ES8389_CLK_DIV1_REG04, &val);printk("CLK_DIV1_REG04: 0x%xn",val);// 驗(yàn)證寫入值

2.鎖定coeff_div匹配:若自定義采樣率,需先確認(rèn)coeff_div中有對(duì)應(yīng)項(xiàng),或新增匹配項(xiàng);

3.示波器測(cè)關(guān)鍵時(shí)鐘mclk(主時(shí)鐘)、BCLKI2S位時(shí)鐘)、LRCK(幀時(shí)鐘)是否與配置一致;

wKgZO2mBaDaAK03LAAdDE7s0Dks442.png

4.DAPM路由驗(yàn)證:驅(qū)動(dòng)中es8389_dapm_routes定義了音頻通路,若通路錯(cuò)誤會(huì)導(dǎo)致無聲音,可通過amixer工具查看通路狀態(tài)。

最后

ES8389的調(diào)試看似復(fù)雜,實(shí)則是通用音頻寄存器邏輯+芯片專屬配置的結(jié)合。新手只要抓住寄存器核心,對(duì)照手冊(cè)梳理coeff_div數(shù)組的映射關(guān)系,分步驗(yàn)證時(shí)鐘、I2S格式、電源、路徑四大環(huán)節(jié),就能快速定位問題??梢圆榭赐谖恼拢褂胕2c工具可以查看所有寄存器狀態(tài)值。

wKgZO2mBaDeAXIdlAAHFnmCHPQg566.jpg

剛開始可能會(huì)踩采樣率不匹配、主從模式錯(cuò)誤等坑,但只要多打印寄存器值、多對(duì)比手冊(cè)、多觀察硬件波形,很快就能形成ES8389的調(diào)試思維。

你在ES8389調(diào)試中遇到過哪些奇葩問題?評(píng)論區(qū)聊聊~


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5609

    瀏覽量

    130039
  • 音頻驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    8496
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RK3576音頻調(diào)試全紀(jì)錄

    在嵌入式設(shè)備開發(fā)中,音頻調(diào)試往往是“牽一發(fā)而動(dòng)全身” 的環(huán)節(jié) —— 既需要對(duì)齊硬件原理圖的信號(hào)定義,又要適配軟件層的 codec 配置、引腳映射和驅(qū)動(dòng)邏輯。本文基于 RK3576 平臺(tái)的實(shí)際調(diào)
    的頭像 發(fā)表于 02-02 17:13 ?1496次閱讀
    RK3576<b class='flag-5'>音頻</b><b class='flag-5'>調(diào)試</b>全紀(jì)錄

    深度解析ES8389/ES8390/音頻芯片Linux驅(qū)動(dòng)(Linux6.1內(nèi)核)

    基于 Linux6.1 內(nèi)核,驅(qū)動(dòng)架構(gòu)、寄存器配置、核心函數(shù)、數(shù)據(jù)流走向四個(gè)維度,完整拆解 ES8389 的 Linux 驅(qū)動(dòng)實(shí)現(xiàn),幫你吃
    的頭像 發(fā)表于 02-02 11:37 ?1457次閱讀
    深度解析<b class='flag-5'>ES8389</b>/<b class='flag-5'>ES</b>8390/<b class='flag-5'>音頻</b>芯片Linux<b class='flag-5'>驅(qū)動(dòng)</b>(Linux6.1內(nèi)核)

    “能用”到“懂原理”:ARMv8寄存器架構(gòu)深度拆解

    做嵌入式或芯片開發(fā)的同學(xué),大概率都有過這樣的困惑: 寫匯編時(shí)知道X0-X30是通用寄存器,調(diào)用函數(shù)時(shí)按規(guī)矩用X0-X7傳參,但為什么是這8個(gè)?剩下的寄存器又該怎么劃分職責(zé)?調(diào)試異常時(shí),盯著SPSR
    的頭像 發(fā)表于 01-10 07:10 ?150次閱讀
    <b class='flag-5'>從</b>“能用”到“懂原理”:ARMv8<b class='flag-5'>寄存器</b>架構(gòu)深度拆解

    NoC性能監(jiān)控調(diào)試指南

    本篇博客展示了如何訪問 NPI 為 NoC(片上網(wǎng)絡(luò))公開的 Performance Monitor(性能監(jiān)控寄存器,這些寄存器用于監(jiān)控 NoC 的性能。
    的頭像 發(fā)表于 12-01 14:38 ?1740次閱讀
    NoC性能監(jiān)控<b class='flag-5'>器</b><b class='flag-5'>調(diào)試</b><b class='flag-5'>指南</b>

    【NCS隨筆】nRF54L15使用UICR寄存器保存數(shù)據(jù)

    nRF54L15使用UICR寄存器保存數(shù)據(jù) 本文章主要是講解如何使用nRF54L15的UICR寄存器保存一些基礎(chǔ)數(shù)據(jù) 一、UICR寄存器的說明 UICR(用戶信息配置寄存器)**是非易
    的頭像 發(fā)表于 11-27 17:09 ?1528次閱讀

    嵌入式系統(tǒng)必懂的 20 個(gè)寄存器

    嵌入式開發(fā)看起來很復(fù)雜,但很多操作其實(shí)都離不開寄存器。寄存器就是MCU內(nèi)部的存儲(chǔ)單元,它們控制著處理和外設(shè)的行為。熟悉這些寄存器,你就能更精確地操作硬件,提高開發(fā)效率,減少
    的頭像 發(fā)表于 11-14 10:28 ?1132次閱讀
    嵌入式系統(tǒng)必懂的 20 個(gè)<b class='flag-5'>寄存器</b>

    ?SN74HCT595 8位移位寄存器技術(shù)解析與應(yīng)用指南

    Texas Instruments SN74HCT595/SN74HCT595-Q1 8位移位寄存器包含8位串進(jìn)并出移位寄存器,向8位D類存儲(chǔ)寄存器饋送信號(hào)。存儲(chǔ)寄存器具有并行 3 狀
    的頭像 發(fā)表于 09-19 14:31 ?985次閱讀
    ?SN74HCT595 8位移位<b class='flag-5'>寄存器</b>技術(shù)解析與應(yīng)用<b class='flag-5'>指南</b>

    TPIC6595 8位功率移位寄存器技術(shù)文檔摘要

    該TPIC6595是一款單片、高壓、大電流功率的8位移位寄存器,設(shè)計(jì)用于需要相對(duì)較高負(fù)載功率的系統(tǒng)。該器件在輸出端包含一個(gè)內(nèi)置電壓鉗位,用于電感瞬態(tài)保護(hù)。功率驅(qū)動(dòng)器應(yīng)用包括繼電器、螺線管和其他中電流
    的頭像 發(fā)表于 09-09 11:10 ?934次閱讀
    TPIC6595 8位功率移位<b class='flag-5'>寄存器</b>技術(shù)文檔摘要

    ?TPIC6B595 8位功率移位寄存器技術(shù)文檔總結(jié)

    TPIC6B595器件是一款單片、高壓、中電流功率8位移位寄存器,設(shè)計(jì)用于需要相對(duì)高負(fù)載功率的系統(tǒng)。該器件在輸出端包含一個(gè)內(nèi)置電壓鉗位,用于電感瞬態(tài)保護(hù)。功率驅(qū)動(dòng)器應(yīng)用包括繼電器、螺線管和其他中電流
    的頭像 發(fā)表于 09-09 10:16 ?1026次閱讀
    ?TPIC6B595 8位功率移位<b class='flag-5'>寄存器</b>技術(shù)文檔總結(jié)

    ?TLC6C5912 12通道移位寄存器LED驅(qū)動(dòng)器技術(shù)文檔總結(jié)

    該TLC6C5912是一款單片、中壓、低電流功率 12 位移位寄存器 設(shè)計(jì)用于需要相對(duì)中等負(fù)載功率的系統(tǒng),例如 LED。 該器件包含一個(gè) 12 位串行輸入并行輸出移位寄存器,可為 12 位饋電
    的頭像 發(fā)表于 08-26 14:16 ?1014次閱讀
    ?TLC6C5912 12通道移位<b class='flag-5'>寄存器</b>LED<b class='flag-5'>驅(qū)動(dòng)器</b>技術(shù)文檔總結(jié)

    ?TLC6C5816-Q1 16位移位寄存器LED驅(qū)動(dòng)器技術(shù)文檔總結(jié)

    TLC6C5816-Q1 器件是一款 16 位移位寄存器 LED 驅(qū)動(dòng)器,旨在支持汽車 LED 應(yīng)用。內(nèi)置LED開路和LED短路診斷機(jī)制,提供增強(qiáng)的安全保護(hù)。該器件包含 16 個(gè)通道,帶有
    的頭像 發(fā)表于 08-25 18:13 ?995次閱讀
    ?TLC6C5816-Q1 16位移位<b class='flag-5'>寄存器</b>LED<b class='flag-5'>驅(qū)動(dòng)器</b>技術(shù)文檔總結(jié)

    SN74LV595B-EP低噪聲8位移位寄存器技術(shù)解析與應(yīng)用指南

    Texas Instruments SN74LV595B-EP低噪聲8位移位寄存器包含一個(gè)8位串行輸入、并行輸出移位寄存器,可為8位D類存儲(chǔ)寄存器饋送信號(hào)。存儲(chǔ)寄存器具有并行 3 狀態(tài)
    的頭像 發(fā)表于 08-15 09:28 ?1244次閱讀
    SN74LV595B-EP低噪聲8位移位<b class='flag-5'>寄存器</b>技術(shù)解析與應(yīng)用<b class='flag-5'>指南</b>

    硬件調(diào)試:JLink 驅(qū)動(dòng)配置與調(diào)試技巧

    調(diào)試器的工作原理、驅(qū)動(dòng)配置流程、調(diào)試環(huán)境搭建、斷點(diǎn)設(shè)置、寄存器與內(nèi)存調(diào)試調(diào)試日志分析等方面,
    的頭像 發(fā)表于 06-12 23:20 ?1689次閱讀
    硬件<b class='flag-5'>調(diào)試</b>:JLink <b class='flag-5'>驅(qū)動(dòng)</b>配置與<b class='flag-5'>調(diào)試</b>技巧

    使用寄存器點(diǎn)亮LED燈

    學(xué)習(xí)本章時(shí),配合以上芯片手冊(cè)中的“19. I/O Ports”章節(jié)一起閱讀,效果會(huì)更佳,特別是涉及到寄存器說明的部分。本章內(nèi)容涉及到較多寄存器方面的深入內(nèi)容,對(duì)于初學(xué)者而言這些內(nèi)容豐富也較難理解,但非常有必要細(xì)讀研究、夯實(shí)基礎(chǔ)。
    的頭像 發(fā)表于 05-28 17:37 ?1327次閱讀
    使用<b class='flag-5'>寄存器</b>點(diǎn)亮LED燈

    如何用C語言操作寄存器——瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南(10)

    由于寄存器的數(shù)量是非常之多的,如果每個(gè)寄存器都用像*((uint32_t*)(0x40080000+0x0020*1))這樣的方式去訪問的話,會(huì)顯得很繁瑣、很麻煩。為了更方便地訪問寄存器,我們會(huì)借助C語言結(jié)構(gòu)體的特性去定義
    的頭像 發(fā)表于 04-22 15:30 ?1996次閱讀
    如何用C語言操作<b class='flag-5'>寄存器</b>——瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)<b class='flag-5'>指南</b>(10)