LPC1700系列ARM是基于第二代ARM Cortex-M3內(nèi)核的微控制器,是為嵌入式系統(tǒng)應(yīng)用而設(shè)計(jì)的高性能、低功耗的32位微處理器,適用于儀器儀表、工業(yè)通訊、電機(jī)控制、燈光控制、報(bào)警系統(tǒng)等領(lǐng)域。其操作頻率高達(dá)100MHz,采用3級流水線和哈佛結(jié)構(gòu),帶獨(dú)立的本地指令和數(shù)據(jù)總線以及用于外設(shè)的低性能的第三條總線,使得代碼執(zhí)行速度高達(dá)1.25MIPS/MHz,并包含1個支持隨機(jī)跳轉(zhuǎn)的內(nèi)部預(yù)取指單元。
標(biāo)簽: Cortex-M 1700 NXP LPC
上傳時(shí)間: 2013-10-27
上傳用戶:wyc199288
熱敏微打控制模塊(ThermalPrinter-376T)采用美國TI公司的32 ARM微控制器LM3S600(原流明諾瑞公司)作為主控芯片,外加輸入電壓檢測、RS232通訊、字庫擴(kuò)展、打印電壓控制、步進(jìn)電機(jī)控制以及熱敏打印機(jī)芯控制。其中熱敏打印機(jī)芯控制增加過溫保護(hù)和缺紙檢測使系統(tǒng)更穩(wěn)定。
標(biāo)簽: ThermalPrinter 376 熱敏微打 控制板
上傳時(shí)間: 2013-11-23
上傳用戶:a67818601
at91rm9200啟動過程教程 系統(tǒng)上電,檢測BMS,選擇系統(tǒng)的啟動方式,如果BMS為高電平,則系統(tǒng)從片內(nèi)ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執(zhí)行這個BOOTLOAER(準(zhǔn)確的說應(yīng)該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設(shè)置PLLB產(chǎn)生48M時(shí)鐘頻率提供給USB DEVICE。同時(shí)DEBUG USART也被初始化為48M的時(shí)鐘頻率; 2、相應(yīng)模式下的堆棧設(shè)置; 3、檢測主時(shí)鐘源(Main oscillator); 4、中斷控制器(AIC)的設(shè)置; 5、C 變量的初始化; 6、跳到主函數(shù)。 完成以上步驟后,我們可以認(rèn)為BOOT過程結(jié)束,接下來的就是LOADER的過程,或者也可以認(rèn)為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設(shè)備的開始地址處連續(xù)的存放的32個字節(jié),也就是8條指令必須是跳轉(zhuǎn)指令或者裝載PC的指令,其實(shí)這樣規(guī)定就是把這8條指令當(dāng)作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關(guān)于如何計(jì)算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當(dāng)BOOT程序完成了把合法的映像搬到SRAM的任務(wù)以后,接下來就進(jìn)行存儲器的REMAP,經(jīng)過REMAP之后,SRAM從映設(shè)前的0X200000地址處被映設(shè)到了0X0地址并且程序從0X0處開始執(zhí)行。而ROM這時(shí)只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設(shè)備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準(zhǔn)備從外部載入映像。對DEBUG口的初始化包括設(shè)置參數(shù)115200 8 N 1以及運(yùn)行XMODEM協(xié)議。對USB DEVICE進(jìn)行初始化以及運(yùn)行DFU協(xié)議。現(xiàn)在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設(shè)然后執(zhí)行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內(nèi)的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時(shí)片外的FLASH的起始地址就是0X0了,接下來的過程和片內(nèi)啟動的過程是一樣的,只不過這時(shí)就需要自己寫啟動代碼了,至于怎么寫,大致的內(nèi)容和ROM的BOOT差不多,不同的硬件設(shè)計(jì)可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設(shè)計(jì)的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內(nèi)啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據(jù)自己的應(yīng)用配置。總的說來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務(wù)也不錯,不但提供了片內(nèi)啟動的功能,還提供了UBOOT可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結(jié)構(gòu)與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設(shè)的驅(qū)動,是一個功能強(qiáng)大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網(wǎng)站下載。 我們知道,當(dāng)9200系統(tǒng)上電后,如果bms為高電平,則系統(tǒng)從片內(nèi)rom啟動,這時(shí)rom中固化的boot程序初始化了debug口并向其發(fā)送'c',這時(shí)我們打開超級終端會看到ccccc...。這說明系統(tǒng)已經(jīng)啟動,同時(shí)xmodem協(xié)議已經(jīng)啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內(nèi)的sram中。這個loder完成的功能主要是初始化時(shí)鐘,sdram和xmodem協(xié)議,為下載和啟動uboot做準(zhǔn)備。當(dāng)下載了loader.bin后,超級終端會繼續(xù)打印:ccccc....。這時(shí)我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調(diào)到此處開始執(zhí)行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內(nèi)存、flash、網(wǎng)絡(luò)、系統(tǒng)啟動等一些命令。 如果系統(tǒng)上電時(shí)bms為低電平,則系統(tǒng)從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執(zhí)行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內(nèi)rom啟動uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經(jīng)啟動了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 然后系統(tǒng)復(fù)位,就可以看到系統(tǒng)先啟動boot,然后解壓縮uboot.gz,然后啟動uboot。注意,這里uboot必須壓縮成.gz文件,否則會出錯。 怎么編譯這三個源碼包呢,首先要建立一個arm的交叉編譯環(huán)境,關(guān)于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項(xiàng)目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當(dāng)前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區(qū)別嗎?首先有區(qū)別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進(jìn)行解壓,除此之外,他和loader并無大的區(qū)別,你可以把boot理解為在loader的基礎(chǔ)上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質(zhì)不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據(jù)自己的系統(tǒng)的情況修改和配置以及裁減,打造屬于自己系統(tǒng)的bootloder。
上傳時(shí)間: 2013-10-27
上傳用戶:wsf950131
LPC1311/13/42/43是基于第二代ARM Cortex-M3內(nèi)核的微控制器,其系統(tǒng)性能大大提高,增強(qiáng)了調(diào)試特性,令所支持模塊的集成級別更高,其最大亮點(diǎn)在于具有極高的代碼集成度和極低的功耗。
上傳時(shí)間: 2014-12-27
上傳用戶:chfanjiang
介紹了一種基于PIC 單片機(jī)的螺旋空壓機(jī)控制器。控制器以PIC 單片機(jī)為核心,利用其自身集成的A/D 轉(zhuǎn)換模塊,結(jié)合外圍的信號采集放大電路,繼電器控制電路,鍵盤掃描和液晶顯示電路,供電電路來完成。軟件上介紹了信息模塊的協(xié)調(diào)工作。實(shí)驗(yàn)證明,該控制器具有穩(wěn)定性高,運(yùn)行可靠,抗干擾性強(qiáng)等特點(diǎn)。
標(biāo)簽: PIC 單片機(jī) 螺桿空壓機(jī) 控制器
上傳時(shí)間: 2013-11-16
上傳用戶:lhc9102
太陽能路燈與普通路燈不同, 它采用太陽電池作為唯一的供電電源, 因?yàn)槟壳疤栯姵亟M件的成本還比較高, 因此為了降低系統(tǒng)成本, 必須采取必要的措施提高太陽能的利用率。本文在傳統(tǒng)太陽能路燈控制器的基礎(chǔ)上,著重研究通過最大功率點(diǎn)跟蹤的方法,提高太陽能的利用率,并且通過實(shí)驗(yàn)證實(shí)這是一種有效的方法。
標(biāo)簽: PIC 單片機(jī) 太陽能路燈 控制器
上傳時(shí)間: 2013-11-17
上傳用戶:水口鴻勝電器
設(shè)計(jì)了一種利用凌陽SPCE061A單片機(jī)和微機(jī)控制步進(jìn)電機(jī)的控制系統(tǒng), 采用上、下位機(jī)控制步進(jìn)電機(jī)的多種運(yùn)行方式。程序采用模塊化設(shè)計(jì), 通過PC機(jī)容易實(shí)現(xiàn)各功能設(shè)置。系統(tǒng)實(shí)現(xiàn)了對步進(jìn)電機(jī)正反轉(zhuǎn)控制以及步進(jìn)電機(jī)的速度控制,并具有功能完善、運(yùn)行穩(wěn)定、可靠性高、高性價(jià)比等特點(diǎn)。
標(biāo)簽: SPCE 061A 061 步進(jìn)電機(jī)控制
上傳時(shí)間: 2013-10-29
上傳用戶:lml1234lml
AT89C2051驅(qū)動步進(jìn)電機(jī)的電路和源碼:AT89C2051驅(qū)動步進(jìn)電機(jī)的電路和源碼 程序:stepper.c stepper.hex/* * STEPPER.C * sweeping stepper's rotor cw and cww 400 steps * Copyright (c) 1999 by W.Sirichote */#i nclude c:\mc5151io.h /* include i/o header file */ #i nclude c:\mc5151reg.hregister unsigned char j,flag1,temp; register unsigned int cw_n,ccw_n;unsigned char step[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90} #define n 400/* flag1 mask byte 0x01 run cw() 0x02 run ccw() */main(){ flag1=0; serinit(9600); disable(); /* no need timer interrupt */ cw_n = n; /* initial step number for cw */ flag1 |=0x01; /* initial enable cw() */while(1){ { tick_wait(); /* wait for 10ms elapsed */energize(); /* round-robin execution the following tasks every 10ms */ cw(); ccw(); } }}cw(){ if((flag1&0x01)!=0) { cw_n--; /* decrement cw step number */ if (cw_n !=0) j++; /* if not zero increment index j */ else {flag1&=~0x01; /* disable cw() execution */ ccw_n = n; /* reload step number to ccw counter */ flag1 |=0x02; /* enable cww() execution */ } }
上傳時(shí)間: 2013-11-21
上傳用戶:boyaboy
介紹了基于51單片機(jī)的網(wǎng)絡(luò)連接控制器的軟硬件設(shè)計(jì)方案,主要采用Atmel公司的8 b單片機(jī)AT89C51作為核心處理器,采用RealTek公司的RTL8O19AS芯片接入以太網(wǎng)。同時(shí)討論了精簡的TCP/IP協(xié)議棧的分層次實(shí)現(xiàn),實(shí)現(xiàn)了可靠的UDP數(shù)據(jù)通信。
標(biāo)簽: 51單片機(jī) 網(wǎng)絡(luò)連接 制器設(shè)計(jì)
上傳時(shí)間: 2013-11-22
上傳用戶:alex wang
SJA1000 是一個獨(dú)立的CAN 控制器它在汽車和普通的工業(yè)應(yīng)用上有先進(jìn)的特征由于它和PCA82C200 在硬件和軟件都兼容因此它將會替代PCA82C200 SJA1000 有一系列先進(jìn)的功能適合于多種應(yīng)用特別在系統(tǒng)優(yōu)化診斷和維護(hù)方面非常重要本文是要指導(dǎo)用戶設(shè)計(jì)基于SJA1000 的完整的CAN 節(jié)點(diǎn)同時(shí)本文還提供典型的應(yīng)用電路圖和編程的流程圖
上傳時(shí)間: 2013-12-13
上傳用戶:Late_Li
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1