STM32驅動AD5318配置8通道DA詳細講解

目錄

1. AD5318 芯片特性

2、AD5318寄存器概述

3、SPI數據幀格式

 3.1  控制位(Bit15)

3.2 地址位(Bit14-Bit12,3 位)

3.3 數據 / 控制碼(Bit11-Bit0)

4、控制功能寄存器(控制位 = 1 時激活)

4.1 參考與增益配置(MM = 00)

4.2. LDAC模式(MM = 01)

4.3  掉電模式(MM = 10)

4.4  復位操作(MM = 11)

5、STM32+AD5328測試程序

1. AD5318 芯片特性

  • 通道數:8 路獨立模擬輸出(通道 0~7)
  • 接口:SPI(3 線 / 4 線,支持最高 50MHz 時鐘)
  • 參考電壓:支持外部參考(推薦使用高精度基準如 LM385-2.5,或 MCU 內部參考)
  • 電源:3.3V 或 5V(需與 STM32 IO 電平兼容,推薦 5V)

2、AD5318寄存器概述

AD5318采用 雙緩沖結構,包含兩類寄存器:

  1. 輸入寄存器(Input Register):暫存用戶寫入的DAC數據或控制命令,需通過特定操作(如拉低LDAC)才能生效。

  2. DAC寄存器(DAC Register):直接控制DAC輸出電壓,更新后立即生效。

3、SPI數據幀格式

數據幀遵循 MSB優先原則,分為 控制位、地址位、數據 / 控制碼三部分:

Bit15 Bit14-Bit12 Bit11-Bit0|      |          |
控制位 地址位       數據/控制碼

 3.1  控制位(Bit15)

     0:DAC 寫操作:后續 3 位為地址位,低 12 位為數據(僅高 10 位有效,AD5318 忽略低 2 位)。

     1:控制功能:后續位定義具體控制模式(如 LDAC、掉電、復位等)。

  

3.2 地址位(Bit14-Bit12,3 位)

選擇目標通道或控制對象,編碼對應 8 個通道(A-H):
A2(A14)A1(A13)A0(A12)目標通道
000DAC A
111DAC H

3.3 數據 / 控制碼(Bit11-Bit0)

        DAC 寫操作(控制位 = 0):低 12 位中高 10 位為有效數據(0-1023),低 2 位忽略,如:
0b0_000_00000000(通道 0,數據 0),0b0_111_11111111(通道 7,數據 1023)。

  •  控制功能(控制位 = 1):根據不同控制模式定義,例如&

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78609.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78609.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78609.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何搭建spark yarn 模式的集群集群

以下是搭建Spark YARN模式集群的一般步驟: 準備工作 - 確保集群中各節點安裝了Java環境,并配置好 JAVA_HOME 環境變量。 - 各節點間能通過SSH免密登錄。 - 安裝并配置好Hadoop集群,YARN作為Hadoop的資源管理器,Spark YARN模式需要…

SpringMVC處理請求映射路徑和接收參數

目錄 springmvc處理請求映射路徑 案例:訪問 OrderController類的pirntUser方法報錯:java.lang.IllegalStateException:映射不明確 核心錯誤信息 springmvc接收參數 一 ,常見的字符串和數字類型的參數接收方式 1.1 請求路徑的…

在 Windows 系統上升級 Node.js

一、查詢電腦端已經安裝的 Node.js 版本 1、通過【winR】 鍵,輸入 cmd,點擊【確定】按鈕打開 cmd 窗口 2、命令行界面輸入 node -v 查看目前 Node.js 版本 3、命令行界面輸入 npm -v 查看目前 npm 版本 二、進入官網地址下載安裝包 1、官網地址&#x…

深入詳解人工智能數學基礎——概率論中的馬爾可夫鏈蒙特卡洛(MCMC)采樣

?? 博主簡介:CSDN博客專家、CSDN平臺優質創作者,高級開發工程師,數學專業,10年以上C/C++, C#, Java等多種編程語言開發經驗,擁有高級工程師證書;擅長C/C++、C#等開發語言,熟悉Java常用開發技術,能熟練應用常用數據庫SQL server,Oracle,mysql,postgresql等進行開發應用…

C++ 嵌套類 (詳解 一站式講解)

目錄 嵌套類 嵌套類的定義 嵌套類結構的訪問權限 pimpl模式(了解) 嵌套類 嵌套類的定義 首先介紹兩個概念: 類作用域(Class Scope) 類作用域是指在類定義內部的范圍。在這個作用域內定義的成員(包括…

tcp 和http 網絡知識

1. 請簡述TCP和HTTP的定義與基本概念 TCP:即傳輸控制協議(Transmission Control Protocol),是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。它為互聯網中的數據通信提供穩定的傳輸機制,在不可靠的IP層之上&a…

MySQL安裝的多個組件中無用組件卸載

在決定卸載MySQL的哪些組件前,需根據你的實際使用場景判斷。以下是各組件的主要功能及卸載建議: 1. 核心組件卸載建議 組件名稱作用是否可卸載MySQL Server數據庫服務核心,存儲數據、處理SQL請求的核心程序。不可卸載 (卸載會導致…

CosyVoice 技術全景解析:下一代語音生成模型的革命性突破

目錄 一、CosyVoice 模型概述 1. 背景與定位 二、技術架構與創新 1. 核心架構設計 2. 關鍵技術亮點 三、行業地位與競品對比 1. 市場定位分析 2. 競爭優勢 四、部署方案與硬件成本 1. 硬件需求 2. 優化技巧 五、優勢與挑戰 1. 核心優勢 2. 主要挑戰 六、開源生態…

rabbitmq-集群部署

場景:單個pod,部署在主節點,基礎版沒有插件,進階版多了一個插件 基礎版本: --- apiVersion: v1 kind: PersistentVolume metadata:name: rabbitmq-pv spec:capacity:storage: 5GiaccessModes:- ReadWriteOncestorage…

[密碼學實戰]商用密碼產品密鑰體系架構:從服務器密碼機到動態口令系統

[密碼學實戰]商用密碼產品密鑰體系架構:從服務器密碼機到動態口令系統 關鍵詞:商用密碼、密鑰體系、服務器密碼機、金融數據密碼機、動態口令、智能密碼鑰匙 摘要:本文深度解讀商用密碼產品的核心密鑰體系架構,涵蓋服務器密碼機、金融數據密碼機、VPN產品、動態口令系統及…

【unity游戲開發入門到精通——UGUI】UI事件監聽接口

注意:考慮到UGUI的內容比較多,我將UGUI的內容分開,并全部整合放在【unity游戲開發——UGUI】專欄里,感興趣的小伙伴可以前往逐一查看學習。 文章目錄 前言1、什么是UGUI事件接口?2、想要監聽事件步驟 一、事件接口1、U…

Spark知識總結

寬窄依賴:父RDD的分區只對應下面子RDD的一個分區,為窄依賴。其余為寬依賴 維度??窄依賴??寬依賴?數據傳輸無shuffle,本地處理14需shuffle,跨節點傳輸14并行度高(允許流水線并行)57低(需等…

銘記之日(3)——4.28

銘記之日(3)——4.28 25.4.28,絕對是繼20.12.19與24.6.26之后,又一個被釘在恥辱柱上的日子。 4.28本質上為12.19的嚴重惡劣版。 道德敗壞、惡劣的大騙子終于在今日穿幫落馬。 斯文面孔下,竟藏匿了如此罪惡幽暗混沌的內心。 24.10.20&…

第16節:傳統分類模型-支持向量機(SVM)在圖像分類中的應用

一、引言 支持向量機(Support Vector Machine, SVM)作為一種經典的機器學習算法,自20世紀90年代由Vapnik等人提出以來,在模式識別和分類任務中表現出卓越的性能。 在深度學習興起之前,SVM長期占據著圖像分類領域的主導地位,即使…

《系統分析師-第三階段—總結(六)》

背景 采用三遍讀書法進行閱讀,此階段是第三遍。 過程 本篇總結第11章第12章的內容 第11章 第12章 總結 軟件架構設計是宏觀,基本架構確定之后,開始了系統化設計, 系統設計中對應的基本部分的知識較多,基礎知識是第…

new的使用

上次堆區的介紹中,我們提到了一個關鍵字new,那今天我們就詳細講講它 今天我們主要將兩個內容 1.new的基本語法 2.用new創建數組 1.new的基本語法 new,可以在堆區中創建空間,來存放數據,就比如像下面這樣 int* p new int(29);//n…

使用python實現自動化拉取壓縮包并處理流程

使用python實現自動化拉取壓縮包并處理流程 實現成果展示使用說明 實現成果展示 使用說明 執行./run.sh 腳本中的內容主要功能是: 1、從遠程服務器上下拉制定時間更新的數據 2、將數據中的zip拷貝到指定文件夾內 3、解壓后刪除所有除了lcm之外的文件 4、新建一個ou…

香橙派打包qt文件報錯“xcb 插件無法加載”與“QObject::moveToThread”線程錯誤的解決方案

PyQt 報錯總結:打包文件過程,“xcb 插件無法加載”與“QObject::moveToThread”線程錯誤的解決方案全解析 在使用 PyQt5 搭建圖形界面時,打包文件的過程中出現的問題,真難繃,搞了半天。 Qt 平臺插件 xcb 無法加載QOb…

Missashe考研日記-day29

Missashe考研日記-day29 1 專業課408 學習時間:3h學習內容: 今天先是把虛擬存儲剩余的課聽完了,然后就是做課后選擇題,57道,已經接受了OS課后題尤其多的事實了。解決并且理解完習題之后就開始預習文件管理的內容&…

【Linux】第十二章 安裝和更新軟件包

目錄 1. 什么是RPM? 2. dnf是什么,它和rpm有什么聯系和區別? 3. RHEL 中如何做才能啟用對第三方存儲庫的支持? 4. 怎么理解RHEL9中的應用流(Application Streams)和模塊(Modules)? 5. RHEL9 有兩個必要的軟件存儲…