No oscillator calibration value found

Başlatan toma, 01 Ocak 2006, 16:09:39

mmengi

DEFINE OSCCAL_1K 1


Bu ibareyi programın başına koyduğunuzda pbp 3ff den değeri alır ve ilgili register a koyar.

IC-PROG ile her seferinde bu değerleri koymanıza gerek yok zaten ic-prog la yazma işlemi yapacağınız zaman önce pic in 3ff adresi okunur ve ordaki osccal değeri alınır daha sonra size sorar dosyada şu değer var pic te bu değer hangisini istiyorsun diye. Sizede hayır ben pic tekini kullanacağım dediğinizde pic i siler programı flash a atar ve daha sonra osccal değerini pic ten aldığı gibi tekrar yazar. Her seferinde cevap vermeniz gereken sadece bir soru olacak oda bu. Bunun dışında başka bir angaryası yok.

Eğer bu tür picleri programlarken programlama sırasında iptal ederseniz osccal değeri uçar buna dikkat etmek gerekir yanlışta olsa programlama bitene kadar beklemek lazım.

OG

@mmengi üstadım

Ben icprog'un bu datayı okumadığını sanıyordum. Önce kendim pic'i okutuyordum.

Teşekkür ederim.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Petek

mmengi hocamın bahsettiği işlemciye ilk program yüklerken ve işlemci yüklemeden önce silinmemiş ise.

Bir de bir kaç kere işlemciye yazılım yüklemeniz gerektiğinde önce içeriğini sildirmeniz gerekiyor. Bu sırada osilatör kalibrasyon değerinin bir yere kaydedilmesi (kalemle) gerekir. Silme işleminde o değer de silinecektir.

Yeni yükleyeceğiniz programın hex kodlarını icproga aldığınızda 03ff adresine kalibrasyon değerini programlamaya başlamadan önce (mouse sol butona çift tıklayarak) girmeniz gerekir.

Sadece bir mikrokontrolör ile çalışacaksanız CCS de (kalibrasyon değeri 8a ise)
#rom  0x03FF={0x348a} // calibration value retlw 0x8a
yazmanız yeterli. Ama bu sadece o an kullanmakta olduğunuz 12f675 e özeldir. Başka 12F675 için kalibrasyon değeri 8a olmayabilir.

mmengi hocam, sizin yazdığınızda 12F675 e daha önce bir program yüklenmiş iken yeni program yükleneceği sırada işlemciyi silme işleminin icprog tarafından otomatik yapıldığı ve bu arada osccal değerinin saklandığı anlaşılıyor. Doğru mu anlamışım. Öyle ise benim yukarıda yazdıklarımın bir anlamı kalmıyor....
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

mmengi

Bir yanlışa düşüyorsunuz sanırım icprog ile sadece silme yaptırdığınızda önce osccal değerini okur pic i siler ve daha sonra osccal değerini tekrar yerine yazar.

Hiç bir zaman osccal değerini sizin alıp tekrar yazmak gibi bir durumunuz olmuyor. İlk programlamada yada sonrasında icprog bunu sizin için hallediyor.

Hatta CP ile kodlanmış olsa bile osscal değeri okunabilir.

icprog dışında bazı programlar bu osccal değerini saklamıyor ben bu konuştuklarımı icprog için söylüyorum.

Petek

Ama biz icprog ile silme işlemi yaptığımızda (ilk defa 675 i programlığımızda) bu bilgiyi kaybettik. Ondan sonra da rastgele bir değer yerleştirdik. Daha sonrakinde hani tecrübe kazandık ya, 675'in kalibrasyon değerini aldık ve C programımıza yerleştirmiştik (yukarıda CCS için yazdığım şekilde). Gerçi bu yaptıklarımız 1 yıl kadar önce idi, detayını unuttum.

Bizim istediğimiz de sizin yazdığınız gibi olmasıydı...  Teşekkürler...
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

toma

Herkese selam..

Bugun birinden paralel port programlayıcı aldım ve 12f675'i düzgün bir sekilde programlayabildim. Programlama aşamasında sadece 34c8'i kalibrasyon degeri olarak kullanayımmı tarzından soruyu sordu ve bende "evet" dedim.

Şimdi projedeki devreyi kurup deneyeceğim. Ama bir endişem var, Projede rs232 üzerinden bilgisayara veri gönderme var. Bu rastgele girilen kalibrasyon değeri bilgisayarla haberleşmede zamanlamalarda bir sorun yaratabilir mi?

Petek

Alıntı yapılan: "toma"Herkese selam..
....
Ama bir endişem var, Projede rs232 üzerinden bilgisayara veri gönderme var. Bu rastgele girilen kalibrasyon değeri bilgisayarla haberleşmede zamanlamalarda bir sorun yaratabilir mi?
A.S.
O kalibrasyon değeri rastgele girilmiyor. Üretim sırasında kalibre ediliyor ve en iyi kalibrasyonu sağlayan değer olarak yerleştiriliyor. UART haberleşme için problem yok, kullanabilirsin. Çok yüksek hızlarda sorun olabilir. 19200 de sorun olmaması lazım.
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

mmengi

Bende 12Fxxx serisinde ilk projemde 150 adet pic e programları yazdım ben sanıyordum ki 3ff den pic alıp kendisi kalibre edecek kendini ve test için 3-5 pic i devreye taktım birde ne görim hepsi farklı farklı çalışıyor netten hemen bir araştırma pbp için yukarda verdiğim define ı yapmak gerekiyormuş hayda gecenin 3 ünde otur tekrar 150 adet pic i programla.

Ama ne o zaman ne ondan sonraki işlerde hiç bi zaman icprog ile 3ff e bişi yazıp çizmedim, pic boşta olsa önceden programda yazılmışta olsa CP lide olsa 3ff de eğer kalibrasyon değeri varsa alıp kendi hallediyordu silip yazma işlerinde.

Geçen gün 3-5 tane 12f675 lazım oldu adınıda yazıyorum INTEL den aldım. eve geldim programlayacam icprog 3ff de kalibrasyon değeri yok dedi allah allah dedim başka taktım ondada yok hepsine baktım hiç birinde kalibrasyon değeri yok. HEEE dedim demek bu pic ler kalibre edilmemiş acaba neden kalibre edilmemiş belkide bu ürünler kalite kontrolünden geçememiş pic ler ve ıskartaya ayrılmış(mantık yürütüyorum kalibre işlemi kalite kontrolünden sonra yapılıyordur muhtemelen) bi şekildede bunlar intel e satılmış ordanda bana. Neyse sorun değil 3-5 tane dedim ve üstünde durmayıp kendim osilaskop ile kalibre edip işimi gördüm ama daha önce arrow dan yüzlerce almıştım ve hepsinde kalibrasyon içinde vardı.


@petek

sizin kaybettiğiniz kalibrasyon değeri şöyle olmuş olabilir icprog flash ı programlamaya başlayacağı zaman size dosyada şu var pic te bu onun yerine bunu kullanacakmısın diye acayip bir türkçe ile yazılmış bi soru soruyor orada hayır derseniz pic tekini kullanır evet derseniz dosyadakini alır dosyadada 3ff e kadar program uzamadıysa orda 3FFF değeri vardır ve evet dediyseniz soruya sizin kalibrasyonu silip 3FFF yazmış olabilir.

Petek

Alıntı yapılan: "mmengi"...@petek
sizin kaybettiğiniz kalibrasyon değeri şöyle olmuş olabilir icprog flash ı programlamaya başlayacağı zaman size dosyada şu var pic te bu onun yerine bunu kullanacakmısın diye acayip bir türkçe ile yazılmış bi soru soruyor orada hayır derseniz pic tekini kullanır evet derseniz dosyadakini alır dosyadada 3ff e kadar program uzamadıysa orda 3FFF değeri vardır ve evet dediyseniz soruya sizin kalibrasyonu silip 3FFF yazmış olabilir.
Dediğiniz gibi bir şey oldu da (yani normalde oluyor zaten) hangi butona bastığımı hatırlayamadım. ondan sonra da kendimce bir yol bulup işimi görmüştüm. Sanıyorum dediğiniz gibi bir yolla yani kalibrasyon değerini silmek için çabalamışım.

6 yıl önce sürücü belgesi almak için kursa gitmiştim. Kurstaki hocanın güzel bir ifadesi vardı benim de çok hoşuma gitmişti. Şöyle demişti: "yoldaki küçük bir çukur acemi şoförü mıknatıs gibi kendine çeker ve o acemi de arabayla o çukura mutlaka girer çıkar." Bizimki de öyle oldu...

Muhtemel INTEL dekiler de öyle bir şey yaptılar, işin içinden çıkamadılar. Neyse sizinki yine iyi, bana bir sürü kullanılmış malzeme (bir kısmı da hurda) satan bir firma vardı, pakete gizlice koymuşlar. Sonradan özür dilediler ama ne işe yaradı ki.... Sanıyorum Antrak listesinden o olayı hatırlayan vardır. herneyse...
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

OG

Alıntı YapINTEL den aldım

Oradan almayın. Hüseyin Bey iyidir hoştur, kendisini de severim ama sağdan soldan topladığı malzemeleri satması beni de çok sıkıntıya soktu. Maalasef kalbini kırmak zorunda da kaldım.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

uzaylivolkan

picbasic pro kullanan arkadaşlar için
12F675  in Oscillator kalibrasyonunu yapmak için
OSCCAL         Oscillator Calibration  seçeneği var
Bu seçenek 6 bit olarak kullanılıyor.

pic basic kodunun içine

OSCCAL = %111111    ' BU DEĞER MAKSİMİM Calibration

OSCCAL = %100000     ' BU DEĞER ORTA Calibration

OSCCAL = %000000     ' BU DEĞER MİNİMUM Calibration


UYGUN OLAN HERHANGİ BİRİNİ tavsiyem OSCCAL =%100000
Koyup Denemek Büyük ihtimalle sorun hallolacaktır.
bu arada 6 bit olan değeri bir butonla artırıp denemek sonuca ulaştıracaktır.

OG

BURADA bahsettiğim programlayıcı ile bu sorun da kalmadı. Çok sayıda pic programlayacağınız zaman ilk taktığınız pic de soru penceresi cıkıyor, ardından birdaha sormuyor, her yeni pic taktığınızda picden oscal ı kendi okuyup üzerine yazıyor.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

OG

Alıntı yapılan: "uzaylivolkan"
pic basic kodunun içine

OSCCAL = %111111    ' BU DEĞER MAKSİMİM Calibration

OSCCAL = %100000     ' BU DEĞER ORTA Calibration

OSCCAL = %000000     ' BU DEĞER MİNİMUM Calibration
.

Calibration olarak yazdıklarınız Calibration değil frekans olacak. İkisi ayrı kapılara gidiyor. OSCCAL = %100000 Center Freq.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Macera

Ben aşağıdaki kodu uyguladım
Alıntı Yap#asm
   BSF STATUS,RP0
   DW 0x2000+0x03FF
   MOVWF   OSCCAL
   BCF     STATUS,RP0
   #endasm
Derleyici olarak CC5X kullandım.
Ama asm olarak kod yazma diğer derleyicilerde olması lazım
DW 0x2000+0x03FF = ret 3ff demek vede kalibrasyon değerini a ya aktarıyor sonrada o değer osccal a aktraılıyor
"Art without engineering is dreaming; engineering without art is calculating." -- Steven K. Roberts