SPI protokolu hakkında

Başlatan Maxim, 05 Kasım 2006, 21:49:48

Maxim

Bu konu ile ilgili elinde picbasic / proton uygulaması veya kodu olan paylaşabilirmi acaba ?

selamlar

OG

Proton+ için "SHIN" ve "SHOUT" inceleyiniz.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Maxim

Teşekkürler inceledim ama sonuç alamadım ,

anlamadığım şey ,acaba kimse bilmiyormu bunu ?
yoksa sır gibi saklanmasının başka bir nedeni varmı ?

z

Sır olacak bir konu değil. Clock eşliğinde veri aktarımı işte.

Herhangi bir SPI unitesinin dokümanını incelediğinde timing diagramdan nasıl haberleşileceğini anlarsın.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

gsever

Picproje yöneticilerinin yüksek müsadesi ile "More Pitfalls for Real-Time Software Developers" isimli yazının 15. maddesini orijinal olarak (anlamadığım şey ,acaba kimse bilmiyormu bunu ?) sorusuna cevap olarak yapıştırıyorum:

#15 "Nobody else here can help me."

As most any teacher will confirm, you learn more about a topic by teaching it. Real-time programmers often feel helpless when they encounter obstacles (which happens all the time) such as an I/O device not working as described in the documentation. Often, few others in the organization have the level of knowledge required for this kind of programming, leaving these programmers to solve the problem without assistance. Unfortunately, this misconception often leads to the downfall of projects or quality, as adequate solutions might never be found. If no one else has more expertise, the programmer should teach the material to someone with less expertise, so that both the teacher and the student can arrive at a better understanding of the problem. Many organizations have new recruits who are willing to learn new things to gain experience. Explain to such eager people how the program works and what the problem is. They likely will not be able to fully understand the problem. However, their questions may expose an issue or problem that was overlooked and may lead to a solution. This approach also has an important side effect. It doubles as a training technique so that when advanced programming knowledge is required, there are more programmers qualified to contribute.

Klein

Bunalmış hocamın da belirttiği gibi sır olabilecek bir konu değil. Hatta tam tersine bu konuda yazılmış okadar çok makale ve kaynak kod var ki  bizim vereceğimiz cevap bunlardan farklı olmayacaktır. Cevap vermekteki isteksizlik de muhtemelen bu sebepten.

Logan

@maxiboost, sır olacak bir konu değil.Önemsiz gibi görünmesinin sebebi bu protokol hakkında söylenecek fazla bir sözün olmamasıdır.En basitinden @Bunalmış hocanın dediği gibi clock ile veri aktarımıdır.74595 entegresinin çalışma prensibi, bu protokole verilecek anlaşılır ve kolay bir örnektir.Ayrıca kullanılan entegreye göre farklılık gösterebilir. Bazı entegrelerde sadece data ve clock ucu olurken, kimi entegrelerde ise CS ucu bulunmaktadır.Basit ve detaysız bir protokoldür.Kolay gelsin.
İmza.

Maxim

Sayın gsever ,
Amacım konunun uzaması ,off topic olması veya "neden kimse bana yardım etmiyor " tarzı bir sitem değildir .Bir forumda nasıl konuşulması gerektiğini az çok bilen biriyim.

İlk başta olayın bu kadar basit birşey olabileceğini düşünemedim sonra bana verilen son cevaplardan anladığım kadarı ile bu konu gerçekten çok önemsiz ,herkes tarafından az-çok bilinen ,üzerinde fazla durulması gerekmeyen ,basit ve sade bir iletişim protokolü .
Haliyle bende çok fazla birşey istemediğimi düşünmüştüm ,fakat kimsenin cevap vermeme nedenini anlamaya çalıştım ,o yüzden "neden sır gibi saklanıyor acaba ?" dedim .

Zaten bilseydim buraya yazmaz ,gereksiz yere forumu boşu boşuna allahın SPI protokolü için meşgül etmezdim .

Subzero

Ya arkadaşlar sanki insanlar hemen cevap vermek zorundaymış gibi davranmayın, konu da uzamasın lütfen.

SPI hakkında zamanında ben de konu açmıştım onu aratırsan bir çok bilgi bulabilirsin.
Bir de microchipin sitesinde SPI mantığını anlatan çok iyi 2-3 döküman var.

Maxim

Birşeyler yaptım ,çalışmadı bi türlü .



http://rapidshare.com/files/3466236/Max6675.rar.html

DEVICE 16F877	
Declare XTAL 4

Declare LCD_DTPIN	PortD.4
Declare	LCD_RSPIN	PortD.0
Declare	LCD_ENPIN	PortD.1
Declare	LCD_INTERFACE	4
Declare	LCD_LINES	2
        
Symbol SI = PORTC.4 
Symbol CS = PORTC.5 
Symbol SCK = PORTC.3 

dim OLCU as word 
dim ABC as word 

loop: 
cs=0
shin si,sck,msbpre,[OLCU\16]
cs=1

ABC=OLCU
print $fe ,2
print "ISI > "
GOSUB DEC_ABC

DEC_ABC:
select ABC  
case < 10   : PRINT DEC1 ABC,"   " 
case < 100  : PRINT DEC2 ABC,"  " 
case < 1000 : PRINT DEC3 ABC," " 
case else   : PRINT DEC4 ABC,"" 
    
endselect
RETURN 
delayms 250
goto loop
   
        

Subzero

Yaptığın devreyi ve kod dilini bilmiyorum ama
hemen gözüme çarpan muhtemel bir hatayı söyleyeceğim :
MAX6675 elemanın CS pinini, PICin SDO (SPI OUTPUT) pinine
bağlamışsın, yani data out yapılan pine.
SPI işlem sırasında CS herzaman 0 olmalı (komutlar arası hariç),
ve SPI çift yönlü bir haberleşmedir yani bir in data gelirken, aynı zamanda bir out data gider herzaman.
Dolayısıyla devre o yüzden çalşmamış olabilir,
CS pinene giden yolu PIC'teki bir normal output pinene bağlayıp dene istersen.

Maxim

Alıntı yapılan: "Subzero"Yaptığın devreyi ve kod dilini bilmiyorum ama
hemen gözüme çarpan muhtemel bir hatayı söyleyeceğim :
MAX6675 elemanın CS pinini, PICin SDO (SPI OUTPUT) pinine
bağlamışsın, yani data out yapılan pine.
SPI işlem sırasında CS herzaman 0 olmalı (komutlar arası hariç),
ve SPI çift yönlü bir haberleşmedir yani bir in data gelirken, aynı zamanda bir out data gider herzaman.
Dolayısıyla devre o yüzden çalşmamış olabilir,
CS pinene giden yolu PIC'teki bir normal output pinene bağlayıp dene istersen.

denedim şimdi fark yok,
data out derken ? yani max6675  3 wire ,kısacası CS ucu dediğin gibi 0 olmalı ,bir tane clock girişi var bu pic`in clock out çıkışında ve son olarak data out ucu var .O ucu`da pic`in data in girişine verdim .

Yani entegreye anladığım kadarı ile birşey gitmiyor ,cs ve clock ucu dışında .Datasheetinde yazığına göre readonly modunda çalışıyor .
Clock veriyorsun ve CS yi de 0 yaptınmı amcam gönderiyor datayı .
Benim anladığım böyle .
Hımmm ,acaba aynı uçtan shout komutunudamı kullanmalıyım ?

Logan

@maxiboost, sende max6675'in library ve model dosyaları var mı? Eğer elinde varsa ve bana da gönderirsen çok sevinirim.
İmza.

Maxim

logan ,
model directory`sinde sadece bunu bulabildim ,
http://rapidshare.com/files/3584579/MAX6675.MDF.html
libraryde birşey yok ,
yoksa ben entegreyi simule edemiyormuyum ?
ama o zaman hata vermesi lazımdı ..
isis 6.9 sp5

Göktuğ

proteusa cok guvenme basit bir eeprom programını bile simule edemedigi oluyor.