8tga7cmind
Üye
- Katılım
- 16 Şub 2019
- Mesajlar
- 11
- Puanları
- 1
- Yaş
- 25
Herkese iyi günler,
AVR mimarisinde c ile kodlamaya başladım ve bir sorunla karşılaştım.
Attiny2313A mikrodenetleyicisinde sigorta ayarlarını yapıyorum altta vereceğim yaptığım ayarları. Harici kristal kullanıyorum. 22pF mercimek kondansatörler kullanıyorum datasheette anladığım kadarıyla belirtilen değerler bunlar. Mikrodenetleyiciyi 20MHz de kullanmak istiyorum fakat harici herhangi bir osilatör bağladığımda pinlerden ledi sönük bir şekilde yakacak kadar güç çekebiliyorum. Bunun sebebinin yaptığım sigorta ayarlarından olduğunu düşünüyorum. Sigorta ayarlarım:
CKDIV8 = 1
CKOUT = 0
SUT1 = 1
SUT0 = 1
CKSEL3 = 1
CKSEL2 = 1
CKSEL1 = 1
CKSEL0 = 1
DWEN = 1
EESAVE = 1
SPIEN = 0 (SPI üzerinden programladığım için zaten değişmiyor)
WDTON = 1
BODLEVEL2 = 1
BODLEVEL1 = 1
BODLEVEL0 = 1
RSTDİSBL = 1
SELFPRGEN = 0
LB2 = 1
LB1 = 1
Datasheet:http://ww1.microchip.com/downloads/en/DeviceDoc/doc8246.pdf
Yaptıklarım ve anladıklarımı yazıyorum yanlışlarımı düzeltirseniz sevinirim bu konuyu internette benzer sorunlarla karşılaşanlara çözüm olsun diye uzun uzadıya yazıyorum.
İlk olarak 30. Sayfada tabloda eğer 0.4 - 0.9 MHz de kullanacaksan kondansatör bağlama onun üzerinde 20MHz ye kadar 12-22pF kondansatör bağla diyor.
Aynı tabloda 8MHz ve üzeri kristal kullanacaksan CKSEL3-2-1 sigortalarını 1 yap diyor.
Sayfanın en altında CKSEL0 ın SUT sigortalarıyla beraber başlangıç zamanını ve yükselmesini seçeceğini söylüyor.
"The CKSEL0 Fuse together with the SUT1..0 Fuses select the start-up times as shown in Table 6-7. "
31. Sayfadaki tabloda kristal kullanıyosan ve yavaş yükselme olcaksa (okuduğum bir kaynakta elinizdeki kristal hakkında bilgi sahibi değilseniz en uzun olan rising time seçin diyordu mantıklı geldi sonradan tüm rising time larıda denedim.)CKSEL0, SUT1, SUT0 sigortalarını 1 yapın diyor.
Diğer sigorta değerlerini de buradaki kaynaktan edindim. Attiny44 datasheetinden alıntı: kaynak:http://archive.fabacademy.org/archives/2016/opendot/students/182/embeddedprogramming.html
Mikrodenetleyici yi 5v ile besliyorum. Yeterli akımı sağlayamaması düşüncesi ile harici 1A adaptör ile besledim ama bir ledi bile doğru düzgün yakamıyorum. sadece 20MHz değil 8 ve 4 Mhz ile de denedim ama olmuyor yine çok çok sönük yanıyor.
198. sayfada pin başına 40mA verebileceğini söylüyor. E arduino da pin başına 40mA veriyor ve düzgünce yakıyor. Amacım led yakmak değil ama analog gir sensör bağladığımda yada ı2c uart spı kullanırken sorun olacağını düşünüyorum. Zaten dahili osilatör kullanırken böyle bir sorun yok. Ama nedense kristal bağlayınca böyle.
AVR mimarisinde c ile kodlamaya başladım ve bir sorunla karşılaştım.
Attiny2313A mikrodenetleyicisinde sigorta ayarlarını yapıyorum altta vereceğim yaptığım ayarları. Harici kristal kullanıyorum. 22pF mercimek kondansatörler kullanıyorum datasheette anladığım kadarıyla belirtilen değerler bunlar. Mikrodenetleyiciyi 20MHz de kullanmak istiyorum fakat harici herhangi bir osilatör bağladığımda pinlerden ledi sönük bir şekilde yakacak kadar güç çekebiliyorum. Bunun sebebinin yaptığım sigorta ayarlarından olduğunu düşünüyorum. Sigorta ayarlarım:
CKDIV8 = 1
CKOUT = 0
SUT1 = 1
SUT0 = 1
CKSEL3 = 1
CKSEL2 = 1
CKSEL1 = 1
CKSEL0 = 1
DWEN = 1
EESAVE = 1
SPIEN = 0 (SPI üzerinden programladığım için zaten değişmiyor)
WDTON = 1
BODLEVEL2 = 1
BODLEVEL1 = 1
BODLEVEL0 = 1
RSTDİSBL = 1
SELFPRGEN = 0
LB2 = 1
LB1 = 1
Datasheet:http://ww1.microchip.com/downloads/en/DeviceDoc/doc8246.pdf
Yaptıklarım ve anladıklarımı yazıyorum yanlışlarımı düzeltirseniz sevinirim bu konuyu internette benzer sorunlarla karşılaşanlara çözüm olsun diye uzun uzadıya yazıyorum.
İlk olarak 30. Sayfada tabloda eğer 0.4 - 0.9 MHz de kullanacaksan kondansatör bağlama onun üzerinde 20MHz ye kadar 12-22pF kondansatör bağla diyor.
Aynı tabloda 8MHz ve üzeri kristal kullanacaksan CKSEL3-2-1 sigortalarını 1 yap diyor.
Sayfanın en altında CKSEL0 ın SUT sigortalarıyla beraber başlangıç zamanını ve yükselmesini seçeceğini söylüyor.
"The CKSEL0 Fuse together with the SUT1..0 Fuses select the start-up times as shown in Table 6-7. "
31. Sayfadaki tabloda kristal kullanıyosan ve yavaş yükselme olcaksa (okuduğum bir kaynakta elinizdeki kristal hakkında bilgi sahibi değilseniz en uzun olan rising time seçin diyordu mantıklı geldi sonradan tüm rising time larıda denedim.)CKSEL0, SUT1, SUT0 sigortalarını 1 yapın diyor.
Diğer sigorta değerlerini de buradaki kaynaktan edindim. Attiny44 datasheetinden alıntı: kaynak:http://archive.fabacademy.org/archives/2016/opendot/students/182/embeddedprogramming.html
Mikrodenetleyici yi 5v ile besliyorum. Yeterli akımı sağlayamaması düşüncesi ile harici 1A adaptör ile besledim ama bir ledi bile doğru düzgün yakamıyorum. sadece 20MHz değil 8 ve 4 Mhz ile de denedim ama olmuyor yine çok çok sönük yanıyor.
198. sayfada pin başına 40mA verebileceğini söylüyor. E arduino da pin başına 40mA veriyor ve düzgünce yakıyor. Amacım led yakmak değil ama analog gir sensör bağladığımda yada ı2c uart spı kullanırken sorun olacağını düşünüyorum. Zaten dahili osilatör kullanırken böyle bir sorun yok. Ama nedense kristal bağlayınca böyle.