《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > MSP430F5418使用總結
MSP430F5418使用總結
塵埃遇雪地博客
摘要: 到目前為止,已工作一月有余。培訓的時候領導就說,硬件工程師一定要清楚自己的定位,我們并不只是設計一下電路,畫畫原理圖和PCB就可以的,硬件相關的驅動程序也是要由我們來完成的,這也是硬件工程師的一項基本技能。
Abstract:
Key words :

  到目前為止,已工作一月有余。培訓的時候領導就說,硬件工程師一定要清楚自己的定位,我們并不只是設計一下電路,畫畫原理圖和PCB就可以的,硬件相關的驅動程序也是要由我們來完成的,這也是硬件工程師的一項基本技能。

  公司的產品是基于MSP430F5418開發的,雖然在學校基于其他處理器也編寫過不少驅動程序,但是面對一款新的處理器,仍然需要一個熟悉的過程,在程序的調試過程中也或多或少地遇到過一些問題,現總結如下。

 

  1)UCS

 

  時鐘如同處理器的心臟,每一個周期就是心臟的一次脈動。以前使用其他處理器時,只需要選擇合適頻率的晶體,接在XT1和XT2兩端,再加兩個電容就可以了。而MSP430F5418的時鐘系統略顯復雜,容易讓剛開始接觸它的人一頭霧水。5418的時鐘設置由UCS(Unified Clock System)來管理,使用起來比較靈活,其結構圖如下所示。

 

  ucs.jpg

 

  UCS模塊有XT1CLK和XT2CLK兩個外部時鐘源,以及VLOCLK、REFOCLK和DCOCLK(DCOCLKDIV是DCOCLK的分頻輸出)三個內部時鐘源。其中XT1CLK、REFOCLK和XT2CLK可以作為FLLREFCLK輸入到FLL單元來改變DCO的輸出。所有這些時鐘源經分頻后都可以作為MCLK、SMCLK和ACLK輸出。

  下面是一個UCS設置的例子,使用32768Hz的內部時鐘源REFOCLK,并通過FLL倍頻使MCLK為16.384MHz。

  void UCS_Init(void)

  {

  UCSCTL3 |= SELREF__REFOCLK; // 選取REFOCLK作為FLLREFCLK

  __bis_SR_register(SCG0); // 禁止FLL

  UCSCTL0 = 0x0000;

  UCSCTL1 = DCORSEL_6;

  UCSCTL2 = FLLD_1 + 499; // 將REFOCLK 500倍頻到16.384MHz

  __bic_SR_register(SCG0); // 使能FLL

  UCSCTL5 |= DIVS__32; // SMCLK 32分頻后輸出

  UCSCTL4 |= SELA__REFOCLK; // 選取REFOCLK為ACLK

  do

  {// 清除時鐘錯誤標志位

  UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);

  SFRIFG1 &= ~OFIFG; // 清除時鐘錯誤中斷標志

  } while (SFRIFG1 & OFIFG); // 等待時鐘穩定

  }

 

  2)SPI

 

  在進行SPI接口的設置時,如果處理器作為主器件,那么一定要根據從器件的時序確定正確的時鐘相位和時鐘極性。如果使能了SPI的發送中斷,需要注意的一點是,在發送第一個字節來啟動整個發送過程時,該字節的發送不是瞬間的,需要等待一定的時間,以UCB1為例即:

  UCB1TXBUF = data;

  while (UCB1STAT & UCBUSY); // 等待data發送完畢

 

  到目前為止,已工作一月有余。培訓的時候領導就說,硬件工程師一定要清楚自己的定位,我們并不只是設計一下電路,畫畫原理圖和PCB就可以的,硬件相關的驅動程序也是要由我們來完成的,這也是硬件工程師的一項基本技能。

  公司的產品是基于MSP430F5418開發的,雖然在學?;谄渌幚砥饕簿帉戇^不少驅動程序,但是面對一款新的處理器,仍然需要一個熟悉的過程,在程序的調試過程中也或多或少地遇到過一些問題,現總結如下。

 

  1)UCS

 

  時鐘如同處理器的心臟,每一個周期就是心臟的一次脈動。以前使用其他處理器時,只需要選擇合適頻率的晶體,接在XT1和XT2兩端,再加兩個電容就可以了。而MSP430F5418的時鐘系統略顯復雜,容易讓剛開始接觸它的人一頭霧水。5418的時鐘設置由UCS(Unified Clock System)來管理,使用起來比較靈活,其結構圖如下所示。

 

  ucs.jpg

 

  UCS模塊有XT1CLK和XT2CLK兩個外部時鐘源,以及VLOCLK、REFOCLK和DCOCLK(DCOCLKDIV是DCOCLK的分頻輸出)三個內部時鐘源。其中XT1CLK、REFOCLK和XT2CLK可以作為FLLREFCLK輸入到FLL單元來改變DCO的輸出。所有這些時鐘源經分頻后都可以作為MCLK、SMCLK和ACLK輸出。

  下面是一個UCS設置的例子,使用32768Hz的內部時鐘源REFOCLK,并通過FLL倍頻使MCLK為16.384MHz。

  void UCS_Init(void)

  {

  UCSCTL3 |= SELREF__REFOCLK; // 選取REFOCLK作為FLLREFCLK

  __bis_SR_register(SCG0); // 禁止FLL

  UCSCTL0 = 0x0000;

  UCSCTL1 = DCORSEL_6;

  UCSCTL2 = FLLD_1 + 499; // 將REFOCLK 500倍頻到16.384MHz

  __bic_SR_register(SCG0); // 使能FLL

  UCSCTL5 |= DIVS__32; // SMCLK 32分頻后輸出

  UCSCTL4 |= SELA__REFOCLK; // 選取REFOCLK為ACLK

  do

  {// 清除時鐘錯誤標志位

  UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);

  SFRIFG1 &= ~OFIFG; // 清除時鐘錯誤中斷標志

  } while (SFRIFG1 & OFIFG); // 等待時鐘穩定

  }

 

  2)SPI

 

  在進行SPI接口的設置時,如果處理器作為主器件,那么一定要根據從器件的時序確定正確的時鐘相位和時鐘極性。如果使能了SPI的發送中斷,需要注意的一點是,在發送第一個字節來啟動整個發送過程時,該字節的發送不是瞬間的,需要等待一定的時間,以UCB1為例即:

  UCB1TXBUF = data;

  while (UCB1STAT & UCBUSY); // 等待data發送完畢

 

  3)UART

 

  通過串口調試助手向UART發送數據時,如果使能了接收中斷,那么每接收一個字符都會觸發一次中斷,兩次中斷之間程序是會回到主程序繼續執行的。如何判斷接收數據的結束?一種方法是固定指令的長度,以長度來界定;另一種更常用的方法是設計一定的通信協議來針對不定長的指令,如把每個指令都封裝成幀,給其加上特定的幀頭、幀尾。

 

  4)RTC

 

  MSP430F5418的RTC在日歷模式下存在BUG,直接對日期及時間寄存器賦值經常會不成功。解決的方法是讀寫日期和時間寄存器時使用TI公司在RTC_Workaround中給出的例程。

 

  5)其他

 

  設計中應盡量避免中斷嵌套,中斷服務程序中的代碼量盡量少。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久精品国产精品亚洲综合 | 亚洲综合成人婷婷小说| 一区二区三区在线高清| 国产日韩精品一区二区三区 | 一区二区三区日韩在线观看| 欧美日韩一区二区在线播放| 久久超碰97中文字幕| 亚洲国产日韩欧美在线图片| 亚洲乱码一区二区| 国产伦理一区| 国产精品乱子久久久久| 每日更新成人在线视频| 久久久久久久久久久一区 | 欧美成人资源网| 欧美一区二区三区免费大片| 亚洲一区二区在线视频| 亚洲午夜在线观看| 亚洲天堂久久| 亚洲一区黄色| 亚洲女爱视频在线| 亚洲欧美日韩国产中文| 亚洲永久免费| 欧美伊人影院| 一个色综合导航| 正在播放亚洲| 亚洲欧美日韩视频一区| 亚洲毛片一区| 99re6热只有精品免费观看 | 一区二区日韩伦理片| 久久精品视频亚洲| 亚洲一区在线看| 亚洲国产精品第一区二区| 国产欧美精品| 国产私拍一区| 精品动漫3d一区二区三区免费版 | 亚洲成人资源网| 国产亚洲毛片在线| 黄色国产精品| 亚洲高清毛片| 亚洲麻豆av| 亚洲女同精品视频| 亚洲视频综合在线| 亚洲老司机av| 亚洲视频www| 一区二区av在线| 亚洲综合电影一区二区三区| 久久精品二区| 欧美在线免费观看| 亚洲欧美精品在线| 亚洲高清视频一区| 一区二区三区四区国产| 亚洲精品一区二区三区福利| 久久国产精品99精品国产| 亚洲日本成人| 亚洲欧美久久久| 久久天天躁夜夜躁狠狠躁2022 | 一区二区三区www| 欧美一二三视频| 亚洲视频大全| 欧美一区三区二区在线观看| 亚洲人在线视频| 亚洲精品一级| 亚洲欧美激情诱惑| 免费成人在线观看视频| 鲁大师影院一区二区三区| 久久久成人精品| 欧美精品v日韩精品v韩国精品v| 欧美性jizz18性欧美| 国产一级久久| 韩日成人av| 极品尤物av久久免费看| 亚洲免费观看在线视频| 99精品国产在热久久| 99视频在线精品国自产拍免费观看| 亚洲人在线视频| 亚洲男人影院| 日韩视频一区二区| 这里只有精品视频| 久久视频在线看| 国产精品视频yy9299一区| 国产精品性做久久久久久| 亚洲高清不卡在线| 午夜国产精品视频| 宅男66日本亚洲欧美视频| 久久影音先锋| 国产精品日韩欧美一区| 国产亚洲欧洲一区高清在线观看| 亚洲精品久久久久| 久久成人亚洲| 西西裸体人体做爰大胆久久久| 欧美一区日韩一区| 欧美日韩成人在线播放| 激情久久久久久| 午夜精品久久久久久久久久久久| 99精品久久| 午夜亚洲影视| 欧美日本久久| 亚洲国产女人aaa毛片在线| 日韩亚洲在线| 亚洲国产欧洲综合997久久| 久久xxxx| 欧美精品二区三区四区免费看视频| 欧美日韩亚洲激情| 国产免费观看久久| 伊人久久噜噜噜躁狠狠躁| 午夜精品www| 亚洲卡通欧美制服中文| 亚洲一区二区三区四区在线观看| 欧美www在线| 欧美四级电影网站| 亚洲欧洲在线一区| 亚洲欧美精品一区| 亚洲激情国产| 亚洲综合国产激情另类一区| 久久精品二区| 国产精品青草久久| 中日韩在线视频| 亚洲国产乱码最新视频| 一区二区三区日韩精品视频| 亚洲欧美中文另类| 欧美日韩一区二区三区在线观看免| 国产午夜精品一区理论片飘花 | 国产一区二区久久| 亚洲精选在线| 亚洲精选大片| 欧美99在线视频观看| 国产精品一区二区三区免费观看| 日韩视频国产视频| 亚洲第一黄网| 久久久久88色偷偷免费| 欧美视频国产精品| 99精品欧美一区二区蜜桃免费| 一本色道久久加勒比精品| 久久久在线视频| 黄色成人在线网址| 亚洲国产欧美在线| 欧美一级久久| 国产农村妇女毛片精品久久莱园子| 亚洲国产成人精品女人久久久| 亚洲二区在线观看| 免费久久99精品国产| 国产精品日韩在线| 午夜免费日韩视频| 久久精品亚洲乱码伦伦中文| 国产亚洲精品久久久久婷婷瑜伽| 99在线精品视频| 亚洲人体偷拍| 欧美日韩色一区| 亚洲一区二区三区色| 99精品视频网| 久久亚洲影音av资源网| 影音先锋中文字幕一区| 99re6热只有精品免费观看| 欧美视频国产精品| 亚洲日本成人网| 亚洲一区二区在线观看视频| 国产精品成人在线观看| 亚洲精品一区二区三区四区高清| 一区二区激情小说| 欧美精品一区在线| 99热在这里有精品免费| 日韩网站在线观看| 免费观看一区| 一区二区视频在线观看| 亚洲精一区二区三区| 国产精品久久久久久久久久久久久 | 久久只精品国产| 国产亚洲一区二区在线观看| 亚洲激情视频在线观看| 欧美视频免费在线观看| 99天天综合性| 久久精品国产亚洲精品 | 久久国产日韩欧美| 欧美激情精品| 亚洲人成人一区二区在线观看| 国产精品99久久久久久人| 国产欧美亚洲一区| 亚洲欧美日韩精品久久亚洲区 | 悠悠资源网亚洲青| 亚洲丝袜av一区| 韩国亚洲精品| 亚洲国产欧美在线| 国产精品a久久久久久| 亚洲高清视频的网址| 国产精品乱码一区二三区小蝌蚪 | 美女网站在线免费欧美精品| 亚洲视频成人| 欧美大尺度在线观看| 亚洲精品小视频在线观看| 久久国产天堂福利天堂| 国内精品视频久久| 一本久久青青| 韩国女主播一区| 亚洲精品国产精品国自产观看浪潮 | 亚洲精选在线观看| 久久一区中文字幕| 亚洲在线网站| 久久这里只有精品视频首页| 亚洲国产成人av| 久久99伊人|