APA 106 neopixel benzeri 5mm RGB LED

Başlatan MC_Skywalker, 04 Şubat 2020, 16:44:42

ete

Her ne hikmet ise o veridğin resim linkleri bir türlü açılmıyor. Başka bir kaynak bulmak lazım sanırım.
Data sheet'i dikkatlice inceledim. Bu işlemci özellikle USB çalışmaları için yapılmış bir işlemci olduğu için PLL si bile USB ye dayandırılmış. Ama açıklamalarda normal clk içinde PLL kullanılabilir diyor.
Ancak, ne yazıkki dahili OSC si ile PLL bir arada kullanılamıyor. PLL nin etkin olabildiği bir kaç mod var. Bunlar HSPLL, XTPLL, ECPLL, ECPIO modları. Bunların tamamı harici clk ile bu işi yapıyor. Ya kristal bağlanacak (HSPLL ve XTPLL modlarında) yada Harici hazır osilatör den CLK girmen gerekecek.
Data sheet 32 ci sayfada bir tablo vermişler. Bu tabloda hangi OSC giriş frekansları ile neler elde edilebileceği gösterilmiş.
Buna göre 32Mhz için;
20 Mhz, 16Mhz, 12Mhz, 8 Mhz kristal frekanları ile bu 32 Mhz lik frekansın elde edilebileceğini söylemişler.
12Mhz kristal elinde olduğuna göre HSPLL modunda, MCU CLK division yani bölme oranı (CPUDIV1 ve CPUDIV0 bitleri ile ayarlanıyor) +3 yani verilmesi gerekiyormuş.CPUDIV1 ve CPUDIV2 bitleri CONFIG1L ayarında yer alıyor.
Anladığım kadarı ile sırf USB çalışsın diye bu işlemcide PLL önce 96Mhz lik frekansı elde ediyor sonra İşlemci CLK frekansı için bunu bölerek kullanıyor.
Bunun dışında pek alternatif yok.

Ete


MC_Skywalker

#16
MCU'un C5 pini USB data pinlerinden biriymiş. onu başka bir pine kaydırdığımda 4Mhz Xtal ve PLL ile ilk led çok hızılı yanıp söner şeklilde çalışmaya başladı.



https://i.postimg.cc/rF78s6RF/screenshot.jpg
Çok fazla özellik barındırmayan başka bir pin seçip lojik analizörile tekrar bakacağım. bakalım ne çıkacak sanırım 32Mhz hızlı geldi.

ete

HIGH ve low sürelerine bak. 32 Mhz nin Çok hızlı gelmesi mümkün değil ancak yetecek.
Tek sorun küsüratların tutturulmaması. Belkide Bit ve Byte verme kısmı ASM de yazılmalı bana kalırsa. Çünki komut gecikmeleri çok etkili olacak. Bir sürü NOP kullanıyoruz ama işi bunları sıralı verdirmeye gelince döngüler ve diğer komutlar gecikme yaratacak. Şayet Bu led içindeki rom dediğimiz programlanmış kısım bu süre farklılıklarını kabulleniyor ise sorun çıkmayacak. Ama data sheet de tolerans 150ns olark verilmiş buda az bir miktar. Gerçi WS2811 de de öyle idi ama ben oradaki toleransın epeyce fazla olduğunu gözlemlemiştim.

Ete

MC_Skywalker

0,35us + 1,36us = 1,71us lik veya 1,36us + 0,35us = 1,71us lik istediğimiz sinyal oluşmuyor. ratstgele içinde bozulmalar oluyor ve bozuk bir sinyal çıktığından LED ler tam çalışmıyor.

Dediğiniz gibi bit gönderme kısmınıda ASM ile yazmak gerekecek gibi.


https://i.postimg.cc/76RR94k5/screenshot-combine.jpg

ete

Hala o işlemcinin sigorta ayarlarının doğruluğundan endişeliyim. Bu nedenle kendi programıma ben kendi sigorta ayarlarımı ayarlayıp ekledim. Derleyip ilişikteki dosyada APAP1065_ete_01 adı aldıtnda yolladım. Hem PBP hemde exe dosyasını ekledim. Önce hex'i bozmadan direk pice yükle bir dene istersen.
İkinci bir program da ekledim. Bu programda bit ve byte verme işlemleri ASM ile yapılıyor.
Tek renk Kırmızı (sende hangi renk pinine denk geliyor ise o renk çıkacaktır). Basılıyor. Çalıştığını buradan anlarsın.
Bu programda APAP1065_ete_02 olarak kayıt edildi hem PBP hemde hex dosyası mevcut.
Dene ve sonucu bildir lütfen.
Çıkış bacağı PORTC.4 kullandım gerekirse bildir değiştireyim yada sen değiştir.

Ete

MC_Skywalker

#20
ilk program sadece ilk LED'nin hızlıca renk değiştirmesi başka birşey olmuyor.

ikinci programı yükledim ilk led kırmızı yanıyor ve ardından diğerleri turuncu blink yapıyor. Böyle dönüp duruyor.



https://i.postimg.cc/XYdp0K7J/APA-106-5mm.gif

ete

Açıklamana bakarak iki programda çalışıyor diyebilirim. Sadece bir birine data aktarması gereken bu ledlerin aktarma işini doğru yapamadığını görüyorum. Nasıl bağlanmışlar bilemiyorum.
Mantık olarak birinciden data_IN den giriliyor Data_Out dan çıkılıp ikincinin Data_ın girişine bağlanılması gerekiyor. Bu şekilde bütün hepsi seri bağlı olmalı. Bundan sonrasını senin çözmen gerek. Ama iki programda çalışıyor gibi bana kalırsa.

Belki mantık hatamızda vardır ona bakmam lazım. Gerçi epeyce baktım. Üstelik bu daha önceden çalıştırdığım WS2811 miydi WS2812 miydi neydi ona yazdığım kodlardan yararlanarak düzenlediğim program. Çalışması gerekirdi.

Ete

MC_Skywalker

D_in den grip D_out ile diğer LED'e bağlanıyor. 9 tane LED var seri şekilde. bir-iki yerde önce yeşil rengi gönderin diye yazı okudum, gönderim şekli GBR olmalı demiş başka biryerde GRB şeklinde gönderin yazımış.

ete

Deneme aşamasında hangi renk önce gönderilecek pek önemli değil bence. Hepsi kırmızı olsun dediğimde ben birinci dosyada RGB şeklinde ikincide RBG şeklinde yollamıştım.
Şimdi her iki programıda GBR olarak düzenledim.
BU arada 2 nolu programda çıkış pini ni ASM deki kısımda değiştirmemişim. Onuda düzelttim.
Her iki programıda bir daha dene bakalım.
Ete

MC_Skywalker

#24
Son verdiğiniz programları yüklediğimde LED'lerin hepsi mavi yanıyor.Programlarda PORTC.4 yerine PORTA.0 çıkış olarak düzenlediğimde;

ilk programda ilk LED mavi sabit yanarken kırmız blink yapıyor diğerleri sabit mavi yanıyor.
ikinci programda da da LATC 0x4 leri LATA 0x0 değiştirdim. İlk LED sabit kırmızı son LED sabit mavi yanarken diğerleri blink yapıyor.




Bu duruma göre PORTC.4 pini bizim işimize yaramıyor çünkü USB donanımına bağlı. PORTA.0 bizim için uygun. Bu arada dün akşam başka bir mecrada (FPGA ile) deneme yaptım orda da sonuç hüsran. Tüm LED'ler mavi yanıyor.

ete

Uzaktan daha fazla bir şey yapılması mümkün gözükmüyor. Öncelikle işlemci hakimiyetinden kurtulmak lazım. Bu nedenle 12F1822 yada 16F1825 gibi bir işlemci ile bunları denemek daha uygun olacak.
Detaylı data hseet olmaması bir dezavantaj. Bulan bir şekilde parametreleri buluyor yapıyor. Bizim gibi bulamayanlar eşelenip duruyorlar işte.

Ete

MC_Skywalker

#26
Hocam bu arada ben boşuna tırmalıyorum, Silver sürümü 20Mhz  clk üstünü desteklemiyormuş   ???  :o

ete

İnsanın bu kadarda eli kolu bağlanmazki.  Boşuna ilaçlamıyorlar.  Her taraftan kısıtlama koymuş adam. Bence bir anlamda bununla uğraşma tam sürüm satın al diyor.
Ete

MC_Skywalker

#28
Neyse şimdilik bunu rafa kaldırayım asıl uğraşmam gereken beklediğim photo diot'lar nihayet geldi onunla ilgileneyim.

Bu projeyide daha sonra iyice ASM öğrenip MPLAB X te yapayım.

mustafa_cmbz

Alıntı yapılan: MC_Skywalker - 06 Mart 2020, 18:14:51Neyse şimdilik bunu rafa kaldırayım asıl uğraşmam gereken beklediğim photo diot'lar nihayet geldi onunla ilgileneyim.

Bu projeyide daha sonra iyice ASM öğrenip MPLAB X te yapayım.

başkan daha önce denedim dediğin ws2812b ile ilgili örnek paylaşırmısın

Powered by EzPortal