DSPIC30F2010 Mikro İşlemcide SPI Modülde SDI Girişini Farklı Bir Amaçla Kullanmak Mümkünmüdür?

picmanya

Aktif Üye
Katılım
14 Haziran 2024
Mesajlar
275
DSPIC30F2010 Mikro İşlemcide SPI Modülde SDI Girişini Farklı Bir Amaçla Kullanmak Mümkünmüdür?
SPI Modülü (Serial Peripheral Interface) kullanılırken; SCK1 ve SDO1 pinleri kullanılıp SDI1 pini kullanılmayacak.
SDI1 pini RF2 portu olarak farklı bir işte çıkış amaçlı kullanılacak. Bu mümkünmüdür?
Kısaca amaç;
SPI modülün seri çıkış verme tarafı kullanılıp, seri giriş alma kısmı kullanılmayacak ve bu pin ayrı bir amaçla normal çıkış işleminde değerlendirilecek.
Bu olabilirmi?
 
Master sen olduktan sonra dedigini yapmana engel hic bir sey yok.
 
Master sen olduktan sonra dedigini yapmana engel hic bir sey yok.
ben şöyle anladım hardware spi donanımını set ettiğinde, spi giriş pinini bağımsız bir io olarak kullanmak istiyor. bunun için chipin lojik diyagramına bakmak lazım. spi hw enable edildiğinde hardcoded olarak o pinleri belli lojiklere mi yönlendiriyor. yoksa bu ayarı override edebilecek başka register seçenekleri var mı.

yanlış hatırlamıyorsam yeni nesil microchip mcularda bu donanımlar spi-uart-i2c vs. başka pinlere remap edilebiliyordu. hatta microchip mplab içinde bunu configure eden bir tool vardı.

 
Kullanım kılavuzunda mümkün olduğu belirtiliyor (bölüm 11.3.1.2 Pin Control Summary)


1719324691268.png
 
taydin,
Siz yazıyı göstererek haklısınız, orada dediğiniz gibi mümkün olduğu yazıyor.
Verdiğiniz belge içindeki, altda siyah olarak gösterdiğiniz yazılar içinde yazan SDI kısmı hatalı yanlış basılmış gibi duruyor.
SDO yazılmak istenmiş olmalı.
Gerçekde-uygulamada işlemci; SDI pinini port kullanımı için serbest bırakmıyor gibi duruyor. Ne yaptıysak sökmedi.

microstep,
"Master sen olduktan sonra dedigini yapmana engel hic bir sey yok."
Evet master benim, SPI modül saniyede 150 kez, display sürmek için, SDO seri çıkışı üzerinden, 74hc595 çipe sürekli veri göndermiyor olsaydı,
RF2 port çıkışıda (SDI pini olur) 1-10 sn. arasında kalıcı çıkış olarak pini +5V. ye çekmem gerekmeseydi, ben yapacağımı bilirdim.
Kapatırdım SPI modülü çekerdim TRIS port RF2 yi çıkışa, işimi görür, sonra tekrar SPI moduna geri döndürürdüm. Ama zamanlar buna engel.

Bu durumda SDI pini normal port lat çıkışı olarak (RF2 - LATF2 olarak) kullanılabilir diyebilirmisiniz?
 
Evet dokümanda bir çelişki de var aslında. Aynı sayfada da SPI çevre birimi bütün pinlerin kontrolünü ele geçirir ve bırakmaz diyor :kizgin1:

1719334515670.png
 
90 dan sağlam bir gol yedim. İşlemcide boşta pinde yok.
Daha önce hiç yapmadığım tarzda;
9-10 nolu pinlere bağlı, harici osilatör kullanımı iptal edip, iç dahili RC osilatörü kullanıma alsam,
10. nolu pini RC15 port çıkış pini olarak yapılandırılabiliyorsa bunu kullansam sıkıntı yaşarmıyım.
Harici metal XT osilatörle, işlemci %50 yarı hızında çalıştırılıp ısındığı parmakla farkedilemiyor.
RC osilatörde %50 işlemci kristal hızında kullanıldığını düşünsek.!
 
Dahili RC kullanılabilir, veya kristal osilatör devresi dışarı alınıp tek pinden clock girilebilir.
 
"Dahili RC kullanılabilir, veya kristal osilatör devresi dışarı alınıp tek pinden clock girilebilir."

Kristal osilatör devresi dışarıda kullanıldığında çift pinden OSC1/OSC2 den bağlanabiliyor.
Diye biliyorum, tek pinden kristal osilatör nasıl bağlanabiliyor? Kristal osilatör 2 pinli çalışan bir yapı değilmi?
 
Kristal başka, osilatör devresi başka. Kristali tek başına 2 pin ile bağlarsanız çip içindeki osilatör devresi çalışır. Eğer çip clock girişine izin veriyorsa collpitts gibi bir osilatör devresi ile kristali çalıştırıp tek pinden clock girebilirsiniz.
 
Anladım. 9. nolu pin CLKI girişi kabul ediyor. dışarıdan tek pinli osilatör girişiymiş bu.
Tek pinden takılan osilatör pahalımı? Alınmak istense nasıl isteniyor?

Ben işin bu kısmını bedavaya halletmek için, iç dahili RC osilatörü yarı hızında kullansam, işlemcide ısınmıyorsa sorun yaşarmıyım?
 
Figure 8.2 ye gore peripheral module enable dediginde pinler peripheral module geciyor.

Bu durumda amacin pin kazanmak ise tek bir yol kaliyor.

Inp amacli kullandigin pin varsa o sinyali SPI pininden oku.
Bosa cikan o pini de out pin kullan.
 
Son düzenleme:
74HC595 e veri basma işini SPI modülü yerine software olarak yapın. SDI pini sizin olsun.
 
czorgormez,
"yanlış hatırlamıyorsam yeni nesil microchip mcularda bu donanımlar spi-uart-i2c vs. başka pinlere remap edilebiliyordu."
Bu özellik daha üst düzeydeki 3,3 V. işlemcilerinde var.

74HC595 e veri basma işini SPI modülü yerine software olarak yapın. SDI pini sizin olsun.
Geçmişte SPI kullanmadan önce bunuda yapmıştım. Veri bitleri kaydırılıp kayıtdan çıkan son bit 74HC595 clock verilip data olarak basılıyordu.
İşlem bir döngü içinde yapılıyor işlemci bu arada beklemeye alınıyordu. Tam bir hamballıktı. SPI bağımsız modülü varken yapılmaması gereken bir şey diyebilirim.
Modül kullanmalık işlerde işlemcidede o modül varsa, modülü kullanmak gerekir derler. SDI pini kazanılır ama başka yerden daha fazla ödün verilir zarar edilir.
Ama yinede bir yöntem tabikide.

Bu durumda amacin pin kazanmak ise tek bir yol kaliyor.
Input amacli kullandigin pin varsa o sinyali SPI pininden oku. Bosa cikan o pini de output pin kullan.
Anladım bu güzel bir çözümmüş, bunu düşünmemiştim.
Digital inputlardan birisini SDI pinine kaydıracağım ve SDI pinine pull-up direnci atıp, inputdan pull down durumu oluştuğunda giriş bilgisi oluştuğunu anlayıp programda değerlendireceğim. Burada saniyede 150 kere Inputu okuyabileceğim. Güzel fikir bunu notlarıma yazdım. İleride gerekebilir. Teşekkür Ederim.

Yalnız bu çözüm birkaç donanımsal değişiklik jumper falan gerektirecek. Birde Input girişlerimin tamamı CN Interrupt girişine ayarlanmış olup dahili pull-up dirençleriyle kullanılıyorlar ve SDI pine uzak ters diğer tarafta kalıyorlar. Normal port input girişi bu kartda kullanılmadı.
________________________________________________________________________________________________________________________________________________________________________
5 adet yeni topladığım ilk protatip pcb leri değerlendirme açısından, hiç kablo jumper kullanılmamış bir halde atlama-zıplama uzay montaj yapılmış gibi göstermemek için,
Bu seferlik yapabileceğim en mantıklı işlem şöyle;

Harici kristal osilatörü işlemci iiç RC osilatör olarak ayarlayarak, RC15 pinini dijital çıkış olarak ayarlayıp kullanabilirsem.
Bu pinden ufak bir krom telle hemen SDI pine bağlı çıkış taransistörüne bağlayabileceğim. Hiç farkedilmeyecek.
Çirkin bir görüntüde olmayacak.

Bunu İlkkez uygulayacağımdan, bir sıkısntısı olacaksa, hemen farkedemeyeceğim çekincem:
RC osilatörün hemen gözükmeyip daha sonra ortaya çıkacak bir zararını görürmüyüm? RC osilatör kullanımında, RC15 pini output yapılabiliyormu bunu henüz denemeden bunu soruyorum.!
Dediğim gibi şu anda işlemci harici kristalle 60 MHz. de çalışıp 15 Mips hızında komut yürütüyor Bu % 50 yarı hızı oluyor ve işlemcinin ısınmdığını anlıyorum.
RC osilatörüde bu değerlerde kullansam, hemen gözükmeyip ileride sahada başıma iş açabilirmi?
Kısaca işlemci içinde RC osilatör var bunu kullansak sıkıntı yaşarmıyım?
 
Son düzenleme:
Belki bir gün birisinin işine yarayabilir diye yazıyorum.

Denemelerim sonucu datasında yapılamayacağı yukarıdaki yazılarda belirtildiği halde.
DSPIC30F2010 30I/SO çipde SPI modül kullanımında SDI pini RF2 port output (digital çıkış) olarak kullanılabilmektedir.
DSPIC30F4012 30I/SO çipde bu mümkün olmamaktadır.
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
6,951
Mesajlar
118,748
Üyeler
2,824
Son üye
selocan32

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top