B

12F675 OSCCAL Sorunu

Başlatan Bülent, 26 Mayıs 2013, 10:27:18

Bülent

12F675 ile yeni tanışırken, iyice bir okuyup başkaları ne sorunlar yaşamış, tam öğrendim derken, hoop aynı tuzağa ben de düştüm.
Malum 12F675 içindeki dahili osilatörü kullanmak için, fabrika ayarlı OSCCAL değerine sahip çıkmak ve kaybetmemek lazım. IC-Prog kullanıyorum. Yeni aldığım 675' i takıp okuttum ve son dörtlüdeki "3424"   değerini görüp not ettim. Sonra hex dosyasını IC-Prog' a yükledim, yine son dörtlüde "3424" değerini elle girdim ve proglamaya geçince hemen "OSCCAL değeri yok, onun yerine "3424" ü kullanayım mı? uyarısı geldi, evet dediğimde ise program gerçekleşmiyor. 3 ayrı 675' le denedim hep sonuç aynı;
1-Bu 3 pic'i tekrar kullanma imkanı var mıdır ?
2-Bu işi mutlaka ve sadece, derleme öncesi program içine "DEFINE OSCCAL_1K 1" satırı ile mi yapmak gerekir ?
3-"DEFINE OSCCAL_1K 1" satırı Proton Basic' te de aynı mıdır ?

ete

O picleri yeniden kullanabilirsin elbette. Pickit2 programlayıcı bu işi otomatik yapar ve oscal değerini yitirmiş piclerede kendisi bir program yükleyip uygun oscal değerini bulur ve pice yazar.

Pek çok programlayıcı program içinde yer alan define satırına göre hareket eder ve önce oscal değerini okur sonra programı yüklediğin zaman son adse oscal değerini kendi yazıp pice programı yazar.
Basic de program yazıyorsan mutlaka define oscal_1k   Komutunu yazmayı ihmal etme.
Ete

Bülent

Alıntı yapılan: ete - 26 Mayıs 2013, 13:57:17
O picleri yeniden kullanabilirsin elbette. Pickit2 programlayıcı bu işi otomatik yapar ve oscal değerini yitirmiş piclerede kendisi bir program yükleyip uygun oscal değerini bulur ve pice yazar.

Maalesef, Pickit2 ile bahsettiğiniz işlem, OSCCAL değerlerini yitirmiş 4 adet 12F675' in hepsini hayata geri döndüremedi, sadece 2 tanesinde başarılı olabildi. :)

ete

#3
Pic bozuk değil ise yukarıdaki menü seçeneklerin birisinde OSCCAL diye bir seçenek var idi. Üzerine gelince 2 seçeneğe dönüşüyor idi. Birisi mamual set ki bunda osccal değerini biliyorsan o değeri direk girip set edebiliyorsun. İkincisinde ise otomatik osccal oluşturuyor   Seçtiğin zaman pic e bir kısa program yüklüyor. Bu program bir osccal değeri veriyor ve karşlığı sinyali pickit2 ölçerek doğru olup olmadığına bakıyor. Değilse yeni bir değer verip yeniden bakıyor ve bir kaç denemeden sonra doğrusunu bulup pice yazıyordu.
Bu şekilde yapıyorsun  yada yaptırıyorsun değilmi?

Ete

Bülent

Doğrudur, aynen oradaki menüden çalıştım. Zaten ben eski OSCCAL değerlerini tek tek not etmiştim. Buna rağmen "Manuel Setting" te olmadı sonra da OSCCAL üretme "Regeneration" seçeneğine yöneldim. 2 tanesinde birkaç sefer denememe rağmen "regeneration failed" mesajı geldi. Ama iki tanesini kurtardım

cevat

#5
Bendeki bazı 12F675 denetleyicilerde otomatik jeneratör " 3FFF " hatalı adresi buluyor, yerine " 34FF " yi deniyor, ama düzeltemiyor.

" Regeneration OSCCAL failed
   Calibration out of range  "

" Jeneratör tekrarlarındaki OSCCAL değeri geçersiz, kalibrasyon dışı "  mesajıyla karşılaşılıyor.
Çözümü şöyle yapıyorum. ( yanılmıyorsam kalibrasyonu da sıfırlamıştım ) Auto generatör denemeleri yaparken, bulduğu adresi daha sonra elle girip düzeltiyorum. Programı kapatıp, açınca denetleyici 34FF yeni adresiyle ekrana geliyor.

İyi çalışmalar, kolay gelsin...

ete

Enteresan. Demekki pic in flash hafızası bozulmuş. Öyle anlaşılıyor.
Ete

Hattuşa

slm ete hocam bu 12f675 in gp2 pini (tocki) çıkış olarak ayarlanamıyor mu? akşam akşam ne ettimse bir türlü çıkış alamadımda, isisde güzel çalışıyor ama gerçekte çıkış alamadım da

est32

#8
Kataloğa baktım hem giriş hem çıkış görünüyor. Analog kanalların kapalı olduğundan emin olmak lazım ve daha önemlisi open collector denen muhabbet yüzünden olsa gerek. Source(high) akımı/çıkışı çok düşük olduğundan(led bile yakamayacak kadar küçük) ya transistörle sürülmeli ya da led gibi en fazla 20-25 mA akım gerektiren bir uygulama varsa gnd ile yapılabilir.
Örneğin ledin katot bacağı GND bağlanıp anot bacağına GPIO.2=1 demek yerine;
ledin anot bacağı bacağı VDD bağlanıp katot bacağına GPIO.2=0 denilerek de led yakılabilir.
Böylece düşük akımlar için transistör kullanamya gerek kalmaz.
Bunları sizin de bildiğinizi düşünüyorum ama bazen insanın kafası öyle bir dolu oluyor ki basit şeyler bile gözden kaçıyor, ayrıca işi yeni öğrenenlere de çok küçük bir bilgi notu.
İyi akşamlar...

Hattuşa

est32 usta, tocki pinlerini başka işlemcilerde çıkış olarak kullanmıştım, 10K dirençle genellikle Vdd ye bağladığımda çıkış alıyordum, ama bunda alamadım. inanın bazen o kadar basit yerlere takılıyor ki insan kafa karışması ne demek çıldırtıyor, zira bir PCB çizip, dizip basıyorsun ki çalışacağından şüphe yok, ama çalışmayınca kafa dönüyor işte

est32

umarım pin yanmamıştır.

ete

Gpio2 pini. Normal pinler sınıfındadır. Bu pini çıkış yapmak için,
Trisio.2=0
Ansel.2=0
Vermek yeterli diye düşünüyorum.
Ete

cevat

16F876A işlemciye yazılım atarken, ilk satır

0000  3FFF   3FFF   3FFF    3FFF   3FFF   3FFF    3FFF    3FFF  kaydediliyor. OSCCAL değer olarak düzeltmek istediğimde, OSCCAL satırı silik vaziyette işlem yapılamıyor.

İşlemcinin 0000 olan ilk satırının, tamir edilebilme durumu var mı?

pwm.c

Alıntı yapılan: cevat - 11 Ekim 2013, 23:30:22
16F876A işlemciye yazılım atarken, ilk satır

0000  3FFF   3FFF   3FFF    3FFF   3FFF   3FFF    3FFF    3FFF  kaydediliyor. OSCCAL değer olarak düzeltmek istediğimde, OSCCAL satırı silik vaziyette işlem yapılamıyor.

İşlemcinin 0000 olan ilk satırının, tamir edilebilme durumu var mı?

PIC16F876A entegresinde dahili osilatör yok ve doğal olarak OSCCAL diye bir register olamaz.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

cevat

#14
Pickit2 yazılımı otomatik olarak OSCCAL seçeneğini kapatıyor demek ki...

0000  3FFF   3FFF   3FFF    3FFF   3FFF   3FFF    3FFF    3FFF   işlemcinin ilk satırı onarılabilinir mi?

Powered by EzPortal