第一篇:Linux芯片總結
基于Cortex-M3內核的STM32嵌入式處理器的學習報告
一、Cortex-M3內核概述:
Cortex‐M3是一個32位處理器內核,它內部的數據路徑是32位的,寄存器是32位的,存儲器接口也是32位的。CM3采用了哈佛結構,擁有獨立的指令總線和數據總線,可以讓取指與數據訪問并行不悖。Cortex-M3采用ARMv7-M構架,不僅支持Thumb-2指令集,而且擁有很多新特性。較之ARM7-TDMI,Cortex-M3 擁有更強勁的性能、更高的代碼密度、位帶操作、可嵌套中斷、低成本、低功耗等眾多優勢。
CM3提供一個可選的MPU,而且在需要的情況下也可以使用外部的cache;另外在CM3中,Both小端模式和大端模式都是支持的。CM3內部還附贈了好多調試組件,用于在硬件水平上支持調試操作,如指令斷點,數據觀察點等。另外,它為支持更高級的調試,還有其它可選組件,包括指令跟蹤和多種類型的調試接口。
二、Cortex-M3內核配置
ARMCortex-M3采用哈佛結構,并選擇了適合于微控制器應用的三級流水線,但增加了分支預測功能,可以預取分支目標地址的指令,使分支延遲減少到一個時鐘周期。針對業界對ARM處理器中斷響應的問題,Cortex-M3首次在內核上集成了嵌套向量中斷控制器(NVIC)。Cortex-M3的中斷延遲只有12個時鐘周期(ARM7需要24-42個周期);Cortex-M3還使用尾鏈技術,使得背靠背中斷的響應只需要6個時鐘周期(ARM7需要大于30個周期)。Cortex-M3采用了基于棧的異常模式,使得芯片初始化的封裝更為簡單。
Cortex-M3加入了類似于8位處理器的內核低功耗模式,支持3種功耗管理模式:通過一條指令立即睡眠、異常/中斷退出時睡眠和深度睡眠,使整個芯片的功耗控制更為有效。
CM3 擁有通用寄存器R0‐R15以及一些特殊功能寄存器。R0‐R12是最通用的,但是絕大多數的16位指令只能使用R0‐R7(低組寄存器),而32位的 Thumb‐2指令則可以訪問所有通用寄存器,特殊功能寄存器有預定義的功能,而且必須通過專用的指令來訪問。Cortex‐M3中的特殊功能寄存器包括:程序狀態寄存器組(PSRs或xPSR)、中斷屏蔽寄存器組、控制寄存器(CONTROL)。
三、Cortex-M3的性能與特點
① Cortex-M3的許多指令都是單周期的——包括乘法相關指令。并且從整體性能上看,Cortex-M3基于ARMv7-M架構優于絕大多數的內核;
② 支持Thumb-2指令集,為編程帶來了更多的靈活性,Cortex-M3的代碼密度更高,對存儲器的需求更少;
③ Cortex-M3有先進的中斷處理功能,其內建的嵌套向量中斷控制器支持多達240條外部中斷輸入,向量化的中斷功能劇烈地縮短了中斷延遲,因為不需要軟件去判斷中斷源,而且中斷的嵌套也是在硬件水平上實現的,不需要軟件代碼來實現; ④ Cortex-M3需要的邏輯門數少,所以先天就適合低功耗要求的應用,CM3的設計是全靜態的、同步的、可綜合的,所以任何低功耗的或是標準的半導體工藝均可放心使用;
⑤ Cortex-M3支持傳統的JTAG基礎上,還支持更新更好的串行線調試接口;
四、基于Cortex-M3的STM32F103ZET6嵌入式開發板
國內Cortex-M3市場,ST(意法半導體)公司的STM32無疑是最大贏家,作為 Cortex-M3內核最先進的兩個公司之一,ST 無論是在市場占有率,還是在技術支持方面,都是遠超其他對手。在Cortex-M3芯片的選擇上,STM32無疑是我們學習使用Cortex-M3的首選開發板。
作為初學者來學習使用Cortex-M3內核其實會很困難,而通過運用功能強大的集成開發板stm32,則能夠加深我們對內核運用的了解;每一套開發板都會配套一個固件庫,這個固件庫函數可以是我們不完全了解Cortex-M3內核寄存器的工作方式前提下,通過調用庫函數實現對寄存器的控制,而且寄存器版本的STM32開發指南能夠幫助我們更進一步認識寄存器的工作。
STM32F103ZET6屬于中低端的32位ARM微控制器,有512K的片內Flash存儲、64K字節的SRAM等高性價比的配置。作為一款常用的增強型系列微控制器,STM32F103ZET6適用于電力電子系統方面、電機驅動、應用控制、醫療、手持設備、PC游戲外設等。
我之前參加的一位工程學院研究生導師的課題項目----“風送式智能噴霧技術”就利用到STM32F103ZET6作為嵌入式控制器。我首先將STM32F103ZET6的模塊化功能與項目要求匹配之后,再集成運用到這個項目實際當中;比如驅動蠕動泵,我就使用到pwm輸出模塊,之后我就學習STM32F的有關庫函數以及相應定時器、GPIO的配置;又比如比例閥的控制開度運用到A/D轉換模塊,我除了知道對應的庫函數參數設置,同時也要學習了解ADC控制寄存器,每個要轉換的通道以及轉換速率的計算;這樣保證了在接觸嵌入式處理器的學習之中不至于生活實際脫節,又能很好去了解內核的寄存器工作情況。
第二篇:常用芯片總結
常用芯片總結
1.音頻pcm編碼DA轉換芯片cirrus logic的cs4344,cs4334
4334是老封裝,據說已經停產,4344封裝比較小,非常好用。還有菲利譜的8211等。
2.音頻放大芯片4558,LM833,5532,此二芯片都是雙運放。
3.244和245,由于244是單向a=b的所以只是單向驅動。而245是用于數據總線等雙向驅動選擇。同時245的封裝走線非常適合數據總線,它按照順序d7-d0。
4.373和374,地址鎖存器,5.max232和max202,max3232 TTL電平轉換
6.網絡接口變壓器。需要注意差分信號的等長和盡量短的規則。
7.amd29系列的flash,有bottom型和top型,主要區別是loader區域設置在哪里?bottom型的在開始地址空間,top型號的在末尾地址空間,我感覺有點反,但實際就是這么命名的。
8.74XX164,它是一個串并轉換芯片,可以把串行信號變為并行信號,控制數碼管顯示可以用到。
9.網卡控制芯片CS8900,ax88796,rtl8019as,dm9000ae當然這些都是用在isa總線上的。24位AD:CS5532,LPC2413,ADS1240,ADS1241效果還可以儀表運放:ITL114,不過據說功耗有點大
音頻功放:一般用LM368
音量控制IC: PT2257,Pt2259.PCM雙向解/編碼 :/ CW6691.cirruslogic公司比較多
2.4G雙工通訊IC CC2500
1.cat809,max809,這些是電源監控芯片,當低于某一電壓以后比如3.07v等出現一個100ms的低電平,實現復位功能。當然這個要求是低復位。max810,cat810等就是出現一個100ms的高電平。還有一些復位芯片,既有高又有低復位輸出,同時還有帶手動觸發復位功能,型號可以查找一下。
2.pericom的pt7v(pi6cx100-27)壓控振蕩器,脈沖帶寬調制。
1、語音編解碼TP3054/3057,串行接口,帶通濾波。
2、現在用漢仁的網卡變壓器HR61101G接在RTL8019AS上,兼容的有VALOR的FL1012、PTT的PM24-1006M。
3、驅動LED點陣用串行TPIC6B595,便宜的兼容型號HM6B59
5交換矩正: mt 88168*16
雙音頻譯碼器: 35300
我們原來使用單獨的網絡變壓器,如常用的8515等。現在我們用YDS的一款帶網絡變壓器的RJ45接口。其優點:1.體積僅比普通的RJ45稍微大一點。
2.價格單買就6元,我覺得量稍微大點應該在4-5左右或者更低。
3.連接比較方便只要把差分信號注意就可以了。
缺點:用的人不多,不知道是因為是新,還是性能不好,我們用了倒沒什么問題。不過沒有做過抗雷擊等測試,我覺得既然YDS做了這樣的產品,性能應該問題不大。我覺得最好再加一點典型電路的原理圖等。比如說網絡接口,串口232,485通訊,I2C級連,RAM連接,FLASH連接,電壓轉換,時鐘電路,打印接口電路,以及如何在沒有典型電路的時候,把芯片和已有系統有效連接等。首先要有開關電源需求,額定電流,功率,幾路輸出,主路設計等等如何測試其性能指標達到要求。
便宜的液晶驅動芯片HT1621
要求一般的485芯片SN308
2CH375A USB主控芯片 南京沁恒的數據采集,我用tlc2543, AD7656,AD976
運放OP27,很好用,經受住時間考驗,連續3年
我介紹一下我現在用的光耦,就是光電隔離:
TLP521-1 TLP521-2 TLP521-4 線性光耦hcr210不錯
其實我只用過TLP521-1,很好用的,TLP521-2 的價格比 TLP521-1要貴兩倍多,不只為什么,恩 LED導通電流是小了一點,它們由于速率有點低所以推薦高速光耦
6N1361M
6N13710M
單通道HDLC協議控制器:MT8952;
音頻放大器LM2904;
512k*8帶軟件保護可段/整片擦除的flah28SF040;
關于電壓轉換芯片的一點體會:AD7865做電機控制的使用很不錯,四路350K,14位精度,單電壓,+/-10V輸入,推薦使用AD7864的升級用。掉電保存可以選擇NVRAM,帶電池的,maxim有很多
74ALVC164245,電平轉換芯片,3.3V電平和5V電平總線接口用
74HCT14:復位隔離緩沖
ULN2003:達林頓輸出的驅動芯片,帶繼電器滅弧的二極管,驅動繼電器不錯
MAX708:復位芯片,帶高低電平和手動復位功能
CPU:雖然不推薦選用***貨,但是多一個選擇也不錯,SuperH系列的CPU性能不錯
1:usb控制器,cypress公司的cy7c63723,cy7c68013,63723是otp的建議初次搞usb接口的不要使用,調試起來很麻煩。
2:cpld,fpga用xilinx的型號很全
3:2.4g rf收發芯片nrf2401a
看門狗 813、705、706等
1、LI358/LM324 小信號放大器,通用型的當然你要求太高就的另選了。
2、24C08/24C16 EEPROM 感覺還可以!
3、MPS3100
1,可做充電器的電壓升降的IC,SP34063,感覺使用起來還是聽方便的2,RF IC,NRF2401,NREF2402,還有功能更強的集成增強型8051內核的好象是 NRF24E1,不過我沒用過
3,音頻功放TPA021
13.HT12D,是與“HT12E”對應的解碼芯片。也有紅外的解碼芯片。
4.IRF640N,MOSFET,電力場效應管
電能(ATT7022A、SA9904B)、壓力(PGA309)、溫度(DS18B20、K型熱電偶MAX6675)、濕度(SHT10)、液位(LM1042)、煙霧(NIS-09C+MC145018)、紅外(HS0001)、距離(TDC-GP1)、轉速(KM115-1),codec(AMBE-2000)、can(SJA1000)、gps(u-blox)、無線數傳(nRF905、nRF9e5)
cirruslogic--cs5460計量芯片,0.1級
ADE7758三相電力計量芯片0.5級
ATT7022三相電能計量芯片0.5級,可作多功能表
24bit的有AD7712AN
溫度傳感器:AD592CN,環境穩定25度時精度,+/-0.5度
第三篇:FPGA芯片配置總結
FPGA芯片配置總結
[日期:2010-05-22 ] [來源:本站編輯 作者:佚名] [字體:大 中 小](投遞新聞)
1.FPGA器件有三類配置下載方式:主動配置方式(AS)和被動配置方式(PS)和最常用的(JTAG)配置方式。
AS由FPGA器件引導配置操作過程,它控制著外部存儲器和初始化過程,EPCS系列.如EPCS1,EPCS4配置器件專供AS模式,目前只支持Cyclone系列。使用Altera串行配置器件來完成。Cyclone期間處于主動地位,配置期間處于從屬地位。配置數據通過DATA0引腳送入 FPGA。配置數據被同步在DCLK輸入上,1個時鐘周期傳送1位數據。(見附圖)
PS則由外部計算機或控制器控制配置過程。通過加強型配置器件(EPC16,EPC8,EPC4)等配置器件來完成,在PS配置期間,配置數據從外部儲存部件,通過DATA0引腳送入FPGA。配置數據在DCLK上升沿鎖存,1個時鐘周期傳送1位數據。(見附圖)
JTAG接口是一個業界標準,主要用于芯片測試等功能,使用IEEE Std 1149.1聯合邊界掃描接口引腳,支持JAM STAPL標準,可以使用Altera下載電纜或主控器來完成。
FPGA在正常工作時,它的配置數據存儲在SRAM中,加電時須重新下載。在實驗系統中,通常用計算機或控制器進行調試,因此可以使用PS。在實用系統 中,多數情況下必須由FPGA主動引導配置操作過程,這時FPGA將主動從外圍專用存儲芯片中獲得配置數據,而此芯片中fpga配置信息是用普通編程器將設計所得的pof格式的文件燒錄進去。專用配置器件:epc型號的存儲器
常用配置器件:epc2,epc1,epc4,epc8,epc1441(現在好象已經被逐步淘汰了)等
對于cyclone cycloneII系列器件,ALTERA還提供了針對AS方式的配置器件,EPCS系列.如EPCS1,EPCS4配置器件也是串行配置的.注意,他們只適用于cyclone系列.除了AS和PS等單BIT配置外,現在的一些器件已經支持PPS,FPS等一些并行配置方式,提升配置了配置速度。當然所外掛的電路也和PS有一些區別。還有處理器配置比如JRUNNER 等等,如果需要再baidu吧,至少不下十種。比如Altera公司的配置方式主要有Passive Serial(PS),Active Serial(AS),Fast Passive Parallel(FPP),Passive Parallel Synchronous(PPS),Passive Parallel Asynchronous(PPA),Passive Serial Asynchronous(PSA),JTAG等七種配置方式,其中Cyclone支持的配置方式有PS,AS,JTAG三種.對FPGA芯片的配置中,可以采用AS模式的方法,如果采用EPCS的芯片,通過一條下載線進行燒寫的話,那么開始的“nCONFIG,nSTATUS”應該上拉,要是考慮多種配置模式,可以采用跳線設計。讓配置方式在跳線中切換,上拉電阻的阻值可以采用10K
3,在PS模式下tip:如果你用電纜線配置板上的FPGA芯片,而這個FPGA芯片已經有配置芯片在板上,那你就必須隔離纜線與配置芯片的信號.(祥見 下圖).一般平時調試時不會把配置芯片焊上的,這時候用纜線下載程序.只有在調試完成以后,才把程序燒在配置芯片中, 然后將芯片焊上.或者配置芯片就是可以方便取下焊上的那種.這樣出了問題還可以方便地調試.在AS模式下tip: 用過一塊板子用的AS下載,配置芯片一直是焊在板子上的,原來AS方式在用線纜對配置芯片進行下載的時候,會自動禁止對FPGA的配置,而PS方式需要電路上隔離。
4,一般是用jtag配置epc2和flex10k,然后 epc2用ps方式配置flex10k.這樣用比較好.(這是我在網上看到的,可以這樣用嗎?懷疑中)望達人告知.5,下載電纜,Altera下的下載電纜分為byteblaster和byteblasterMV,以及ByteBlaster II,現在還
推出了基于USB-blaster.由于BB基本已經很少有人使用,而USB-Blaster現在又過于昂貴,這里就說一下BBII和 BBMV的區別.BBII支持多電壓供電5.5v,3.3v,2.5v,1.8v;
BBII支持三種下載模式:AS,可對Altera的As串行配置芯片(EPCS系列)進行編程PS,可對FPGA進行配置
JTAG,可對FPGA,CPLD,即Altera配置芯片(EPC系列)編程而BBMV只支持PS和JTAG6,一般在做FPGA實驗板,(如cyclone系列)的時候,用AS+JTAG方式,這樣可以用JTAG方式調試,而最后程序已經調試無誤了后,再用 AS模式把程序燒到配置芯片里去,而且這樣有一個明顯的優點,就是在AS模式不能下載的時候,可以利用Quartus自帶的工具生成JTAG模式下可以利用jic文件來驗證配置芯片是否已經損壞,方法祥見附件.7.Altera的FPGA可以通過單片機,CPLD等加以配置,主要原理是滿足datasheet中的時序即可,這里我就不多說了,有興趣的朋友可以看看下面幾篇文章,應該就能夠明白是怎么回事了.8.配置時,quartus軟件操作部分:
(1).assignment-->device-->device&pin options-->選擇configuration scheme,configuaration mode,configuration device,注
意在不支持遠程和本地更新的機器中configuration mode不可選擇,而configuration device中會根據不同的配置芯片產生pof文件,如果選擇自動,會選擇最小密度的器件和適合設計
(2).可以定義雙口引腳在配置完畢后的作用,在剛才的device&pin option-->dual-purpose pins-->,可以在配置完畢后繼續當I/O口使用
(3).在general菜單下也有很多可鉤選項,默認情況下一般不做改動,具體用法參見altera configuration handbook,volume2,sectionII.(4)關于不同后綴名的文件的適用范圍:
sof(SRAM Object File)當直接用PS模式下將配置數據下到FPGA里用到,USB BLASTER,MASTERBLASER,BBII,BBMV適用,quartusII會自動生成,所有其他的配置文件都是由sof生成的.pof(Programmer Object File)也是由quartusII自動生成的,BBII適用,AS模式下將配置數據下到配置芯片中
rbf(Raw Binary File)用于微處理器的二進制文件.在PS,FPP,PPS,PPA配置下有用處
rpd(Raw Programing Data File)包含bitstream的二進制文件,可用AS模式配置,只能由pof文件生成hex(hexadecimal file)這個就不多說了,單片機里很多
ttf(Tabular Text File)適用于FPP,PPS,PPA,和bit-wide PS配置方式
sbf(Serial Bitstream File)用PS模式配置Flex 10k和Flex6000的jam(Jam File)專門用于program,verigy,blank-check
參考鏈接:http:///news/2010-05/2141.htm
第四篇:74LS192芯片總結
74LS192引腳圖管腳及功能表
74LS192是同步十進制可逆計數器,它具有雙時鐘輸入,并具有清除和置數等功能,其引腳排列及邏輯符號如下所示:
(a)引腳排列
(b)邏輯符號 圖中:為置數端,為加計數端,為減計數端,為非同步進位輸出端,計數器輸入端,為非同步借位輸出端,P0、P1、P2、P3為為清除端,Q0、Q1、Q2、Q3為數據輸出端。
其功能表如下:
例如:用74LS192芯片設計出三十進制計數器
用 192 采用級聯法
做成 3*10 的一個芯片滿十進一
另一個芯片到3 即0011的時候提供清零脈沖
恢復到0000
詳見圖
第五篇:嵌入式linu學習心得
嵌入式Linux學習心得
1、Linux命令
ls:查看目錄-l以列表方式查看;ls –l 與ll的功能一樣 pwd: 查看當前的目錄
cd:改變當前操作目錄cd /直接跳到根目錄 cd..回到上一級目錄 cat: 打印顯示當前文件的內容信息
mkdir:創建目錄
fdisk: 查看硬盤分區信息,-l以列表方式查看
->代表是鏈接文件,類似window下的快捷方式。
cp: 復制命令,例子cp 文件名 /home/dir/
mv: 移動或改名,如mv sonf.confsonf.txt(改名)移動:mv sonf.conf / rm:刪除命令,如rm –f test.c;如刪除目錄rm –fr d
man:查看某個命令的幫助,man 命令
2、各系統目錄的功能
drw—r—w--:d代表是目錄,drw代表當前用戶的權限,r代表組用戶的權限,w代表其它用戶的權限。x代表有執行權限。
/boot/gruff.conf: 啟動引導程序
/dev:brw—rw--:b代表是塊設備。Linux設備有三種,塊設備(b開頭)、字符設備(c開頭)、網絡設備。had代表第一個硬盤,hdb代表第二個硬盤。Hdb2代表第二塊硬盤的第二個分區。3,67代表主設備為3,從設備為67./etc:存放的是系統的配置文件。Inittab文件存放不同啟動方式下必須啟動的進程。Inittab文件中有6個啟動level,wait中對應著6個level的目錄,respawn代表當一個進程被意外終止了,但會自動啟動的進程,如守護進程。rc.d目錄中存放了一個rc.sysinit文件,里面存放系統初始化配置信息。/etc還有一個vsftpd里面存放tcp、ftp的配置。
/home : 用戶目錄,存放用戶的文件,/lib:存放庫文件,后綴為so的文件代表動態鏈接庫。
/lost+found:系統意外終止,存放一些可以找回的文件。
/mnt:掛載外部設備,如掛載光驅:mount –t /dev/cdrom/mnt/cdrom,如
果在雙系統中,要查看windows中D盤的文件,首先應該將D盤的文件映射過來,mount –t /dev/hda2/mnt/windows/d
/opt:用戶安裝的應用程序
/proc:是系統運行的映射,比較重要。里面的文件數字代表進程號。每個進程號目錄下包含進程的基本信息。還有其他信息,如cpuinfo等,內核支持的文件系統filesystem等。系統支持的中斷interrupts,iomen代表內存分配情況。ioport存放IO端口號。還有分區信息,modole信息,狀態信息,版本信息
對于Linux的設備驅動程序,有兩種加載模式,一種是直接加載進linux內核,一種是以模塊的方式加載到內核。
/sbin: 系統管理的一些工具。如poweroff關機工具。
/usr: 安裝系統時很多文件放在此目錄下面,包含一些更新等,include包含的頭文件,lib 是Linux的庫文件,src包含Linux2.4的內核源碼
/var:存放是臨時變量
3、