Re: pic16f877 A/D问题集
|
||||
---|---|---|---|---|
資深會員
|
名詞解說之前,先要說明 AD系統的硬體架構與動作流程
硬體架構:一個 A/D 轉換器,前面有一個取樣器(就是一個電容器),前面接多工器(multi-plexer) 用於選擇信號源通道(AN0 ~ANx) 動作流程: 1. 設定信號源通道,選擇AN0~ANx 其中之一,接到取樣電容器 2. 休息一段時間,讓電容器充電,直到電容器的電壓與信號源電壓相同,完成'採樣'的工作,所需時間,稱為 sampling time,取樣時間,若要使電容器的電壓與信號源電壓之差小於1/2 bit,則需時約 10 usec + R_source*1 usec/kohm,其中 R_source 為信號源之輸出阻抗。 3. 切斷電容器與信號源之間的電路,接通電容器與 A/D轉換器之間的電路,開始轉換,此時電容器的電壓不再隨著信號源的電壓改變,電壓被保持在電容器上,這叫 Hold 保持,所以這電容器的功能稱為 取樣保存器,sample and hold。每轉換一個 bit 需時 T_ad,T_ad 最小為 1.6 usec,轉換 10 bit 需要 (10+2)*T_ad = 19.2 usec。 名詞說明: 採樣頻率 sampling frequency, Fs: 每秒採樣的次數 採樣閒距 sample interval, Ts : 兩次採樣之間的時距 Ts = 1 / Fs 注意: 採樣間距 與 採樣時間 是完全不同的事,切勿混淆! 採樣時間 是 電容器所需的充電時間,你把這兩件事搞混啦。 古時候,二三十年前,CPU 是一顆IC,AD 又是一顆IC,取樣保存器是第三顆IC,全都是分離獨立的,要採樣就要送一個L-H脈波去觸發取樣保存器,並不是給輸入信號一個脈沖,脈沖是送到採樣器的觸發信號。一種可能的做法是 High 就是採樣, Low 就是保持。 做 AD 轉換之前,就要先送 High 去通知採樣保持器去採樣,充電夠了送出 Low 讓 採樣保持器進入保持狀態,然後開始轉換。所以要透過編程產生週期性的電路的脈沖信號,讓採樣器去採樣,例如說要每秒採樣 100 次,充電時間是 20 usec,就是每秒鐘送出 100 個 High 20 usec, Low 9980 usec 的脈沖,並用 H->L 下降緣作為觸發 A/D 轉換器開始轉換的信號。 現在嘛,一顆單片機就整合了CPU 與 A/D 與 取樣保存器,全做在一顆 IC 裡,不必送H-L脈波去做採樣保存啦,將所要的通道寫入特殊寄存器時,就會接通電容器開始取樣,將控制AD轉換的特殊寄存器的特定位元置為1 (寫入1)就會開始轉換並同時將電容器與信號源切斷讓它進入保持狀態。全是用軟件控制,根本不需要外部電路的脈沖啦,脈沖全在單片機裡面,呵呵。 不管是三十年前的多 IC 的AD系統,還是現代的單片機系統,要做的事情與流程都一樣,就是用不同的方式去做就對了。 採樣頻率或採樣時距當然也都是在程式裡寫的啦。隨你寫,單片機能跑多快就多快,只不過若 Fs > 1/(最小轉換時間+最小充電時間) 的話,讀數就會有誤差啦,這就是單片機的極限了。 去找個實驗板做就對了。不同的電路有不同的做法。
發表於: 2005/3/11 11:28
|
|||
|
pic18f4620使用wdt的問題?
|
||||
---|---|---|---|---|
中級會員
|
請教一下,有誰用過18f4620的wdt,
最大的計時週期好像怪怪的 18ms*32768 = 589.824 sec 可是try一下大概只有 127 sec 不曉得為什麼會這樣
發表於: 2005/3/11 11:07
|
|||
|
ICD2線路修改
|
||||
---|---|---|---|---|
資深會員
|
請問一下
<ICD2線路修改,以成功燒錄dsPIC30F2010 > ICD2修改後有保固嗎?
發表於: 2005/3/11 10:23
|
|||
|
Re: 有關類8051的問題
|
||||
---|---|---|---|---|
版主
|
個人是不建議用類8051的語法來寫,這樣再做一些時序的控制及更高階的PIC時會有比較大的問題,其時寫程式貴在邏輯的思維上,語法只是一種工具。無法勾露出程式的流程及動作那是用更強的指令也是無法寫出正確的程式。
所以我個人的意見是不要太在乎使用哪家的組合語言,重要的是如何規劃出程式的正確的邏輯來,一但你的思路清晰正確誰便哪家的MCU你都可以使用。
發表於: 2005/3/11 10:19
|
|||
|
Re: About A/D sample frequency and resolution
|
||||
---|---|---|---|---|
版主
|
有關AD的範例可以在右邊的下載區找到,但是資料是繁體中文的。
可以參考 W100 , W400 , Hi-Tech PICC , W401 及 W210 的教材。 http://www.microchip.com.tw/material.htm
發表於: 2005/3/11 9:55
|
|||
|
Re: pic18f2550 同時使用int0,int1,SPI介面的問題...
|
||||
---|---|---|---|---|
版主
|
你有用Timer的中斷吧!
如果有的話,那隨變哪一隻腳都可當按鍵輸入,利用Timer的中斷時順便掃描一下按鍵而且還可以利用Timer來de-bounc呢! Timer的中斷時間從1mS ~ 30mS 都可以,我不相信你的按鍵速度會比30mS還快。按鍵漏掉的情形程式寫的好是不會發生的,以中斷掃描按鍵 & debounce 是基本技巧也是最常用的方式。 你用INT按鍵直接進入中斷也是要處理彈跳的問題要不然你按一次按鍵 INT中斷會發生很多次你會很難判斷的,沒有用硬體的Timer處理,你會用何種方式處理呢? 不會是軟體的delay吧!
發表於: 2005/3/11 9:28
|
|||
|
Re: ICE for 16C622A與16F636與經銷商
|
||||
---|---|---|---|---|
版主
|
PIC16F636 它是內建 KeeLoq 編碼的PIC,你應該沒用 KeeLoq 的遙控功能吧!
按你的需求,我會建議使用 PIC16F716 它的單價是比較低的,開發工具只要用 ICD2 + AC162054 就搞定 (NT$6000) Microchip有開課教授如何使用ICD2, 應該不難學吧! 代理商名單右邊有連絡電話,你可能要自己找,我不能給你建議。如果代理商不理你,試試看利用Microchip所提供的線上購物,刷卡後三天到貨數量不限。
發表於: 2005/3/11 9:10
|
|||
|
Re: PIC12C508模擬器
|
||||
---|---|---|---|---|
版主
|
看起來 何版主 晚上都不用睡覺那麼晚了還在回問題,精神可嘉。
給個良心的建議 : PIC16C508 是 OTP 的製程,可否改用新的 Falsh 的 PIC12F508 ? 目前 Microchip 給客戶的建議是以 Flash 取代 OTP。 PIC12F508 取代 PIC12C508A PIC12F509 取代 PIC12C509A PIC12F675 取代 PIC12C671 PIC12F683 取代 PIC12C672 PIC16F505 取代 PIC16C505 PIC16F5x 取代 PIC16F5x ICD2 + AC162059 是12F50x 及 PIC10Fxxx 的轉接座,目前是在 Beta 測試中,所以在網站上會查不到,應該下個月會 Released 吧 !
發表於: 2005/3/11 8:46
|
|||
|
Re: 找不到MP-USB Wizard 2.0的下載點?
|
||||
---|---|---|---|---|
新會員
|
感謝calvinho大大, 檔案我收到了......
發表於: 2005/3/11 8:36
|
|||
知識是無價的!!
|
||||
|