Proteusta calisiyor Uygulamada calismiyor

Başlatan fuzulidark, 12 Ekim 2012, 10:05:47

fuzulidark



Merhaba Cizimini proteusta yaptigim resimdeki devreyi, Proteusta calistirdigimda hic bir sorun olmaksizin calisiyor. Tam olarak istedigim degerleri aliyorum. Uygulama asamasina gectigimde hic bir veri alamadim. Osiloskopla multiplexer'in cikis uclarina baktim olmasi gereken cikislari gosteriyor fakat herhangi bir bilgi okunmasi olmuyor. Lcd ekraninda 0.0 derece olarak gozukuyor. SPI haberlesme ile MAX6675 entegrelerini haberlestirdim. Kullandigim sensorde K tipi sensorlerdir. Yardimci olursaniz cok sevinirim.

ErsinErce

veri hattına pull-up eklerseniz sorun büyük ihtimal çözülmüş olur

fuzulidark


ErsinErce

ek olarak bus hızını yavaşlatın o zaman

mustafa_cmbz


Kazım

#5
Alıntı yapılan: ErsinErce - 12 Ekim 2012, 10:08:20
veri hattına pull-up eklerseniz sorun büyük ihtimal çözülmüş olur

Arkadaşım SPI  Read - Only bir uygulama hiç yapmadım.Mesajınla biraz ilgilenmek istedim ve şöyle birkaç yazışmaya rastladım nette .Bence bu boşta  kalan MOSI pini ile ilgili bu durum.Bununu üzerine git hatan ile ilgili

------------------------------------------------

HardwareSPI not working (or I just can't start it)Brown August 31 Tried to start up SPI communication and here what I've noticed:

Ofc I still wait a fix for the read (wihout write) since a more complicated sensor/rf chip will not like to get a write 0xFF on every read. And that's my next step - this temp sensor was just a testing project :)
Hugo September 3 Umm, your sensor will *always* get data on every SPI read; there is no "fix" for that as it's inherent with the protocol (unlike I2C or UART).


Because SPI has separate TX and RX lines, there is no way to indicate when TX or RX data is valid - when there's a clock, data will flow in both directions.


Different chips deal with this in different ways. Mostly, they expect a particular command/data format with framing provided by the nCS line, and will ignore TX data from the imp when it does not make sense to be receiving at that point. You can see this on the timing diagrams they provide in their datasheets.


The "read (without write)" implementation will just implicitly send 0xff during a read, vs you having to specify data to send.0

Brown September 4 Ups - You're right, my mistake. Keeping MOSI on 0 or 1 during 8 clock's means sending 0x00 or 0xFF ... Sorry, this happens when I try to do/understand too many things in the same time :)

Yani dummy data 'yı 0x00 veya 0xFF olarak değiştir.

------------------------------------------------

Sitenin linki aşağıda:

http://forums.electricimp.com/discussion/145/spi-not-working-or-i-just-cant-start-it/p1



ErsinErce

mosi ile alakalı değil hocam, o pin boşta bırakılacak zaten spi a herhangi 16bitlik veri basılarak(sırf clock üretsin diye) gelen veri alınacak
normal clock oluşturup gelen veri kontrol edilerek de bu yapı okunabilir

hangi dili kullanıyorsun bilmiyorum ama shift register okuma ile ilgili bir kodun varsa soft bir şekilde devreyi dene yoksa pcb de sorun araman lazım
sonrasında spi'i düzgün bir şekilde ayarlayıp işi donanıma bırakabilirsin, şu an spi kısmında bazı ayarları yapmamış veya yanlış yapmış olabilirsiniz

Kazım

#7
Alıntı yapılan: ErsinErce - 12 Ekim 2012, 14:36:31
mosi ile alakalı değil hocam, o pin boşta bırakılacak zaten spi a herhangi 16bitlik veri basılarak(sırf clock üretsin diye) gelen veri alınacak
normal clock oluşturup gelen veri kontrol edilerek de bu yapı okunabilir

hangi dili kullanıyorsun bilmiyorum ama shift register okuma ile ilgili bir kodun varsa soft bir şekilde devreyi dene yoksa pcb de sorun araman lazım
sonrasında spi'i düzgün bir şekilde ayarlayıp işi donanıma bırakabilirsin, şu an spi kısmında bazı ayarları yapmamış veya yanlış yapmış olabilirsiniz


Tamam boşta kalsında SPI_READ fonksiyoununda dummy_data 'yı 0x00 veya 0xFF yapıp bir denesin diyorum.Yada tam manasıyla MOSI pinin 8 clock boyunca low'da yada HİGH 'de tut diyor .Yinede sen haklı olabilirsin.Birşey demiyorum

ErsinErce

konu haklı veya haksızlıkla alakalı değil hocam, yazarkende düz yazdığımdan sert gibi anlaşılabiliyor, yanlış anlaşılmak istemem

spi da veri okunması için 00 dan FF e kadar herhangi bir veri mecburen gönderilmesi gerekiyor.
bu gönderilen verinin çıkacağı uç ise zaten boşta olduğundan ne olduğu önemli değil yani

ama karşılıklı haberleşmenin içinde bulunduğu durumlarda karşı tarafa gönderilen veri önemli olabiliyor(özellikle FF ya da 00 istenebiliyor)
burada karşılıklı bir durum mevcut değil

@fuzulidark henüz donanıma tam hakim olmadığından yanlış konulara dallanmasın istedim

Kazım

#9
Alıntı yapılan: ErsinErce - 12 Ekim 2012, 14:59:34
konu haklı veya haksızlıkla alakalı değil hocam, yazarkende düz yazdığımdan sert gibi anlaşılabiliyor, yanlış anlaşılmak istemem

spi da veri okunması için 00 dan FF e kadar herhangi bir veri mecburen gönderilmesi gerekiyor.
bu gönderilen verinin çıkacağı uç ise zaten boşta olduğundan ne olduğu önemli değil yani

ama karşılıklı haberleşmenin içinde bulunduğu durumlarda karşı tarafa gönderilen veri önemli olabiliyor(özellikle FF ya da 00 istenebiliyor)
burada karşılıklı bir durum mevcut değil

@fuzulidark henüz donanıma tam hakim olmadığından yanlış konulara dallanmasın istedim

Yok yok yanlış anlamadım zatende.Nette bu durumla ilgili çokta soru var. Ben pekte detaylı üstüne düşemedim sadece bu linkini verdiğim sitedeki bey son mesajında problemin bu yolla hallolduğu anlamına gelecek bir yazı yazmış faydalı olabilir kanısıyla yazdım ben

o zaman seninde yazdığın gibi ( bus hızı ) yazılımsal bir öneride daha bulunayım ben.Fosc bölme oranları ile 1:64 veya 1:16 veya 1:4  onları bir değiştirip denesin diyorum bu konuyla ilgili