當前,USB接口技術的應用已十分成熟和普遍,尤其是已FLASH作為存儲介質的U盤更是帶動了一個IT行業新的經濟增長點。在整個IT經濟相對低迷的情況下,U盤能脫身而出,獨秀一枝,主要歸功于其把握了好的行業方向:USB接口技術高速、穩定、即插即用,注定了是未來接口技術的主流;FLASH存儲媒體穩定、可靠是新一代移動數據存儲的首選。但美中缺憾的是現在的U盤都只能在PC上使用,許多其它需要直接進行數據存儲和交換的地方卻不能直接使用U盤。如數據采集和工控行業中諸多設備都還是利用軟磁盤,以太網等方式。軟盤穩定性差,容量小,以太網成本太高,移動性不好。所以要在工控和嵌入式行業中實現對U盤的讀寫是一件非常有意義和前景的事情。本開發板就是在傳統的單片機單片機實現了對U盤的讀寫。本開發板的核心技術是USBHOST的實現,包括USB批量傳輸、海量存儲、文件系統等協議內容較多,協議復雜,開發難度比較高。開發板的對象主要是面對二次開發和USB初步學習的朋友,提供所有硬件,源代碼,開發文檔和調試軟件。使大家最快掌握這一核心技術,進入USB技術的天堂。
上傳時間: 2013-11-09
上傳用戶:jx_wwq
USB總線接口芯片CH375支持USB-HOST和USB-DEVICE,可以用于單片機讀寫U盤。本說明中的多數內容為建議性說明,而非強制性說明,建議的目的旨在提高最終產品的穩定性和可靠性,很多內容只是針對一般情況和大多數用戶而言,而未考慮個別或者例外。本說明中列舉了一些發生在某些品牌U盤上的怪現象,都是我們實際測試現象的描述,我們并沒有以此評價U盤的優劣,因為實際上它們可能已經算是所有U盤中比較優秀的幾種,而且,我們也不排除這僅僅是品牌U盤中的個別現象,只是正好被我們碰到而已。
上傳時間: 2013-11-13
上傳用戶:yuzsu
概述 CH376是文件管理控制芯片,用于單片機系統讀寫 U 盤或者 SD 卡中的文件。 CH376 支持 USB 設備方式和 USB 主機方式,并且內置了 USB 通訊協議的基本固件,內置了處理Mass-Storage 海量存儲設備的專用通訊協議的固件,內置了SD 卡的通訊接口固件,內置了FAT16和FAT32 以及 FAT12 文件系統的管理固件,支持常用的 USB 存儲設備(包括 U 盤/USB 硬盤/USB 閃存盤/USB讀卡器)和SD卡(包括標準容量SD 卡和高容量HC-SD 卡以及協議兼容的MMC 卡和 TF 卡)。 CH376 支持三種通訊接口:8 位并口、SPI 接口或者異步串口,單片機/DSP/MCU/MPU 等控制器可以通過上述任何一種通訊接口控制CH376芯片,存取U 盤或者 SD 卡中的文件或者與計算機通訊。 CH376的 USB設備方式與CH372 芯片完全兼容,CH376 的 USB 主機方式與CH375 芯片基本兼容。
上傳時間: 2014-12-27
上傳用戶:sglccwk
LM3S系列單片機主要有3種工作模式:運行模式(Run-Mode)、睡眠模式(Sleep-Mode)、深度睡眠模式(Deep-Sleep-Mode)。某些型號還具有單獨的極為省電的冬眠模塊(Hibernation Module)。而對各個模式下的外設時鐘選通以及系統時鐘源的控制主要由表 2.1中的寄存器來完成。 運行模式是正常的工作模式,處理器內核將積極地執行代碼。在睡眠模式下,系統時鐘不變,但處理器內核不再執行代碼(內核因不需要時鐘而省電)。在深度睡眠模式下,系統時鐘可變,處理器內核同樣也不再執行代碼。深度睡眠模式比睡眠模式更為省電。有關這3種工作模式的具體區別請參見表 2.2的描述。調用函數SysCtlSleep( )可使處理器立即進入睡眠模式,而調用函數SysCtlDeepSleep( )可使處理器立即進入深度睡眠模式。任一中斷都可以將處理器從睡眠或深度睡眠模式喚醒,并使處理器恢復到睡眠前的運行狀態。因此在進入睡眠或深度睡眠之前,必須配置某個片內外設的中斷并允許其在睡眠或深度睡眠模式下繼續工作,如果不這樣,則只有復位或重新上電才能結束睡眠或深度睡眠狀態。
上傳時間: 2013-11-08
上傳用戶:ArmKing88
單片機大蝦是怎么樣煉成的 強烈要求學習單片機的同志們看完!前言:近來在論壇總是見到一些菜鳥們在大叫:“我想學單片機”,“我要學單片機”,“如何入門啊?”,“你們怎么這么厲害,是怎樣學的??”等等等等一系列的問題,實在是看多了也感到煩了,今天,就由我電子白菜厚著面皮,頂著無數老蝦的磚頭,在這里寫上一篇單片機學習心得,讓菜鳥們勇敢地跨出第一步。首先解釋什么是蝦米先,以我個人意見吧。1、來單片機論壇的時候能夠看懂大多數家伙在說什么,(當然不是看懂他們在灌水的帖子啦)并且能適當地提出問題(非弱智的問題)和討論,解答別人的問題。2、當希望自己用單片機開發一個東東,或公司要求開發一個方案的時候,能夠很快地在心中建立一個基本模型,知道應該需要些什么知識,而自己又掌握多少,并根據一定的靈感開始搜索資料。就是以上這2 點了,如果你滿足了,基本下面的東西你就當作是故事來讀就可以了。然后是心態問題,不久前看到有人這么問:“我想學單片機啊,因為聽說很有錢途,請問學那種單片機最有錢途?”這個問題,我看到了就覺得反感,可以這么說,在這個壇子混的單片機大蝦只有兩種:第一、是一直從事單片機類工作的;第二、是愛好者,愛好者包括從事單片機工作的和非單片機工作的。的確,單片機是有一定的錢途,但對于那些本來不是從事單片機工作的,而又沒有興趣的,單從錢的角度出發的家伙,想學好單片機??恐怕是做白日夢。
標簽: 單片機
上傳時間: 2013-11-04
上傳用戶:firstbyte
LM3S系列單片機睡眠與深度睡眠應用筆記 介紹 LM3S 系列單片機如何進入休眠或深度休眠模式,以及休眠后如何喚醒。
上傳時間: 2014-01-01
上傳用戶:李夢晗
單片機讀寫U盤方案開發手冊 目錄 1.芯片及模塊手冊資料2.應用電路圖及封裝3.SPI例程及UART例程4.其他外圍應用電路5.232、電平轉換資料6.芯片測試文檔7.U盤支持列表
上傳時間: 2013-11-01
上傳用戶:whymatalab
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,這是一個開放源代碼的軟件,用戶可以自由下載并根據自己的應用配置。總的說來,筆者以為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后,超級終端會繼續打印:ccccc....。這時我們就可以下在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
介紹 LM3S 系列單片機如何進入休眠或深度休眠模式,以及休眠后如何喚醒。
上傳時間: 2014-05-07
上傳用戶:wbwyl
本文介紹了一個以嵌入式USB 主機接口芯片SL811HS 為核心,采用U 盤為存儲介質的單片機低功耗海量存儲系統。該系統實現了儀器的便攜化,從而,為便攜儀器或嵌入式系統的外掛式海量存儲的發展開拓了新思路。近幾年,隨著Flash Memory 非易失存儲技術的發展,基于USB 接口的閃存即U 盤現已得到廣泛應用。從理論上講,以U 盤作為便攜式采集存儲系統的存儲載體完全能夠滿足長時間采集海量數據的要求。但目前所面臨的問題是,U 盤主要應用于PC 機系統中。以單片機等微處理器為核心的嵌入式系統的應用中,尚缺少與U 盤的直接接口技術。因此將單片機技術與U 盤存儲技術兩者結合起來,利用單片機直接讀寫U 盤,并通過總線方式與嵌入式系統的其它部分實現命令和數據的通信,從而實現便攜儀器或者嵌入式系統的外掛式海量存儲,具有廣闊的應用前景。而以Cypress 公司的SL811HS 為代表的嵌入式USB 主機接口芯片為這種方案的實現提供了可能。
上傳時間: 2013-10-09
上傳用戶:無聊來刷下