<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 系統(tǒng)級(jí)ADC芯片MSC1210介紹及應(yīng)用

          系統(tǒng)級(jí)ADC芯片MSC1210介紹及應(yīng)用

          作者: 時(shí)間:2012-06-06 來(lái)源:網(wǎng)絡(luò) 收藏

          摘要:德州儀器公司最近出品的帶有高性能8051內(nèi)核的級(jí)——。說(shuō)明8051內(nèi)核單片機(jī)的特點(diǎn)、懷能以及片上Flash、24位高精度A/D轉(zhuǎn)換器的使用方法。利用豐富的片上資源,可以很簡(jiǎn)單地構(gòu)建精密數(shù)據(jù)采集。

          本文引用地址:http://www.ex-cimer.com/article/171343.htm

          德州儀器公司推出的級(jí)高精度系列,內(nèi)置24位低功∑—Δ前端信號(hào)調(diào)理電路—多路模擬開(kāi)關(guān)、緩沖器、PGA、電壓參考,且集成了高性能8051處理器內(nèi)核、Flash存儲(chǔ)器和32位累加器、兼容SPI串口等多片上外設(shè)。對(duì)于要求何種小、集成度高、精度高的測(cè)量系統(tǒng),MSC1210是理想的選擇。

          MSC1210的系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

          1 MSC1210中高性能8051內(nèi)核

          MSC1210系列的所有指令與標(biāo)準(zhǔn)801兼容,相同各標(biāo)志位、功能寄存器的功能也是一致的。但MSC1210在速度上有很大的提高:對(duì)于同樣的外部時(shí)鐘,指令執(zhí)行速度提高1.5~3倍,這就使用戶可以使用較低的外部時(shí)鐘,以降低系統(tǒng)的哭聲和功耗。此外,MSC1210相對(duì)8051單片機(jī)還新增了一些功能寄存器,以完成對(duì)外設(shè)的控制功能。如可編程看門狗定時(shí)器,對(duì)系統(tǒng)程序的運(yùn)行進(jìn)行監(jiān)控,確保系統(tǒng)可靠運(yùn)行。片上具有兩個(gè)全雙工的UART,使得在開(kāi)發(fā)模式有一個(gè)串口被占用的情況下,仍有一個(gè)可留給用戶使用。增加的帶有FIFO的SPI接口和PWM,為特定提供了極大的方便。

          MSC1210還提供了雙數(shù)據(jù)指針,可以加速整塊數(shù)據(jù)的移動(dòng)。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),還可以使訪問(wèn)周期延展2~9個(gè)指令周期,以適應(yīng)不同的外設(shè)速度。32位的累加器也可顯著地減少系統(tǒng)開(kāi)銷。它可在幾個(gè)指令周期內(nèi)完成24位ADC結(jié)果的加法或移位操作,而同樣的操作用軟件完成則需要上百個(gè)指令周期。

          MSC1210內(nèi)部的時(shí)鐘控制電路可以方便地設(shè)置不同的時(shí)鐘信號(hào)。其秒、毫秒、微秒定時(shí)中斷寄存器可以為系統(tǒng)定時(shí)控制提供方便,如設(shè)置內(nèi)部Flash擦除時(shí)間、寫(xiě)入時(shí)間。MSC1210的所有I/O口都可以通過(guò)寄存器,配置成標(biāo)準(zhǔn)8051(上拉)、CMOS輸出、漏極開(kāi)路輸出、輸入四種方式中的一種。


          2 MSC1210中存儲(chǔ)器配置和使用

          MSC1210的片內(nèi)存儲(chǔ)器包括:特殊功能豁口(SFR),F(xiàn)lash寄存器,Scratchpad RAM,Boot Rom和SRAM。MSC1210內(nèi)置256字節(jié)的片內(nèi)數(shù)據(jù)存儲(chǔ)器和128字節(jié)的SFR,這與8051內(nèi)核單片機(jī)是相同的;唯一的區(qū)別是MSC1210定義了更多的特殊功能寄存器。MSC1210的位地址空間也與8051相同,內(nèi)部RAM中的20H~2FH以及SFR中以0或8結(jié)尾的字節(jié),都是可位尋址的。

          MSC1210中還有2KB的Boot Rom,用來(lái)控制串/并行編程時(shí)的操作。當(dāng)Boot Rom使能時(shí),其中的程序在用戶模式下是可以訪問(wèn)的,這時(shí),它的程序被定位在F800H~FFFFH;而在編程模式下,Boot Rom被定位在程序存儲(chǔ)器開(kāi)始的2KB中。Boot Rom中含有一些調(diào)試編程常用的程序,如:

          void autobaud(void);//設(shè)置波特率

          char write_flash_chk(int fadd,char fdat,char fdm);//寫(xiě)Flash并校驗(yàn)

          根據(jù)型號(hào)的不同,MSC1210系列有4KB到32KB的Flash存儲(chǔ)器。此外,片內(nèi)還提供1KB的SRAM作為數(shù)據(jù)存儲(chǔ)器。它也是通過(guò)MOVX指令訪問(wèn)的。SRAM的地址可從0000H或8000H開(kāi)始,而Flash數(shù)據(jù)存儲(chǔ)器的地址緊接SRAM。

          Flash存儲(chǔ)器作為數(shù)據(jù)存儲(chǔ)器使用前,首先要對(duì)硬件寄存器0(HCR0)的低3位進(jìn)行設(shè)置,分配數(shù)據(jù)存儲(chǔ)空間的大小。根據(jù)晶振頻率,設(shè)置MSEC和USEC寄存器來(lái)提供Flash存儲(chǔ)器的擦除和寫(xiě)時(shí)間。擦除和寫(xiě)入可以直接調(diào)用Boot Rom中的程序,編程示意代碼如下:

          #includestdio.h> //頭文件引用

          #includemsc1210.h>

          #include“rom1210.h”

          #define PAGESTART 0x0400 //定義進(jìn)行改寫(xiě)的頁(yè)面

          #define PAGESIZE 0x80

          char xdata*Pflashpage;定義指向此頁(yè)面的指針

          char xdata buffer[PAGESIZE];//在XRAM里開(kāi)辟緩沖區(qū)

          int main()

          {char result;unsigned char i;

          autobaud();//調(diào)用BootRom中子程序,自動(dòng)設(shè)置波特率,與計(jì)算機(jī)通信,返回調(diào)試信息

          Pflashpage=(char xdata*)PAGESTART

          USEC=12-1;MSEC=12000-1; //以12MHz晶振為例,設(shè)置

          ………… //毫秒、微秒寄存器

          for(i=0;ipagesize;i++)//從Flash中讀取一個(gè)頁(yè)面到XRAM

          buffer[i]=*Pflashpage++;

          buffer[0]+=1; //改變首字節(jié)值以重新寫(xiě)入

          page_erase(PAGESTART,0XFF,DATA_FLASH);//擦除頁(yè)面內(nèi)容,BootRom內(nèi)帶程序

          result=0;

          for(i=0;ipagesize;i++)

          result=result|write_flash_chk(pagestart+i,buffer[i],DATA_FLASH);//將修改后的數(shù)據(jù)寫(xiě)入,Boot Rom內(nèi)帶程序

          存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理



          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();