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;
Verinizin başında header var mı?
Hayır yok. Header nasıl ekleniyor
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.
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.