W5500_SPI_Thread( )

Bu thread W5500 Ethernet Controller çipini bir üst düzey (soket işlemlerinin yapıldığı ECThread() katmanı) koddan yalıtır.
SPI okuma / yazma işlemleri, kesme yanıtlanması ve çipin donanımsal resetlenmesi görevleri bu katmanda halledilir.

w5500_SPI_Thread

Sürekli olarak /EC_INT pininin durumunu okur.
hEC.command komutunu bekler.

EC_INT = 0 durumu algılanırsa;
SIR (Socket Interrupt) register içeriğini alanına kopyalar,
hEC.socket_interrupt <– SIR (Socket Interrupt) okuması yapar.
İşlem esnasında: hEC.status = 200
hEC.interrupt_flag = 255 yapar
hEC.interrupt içeriği sıfırlanmadan bir daha EC_INT pini okuması yapılmaz.

hEC.command = 1000 yapılmışsa:
hEC’de belirtilen parametrelerle SPI okuması yapılır.
İşlem esnasında : hEC.status = 10

hEC.command = 2000 yapılmışsa:
hEC’de belirtilen parametrelerle SPI yazması yapılır.
İşlem esnasında : hEC.status = 20;

hEC.command = 3000 yapılmışsa:
W5500 resetlenir.
İşlem esnasında : hEC.status = 30;

Üstteki ECThread() ile iletişim ECHANDLE değişkeni üzerinden sağlanır:

typedef struct
{
   unsigned int 	command;		// yazma veya okuma komutu (>0 ise yazma yapma)
   WORD                 offset_address;		// erişilecek register adresi
   unsigned char        control_phase;		// blok ve okuma/yazma komutu
   unsigned char        *rampos;		// RAM tarafı hedef/kaynak adresi
   unsigned char        bytecount;		// erişilecek byte sayısı
   unsigned char        status;                 // EC durumu / işlemi gösteren bayrak
   unsigned char        interrupt_flag;         // kesme algılama durum göstergesi (yazılımla sıfırlanmalı)
   unsigned char        socket_interrupt;       // Kesme kaynağının hangi soket olduğunu gösteren SIR reg. içeriği
} ECHANDLE;
  ECHANDLE    hEC;             // W5500_SPI_Thread 'in çalışmasını ayarlayan değişken

Düşüncelerinizi yazın...

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.