STM32 SPI ile switch IC ile haberleşmeye çalışıyorum, haberleşmem başarılı ancak IC'nin Switch Registerlarından bir bit R/W olmasına rağmen o Registerı değiştiremiyorum. Switch register adresim 0x0300 bu adresteki 1. biti 1 yaparsam Soft Hardware Reset gerçekleştirmiş olacağım ancak bu değeri asla 1 yapamıyorum R/W olmasına rağmen. Bu adresteki 0. değeri değiştirebiiyorum. YArdımcı olabilir misiniz neden olabilir ?
(https://i.hizliresim.com/XbZv4O.png) (https://hizliresim.com/XbZv4O)
(SC) Self-Clearing: Contents are self-cleared after the being set. Writes of zero have no
effect. Contents can be read. (Bu kısımdan dolayı mı oluyor anlayamadım)
Evet, o kısımdan dolayı oluyor. Self Clearing dediği, siz 1 yaptıktan sonra kendisi sıfırlıyor. Bu bit'e bakmak yerine işlevini yerine getirmiş mi (diğer register'lar default değerlerine dönmüş mü) ona bakmanız lazım.
Alıntı yapılan: JKramer - 11 Aralık 2019, 11:55:29Evet, o kısımdan dolayı oluyor. Self Clearing dediği, siz 1 yaptıktan sonra kendisi sıfırlıyor. Bu bit'e bakmak yerine işlevini yerine getirmiş mi (diğer register'lar default değerlerine dönmüş mü) ona bakmanız lazım.
Onu test ettim bu biti 1 yapmadan başka bir register değerini 0'dan 1 e çektim. Daha sonra bu reset bitini 1 yaptım, default değere dönmesini beklerken ilk başta 1e çektiğim register'ın değerinin 1 olduğunu gördüm (default değeri 0 olmalıydı).
Kendi kendine temizleniyormus bu bit. Cipin icindeki yapi bunu temizlemeden okuyabilirsen 1 i gorursun. :)
0 a donmesini bekledigin reg strap in regi olmamaliymis. Buna dikkat et. ;)
Alıntı yapılan: OptimusPrime - 11 Aralık 2019, 21:17:38Kendi kendine temizleniyormus bu bit. Cipin icindeki yapi bunu temizlemeden okuyabilirsen 1 i gorursun. :)
0 a donmesini bekledigin reg strap in regi olmamaliymis. Buna dikkat et. ;)
Strap in Register olanların yanında yazıyor strap in olup olmadıkları. Ona göre olmayanı denedim bu biti set ettikten sonra hiçbir Register default değerine dönüşmüyor.
Belirli bir registere yazip geri okudugunda yazdigin degeri geri okuyabiliyor musun?
Alıntı yapılan: OptimusPrime - 12 Aralık 2019, 09:33:43Belirli bir registere yazip geri okudugunda yazdigin degeri geri okuyabiliyor musun?
Bazı registerlar için evet 3-4 tane denedim rastgele onlarda oldu. Bazılarında ise R/W olmasına rağmen yazamıyorum.
Reset sorununu çözemedim hala. ..
Spi entegresinin adi nedir?
Alıntı yapılan: OptimusPrime - 12 Aralık 2019, 10:41:57Spi entegresinin adi nedir?
SPI entegresi derken STM32F4 ve http://ww1.microchip.com/downloads/en/DeviceDoc/KSZ8563R-Data-Sheet-DS00002418D.pdf bu IC'yi kullanıyorum.
Son geldiğim noktadan bahsedeyim, 0. biti bir pin yardımı ile 1 yapabiliyorum. Ancak hala 1. biti (1) yapamadım. 1 set ediyorum ve registerlar default değerinde mi kontrol ediyorum. Malesef default değerlerine geri dönmüyorlar. Soft Harware Reset atamıyorum.
*** Düzeltme: sorunu çözdüm. 5-3 de bahsedilen pini reset, set yaptıktan sonra, Reset registerine 0x03 değerini yazdım. Yani 0. biti değiştirmeden. Daha sonra registerlara reset atabildiğimi gördüm.
4.9.1 SPI SLAVE SERIAL BUS
basliginda gosterilen zamanlama diyagraminin aynisini scope da veya lojik analizorde gormen lazim. Hic baktin mi?
Alıntı yapılan: OptimusPrime - 12 Aralık 2019, 18:01:404.9.1 SPI SLAVE SERIAL BUS
basliginda gosterilen zamanlama diyagraminin aynisini scope da veya lojik analizorde gormen lazim. Hic baktin mi?
Evet SPI datalarını düzgün bir şekilde görüntüleyebiliyorum. Söylediğim gibi sorunu çözdüm. En son yorumda bahsetmiştim. Cevaplayanlara çok teşekkürler