Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: Maxim - 05 Kasım 2006, 21:49:48

Başlık: SPI protokolu hakkında
Gönderen: Maxim - 05 Kasım 2006, 21:49:48
Bu konu ile ilgili elinde picbasic / proton uygulaması veya kodu olan paylaşabilirmi acaba ?

selamlar
Başlık: SPI protokolu hakkında
Gönderen: OG - 05 Kasım 2006, 22:03:59
Proton+ için "SHIN" ve "SHOUT" inceleyiniz.
Başlık: SPI protokolu hakkında
Gönderen: Maxim - 13 Kasım 2006, 12:24:03
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ı ?
Başlık: SPI protokolu hakkında
Gönderen: z - 13 Kasım 2006, 12:31:20
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.
Başlık: SPI protokolu hakkında
Gönderen: gsever - 13 Kasım 2006, 12:34:12
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.
Başlık: SPI protokolu hakkında
Gönderen: Klein - 13 Kasım 2006, 12:35:26
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.
Başlık: SPI protokolu hakkında
Gönderen: Logan - 13 Kasım 2006, 12:35:56
@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.
Başlık: SPI protokolu hakkında
Gönderen: Maxim - 13 Kasım 2006, 15:45:49
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 .
Başlık: SPI protokolu hakkında
Gönderen: Subzero - 13 Kasım 2006, 16:37:30
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.
Başlık: SPI protokolu hakkında
Gönderen: Maxim - 15 Kasım 2006, 17:26:21
Birşeyler yaptım ,çalışmadı bi türlü .

(http://img399.imageshack.us/img399/6338/max6675my0.th.jpg) (http://img399.imageshack.us/my.php?image=max6675my0.jpg)

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
 
       
Başlık: SPI protokolu hakkında
Gönderen: Subzero - 15 Kasım 2006, 20:46:27
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.
Başlık: SPI protokolu hakkında
Gönderen: Maxim - 15 Kasım 2006, 22:20:24
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 ?
Başlık: SPI protokolu hakkında
Gönderen: Logan - 16 Kasım 2006, 12:55:21
@maxiboost, sende max6675'in library ve model dosyaları var mı? Eğer elinde varsa ve bana da gönderirsen çok sevinirim.
Başlık: SPI protokolu hakkında
Gönderen: Maxim - 16 Kasım 2006, 15:35:14
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
Başlık: SPI protokolu hakkında
Gönderen: Göktuğ - 16 Kasım 2006, 16:02:20
proteusa cok guvenme basit bir eeprom programını bile simule edemedigi oluyor.
Başlık: SPI protokolu hakkında
Gönderen: Maxim - 17 Kasım 2006, 20:43:16
Alıntı yapılan: "goktug1217"proteusa cok guvenme basit bir eeprom programını bile simule edemedigi oluyor.

Valla arkadaşım galiba sen haklısın ,
Bir kere daha olmuştu bana ,basit bir opamp devresi bana kafayı yedirmişti günlerce ...

Sonuç olarak bu devreyi ben canlı canlı yapıp deniycem ,çünkü ;

Böyle birşey yaptım ,bu devrede SPI girişlerine proteus içerisinde bulabildiğim çok basit bir entegre olan MCP3001 (10bit ADC) kullandım .
Resimde`de görüldüğü üzere SPI girişlerine 3 adet switch koyarak bu iki entegre arasında seçim yapma şansımız var .
Bu kod MCP3001 entegresine tam uymasada çalıştırıyor bi şekilde ,fakat MAX6675 entegresini devreye alırsanız ekranda sıfırdan başka bişey göremiyorsunuz .



http://rapidshare.com/files/3748822/MAX6675_SON.rar.html


DEVICE 16F876
Declare XTAL 4

Declare LCD_DTPIN PortB.4
Declare LCD_RSPIN PortB.2
Declare LCD_ENPIN PortB.3
Declare LCD_INTERFACE 4
Declare LCD_LINES 2
       
symbol SO = portc.4
Symbol CS = PORTC.2
Symbol SCK = PORTC.3

DIM X AS WORD
DIM Y AS WORD

Low CS
ShIn SO,SCK,0,[X\16]
High CS

PRINT $FE,$84,DEC4 X >> 3 / 4," C"

Y = X & %1000000000000000 >> 1

IF Y <> 0 Then
PRINT $FE,$C0,"THERMOCOUPLE OPEN"
EndIF
DELAYMS 100
Başlık: SPI protokolu hakkında
Gönderen: Maxim - 19 Kasım 2006, 21:51:41
Budur .

(http://img518.imageshack.us/img518/8386/dsc01471no6.th.jpg) (http://img518.imageshack.us/my.php?image=dsc01471no6.jpg)



DEVICE 16F877a
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 SO = portc.4
Symbol CS = PORTC.2
Symbol SCK = PORTC.3

DIM X AS word
DIM Y AS byte

loop:
Low CS
ShIn SO,SCK,0,[X\16]  
High CS

PRINT $FE,$83,"ISI"
PRINT $FE,$87,DEC X >> 5 ," C"

Y = X & %1000000000000000 >> 1

IF Y <> 0 Then
PRINT $FE,$C3,"TC OPEN"
Else print $FE,$C3,"MaxiBoost"
EndIF
delayms 250
goto loop

Başlık: SPI protokolu hakkında
Gönderen: Göktuğ - 19 Kasım 2006, 22:22:48
Demekki proteusun biraz daha gelişmesi gerekiyor. Senin adına sevindim ...
Başlık: SPI protokolu hakkında
Gönderen: Maxim - 20 Kasım 2006, 15:29:44
teşekkürler,
unutmadan 2 numaralı ayak şaseye verilmeli ,
Başlık: SPI protokolu hakkında
Gönderen: mikromuh - 14 Mart 2007, 00:27:20
selam arkadaslar,
Bende bu devre ile ugrasiyorum.Ayni problemi yasiyorum.Acaba bu sorunu simulasyonda cozen varmi?
Başlık: SPI protokolu hakkında
Gönderen: Maxim - 14 Mart 2007, 03:35:01
proteusta çalışmıyor
Başlık: SPI protokolu hakkında
Gönderen: Veli B. - 29 Ocak 2008, 16:46:44
Versiyon veya benzeri bir sorun olabilir sanirim. Basit bir kod yazdim ve isiste (7.1 sp2) denedim. 0.25 hassasiyet ile simule edebiliyor. Model dosyasinda bir problem yok.
Başlık: Ynt: SPI protokolu hakkında
Gönderen: Mucit23 - 23 Mart 2011, 21:56:28
Arkadaşlar konu hortlatma rekorunu kırıyor olabilirim.  :)
Bu Max6675 yongasını bende bi ele alayım diyorum. Maxim Hocamız bu çip ile epeyi uğraşmış anlaşılan forumda bu çiple ilgili biraz araştırma yapınca bunu anladım. Aklıma takılan bazı konular var. Bu çipten okuma yaptığımız zaman okuduğumuz 12 bitlik sıcaklık bilgisini herhangi bir çevrim işleminden geçirmeye gerek varmı. Yanı okuduğumuz 12 bitlik değerin desimal karşılığı sıcaklığımı temsil ediyor. Bununla ilgili datasheette pek bişey bulamadım. Belkide ben göremedim. Forumda bu konular çok eski olduğu için bir çok link bunun gibi silinmiş. Maxim arkadaştan ricam linki yeniler sesevinirim.
Başlık: Ynt: SPI protokolu hakkında
Gönderen: mesut_27 - 23 Mart 2011, 23:11:37
linkleri yenilermisiniz saygılar..
Başlık: Ynt: SPI protokolu hakkında
Gönderen: Maxim - 24 Mart 2011, 08:14:57
arkadaşlar o dosyalar yok artık üzerinden 5 sene geçmiş ama kodu vermişim orada dosyayı ne yapacaksınız ?
Başlık: Ynt: SPI protokolu hakkında
Gönderen: Mucit23 - 24 Mart 2011, 13:06:50
Tamam Maxim hocam gerek kalmadı çözdüm işi. Sadece biir konuyu merak ediyordum onuda anladım. Teşekkürler..