library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity XTKZQ is
port(
rst,clk : in std_logic; --時鐘和復位信號,復位信號由AVR初始化手動給出
--avr 讀寫相關信號線
ale,rd,wr : in std_logic; --地址鎖存、讀、寫信號
ad : inout std_logic_vector(7 downto 0); --地址數據復用信號線
--LED指示燈
led1,led2 : out std_logic;
--pwm
pwm1,pwm2,pwm3,pwm4,pwm5,pwm6 : out std_logic;
--ad8364信號線
adc_d: in std_logic_vector(15 downto 0);
adc_a0,adc_a1,adc_a2: out std_logic;
adc_reset: out std_logic;
adc_cs: out std_logic;
adc_wr: out std_logic;
adc_rd: out std_logic;
adc_holda,adc_holdb,adc_holdc: out std_logic;
adc_eoc: in std_logic;
adcclk_out: out std_logic;
--放大增益控制,此處每一路AD設置了兩級放大增益
sw11: out std_logic;--控制模擬開關,調節放大增益
sw12: out std_logic;
sw21: out std_logic;
sw22: out std_logic;
sw31: out std_logic;
sw32: out std_logic;
sw41: out std_logic;
sw42: out std_logic;
sw51: out std_logic;
sw52: out std_logic;
sw61: out std_logic;
sw62: out std_logic
);
end XTKZQ;
architecture art of XTKZQ is
------------------------------------------------全局信號定義-------------------------------------------------------------------
--avr訪問操作相關信號
signal adr : std_logic_vector(7 downto 0); --地址寄存器
signal data_buf : std_logic_vector(7 downto 0);
signal data_outctl : std_logic;
--pwm控制部分有三組變量,第一組是由avr寫入,控制相應的占空比,這個是供調試使用
--第二組是自動pid控制使用的
--第三組是pwm計數使用的,根據pid_sw開關的設置決定讀入第一組還是第二組的值
--pwm部分相關寄存器定義 寄存器暫時定義為8位
signal pwmfreq_reg : std_logic_vector(7 downto 0);
signal pwmocr1_reg : std_logic_vector(7 downto 0);
signal pwmocr2_reg : std_logic_vector(7 downto 0);
signal pwmocr3_reg : std_logic_vector(7 downto 0);
signal pwmocr4_reg : std_logic_vector(7 downto 0);
signal pwmocr5_reg : std_logic_vector(7 downto 0);
signal pwmocr6_reg : std_logic_vector(7 downto 0);
--pwm部分PID調節中用到的相關變量
signal pwmfreq_pid : std_logic_vector(7 downto 0);
signal pwmocr1_pid : std_logic_vector(7 downto 0);
signal pwmocr2_pid : std_logic_vector(7 downto 0);
signal pwmocr3_pid : std_logic_vector(7 downto 0);
signal pwmocr4_pid : std_logic_vector(7 downto 0);
signal pwmocr5_pid : std_logic_vector(7 downto 0);
signal pwmocr6_pid : std_logic_vector(7 downto 0);
--PWM計數用到的相關變量,這里定義為8位
signal pwm_cnt : std_logic_vector(7 downto 0);
signal pwmfreq : std_logic_vector(7 downto 0);
signal pwmocr1 : std_logic_vector(7 downto 0);
signal pwmocr2 : std_logic_vector(7 downto 0);
signal pwmocr3 : std_logic_vector(7 downto 0);
signal pwmocr4 : std_logic_vector(7 downto 0);
signal pwmocr5 : std_logic_vector(7 downto 0);
signal pwmocr6 : std_logic_vector(7 downto 0);
--自動閉環控制相關寄存器定義
signal pid_sw : std_logic_vector(7 downto 0); --閉環控制開關,此寄存器為0x01時開啟自動閉環控制
--六個AD寄存器位,用于存放設定的AD值
signal adcset1h_reg,adcset1l_reg,adcset2h_reg,adcset2l_reg : std_logic_vector(7 downto 0);
signal adcset3h_reg,adcset3l_reg,adcset4h_reg,adcset4l_reg : std_logic_vector(7 downto 0);
signal adcset5h_reg,adcset5l_reg,adcset6h_reg,adcset6l_reg : std_logic_vector(7 downto 0);
--時鐘分頻相關變量
signal clkcnt : std_logic_vector(16 downto 0);
signal adc_clk : std_logic; --adc時鐘信號
signal pwm_clk : std_logic; --pwm時鐘信號
signal pid_clk : std_logic; --pid時鐘信號,用于調節pid的反應速度
--led指示相關變量
signal led_clk : std_logic; --led時鐘信
signal led1_cnt : std_logic_vector(7 downto 0);
signal led2_cnt : std_logic_vector(7 downto 0);
signal led1s : std_logic;
signal led2s : std_logic;
--ads8364信號
signal adcdata1h_reg,adcdata1l_reg,adcdata2h_reg,adcdata2l_reg : std_logic_vector(7 downto 0);
signal adcdata3h_reg,adcdata3l_reg,adcdata4h_reg,adcdata4l_reg : std_logic_vector(7 downto 0);
signal adcdata5h_reg,adcdata5l_reg,adcdata6h_reg,adcdata6l_reg : std_logic_vector(7 downto 0);
signal adc_data_buf : std_logic_vector(15 downto 0);
--定義讀取過程的各個狀態
--13位控制分別為 hold adc_a rd 狀態機狀態5位 hhhabcr
---------------------------------------------------98365
constant st0 :std_logic_vector(11 downto 0):="000000100000";--啟動轉換
constant st1 :std_logic_vector(11 downto 0):="111000100001";--進入17個周期等待轉換結束,不檢測EOC
constant st2 :std_logic_vector(11 downto 0):="111000100010";
constant st3 :std_logic_vector(11 downto 0):="111000100011";
constant st4 :std_logic_vector(11 downto 0):="111000100100";
constant st5 :std_logic_vector(11 downto 0):="111000100101";
constant st6 :std_logic_vector(11 downto 0):="111000100110";
constant st7 :std_logic_vector(11 downto 0):="111000100111";
constant st8 :std_logic_vector(11 downto 0):="111000101000";
constant st9 :std_logic_vector(11 downto 0):="111000101001";
constant st10 :std_logic_vector(11 downto 0):="111000101010";
constant st11 :std_logic_vector(11 downto 0):="111000101011";
constant st12 :std_logic_vector(11 downto 0):="111000101100";
constant st13 :std_logic_vector(11 downto 0):="111000101101";
constant st14 :std_logic_vector(11 downto 0):="111000101110";
constant st15 :std_logic_vector(11 downto 0):="111000101111";
constant st16 :std_logic_vector(11 downto 0):="111000110000";
constant st17 :std_logic_vector(11 downto 0):="111000110001";
constant st18 :std_logic_vector(11 downto 0):="111000110010";
constant st19 :std_logic_vector(11 downto 0):="111000010011";--讀ch1數據
constant st20 :std_logic_vector(11 downto 0):="111001110100";
constant st21 :std_logic_vector(11 downto 0):="111001010101";--讀ch2數據
constant st22 :std_logic_vector(11 downto 0):="111010110110";
constant st23 :std_logic_vector(11 downto 0):="111010010111";--讀ch3數據
constant st24 :std_logic_vector(11 downto 0):="111011111000";
constant st25 :std_logic_vector(11 downto 0):="111011011001";--讀ch4數據
constant st26 :std_logic_vector(11 downto 0):="111100111010";
constant st27 :std_logic_vector(11 downto 0):="111100011011";--讀ch5數據
constant st28 :std_logic_vector(11 downto 0):="111101111100";
constant st29 :std_logic_vector(11 downto 0):="111101011101";--讀ch6數據
上一篇:KS0108_AVR驅動[0617]
下一篇:AVR開發 Arduino方法(附一) 工具鏈與調試技術
推薦閱讀
史海拾趣
阿爾特拉(Altera Corporation)是一家以可編程邏輯器件(FPGA)和相關技術為主的半導體公司,成立于1983年,總部位于美國加利福尼亞州的圣塔克拉拉。以下是關于阿爾特拉公司發展的五個相關故事:
創立與早期發展:阿爾特拉公司由Robert Hartmann和Michael Magranet等人于1983年創立,最初致力于設計和制造電可擦除可編程只讀存儲器(EEPROM)。1984年,公司推出了業界第一個商用FPGA產品,即EP300系列,標志著阿爾特拉在FPGA領域的開創性突破。隨后,公司不斷擴大產品線,加大研發投入,逐步成為FPGA領域的領軍企業之一。
FPGA技術創新:阿爾特拉公司在FPGA技術方面持續進行創新。1992年,公司推出了基于靜態隨機存儲器(SRAM)的FPGA器件,使得FPGA在速度和靈活性方面有了顯著提升。此后,阿爾特拉不斷推出新的器件系列和工具軟件,以滿足客戶對于性能和可編程性的不斷提升的需求。
與競爭對手的競爭:在FPGA市場,阿爾特拉與Xilinx是兩大主要競爭對手。兩家公司之間展開了激烈的競爭,包括技術研發、產品性能、市場份額等方面。為了在市場上取得優勢,阿爾特拉不斷加大研發投入,推出了一系列領先的產品和解決方案,并通過全球銷售網絡拓展市場。
收購與合并:阿爾特拉公司在發展過程中進行了多次收購與合并,以擴大市場份額和提升技術實力。2015年,英特爾公司以約160億美元的價格收購了阿爾特拉,將其并入英特爾旗下成為其子公司。這一收購使得英特爾得以整合阿爾特拉的FPGA技術和產品,進一步鞏固了其在半導體行業的地位。
公司發展與創新:作為英特爾的子公司,阿爾特拉繼續致力于技術創新和業務拓展。公司不僅持續改進現有產品的性能和功能,還積極投入到新興領域的研發與應用,如數據中心、人工智能、物聯網等。阿爾特拉通過不斷推出創新產品和解決方案,保持了在半導體行業的領先地位。
以上是關于阿爾特拉公司發展的五個相關故事,這些故事展示了阿爾特拉從創立初期到被英特爾收購的發展歷程,以及其在FPGA技術領域的技術創新、市場競爭和業務拓展等方面的重要進展。
為了進一步提升公司的競爭力和市場份額,Elite Enterprises積極尋求與行業內外的合作伙伴建立戰略合作關系。公司與多家知名企業簽訂了長期合作協議,共同開發新產品、拓展新市場。此外,公司還與一些高校和研究機構建立了產學研合作關系,共同推動LED技術的創新和應用。
隨著電子產品的不斷升級和電路防護需求的提高,佰宏團隊不斷進行技術研發和產品創新。他們成功開發出了多種嚴苛環境下的客制化PPTC自恢復保險絲,滿足了高精密高標準的電路防護需求。這一技術突破不僅提升了產品的競爭力,也為公司贏得了更多的市場份額。
為了進一步拓展業務領域和市場份額,DSP Group于2021年與Synaptics公司進行了合并。這次合并使DSP Group能夠借助Synaptics在觸控、顯示和人機交互技術方面的優勢,進一步拓展其在物聯網、智能家居等領域的應用。同時,合并后的新實體也通過資源整合和優勢互補,實現了更高的運行效率和更大的市場競爭力。
【Sipeed 高云GW2A FPGA開發板】——ARM Cortex-M0軟核處理器_LED點燈 本帖最后由 mars4zhu 于 2022-11-23 19:47 編輯 4. 在高云半導體GW2A系列FPGA平臺上運行ARM Cortex-M0軟核處理器 4.1. ARMSOC_2 在原有代碼基礎上做細微修改,主要在于: ClockDiv模塊中,分頻參數根 ...… 查看全部問答∨ |
Microarchitecture cheat sheet 微處理器構架備忘錄 本帖最后由 freebsder 于 2022-11-22 08:56 編輯 https://github.com/akhin/microarchitecture-cheatsheet 底層系統學習必備。 … 查看全部問答∨ |
大功率電源放雷電路板銅箔炸裂脫落,用在防塵現場的,環境比較惡劣,用戶輸入電為發電機,輸入電壓有不穩定的情況,是過大的 du/dt 造成的么? 聽聽老師們討論分析一下 … 查看全部問答∨ |
嘗試嘉楠K510開發套件已經有幾個月了,越是嘗試越是覺得博大精深,艱難地做了一個小小的玩意,預計最快下周應該能夠完成。一直沒有能出什么帖子,實在有點不好意思,現暫時說一說心得吧: 一、如何在目標機里面添加自己的應用 嘉楠官方提供了 ...… 查看全部問答∨ |
STM32單片機+ADXL345(中斷方式)計步器的準備程序(串口調試) 本文介紹了利用ADXL345中斷喚醒停止模式下的STM32F103C8T6,為進一步開發計步器做準備。 從上位機串口通訊記錄了整個過程, 代碼中有關OLED顯示屏可以不接。 1. ADXL345寄存器, 有好多,為了觀察明顯,這里設置了ACTIVITY和INACTIVITY模式,都能 ...… 查看全部問答∨ |
|
剛才用嘉立創EDA畫了一個原理圖,然后關掉。后來用的過程中CPU風扇一直調整轉動,剛剛打開任務管理器看了一下,CPU占用25%以上,已經很長時間了。 看了一下右下角的任務,說明已經退出了。不清楚嘉立創EDA在后臺用我的CPU干什么。 ...… 查看全部問答∨ |
抖動是在進行示波器測量的時候常見的一種現象,也是工程師比較頭痛的問題之一,也是嘗嘗討論的問題。為什么這個話題千古不變值得討論呢?是因為抖動是示波器測量的諸多功能中與“數學”較為相關的,從此也可以看出,學好數學的必要性。 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 高通攜手中國“汽車朋友圈”亮相2025上海車展: 加速駕駛輔助普惠,推動艙駕創新升級
- 工業市場正在快速回暖,德州儀器如何重塑電力電子市場?
- 特斯拉:美國交付的Model Y/3電池包已實現100%美國生產
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產品
- 強化中國市場戰略布局,德州儀器正靈活應對全球關稅挑戰
- Molex莫仕通過本地合作和創新加強支持中國汽車行業
- 貿澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現車載充電器小型化!
- 用上車規級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術解析:聚焦高帶寬、多通道同步采集與協議分析