找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4853|回復: 4
打印 上一主題 下一主題
收起左側

dsPIC30F的操作問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:342505 發(fā)表于 2018-7-14 17:19 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
使用MPLAB開發(fā)環(huán)境,使用C30編譯器,PICkit3.5調試工具,進行CANopenNode協(xié)議棧移植。上述的背景,我在修改完時鐘參數(shù)(開發(fā)板使用外部11.0592Mhz晶振)后,Debugger情況下可以運行,也能收發(fā)數(shù)據(jù)。當我移除kit3.5后,重新上電,不能收發(fā)數(shù)據(jù),而且芯片溫度升高,請問這是為什么?
這與我使用的鏈接文件,p30f6010a.gld有關嘛,急需解答。謝謝
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:342505 發(fā)表于 2018-7-14 22:01 | 只看該作者
找到問題了,主要是沒有配置好時鐘源的問題導致的,下面我詳細的講述一下。
回復

使用道具 舉報

板凳
ID:342505 發(fā)表于 2018-7-14 22:18 | 只看該作者
首先,該芯片的時鐘源(振蕩器)系統(tǒng)如下圖所示

使用外部晶振時,可選擇倍頻操作以及分頻操作,最后獲得系統(tǒng)時鐘。
其中對于不同的外部晶振對應的時鐘源配置也是不同的,主要分為:
1. XTL,200kHz - 4MHz
2. XT, 4MHz - 10MHz
3. HS, 10MHz - 25MHz
例如目標版的外部晶振是8MHz,則在軟件配置時,應有如下語句:
  1. _FOSC(CSW_FSCM_ON & XT_PLL8);
復制代碼

8MHz在4MHz-10MHz之間,故選擇XT參數(shù),PLL8則表示8倍頻
同樣的如果需要分頻,對OSCCON寄存器的POST位進行配置即可。

總結:以上述情況為例,采用8MHz外部晶振,8倍頻,不分頻,則有如下結果
系統(tǒng)時鐘頻率Fsysclk = 8Fosc = 64MHz;
指令周期頻率Fcy = Fosc/4 = 2MHz;
回復

使用道具 舉報

地板
ID:342505 發(fā)表于 2018-7-14 22:23 | 只看該作者
至于1樓的情況,因為本目標板使用的外部晶振頻率超過10MHz,而在源碼中
  1. _FOSC(CSW_FSCM_ON & XT_PLL8);
復制代碼

很明顯不符合外部晶振的使用范圍,故在實際燒寫完后,芯片因為無法正常起振外部晶振而導致死機
改為HS即可正常運行
至于為何在DEBUG模式下可以正常運行,個人猜測可能DEBUG的時鐘源,即晶振源來自kit3而不是本目標板的外部晶振,這只是個人的猜測,上述如有不對或謬誤之處還望大牛批評指正。
回復

使用道具 舉報

5#
ID:342505 發(fā)表于 2018-7-14 22:27 | 只看該作者
還有一個經驗,就是出現(xiàn)本貼的情況,或者其他類似情況,強烈推薦去查看配置位。
在MPLAB v8.92下,是Configure->Configuration Bits
具體參考如下帖子:dsPIC30F 配置位
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表