模數轉換器(ADC)將模擬量——現實世界中絕大部分現象的特征——轉換為數字語言,以便用于信息處理、計算、數據傳輸和控制系統。數模轉換器(DAC)則用于將發送或存儲的數據,或者數字處理的結果,再轉換為現實世界的變量,以便控制、顯示信息或進一步進行模擬處理
上傳時間: 2014-11-30
上傳用戶:784533221
所有模數轉換器(ADC)都有一定量的“折合到輸入端噪聲”,可以將其模擬為與無噪聲ADC 輸入串聯的噪聲源。折合到輸入端噪聲與量化噪聲不同,后者僅在ADC處理交流信號時出 現。多數情況下,輸入噪聲越低越好,但在某些情況下,輸入噪聲實際上有助于實現更高 的分辨率。這似乎毫無道理,不過繼續閱讀本指南,就會明白為什么有些噪聲是好的噪 聲。
上傳時間: 2013-11-14
上傳用戶:Sophie
本教程旨在考察標定運算放大器的增益和帶寬的常用方法。需要指出的是,本討論適用于電壓反饋(VFB)型運算放大器——電流反饋(CFB)型運算放大器將在以后的教程(MT-034)中討論。
上傳時間: 2013-11-15
上傳用戶:大三三
收文單位:左列各單位 發文字號: MT-8-2-0037
上傳時間: 2013-12-17
上傳用戶:123312
第二部分:DRAM 內存模塊的設計技術..............................................................143第一章 SDR 和DDR 內存的比較..........................................................................143第二章 內存模塊的疊層設計.............................................................................145第三章 內存模塊的時序要求.............................................................................1493.1 無緩沖(Unbuffered)內存模塊的時序分析.......................................1493.2 帶寄存器(Registered)的內存模塊時序分析...................................154第四章 內存模塊信號設計.................................................................................1594.1 時鐘信號的設計.......................................................................................1594.2 CS 及CKE 信號的設計..............................................................................1624.3 地址和控制線的設計...............................................................................1634.4 數據信號線的設計...................................................................................1664.5 電源,參考電壓Vref 及去耦電容.........................................................169第五章 內存模塊的功耗計算.............................................................................172第六章 實際設計案例分析.................................................................................178 目前比較流行的內存模塊主要是這三種:SDR,DDR,RAMBUS。其中,RAMBUS內存采用阻抗受控制的串行連接技術,在這里我們將不做進一步探討,本文所總結的內存設計技術就是針對SDRAM 而言(包括SDR 和DDR)?,F在我們來簡單地比較一下SDR 和DDR,它們都被稱為同步動態內存,其核心技術是一樣的。只是DDR 在某些功能上進行了改進,所以DDR 有時也被稱為SDRAM II。DDR 的全稱是Double Data Rate,也就是雙倍的數據傳輸率,但是其時鐘頻率沒有增加,只是在時鐘的上升和下降沿都可以用來進行數據的讀寫操作。對于SDR 來說,市面上常見的模塊主要有PC100/PC133/PC166,而相應的DDR內存則為DDR200(PC1600)/DDR266(PC2100)/DDR333(PC2700)。
上傳時間: 2014-01-13
上傳用戶:euroford
SRAM,SDRAM
上傳時間: 2013-11-10
上傳用戶:黃蛋的蛋黃
BIT_SELFREFRESH EQU (1<<22) ;定義SDRAM自刷新標志位 16 17 ;Pre-defined constants 預定義6種工作模式 18 USERMODE EQU 0x10 ;用戶模式 19 FIQMODE EQU 0x11 ;快速中斷模式 20 IRQMODE EQU 0x12 ;中斷模式 21 SVCMODE EQU 0x13 ;監管模式 22 ABORTMODE EQU 0x17 ;異常中斷模式 23 UNDEFMODE EQU 0x1b ;未定義模式 24 25 MODEMASK EQU 0x1f ;模式掩碼 26 NOINT EQU 0xc0 ;取消中斷 27 28 ;The location of stacks;設置6種工作模式的堆棧的起始地址 29 ;在option.inc中定義了_STACK_BASEADDRESS EQU 0x33ff8000 30 UserStack EQU (_STACK_BASEADDRESS-0x3800) ;0x33ff4800 ~ 31 SVCStack EQU (_STACK_BASEADDRESS-0x2800) ;0x33ff5800 ~ 32 UndefStack EQU (_STACK_BASEADDRESS-0x2400) ;0x33ff5c00 ~ 33 AbortStack EQU (_STACK_BASEADDRESS-0x2000) ;0x33ff6000 ~ 34 IRQStack EQU (_STACK_BASEADDRESS-0x1000) ;0x33ff7000 ~ 35 FIQStack EQU (_STACK_BASEADDRESS-0x0) ;0x33ff8000 ~
上傳時間: 2013-10-07
上傳用戶:m62383408
單片機的頻率越來越高,RAM的訪問速度也來也快,但單片機系統的效率并不一定成比例的提高。 目前,使用的主流單片機有80386EX(50MHz,外部地址/數據總線16位)、MPC860T(66MHz外部地址/數據總線32位)以及DS80C32(25MHz,外部地址/數據總線8位)使用的SDRAM有HY57系列、K416系列(訪問速度100MHz133MHz);使用的SRAM如IDT71024、IDT7256(50MHz);使用的Flash有AT29C512、SST39VF040、AT29C010(8MHz或15MHz)等??梢奡DRAMS,RAM的速度和單片機是匹配的甚至比單片機的速度更快一點,不需要單片機插入等待狀態。而Flash的訪問頻率則比單片機慢2~6倍,單片機往往要通過插入多個等待狀態來和它相匹配,況且Flash多為8位,而當前單片機多為16,32位更多的降低了單片機的工作性能。
上傳時間: 2013-11-09
上傳用戶:wxhwjf
DevKit8000評估套件簡介及應用 OMAP3530應用處理器集成600-MHz ARM Cortex-A8核及430-MHz TMS320C64x DSP核 板載128MByte DDR SDRAM,32bit 板載128MByte NAND Flash
上傳時間: 2014-12-27
上傳用戶:lliuhhui
at91rm9200啟動過程教程 系統上電,檢測BMS,選擇系統的啟動方式,如果BMS為高電平,則系統從片內ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執行這個BOOTLOAER(準確的說應該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設置PLLB產生48M時鐘頻率提供給USB DEVICE。同時DEBUG USART也被初始化為48M的時鐘頻率; 2、相應模式下的堆棧設置; 3、檢測主時鐘源(Main oscillator); 4、中斷控制器(AIC)的設置; 5、C 變量的初始化; 6、跳到主函數。 完成以上步驟后,我們可以認為BOOT過程結束,接下來的就是LOADER的過程,或者也可以認為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設備的開始地址處連續的存放的32個字節,也就是8條指令必須是跳轉指令或者裝載PC的指令,其實這樣規定就是把這8條指令當作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當BOOT程序完成了把合法的映像搬到SRAM的任務以后,接下來就進行存儲器的REMAP,經過REMAP之后,SRAM從映設前的0X200000地址處被映設到了0X0地址并且程序從0X0處開始執行。而ROM這時只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準備從外部載入映像。對DEBUG口的初始化包括設置參數115200 8 N 1以及運行XMODEM協議。對USB DEVICE進行初始化以及運行DFU協議。現在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設然后執行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時片外的FLASH的起始地址就是0X0了,接下來的過程和片內啟動的過程是一樣的,只不過這時就需要自己寫啟動代碼了,至于怎么寫,大致的內容和ROM的BOOT差不多,不同的硬件設計可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設計的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據自己的應用配置??偟恼f來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務也不錯,不但提供了片內啟動的功能,還提供了UBOOT可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結構與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設的驅動,是一個功能強大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網站下載。 我們知道,當9200系統上電后,如果bms為高電平,則系統從片內rom啟動,這時rom中固化的boot程序初始化了debug口并向其發送'c',這時我們打開超級終端會看到ccccc...。這說明系統已經啟動,同時xmodem協議已經啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內的sram中。這個loder完成的功能主要是初始化時鐘,sdram和xmodem協議,為下載和啟動uboot做準備。當下載了loader.bin后,超級終端會繼續打?。篶cccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調到此處開始執行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內存、flash、網絡、系統啟動等一些命令。 如果系統上電時bms為低電平,則系統從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內rom啟動uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經啟動了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統復位,就可以看到系統先啟動boot,然后解壓縮uboot.gz,然后啟動uboot。注意,這里uboot必須壓縮成.gz文件,否則會出錯。 怎么編譯這三個源碼包呢,首先要建立一個arm的交叉編譯環境,關于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區別嗎?首先有區別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進行解壓,除此之外,他和loader并無大的區別,你可以把boot理解為在loader的基礎上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據自己的系統的情況修改和配置以及裁減,打造屬于自己系統的bootloder。
上傳時間: 2013-10-27
上傳用戶:wsf950131