16F628A ile ilgili bir kaç soru

Başlatan kaplan_65, 09 Şubat 2007, 14:59:36

kaplan_65

Eagle_Tim demiş ki;
Alıntı Yap
A portunu dijital giriş çıkış yapabilmek için

BCF STATUS,5
CLRF PORTA
MOVLW H'07'
MOVWF CMCON önce yüklenip sonra giriş çıkış tanımlaması yapılıyor..

BSF STATUS,5
MOVLW H'XX'
MOVWF TRISA
BCF STATUS,5
ilk ben de böyle yaptım ama sonuç aynı.RA6 hep sıfır kalıyor.

aYe demiş ki;
Alıntı Yap
Config ayarlarınızdan INTRC I/O tipini seçmelisiniz, sanırım siz INTRC CLKOUT seçmişsiniz
Kodlara dikkat ederseniz  _INTRC_OSC_NOCLKOUT  diye belitmişim.

Arkadaşlar ben devreyi PROTEUSta simüle ettim. Donanımsal bir hata ya da üretim hatası söz konusu değil. Çünkü donanım olarak zaten dahili osilatörü seçtim ve ek olarak bir şey bağlamadım. Belki de proteusta sorun vardır.
KAZIM ASLAN Gazi Üniversitesi Elektrik Elektronik  Mühendisliği...

aYe

Alıntı yapılan: "kaplan_65"
Kodlara dikkat ederseniz  _INTRC_OSC_NOCLKOUT  diye belitmişim.

Evet ama bazen config bilgilerini programmer donanımları doğru almayabiliyor, yada hiç almayabiliyor, manuel müdahele gerekebiliyor, eğer elinizde bir donanım olsaydı ve fiziksel ortamda bu hatayı yaşıyor olsaydınız kesinlikle sorun buydu.

Gerçi proteus olduğunu baştan yazsanız cevap dahi yazmazdım, arızalı oyuncakları sevmiyorum.

Sonuçta güzel birşeye vesile oldunuz, sayenizde mevcut durumumuzu gördük;

Çok dikkatsiz çalışıyoruz, okuduğumuz ya da duyduğumuz bir şeyi kural kabul edip irdelemiyoruz, bu da çoğu zaman hatalar yapmamıza neden oluyor.

Datasheet'in başında bu pin sadece input'tur ibaresini görünce port yapısını incelemeden bunu kural kabul ediyoruz.
Oysa Bülent Ersoy'da bayanım diyor ama port yapısını incelerseniz karşınıza neler neler çıkar :D

İyi çalışmalar arkadaşlar...
Dünyada iki şey sonsuzdur. İnsanın aptallığı ve evren. Ancak ikincisinden o kadar emin değilim... (Einstein)

Eagle_Tim

proteus bukadar da kötü olamaz açıkcası diye küçük bir çizim yaptım.
buyurun çalıştırın a6 pini düzgün çalışıyor siz yanlış birşey yapıyorsunuz heralde donanımda. mcrle pinide dediğimiz gibi çalışıyor.
gerçi ben burada mcrlyi bire çektim ama önemli olan a6 pini. mcrle nin durumu zaten ortada çünki isiste konum değiştirmesi pek bir önem arz etmiyor..

http://www25.rapidupload.com/d.php?file=dl&filepath=14064
Software and Hardware Design...

ipek

arkadaslar bu f628 hatim indirdim diyebilirim ama bu konu nasilda gozumden kacmis dikkatinize hayran kaldim tebrikler...
proteusa gelince degerli zamaninizi bosa harcamayin derim
bu benim fikrim tecrubelerle sabittir yoruma gerek yok .....

Ne Mutlu Turk'um Diyene....

kaplan_65

Arkadaşlar problemi buldum :D .Şöyleki;
RA6 diye kullandığım pin sadece giriş yapılabiliyor.MCLR diye kullandığım pin de hem giriş hem çıkış olarak ayarlanabiliyor.Proteusta bu iki pin alt alta. Anlayacağınız şekil üzerine yanlış bilgi yazmışlar.Bu iki pini yer değiştirdiğimizde sorun ortadan kalkıyor.Proteus 6 professional kullanalar dikkatli olsunlar.Aynı hata 16f627a şeklinde de yapılmış.İlgilenen herkese teşekkür ederim :o
KAZIM ASLAN Gazi Üniversitesi Elektrik Elektronik  Mühendisliği...

XX_CİHAN_XX

Evet arkadaşlar proteus a hiç yanaşmayın bu konuda en guvenılır kaynak mplab.mplabta porta ya 0xff gonderdıgınızde sımulasyonda porta nın pınlerıne baktıgımızda porta,5 hariç butun pınler duzgun calısıyor.
Kısacası A5 sadece giriş diğer pinler ise istediğiniz gibi kullanılabilir.....
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

aster

Hepinizi tebrik ederim, tam bir ekip çalışması oldu

Kim tutar sizi  :)

kurumahmut

Burdan iyi bir sonuç çıkmış.

Bir işlemci ile yeni bir projeye başlamadan önce işlemcinin resmi sitesinden dökümanlarımızın son halini indirmemiz gerekir. Acaba ERRATA sheet yayınlanmış mı diye bakılmalı.

Datasheetlerime baktım. Bende de eski versiyon datasheet varmış. Bu hatayı microchip 2002 yılında errata sheet olarak yayınlamış. Şu anda sitesinde PIC16F628 için 2005 yılında güncellenmiş hali var.

Bir de datasheetlerin adını kendimiz için değiştirken microhipin verdiği kod ismini de silmemek bu tür problemleri aşmada daha yardımcı olabilir.

Eagle_Tim dediği gibi EEPROM rutinlerinde de hata varmış.
PIC16F628 ERRATA sheet
http://ww1.microchip.com/downloads/en/DeviceDoc/80074c.pdf

dogada

Alıntı yapılan: "XX_CİHAN_XX"Evet arkadaşlar proteus a hiç yanaşmayın bu konuda en guvenılır kaynak mplab.mplabta porta ya 0xff gonderdıgınızde sımulasyonda porta nın pınlerıne baktıgımızda porta,5 hariç butun pınler duzgun calısıyor.
Kısacası A5 sadece giriş diğer pinler ise istediğiniz gibi kullanılabilir.....

Sorun şu  clrf   TRISA, Yani RA5 porttu çıkış olarak tanımlandığında RA6 porttunun durumu hatalı oluyor. Yani
clrf TRISA veya movlw 0x00 ; movwf TRISA komutları kullanırsak hata yapmış oluruz..
Daha önceden de bu hataya düşmüştüm.. Onun için adamlar uyarmışlar sadece giriş olarak tanımlamamızı istemişler.
******

XX_CİHAN_XX

Alıntı yapılan: "dogada"
Alıntı yapılan: "XX_CİHAN_XX"Evet arkadaşlar proteus a hiç yanaşmayın bu konuda en guvenılır kaynak mplab.mplabta porta ya 0xff gonderdıgınızde sımulasyonda porta nın pınlerıne baktıgımızda porta,5 hariç butun pınler duzgun calısıyor.
Kısacası A5 sadece giriş diğer pinler ise istediğiniz gibi kullanılabilir.....

Sorun şu  clrf   TRISA, Yani RA5 porttu çıkış olarak tanımlandığında RA6 porttunun durumu hatalı oluyor. Yani
clrf TRISA veya movlw 0x00 ; movwf TRISA komutları kullanırsak hata yapmış oluruz..
Daha önceden de bu hataya düşmüştüm.. Onun için adamlar uyarmışlar sadece giriş olarak tanımlamamızı istemişler.
Böyle birşeyi ilk defa senden duyuyorum.
Clrf trisa dediğimide ra6 neden hatalı çalışsın ki?
Ra6 zaten çıkış olarak tanımlanabilen bir uçtur ve ra5 ile hiç bir alakası yoktur.Porta yı kopmle cıkıs yaptıgımızda ra5 hariç tüm pinlerin çıkış olarak kullanılabildiğini mplab ın simulasyonundan izleyebilirsin....
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

conavar

bugun yaptığım bir uygulamada birşeylerin yanlış olduğunu fark ettim...
RA6/OSC2/CLKOUT pini sürekli clock sinyali veriyordu...
çıkış olarak kullanıyordum ama olmuyor...
RA6 I/O pin değiL miydi ?? kafam biraz karıştı ama...
ayrıca yazılanları okuyorum ama pdf de MLRC I/O olarak kullanılacağı yazmıyor :D
neyse iyi oldu bu tür paylaşımlar cok güzeL oluyor :)
BiLgi Paylaştıkça çoğalır

Bir de bu internal OSC de dikkat edilecek bir husus var mı ??
su anda 4 MHZ kullanıyorum ve arada delay olarak led yakma ve sönme için 500ms kullanıyorum ama arkadaş 70 sn bekliyor 8O 1 ms çekince de gecikmeyi sanki 250 ms gibi çalışıyor...
bu Internal RC Osc yi set etme yada kalibrasyon gibi birşey var mı ?
.::BiLgi Paylaştıkça Çoğalır::.[/url]

tpaksu

bende bugün aynı şekilde bi sorunla karşılaştım

proteusta bi türlü a4 ve a5 pinine hükmedemiyorum ne yaptımsa olmadı :)

ancak CCS C'de NOMCLR INTRC_IO gibi fuse'lar sayesinde bu bacaklar giriş çıkış olarak kullanabiliyoruz diye biliyorum (A5 sadece giriş)

yalnız benim A4'tteki sorunu halletmem lazım. Programda yazmışsam, proteusta çalışmamışsa, sizin dediğinize göre devrede çalışma ihtimali var..

deneyelim görelim bakalım.

(Eğer çözüm bulan varsa uğraştırmayın beni :P)

XX_CİHAN_XX

Dediğin gibi a5 sadece giriştir.Ancak a4 çıkışta olabiliyor.A4 pinini çıkış olarak kullandığın zaman 4k7 gibi bir direnç ile vcc ye pull up yapman gerekir.Bu pini 4k7 ile +5v ye çekersen sorunun düzelecektir.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

tpaksu

evet simülasyon yaparken denedim bugün teşekkür ederim. aslında daha önce de F628A kullandım ama insan unutuyor işte.. her picle işim olduğunda tekrardan help dosyasını açmadan programı yazamıyorum mesela :) bu bilgi burada kalıcı olsun ve ben her aradığımda bulabileyim o zaman..