• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users






Re: 請教使用pic12c508 內部rc震盪問題?
#4
版主
版主


查看用戶資訊
使用PIC12C50X(A)內部RC振盪的正確方法是:在程式記憶體的第0行位置,加入MOVWF OSCCAL的指令,爾後程式就會以4MHz,誤差幾個%的速度執行,就這樣。為什麼呢?待我慢慢道來:
話說PIC12C50X(A),從DATA SHEET來看,雖然說它的重置向量號稱是在0x00的位置,其實,由於它是12bit的架構,就和PIC16C5X一樣,真正的重置向量應該是在程式的最後一行!以508(A)而言,就是在0X1FF的位置。
Microchip原廠,在IC出貨之前,會在最後一行的位置,填入一個MOVLW 0X??的指令,??是Microchip測試出來的RC的校正值。於是,在POWER ON的時候,PIC會從最後一行執行,將0x??的值,利用MOVLW的執令,存入W暫存器。緊接著ROLL OVER至程式的第0行位置。所以,在第0行執行MOVWF OSCCAL,就可以將Microchip事先測定的校正值,填入OSCCAL,至此,PIC才會以校正過的4MHz來跑程式。
所以,就算是在程式第0行沒寫MOVWF OSCCAL指令,PIC也會動,只是頻率較不準而已。
隨時改變OSCCAL,就可以隨時改變PIC的振盪頻率;但是,有非常大的可能,您是調整不到您想要的頻率的;原因是:有可能某一個PIC12C50X(A),它的校正值已經調到最快的「盡磅」(台語,到底了),才剛好、勉強調到4MHz而已,您就不可能再將它的頻率調高了。
還有,有人說,犧牲許多顆PIC,測試校正值,最後再將校正值填入其它所有的PIC,以得到正確的振盪頻率,燒到其它所有PIC12C50X(A)裏頭去。這方法恐怕不可行也不需要,因為:Microchip已事先測得校正值,拿來用就可以了;而且,每一個PIC12C50X(A)的校正值都不同,而且變異性很大,根本沒有穩定或標準的校正值存在。
最後,使用PIC12C50X(A)時要注意:如果用的是OPT,燒錄器不可以燒到最後一個位置,不然校正值被覆蓋了就不妙。印象裏,有些燒錄器,如果您選項選擇不是/JW 包裝的,它就不會燒最後一個位置。如果用的是/JW包裝,也就是「開窗」的版本,在用紫外光燈清除資料之前,一定要記得先將裏頭的校正值讀出來、記起來;然後在燒錄時,再把它燒回去。習慣上,我會把校正值讀出來後,用鉛筆將它寫在IC的肚子上,保證不會被擦掉。切記!!!!
突然想起來,從右方的「江湖一點訣」也可以看到一些有關於PIC12CXXX的用法。

發表於: 2004/6/14 10:20
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教使用pic12c508 內部rc震盪問題?
#3
新會員
新會員


查看用戶資訊
我剛開始使用PIC就是使用這顆IC,曾經出現過很大的問題,就是在頻率校正,因為代理商跟我說他的程式語法及暫存器
都跟54一樣,結果程式寫好了,實際請他們試燒也沒有問題,
用了一年多突然有一次出了大問題,整批IC通通沒有動作,結果他們查的原因是因為我的程式開頭,沒有做
org 0x1ff
org 0x000
movwf OSCCAL
這個動作,所以才會使的IC完全沒動作,後來另一家代理商告訴我,是 之前這家代理商出錯型號給我才會造成這樣的現象,
我原先是使用508A,而那一次他們燒508給我。
後來的這家代理商告訴我508A已經修改過,所以前面不加校正也沒問題。
雖然後來我已經都在程式起點加上這個較正值,但是我還是很納悶,即使不校正頻率,會不準確而已應該不會不動作,是不是請MICROCHIP的FAE給我們指導一下。

發表於: 2004/6/13 9:37
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教使用pic12c508 內部rc震盪問題?
#2
初級會員
初級會員


查看用戶資訊
原廠封裝測試後會將校正後的參數放在program memory的最後一個byte, 所以要先到org 0X1FF的地址做讀取參數動作,然後回到org 0x00的啟始位址,再將參數放到OSCCAL的暫存器內,確保振盪頻率正確...嗯...嗯...印象中是如此!?記憶裡使用者是不需做任何動作的啊!!
但是如果不準需自己校正,應該不只如上三行就完了?好像是要預先用programmer讀出該顆的最後位址的數據,做"參考"用,
然後OSCCAL的CAL0-CAL5依據"參考"值,斟酌加減,去加快或減慢INT-OSC的頻率.
要改變,需MOVLW 一個值,然後MOVWF OSCCAL,去Modify PIC自動抓取的原校正值,達到校準目的,當然得犧牲幾顆12C508才可能達到目的...
還有,不同Date-Code有可能也會需要重新校正...但我要是這麼care精度,我不會想用int-osc耶!!
(不曉得有沒記錯...呵呵,有點忘了!?)

發表於: 2004/6/13 5:14
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請教使用pic12c508 內部rc震盪問題?
#1
高級會員
高級會員


查看用戶資訊
各位大哥:
小弟以前沒有使用PIC MCU內部RC震盪器的經驗我需要注意什麼事項?
我目前需要使用pic12c508我看到兩行指令我不清楚
程式最前面他需要load rc 校正值到OSCCAL register
但是為何要這樣寫
org 0x1ff
org 0x000
movwf OSCCAL


發表於: 2004/6/12 9:28
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------