SPI Haberleşme Hatası

Başlatan kartal0689, 28 Temmuz 2015, 19:16:31

kartal0689

Arkadaşlar,

İki pici SPI ile haberleştiriyorum. Master pic sadece gönderiyor. Slave pic ise sadece alıcı konumunda.
Fakat şöyle bir sorun var.
İki picin gerilimlerini aynı anda verince haberleşmede ya da vericiye gelen datalarda bir sorun yok.
Fakat Master' ın gerilimini Slave' den sonra verince datalar Slave' e düzgün gitmiyor. Bunun sebebi ne olabilir.
  Verici - MASTER
               
               SPI_Send_Data1 := 124;
               MainSPI_Cs := 0;
               Delay_us(10);
               SPI1_Write(SPI_Send_Data1);
               Delay_us(10);
               MainSPI_Cs := 1;

----------------
ALICI - SLAVE
procedure SPIInt(); iv IVT_ADDR_SPI1INTERRUPT;
 begin
      SPI1BUF     := 0;
      IEC0.SPI1IE := 0;



      Read_Data := SPI1_Read(0);
      


      IFS0.SPI1IF := 0;
      IEC0.SPI1IE := 1;

 end;


mehmet

Verinizin başında header var mı?
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

kartal0689

Hayır yok. Header nasıl ekleniyor

mehmet

Mesela, asıl verinizi yollamadan önce
Kartal kelimesini yollarsınız hemen
arkasindan da gerekli bilgileri. Alıcı da
önce Kartal kelimesini bekler. O zamana
kadar olan bilgileri değerlendirmez.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

kartal0689

Evet verilerimi göndermeden önce bunları yapıyorum.
Ancak o ilk gönderdiğim datalarda bozuk gidiyo zaten.
Çok enterasan bir durum. Master PIC, Slave PIC' ten sonra çalışmaya başladığı zaman datalar yanlış gidiyor.

Bu durumda ben haberleşme kontrolüde yapamıyorum. Mesela diyorum ki, İlk haberleşme olduğunda(Cihaz ilk enerjilendiğinde) Master PIC 0x0A verisini gönderecek.Slave PIC' ten 0x1A gelene kadar Master Alıcı konumunda
bekler. Slave 0x1A' yı gönderince haberleşme başarılı olmuş olur.

Ama Master PIC Slave PIC' ten sonra enerjilendiğinde sorun oluşuyor. Bunun sebebi nedir arkadaşlar bir bilen yok mu kafayı sıyıracam.