Reset Register'ı Sorunu

Başlatan robikod, 11 Aralık 2019, 11:03:28

robikod

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 ?






(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)

JKramer

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.

robikod

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ı).

OptimusPrime

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.  ;)
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

robikod

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.

OptimusPrime

Belirli bir registere yazip geri okudugunda yazdigin degeri geri okuyabiliyor musun?
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

robikod

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.

robikod

#7
Reset sorununu çözemedim hala. ..

OptimusPrime

https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

robikod


robikod

#10
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.

OptimusPrime

4.9.1 SPI SLAVE SERIAL BUS
basliginda gosterilen zamanlama diyagraminin aynisini scope da veya lojik analizorde gormen lazim. Hic baktin mi?
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

robikod

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