ADCON2 Değişkeni TAD ve FOSC nedir ?

Başlatan M.A.A, 02 Şubat 2016, 14:22:36

ete

PicMulticalc'a da fazla güvenmemek gerekir. Zira bu ayarları verirken sana işlemci nedir diye sormuyor. Genel anlamda olması gerekenleri sana veriyor. Pek çok işlemcide verilen ayarlar kullanılabiliyor. Ancak bazılarında özellikle yeni nesil işlemcilerde çok farklı TAD ve Acquisition zamanları kullanılıyor. Bu nedenle Picmulticalc ayarlarını kullanırsan simulasyon hata veriyor.
Mesajlarımızda bir karmaşa var evet haklısın düzeltmek için biraz açıklama yapalım.
Min Acquisition Time denilen şey min. Kondansatör şarjı için gerekli olan zaman demek oluyor. ADC modülünü aktif ettikten sonra en az bu zaman kadar bekleyip dahili kondansatörün şarj olmasını sağlamak gerekir. Daha az süre verirseniz sistem hataya giriyor.
TAD denilen şey bit başına gerekili çevrim zamanı olarak açıklanmış. Buda genelleme yapılarak data sheetlerde 10 bit için en azından 12 TAD olarak alınmalı diyor. Bu da 1 TAD=1,6us olarak en azından kullanılması anlamına geliyor.
Bu süreye bakarak çalışma frekansına göre zamanı yada TAD clk değerini belirlemek lazım. Mesela bu işte kullanılan Fosc=8 Mhz bu ise 1/8=0,125us lik çevrim süresi demek oluyor. 1,6us için,   1,6us/0,125=12,8 lik bir bölme oranı gerekiyor ki bu direk olarak seçeneklerde yer almıyor. Yer alanlar 8 ve 16 ohalde en yakın büyük değer olarak 16Tosc değerini kullanmamız gerekiyor. Şöyle bir genelleme yapabiliriz bu osc frekansında 10 bitlik çevrim süresi ancak 16Tosc lik TAD kullanılırsa sağlanıyor. Bu nedenle bizimde 16Tosc yi verecek alternatifi seçmemiz gerekecektir. Dikkat edin burada değişmeyen sabit 1,6us lik minimum TAD süresidir ve bu hemen her işlemci için sabittir. Dolayısıyla bunu ,işlemci frekansından kaynaklanan 1 çevrim süresine bölünce kullanmamız gereken bölme oranını kolaylıkla bulabiliyoruz. Net değere gelmiyor ise ona yakın en büyük değeri seçiyoruz.

Şimdi birazda PicMulticalc ın verdiği parametreler ne anlama geliyor ona bakalım;
DEFINE ADC_BITS 10     ' ADCIN resolution  (Bits)
Bu parametre bize ADC işlem sonucunun kaç bit olacağını belirliyor. Burada 10 bitlik sonuç alınması hedeflenmiş oluyor.

DEFINE ADC_CLOCK 5     ' ADC clock source  (Fosc/16)
Bu parametre Min Tad süremiz olan 1,6us yi verebilecek bölme oranını belirliyor ki hesaba göre 12,8 çıkmıştı ama direk bu değer olmadığı için 16 yı seçmiştik işte burada bu işlem yapılmış oluyor.

DEFINE ADC_SAMPLEUS 11 ' ADC sampling time (uSec)
Bu parametre kondansatör şarj süresini belirliyor. İşte bu değer işlemciye has bir değer olup data sheete bakılması gereken bir parametredir. Bazısı 19,7us ister bazısı 4,7us ister. az isteyene çok verirseniz sorun olmaz ama çok isteyene az verirseniz sorun olur. Kondansatör yeterince şarj edilemez ise sonuçta değişken çıkar.

Umarım yeterince açık anlatmışımdır.

Ete

Maxim

gayet açık hocam fakat yazınızda giriş empedansı yok, onun ne gibi etkisi var tam olarak?
mesela örnek, arada 1-1 kazançlı bir tampon opamp kullanırsak giriş direncini kaç almalıyız?

ete

Benim fikrime göre giriş empedansının 10Kohm'u aşmamak kaydı ile çok büyük bir etkisi yok. Yok derken varda ihmal edilebilir düzeyde diyebiliriz.  Datasheet bu konuda empedans azalırsa şarj süresi azalır diyor. Bahsini ettiğin opamp seçeneğinde giriş direncini kaç alacağını bilemem. Hiç bir zaman bu hesapları kendim yapmadım zaten. Genelde Multicalc programının verdiklerini data sheet den düzelterek kullanıyorum. Bu kadar detaya gerek yok diye düşünüyorum.

Ete

M.A.A

Teşekkür ederim hocam elinize sağlık.

Uzun yoldan ölçmek ile hazır kod kullanılması neden süreyi etkiliyor. Hazır kod ADin her zaman daha uzun sürüyor. Böyle olması hazır kod kullanmadan yaptığım ölçümde eksik olduğunu gösterir mi ?

ete

Bu konuda hiç bir fikrim yok maalesef.

Ete

Powered by EzPortal