18F452 bilgi

Başlatan Naci Osman-torun, 03 Nisan 2022, 20:19:39

Naci Osman-torun

Sayın Ete hocam
PIC 16F877te olduğu gibi 18F452de portları giriş/çıkış ayarlarken "TRIS" komutu kullanılıyormu ve hangi PIC lerde kullanılmıyor

ete

Bütün Pic lerde TRIS kullanılıyor. Yanlızca Port isimleri değişiyor. Kiminde (Genelde 12F serisinde) GPIO kimisinde PORTA-PORTB... diye adlandılıyor. Port adına göre de TRIS komutu TRISIO, TRISA - TRISB diye isimlendiriliyor.

Bunu belirlemek için işlemciye ait data sheet'e bakmak yeterli. Orada ne şekilde isimlendirilmiş ise TRIS de o şekilde isimlendiriliyor.

Ete

Naci Osman-torun

Hocam cahilligim için kusura bakmayın (yeni -kendi imkanlarımla öğrenmeye çalışıyorum)
877 (asm)de TRIS ve PORT lara ulaşmak için bank değiştiriliyor.Mesela:
          bsf status.5 veya banksel
452de de aynı prosedür aynımı yoksa direk TRIS le hallediliyormu

ete

#3
İşlemci hafızaları bak denilen dizilmiş hafızalardan oluşur. Bunu birdeb fazla hafıza entegresinin aynı hatta bağlanması gibi düşün. TRIS registerinin 2 nolu entegre hafızasına yer alması nedeni ile önce bank değiştirerek o entegreye geçiyorsun sonra orada değişiklik yapıp oraya kaydediyorsun. Bank değiştirmenin espirisi budur.
Daha kısa açıklamak gerekirse işlemci hafızası tek bir hafıza değildir. diyelimki her biri 255 byte değerinde olan birden fazla hafızadan meydana gelir. Bu nedenle bir iş yaparken önce o işe ait hafıza hangi entegrede (Bank da) ise önce onu aktive edip sonra işlem yapıyorsun.

Dediğim gibi işlemci data sheet lerinde bunların bilgisi mevcut (Memory Organisation).
Ben basic kullanıyorum Basic bu işleri kendisi geri planda yapıyor. Ben TRISA=xxxxx dediğim zaman program derlenirken kendisi bank değiştirip tris registerine ulaşıp değişikliği yapıp kayıt ettikten sonra geri dönüyor. Bu nedenle bu konuda şimdiye kadar ben bir araştırma falan yapmadım. Yanlızca merak duyarak işler nasıl yürüyor diye incelediğimde ve birazda ASM çalışma ihtiyacı duyduğumda bu bilgilere ulaşmış idim.
Açarsın 18F452 data sheetini bakarsın ilgili bölüme. Ben baktım örnek olarak C portu Tris registeri değiştirme işine ait bir bölüm orada yer alıyordu aşağıda veriyorum.

CLRF PORTC ; Initialize PORTC by
; clearing output
; data latches
CLRF LATC ; Alternate method
; to clear output
; data latches
MOVLW 0xCF ; Value used to
; initialize data
; direction
MOVWF TRISC ; Set RC<3:0> as inputs
; RC<5:4> as outputs
; RC<7:6> as inputs
Bank değiştirme yapılmamış gözüküyor. Ama bu işi ASM bilen birisi cevaplasın daha doğru olur.
Yine merak edip başka bir işlemci olan 12F675 data sheet'ine baktım. Orada GPIO registeri kullanılıyor ve BANK0 ile BANK1 şeklinde iki bank olduğunu görüyorum. TRISIO registeri ise BANK1 de yer alıyor. Bunu kolayca görebiliyorum Dolayısıyla bu işlemcide Bank0 dan Bank1 e geçiş yapman gerekiyor.


Ete

Naci Osman-torun

Çok teşekkürler hocam çok aydınlatıcı oldu
Aslında bende baktığımda 452 datasheetine BANK değişimi yapıldığına şüpem vardı artık eminim bank değişimi olmadığına
Yine de tam emin olmak için bir asm ciye soracam
Ayrıca Basic dersleri olarak bilginizi  paylaştıgınız içinde teşekkürler


mehmet

F452 sorunlu bir mcu. Kendi sitesinde
bile "Yeni tasarımlar için önerilmez"
yazmaktadır.
Mecbur değilseniz, başka bir mcu ile
devam ediniz.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr

alisumer

#6
evet alıştığımız şekilde banklar yok  gibi ama bank ve bank değişimi var sadece SPECIAL FUNCTION REGISTER diye adlandırılan ayarlamaları yaptığımız kısmın tamamı 15 bankta yer alıyor evet herhangi bir ayar yaptık diyelim porta yı çıkış yaptık sonrada SPI ile ilgili bir ayar yapmak için bank değişimi gerekmiyor ama atadığınız bir değişkenden veriyi alıp portb den çıkartmak için o verinin bulunduğu bank'a BSR<3:0> ile gitmeniz (yada adres yazarak) ordan veriyi alıp 15. banka gelip veriyi çıkartmanız gerekecek . ayrıca mehmet hocam mikrochip eski serinin sanırım tamamında bu uyarıyı veriyor bana çok denk geldi bu işlemcinin "tırt" olduğu anlamına gelmiyor sadece daha eski ,güncel değil, pahalı yada üretiminin durdurulacağı anlamlarına gelebilir belki
Hep meraktan

mehmet

Bir ara bunun yerine 18F4520 öneriliyordu.
Sayfadan bu öneri kaldırılmış. Donanımsal
hatalar içeriyor ki kendileri bile başka
mcu öneriyor.
Erratalar üzerinden kontrol edip işimize
yarayıp yaramadığını anlayabiliriz.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr

Powered by EzPortal