女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

基于RP2040 Raspberry-pi-Pico實現的極簡任意波形發生器設計方案

科技觀察員 ? 來源:wolf2018 ? 作者:wolf2018 ? 2022-04-08 17:51 ? 次閱讀

在這個項目里,我大約花了60歐元(合計410人民幣)構建了這個帶有簡單用戶界面的任意波形發生器工具 (AWG)。

用戶可以選擇基本波形,設置頻率、幅度、偏移和其他一些參數。

基本規格:

頻率范圍:20Hz - 15MHz 正弦波(并非所有波形都能很好地工作到 15MHz)

DAC 分辨率 8 位或 10 位

用于 AC/DC 耦合和輸出電阻的輸出開關 Zout low/50Ohm

輸出電壓 6Vpp 無負載,2.8Vpp 帶 Zout 開關至 50Ohm 和 50 Ohm 終端

波形:正弦波、脈沖(鋸齒波、三角波、方波)、高斯、sinc、指數、噪聲(全部重復使用 rgco 的軟件)

我在一個 6.5 厘米 x 13 厘米的帶有銅條紋的原型板上構建。

在這個教程中,我將專注于如何構建一個獨立的 AWG,如果您按照說明構建自己的 AWG 工具,您應該具備一些手工焊接電子元件的基本技能。如果需要調試,使用(簡單)示波器很方便。我建議你在他的 github 網站上閱讀 rgco 的教程和 Peter Hinch 的自述文件。

補給品

pYYBAGJQBXuAPKjEAAeaXF0WP_w097.png

構建 AWG 的主要部分是:

1 個樹莓派 Pico 板

1 2.8“ 彩色 LCD TFT 顯示屏,帶 SPI 接口

19 個精密電阻器 10x 2k .1% 和 9 x 1k .1%

1 AD8055(300MHz電壓反饋放大器

NTE2633和NTE2634晶體管各1個。作為替代方案,我測試了 2N2219 和 2N2905 晶體管,它們也運行良好。頻率上限為~5MHz

2個晶體管散熱器

1 個 79L05 和 78L05 穩壓器為 AD8055 供電

+-12V 電源

1 6.5cm x 13cm 原型板

用于連接顯示器、開關和編碼器的面包板線

還有一些小零件電阻、電容排針、電線……

請參閱隨附的所有電子元件材料清單。

我正在使用通孔組件,因為它們更容易焊接,而且大部分都在我的“組件庫存”中。最終,我選擇將所有部件放在一個漂亮的外殼中。

關于電源的備注:我開始使用Meanwell 5V,+-12V開關電源,只是為了得知發電機信號被電源的開關噪聲嚴重失真。我最終使用 2x15V 變壓器構建了一個簡單的線性電源,兩個橋式整流器帶有兩個 1000uF 電解電容器和穩壓器 7812,7912(輸出緩沖器為 +-12V)和 Pico 的 L7805CV。我在所有三個穩壓器上都放了一個散熱器。

第 1 步:概念概述

poYBAGJQBXaAPt7cAAJZNFDpuwM207.png

AWG 由三個主要功能塊組成:

用戶界面,選擇波形并可以輸入/調整波形的所有參數。選擇波形時,將相應的參數設置為默認值。

AWG 內核,用于計算波形樣本并將其存儲在內存中。使用 RP2040 的 PIO 和 DMA 功能從內存開始輸出波形。

輸出緩沖級,其中信號被放大 2 倍,AB 類輸出級將提供低輸出阻抗和短路保護。通過開關,輸出阻抗可以在低阻抗和 50 歐姆之間切換,也可以選擇交流或直流耦合。對于低頻,建議使用直流耦合。

用戶界面和 AWG 內核在運行于 Pico 的 RP2040 CPU 上的 micro-python 中實現。

備注:我正在使用 RP2040 的兩個內核進行實驗,一個用于生成器,一個用于用戶界面。這工作正常,但沒有優勢。所以,為了簡單起見,我決定在一個內核上運行整個程序。(AWG_overview.pdf)

第 2 步:構建硬件

poYBAGJQBXCAKko0AATISpMsaoQ353.png

pYYBAGJQBW2AOrGFAAdzhmh1nTw463.png

在示意圖中,您可以找到被“藍框”包圍的三個功能塊。使用 AWG 的 8 位或 10 位版本的原理圖來構建您自己的。

所有部件都焊接到原型板上。按照示意圖從左到右。確保有一個中央接地點,將電源的接地線連接到 Pico 板的接地引腳、兩個穩壓器和輸出連接器。我在開始時創建了接地回路,這會在輸出信號上產生額外的噪聲。

注意事項:

如果您不需要輸出緩沖級的全部 20MHz 帶寬,請將 Q1 和 Q2 替換為 2N2219 和 2N2905。這些晶體管更便宜并且具有更好的可用性。測試顯示帶寬上限約為 5MHz。還要為這些晶體管添加散熱器。

如果您不需要低輸出阻抗,您可以簡化輸出級,只使用 AD8055。取 R6 之后的信號(參見示意圖中的“TP 1”)。然后,AWG 可以將負載驅動至約 50 歐姆。

相關附件下載:

AD8055.pdf

AWG10bit_schematics.pdf

AWG8bit_schematics.pdf

第 3 步:安裝軟件包

poYBAGJQBWiAOT3jAAErMubHbd8840.png

pYYBAGJQBWSAfS28AACdA2cH5Yg636.png

AWG 是使用 micro-python 實現的。作為第一步,請將micropython加載到 Pico。使用版本 1.17 ( rp2-pico-20210902-v1.17.uf2 ) 或更新版本。舊版本無法使用,因為它們缺少 micro-gui 所需的功能。

本教程假設您對如何使用 Pico 板、將 micro-python 和 python 模塊加載到 Pico 有一些基本知識。如果您需要幫助,請在raspberry pi pico 上找到開始使用 micropython的分步指南。

由于我無法在此處附加檔案或壓縮文件,請安裝以下軟件包:

1. 安裝micro-gui。如果您使用的是 Linux,請創建一個項目目錄并使用 git 將 micro-gui 復制到項目目錄。例如:git clone https://github.com/peterhinch/micropython-micro-gui。

使用 mpfshell、rshell 或您喜歡的 micropython IDE 將 micro-gui 模塊復制到 Pico。

如果您使用的是 Windows,請訪問micro-gui github站點,單擊“代碼”按鈕并下載 zip 文件(見圖)。您可以使用您喜歡的工具將文件下載到 Pico。

2. 安裝硬件驅動程序。將 AWG 驅動程序文件復制到 Pico:

hardware_setup.py - 復制到根目錄,包含按鈕、編碼器和顯示驅動程序的信息

colors.py - 替換原始模塊,因為 AWG 使用更多顏色,將附件復制到 Pico 上的 gui/core 目錄

3. 安裝 AWG 文件:

8 位和 10 位版本的 AWG 文件不同。由于我無法附加包裹,因此我將包裹分成了這個教程的兩個步驟。

從第 8 步下載 8 位版本的軟件

從第 9 步下載 10 位版本的軟件

然后將文件復制到 pico。10 位版本的文件名顯示在下面的文本中的括號 [ ] 中。

ui.py [ui10.py] - 復制到根目錄,這是AWG主程序

wave_gen.py [wave_gen10.py] - 復制到根目錄,該模塊計算波形并對 Pico 的 PIO 和 DMA 進行編程

main.py - 復制到根目錄,啟動后調用模塊,導入 ui.py [ui10.py] 啟動 AWG

我添加了一張圖片來顯示 Pico 上文件和目錄結構的圖形表示。圖片僅顯示 AWG 所需的文件。如果您將 micro-gui 作為一個整體下載,您將獲得更多文件,例如 micro-gui 的演示或其他字體,這些文件不被 AWG 使用。您可以只復制所需的文件,如圖所示。

備注:我已經清理了這個教程,只附上了最新版本的文件。如果您已經構建了 AWG,建議您升級到具有 8 位 DAC 或 10 位 DAC 的版本的最新版本。

代碼下載:

hardware_setup.py

顏色.py

第 4 步:AWG 的核心

python 模塊wave_gen.py [wave_gen10.py] 包含用于計算波形和對 Pico 的 PIO 和 DMA 進行編程的代碼。我重用了 Rgco 創建的代碼。附加的模塊支持六種基本波形。AWG 可以做更多事情,例如將兩個波相加或相乘,如果您需要更多功能,請參閱Rcgo 的教程。

對原代碼的改動:

代碼有兩種版本,一種用于 8 位 DAC,一種用于 10 位 DAC。

Pico 超頻了,CPU 運行在 250MHz 而不是 125MHz

我正在使用 DMA 通道 2 和 3 而不是 0 和 1。DMA 通道 0 和 1 由其他功能使用,例如 TFT 顯示器的 SPI 接口

在測試時,我觀察到“內存不足錯誤”,因此我在計算完成后調用垃圾收集器 (gc) 模塊并填充波緩沖區以釋放未使用但仍分配的內存。

備注:Pico 的 CPU 和 USB 連接在 250MHz 下運行非常可靠

第 5 步:用戶界面

pYYBAGJQBVyAEIjEAAWp-425hRU030.png

用戶界面 (UI) 由兩個按鈕、一個帶按鈕的旋轉編碼器、2.8” TFT 顯示器和 python 模塊ui.py [ui10.py] 組成。該模塊定義了屏幕布局和 AWG 控件。在簡而言之,當按下按鈕或旋轉編碼器時會發生什么。在以下 UI 元素中以斜體字母顯示,例如setup指向屏幕上的設置按鈕。您可以在下一步。

用戶界面原則:

所有用戶輸入都被收集并存儲在一個名為“wave”的字典中。按下設置生成器按鈕后,模塊 wave_gen [wave_gen10] 使用存儲在字典中的數據來計算和輸出波形。

AWG 在屏幕上顯示其當前狀態。狀態是以下之一——初始化——、計算波、運行或停止。每個狀態都非常自我解釋,并在模塊 ui.py [ui10.py] 中進行了簡要描述。

UI 允許通過功能下拉菜單選擇波形。When a wave is selected the parameters of the wave are set to default values, which are “mid points” of the parameters. 如果您使用默認值按下設置生成器按鈕,您會得到一個工作正常的波形。通常,您希望根據需要調整頻率。

如果您選擇不同的波形,頻率不會改變,但所有其他參數都設置為默認值。

在 UI 中,只有與所選波形相關的參數處于活動狀態并且可以更改。不需要的參數是“灰色的”。

顯示使用的樣本數和波形的結果輸出頻率。

備注:AWG 是一種數字波發生器。這意味著例如頻率、幅度和偏移量會逐步變化,這會導致一些限制:

輸出頻率可能會偏離 UI 中設置的頻率,例如,如果設置頻率“介于”兩個數字頻率步長之間。

第 6 步:AWG 快速參考指南

poYBAGJQBVmABwpvAAOqutBJEj8138.png

用戶界面硬件由硬件中的兩個按鈕和一個旋轉編碼器組成。AWG 控件和設置/停止發生器按鈕在 UI 軟件中實現。

Next按鈕將焦點移動到下一個控件,該控件變為活動狀態。焦點由白色邊框表示。例如,在圖片中,您可以看到具有焦點的功能下拉列表。

上一個按鈕將焦點移回上一個控件。

旋轉編碼器必須起作用。(a) 按下編碼器作為輸入按鈕, (b) 轉動編碼器增加或減少一個值或在下拉列表中上下移動。

有關詳細信息,請參閱隨附的快速參考指南。

備注:如果輸出信號被削波或失真,請嘗試調整幅度、偏移或參數。這樣做通常會減少削波或失真。微調參數以優化輸出,例如對于脈沖:不要將上升和下降時間設置為 0,而是將其設置為較小的值,例如 0.05。這通過限制壓擺率來減少信號的過沖。

第 7 步:限制和改進

pYYBAGJQBVOAT2wAAAGWTNbxmzo367.png

AWG 的設計易于使用、易于復制和低成本。

實施了六個基本波。如果 Pico 板連接到 PC 上,基本上任何波形都可以通過在模塊 wave_gen.py 中添加波形的公式來產生。如果波形應該在 AWG 中持久存在,請將波形名稱和控件添加到 ui.py 模塊。

AWG 的輸出級是基本的 AB 類設計。它經過短路驗證并提供 6V pp 擺幅。可以添加一個輸出濾波器來降低較高頻率的數字噪聲。

為 AWG 10 位實施了包圍。根據要求可以移植到 AWG 8 位。

在最近的軟件中,顯示更新(SPI 接口)在 AWG 啟動時會關閉。這顯著降低了輸出信號上的數字噪聲(見圖)。在原型板上構建或進行 PCB 布局時,請注意避免走線或電纜之間的串擾,從而進一步降低噪聲。

為了進一步降低噪音,使用兩個 Pico 板也可以降低輸出噪音。一個用于發生器的 Pico 板和一個用于用戶界面的 Pico 板,將它們與例如串行接口連接。非常歡迎任何改進和評論。

第 8 步:用于 AWG 的軟件,帶有 8 位 DAC

附上使用 8 位 DAC實現 AWG 時要上傳到 Pico 的三個文件。(參見第 3 步)

在停止生成器時保留參數值,而不是每次都初始化它們。

sinc 和指數參數現在被“括起來”,因此它們無法設置為導致波形不可用的值。

ui.py

wave_gen.py

主文件

第 9 步:帶 10 位 DAC 的 AWG

附上使用 10 位 DAC實現 AWG 時要上傳到 Pico 的三個文件。(參見第 3 步)

一些用戶要求在停止生成器時保留參數值,而不是初始化它們。

sinc 和指數參數現在被“括起來”,因此它們無法設置為導致波形不可用的值。

ui10.py

wave_gen10.py

主文件

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

    關注

    4

    文章

    1395

    瀏覽量

    62476
  • AWG
    AWG
    +關注

    關注

    1

    文章

    64

    瀏覽量

    17072
  • 波形發生器
    +關注

    關注

    3

    文章

    306

    瀏覽量

    31821
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    5分鐘內將Raspberry Pi Pico變成簡單的示波器+波形發生器

    5 分鐘內將 Raspberry Pi Pico(或任何 RP2040 板)變成簡單的示波器+波形發生器
    的頭像 發表于 03-04 09:14 ?2830次閱讀
    5分鐘內將<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>Pico</b>變成簡單的示波器+<b class='flag-5'>波形</b><b class='flag-5'>發生器</b>

    pico-ice:RP2040 plus Lattice iCE40UP5K FPGA 開發板 介紹

    pico-ice是一個小型、低成本的開發板,帶有Raspberry Pi Pico RP2040微控制
    發表于 06-28 15:45

    ubuntu上交叉編譯rp2040

    連接到rp2040 ,所以使用另一塊pico作為調試,需要給pico調試下載固件,也就是picoprobe 地址 https://git
    發表于 08-27 08:00

    樹莓派Pico迷你開發板及所使用的RP2040 MCU芯片有哪些特性

    Raspberry Pi Pico是什么?樹莓派Pico迷你開發板及所使用的RP2040 MCU芯片有哪些特性?
    發表于 09-14 06:50

    Raspberry Pi 4/3B的Pico開發板

    總線 (GPIO) 對 Raspberry Pi Pico 進行編程。無論您擁有 Raspberry Pi
    發表于 07-26 07:14

    基于RP2040 arm微控制制作的定制Arduino

    描述Athduino-RP2040使用新的 Raspberry pi pico 的基于 RP2040 arm 的微控制
    發表于 08-31 06:03

    【BPI-Pico-RP2040 開發板】與Banana BPI-Pico-RP2040的第一次親密接觸

    RP2040芯片的微控制開發板,其最顯著的特性是,在盡量保留Raspberry Pi Pico的功能,外形尺寸,引腳布局的前提下,增加一顆
    發表于 03-17 23:03

    RP2040

    RP2040是一種基于ARM Cortex-M0+核心的微控制芯片,由Raspberry Pi公司設計和生產。它主要用于樹莓派計算模塊和樹莓派相機模塊V2等產品中,同時也適用于各種低
    發表于 09-15 09:04

    4美元的微控制PicoRP2040芯片

    今天我們來認識一下Raspberry Pi Pico,一個小小的微控制,可以讓你在微控制上運行一些代碼來構建硬件項目。更有趣的是,
    發表于 01-22 15:51 ?2664次閱讀

    基于樹莓派產品 Raspberry Pi微控制板的優缺點

    早在1月份, Raspberry Pi就推出了使用 RP2040Raspberry Pi Pico
    的頭像 發表于 06-12 09:13 ?3179次閱讀

    e絡盟現貨發售Arduino Nano RP2040 Connect和Raspberry Pi Pico

    Raspberry Pi Pico是首款采用Raspberry Pi自研RP2040微控制
    發表于 09-23 14:26 ?3338次閱讀
    e絡盟現貨發售Arduino Nano <b class='flag-5'>RP2040</b> Connect和<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>Pico</b>

    Arduino Raspberry Pi Pico/RP2040以太網:W5100S EVB Pico

    電子發燒友網站提供《Arduino Raspberry Pi Pico/RP2040以太網:W5100S EVB Pico.zip》資料免費
    發表于 06-14 14:29 ?1次下載
    Arduino <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>Pico</b>/<b class='flag-5'>RP2040</b>以太網:W5100S EVB <b class='flag-5'>Pico</b>

    將MicroPython從Raspberry pi(RP2040)移植到Wiznet5K

    電子發燒友網站提供《將MicroPython從Raspberry pi(RP2040)移植到Wiznet5K.zip》資料免費下載
    發表于 06-14 10:54 ?0次下載
    將MicroPython從<b class='flag-5'>Raspberry</b> <b class='flag-5'>pi</b>(<b class='flag-5'>RP2040</b>)移植到Wiznet5K

    RP2040 Raspberry Pi Pico遇見LoRa

    電子發燒友網站提供《RP2040 Raspberry Pi Pico遇見LoRa.zip》資料免費下載
    發表于 06-15 09:25 ?1次下載
    <b class='flag-5'>RP2040</b> <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> <b class='flag-5'>Pico</b>遇見LoRa

    RP2040Raspberry Pi的區別

    作為 Raspberry Pi 基金會推出的首款微控制產品,RP2040 標志著以單板計算機 (SBC) 而聞名的 Raspberry
    的頭像 發表于 11-16 17:37 ?1214次閱讀
    <b class='flag-5'>RP2040</b>和<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>的區別