伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

瑞薩RA系列FSP庫開發實戰指南之電壓值轉換和生成正弦波數據表

瑞薩嵌入式小百科 ? 來源:野火電子 ? 2026-04-11 16:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

26.3

電壓值轉換

如果我們直接通過輸入一個有效位數為12位的數字值,通過DAC來輸出其相應的電壓,這樣并沒有那么直觀。但是如果我們可以輸入一個電壓值,然后通過軟件代碼把這個電壓轉換為與其對應的數字值,再把這個數字值寫入DA數據寄存器,這樣中間經過了一個電壓值到DA數據寄存器值的映射轉換,可以讓我們設置DAC輸出電壓時變得更加直觀

那么如何實現這樣的轉換呢?以下是D/A數據寄存器值與輸出電壓值之間的轉換公式:

168dfeb6-3493-11f1-90a1-92fbcf53809c.png

點擊可查看大圖

因此在ADC轉換完成之后,我們可以調用FSP庫函數R_ADC_Read(),從ADC的數據寄存器里讀出上述等式中X的值,從而再經過計算得出對應的電壓值。

在上面的公式中:

3.3V表示的是D/A轉換的參考基準電壓為3.3V;

“Output Voltage”為要輸出的目標電壓值;

4096等于2的12次方,對應的是DAC的分辨率是12位;

“Setting in DADRn”表示的是輸出目標電壓值對應需要設置的DA數據寄存器值的值。

最終,我們根據上面的公式寫成如下的函數。函數中最后一行通過調用FSP庫函數R_DAC_Write()計算結果即“Setting in DADRn”的值寫入DA數據寄存器。

左右滑動查看完整內容

/**
*@brief設置當前的電壓
*@param需要控制的電壓(范圍為0~3.3V)
*@retval無
*/
voidDAC_SetVoltage(float voltage)
{
uint16_t dac_data;
dac_data = (uint16_t)(4096*((voltage)/3.3f));
R_DAC_Write(&g_dac0_ctrl, dac_data);
}

26.4

生成正弦波數據表

要輸出正弦波,實質是要控制DAC以v=sin(t)的正弦函數關系輸出電壓,其中v為電壓輸出,t為時間。

而由于模擬信號連續而數字信號是離散的,所以使用DAC產生正弦波時,只能按一定時間間隔輸出正弦曲線上的點,在該時間段內輸出相同的電壓值,若縮短時間間隔,提高單個周期內的輸出點數,可以得到逼近連續正弦波的圖形,見圖26_3,若在外部電路加上適當的電容濾波,可得到更完美的圖形。

16e6dfc2-3493-11f1-90a1-92fbcf53809c.png

圖26?3 DAC按點輸出正弦波數據

(左:32個點,右:128個點)

由于正弦曲線是周期函數,所以只需要得到單個周期內的數據后按周期重復即可,而單個周期內取樣輸出的點數又是有限的,所以為了得到呈v=sin(t)函數關系電壓值的數據通常不會實時計算獲取,而是預先計算好函數單個周期內的電壓數據表,并且轉化成以DAC寄存器表示的值。

如sin函數值的范圍為[-1: +1],而RA6M5的DAC輸出電壓范圍為[0~3.3]V,按12位DAC分辨率表示的方法,可寫入寄存器的最大值為212=4096,即范圍為[0:4096]。所以,實際輸出時,會進行如下處理:

1)抬升sin函數的輸出為正值:v=sin(t)+1,此時,v的輸出范圍為[0:2];

2)擴展輸出至DAC的全電壓范圍:v=3.3*(sin(t)+1)/2,此時,v的輸出范圍為[0:3.3],正是DAC的電壓輸出范圍,擴展至全電壓范圍可以充分利用DAC的分辨率;

3)把電壓值以DAC寄存器的形式表示:Reg_val=212/3.3 * v=211*(sin(t)+1),此時,存儲到DAC寄存器的值范圍為[0:4095];

4)實踐證明,在sin(t)的單個周期內,取32個點進行電壓輸出已經能較好地還原正弦波形,所以在t∈[0:2π]區間內等間距根據上述Reg_val公式運算得到32個寄存器值,即可得到正弦波表;

5)控制DAC輸出時,每隔一段相同的時間從上述正弦波表中取出一個新數據進行輸出,即可輸出正弦波。改變間隔時間的單位長度,可以改變正弦波曲線的周期。

為方便起見,我們使用了PythonMatlab腳本制作正弦波表,腳本的代碼存儲在本工程的目錄下,感興趣可以打開文件查看,以下列出Python腳本代碼,見代碼清單26?1。

列表1:代碼清單26?1

制作正弦波數據表的python腳本

(工程目錄下的sinWave.py文件)

左右滑動查看完整內容

#! python3
#coding=utf-8
"""
Python 版本:3.x
外部庫:matplotlib1.5.3、numpy1.11.2
運行方式:
在命令行中輸入:python sinWave.py
運行結果:
命令行中會打印計算得的各點數據,
在當前目錄下會生成py_dac_sinWav.c 文件,包含上述數據,
并且會彈出描繪曲線的對話框。
"""
importmatplotlib.pyplotasplt
importnumpyasnp
importmath
# 修改本變量可以更改點數,如16、32、64 等
POINT_NUM =32
pi = math.pi
# 一個周期POINT_NUM 個點
n = np.linspace(0,2*pi,POINT_NUM)
# 計算POINT_NUM 個點的正弦值
a =map(math.sin,n)
r =[]
foriina:
# 調整幅值至在0~1 區間
i+=1
# 按3.3V 電壓調整幅值
i*=3.3/2
# 求取dac 數值,12 位dac LSB = 3.3V/2**12
ri =round(i*2**12/3.3)
# 檢查參數
ifri >=4095:
ri =4095
# 得到dac 數值序列
r.append( ri )
print(list(map(int,r)))
# 寫入序列到文件
withopen("py_dac_sinWav.c",'w',encoding='gb2312')asf:
print(list(map(int,r)),file= f)
# 繪圖
plt.plot(n,r,"-o")
plt.show()

Python腳本的實現原理就是前面介紹的正弦波數據表的制作過程,運行后,該腳本把得到的正弦波表數據輸出到目錄下的py_dac_sinWav.c文件中,見代碼清單26?2,并且根據取樣點描繪出示意圖,見圖26?4。Matlab腳本原理相同,此處不再列出,使用C語言也能制作正弦波表。

列表2:代碼清單26?2 生成的正弦波數據表

左右滑動查看完整內容

[2048, 2460, 2856, 3218, 3532, 3786, 3969, 4072, 4093, 4031, 3887, 3668,
3382, 3042, 2661, 2255, 1841, 1435, 1054, 714, 428, 209, 65, 3, 24, 127,
310, 564, 878, 1240, 1636, 2048]
1796040c-3493-11f1-90a1-92fbcf53809c.png

圖26?4 python腳本根據正弦波表描繪的曲線圖

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5615

    瀏覽量

    130316
  • 正弦波
    +關注

    關注

    11

    文章

    661

    瀏覽量

    59275
  • dac
    dac
    +關注

    關注

    44

    文章

    2769

    瀏覽量

    197467
  • 輸出電壓
    +關注

    關注

    2

    文章

    2051

    瀏覽量

    41254

原文標題:電壓值轉換&生成正弦波數據表——瑞薩RA系列FSP庫開發實戰指南(95)

文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RA系列FSP開發實戰指南I2C讀寫EEPROM實驗

    使用官方提供的FPS進行編程,官方提供的FPS具有方便、快捷、簡潔的特性。
    的頭像 發表于 01-27 10:02 ?3678次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>庫</b><b class='flag-5'>開發</b><b class='flag-5'>實戰</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>I2C讀寫EEPROM實驗

    e2studio(1)----芯片搭建FSP環境

    視頻教學 樣品申請 請勿添加外鏈 e2studio軟件 e2studio是的集成開發環境,FSP 提供了眾多可提高效率的工具,用于開發
    發表于 09-30 15:28

    我的正弦波數據生成

    我的正弦波數據生成
    發表于 09-23 15:21

    正弦波數據生成

    正弦波數據生成
    發表于 09-21 19:34

    正弦波數據生成

    正弦波數據生成
    發表于 09-21 19:37

    如何用matlab生成正弦波數據

    如何用matlab生成正弦波數據
    發表于 11-22 07:15

    RA4系列開發板體驗】開發環境搭建和新手點燈指南

    RA4系列開發板體驗】開發環境搭建和新手點燈指南
    發表于 11-24 22:54

    RA4系列開發板體驗】7. 用DAC輸出正弦波以及余弦波

    之前發帖:【RA4系列開發板體驗】1. 新建工程+按鍵控制LED【
    發表于 12-09 22:56

    RA4系列開發板體驗】10. 我的試用總結

    測量搖桿模塊偏移量【RA4系列開發板體驗】7. 用DAC輸出正弦波以及余弦波【
    發表于 12-10 22:34

    RA4系列開發板體驗】體驗過程

    、使用 RASC 生成 Keil 工程+點亮LED參照“ 【RA4系列開發板體驗】2. 使用
    發表于 12-18 16:20

    正弦波數據生成器(正弦波

    網上共享 的 , 正弦波數據生成器(正弦波
    發表于 11-17 11:46 ?145次下載

    e2studio(1)----芯片搭建FSP環境

    e2studio是的集成開發環境,FSP 提供了眾多可提高效率的工具,用于開發針對
    的頭像 發表于 11-14 17:08 ?3371次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>e2studio(1)----<b class='flag-5'>瑞</b><b class='flag-5'>薩</b>芯片<b class='flag-5'>之</b>搭建<b class='flag-5'>FSP</b>環境

    【有獎直播預報名】電子RA系列產品開發工具FSP4.0.0新特性介紹

    為使用電子RA系列ARM微控制器的嵌入式系統設計提供簡單易用且可擴展的高質量軟件。 直播主題
    的頭像 發表于 11-22 12:20 ?1645次閱讀

    【視頻教程】RA單片機FSP開發(3)FSP架構-解釋Blinky架構[上]

    干貨分享 前篇回顧 【視頻教程】RA單片機FSP開發(1)環境搭建(帶RASC) 【視頻教程】
    的頭像 發表于 12-06 12:15 ?2072次閱讀

    電子RA系列微控制器的可擴展性強的配置軟件包 (FSP)安裝下載與使用指南

    電子RA系列微控制器的可擴展性強的配置軟件包 (FSP)安裝下載與使用指南
    的頭像 發表于 06-11 17:21 ?2114次閱讀