|*|

Kaynak kodlarını yazının sonunda paylaştığımız bu araç ile; SS963 Seri Güç Sürücü kartının çıkışlarının kendi yazılımınız içinde nasıl kontrol edebileceğinizi anlatacağız. Araç ile SS963'ün çıkışlarını kontrol edebileceğiniz gibi herhangi bir SPI cihazı da kontrol edebilirsiniz. Telif hakkı bilgileri ve kullanım şartlarını github sayfamızdan inceleyebilir her türlü sorunuzu iletişim sayfamızdan veya facebook sayfamızdan bizlere yöneltebilirsiniz.

Bu araç wiringPi kütüphanesini kullanmaktadır. Öncelikle wiring-pi kütüphanesini yükleyelim.

Detayları http://wiringpi.com/download-and-install/ sayfasından inceleyebilir veya aşağıdaki komutları kullanabilirsiniz:

sudo apt-get purge wiringpi
hash -r
sudo apt-get install git-core
cd
git clone git://git.drogon.net/wiringPi
cd ~/wiringPi
./build
cd..

SS963 kartı Raspberry Pi bilgisayarının seri portunu kullandığı için SPI portunun aktive edilmesi gerekir. Bunun için raspi-config aracı
çalıştırılarak Interfacing Options->Enable SPI seçeneği aktive edilir ve Raspberry Pi bilgisayarı yeniden başlatılır.

spi-tool kaynak kodunu indirmek için şu komutu verin:

wget https://raw.githubusercontent.com/enseitankado/ss963-serial-power-driver/master/spi-tool/spi-tool.c

Daha sonra spi-tool aracını aşağıdaki gibi derleyebilirsiniz.

gcc spi-tool.c -lwiringPi -o spi -Ofast -s

Aracın desteklediği argümanları görmek için -h parametresini kullanabilirsiniz:

./spi-tool -h
Usage: ./spi-tool [-DstScrpdblHOLC3h]
-D --device device to use (default /dev/spidev0.0)
-s --speed max speed (Hz)
-t --transmit The data to transmit (comma sperated hex coded decimal bytes)
-S --SS963 using SS963 Serial Driver Card. Set ^reset and apply latch signal.
-c --latch latch pin GPIO number (specic for SS963). Default 2
-r --reset reset pin GPIO number (specic for SS963). Default 3
-p --ldelay latch delay as micro seconds (specic for SS963). Default 50uS
-d --delay delay (usec)
-b --bpw bits per word
-l --loop loopback
-H --cpha clock phase
-O --cpol clock polarity
-L --lsb least significant bit first
-C --cs-high chip select active high
-3 --3wire SI/SO signals shared
-N --nocs Set SPI mode to SPI_NO_CS
-R --ready Set SPI mode to SPI_READY
-h --help prints help

Examples:

Example1: Sends data(0xFF,0xFE,0xFD,0xFC,0xFF) at 500KHz
./spi-tool -s 500000 -t 0xFF,0xFE,0xFD,0xFC,0xFF

Example2: Send data (0xAA,0xAA,0xAA,0xAA,0xAA,0xAA) to SS963 serial driver and latch.
sudo ./spi-tool -c 3 -r 2 -p 1000 --SS963 -t 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA

You can contact from support@izlencebilisim.com / iletisim@izlencebilisim.com

Bu örneğin denendiği sistemin özellikleri:

  • Raspberry Pi V3 hardware, running Raspbian (4.4.38-v7+)
  • Bu araç Raspberry Pi v3 donanımı üzerinde çalışan Raspbian (4.4.38-v7+) üzerinde denenmiştir.

 

Örnek-1:

Bu örnekde 5 Byte(40bit) 'lık (0xFF,0xFE,0xFD,0xFC,0xFF) verisinin SPI.0 portuna 500KHz hızında transferi gösterilmiştir. RX bölümündeki (00 00 00 00 00) çıktısından da görülebileceği üzere cihaz geriye dönüt olarak herhangi bir veri göndermemiştir. Hatırlatmak isteriz ki: bu örnek SPI-tool aracının SPI portu ile kullanımına yalın bir örnektir. SS963 ile kullanım gerekliliklerini tam olarak karşılamaz, SPI port iletişimini destekleyen herhangi bir SPI cihazı ile kullanımına örnek için verilmiştir.

./spi-tool -s 500000 -t 0xFF,0xFE,0xFD,0xFC,0xFF

SPI mode       : 0
Bits per word  : 8
Max speed      : 500000 Hz (500 KHz)

TX:
FF FE FD FC FF

RX:
00 00 00 00 00

Örnek-2:

Bu örnek ise Raspberry Pi bilgisayarının SPI portunun şemada yer alan bağlantıya göre SS963 ile kullanımını anlatır. Örnekte -S parametresi ile alıcı olarak SS963 seri sürücü kartının kullanılacağı belirtilir. -crp parametreleri ise sırasıyla latch pininin GPIO numarasını, reset(clear) pininin GPIO numarasını ve latch sinyalinin ne kadar süre uygulanacağını ms olarak belirtir.

sudo ./spi -c 3 -r 2 -p 1000 --SS963 -t 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA

SPI mode       : 0
Bits per word  : 8
Max speed      : 500000 Hz (500 KHz)

Using SS963 Serial Driver Card...
Latch Pin   : 3
^Reset Pin  : 2
Latch Delay : 1000

TX:
AA AA AA AA AA AA

RX:
00 00 00 00 00 00

Bu örnekte SS963 seri güç sürücü hakkında bazı önemli noktalara dikkatinizi çekmek istiyoruz. Öncelikle fiziksel port SPI'ye erişmek için sudo ile araca yetki vermek gerekir. SS963 latch ve reset fonksiyonlarına sahiptir. Tüm çıkışları sıfırlamak/temizlemek için reset pini lojik 0 yapılmalıdır. Çünkü bu fonksiyon lojik 0'da tetiklenmekte lojik 1'de ise pasif kalmaktadır. Tüm veri karta seri olarak gönderildikten sonra (SPI portu aracılığı ile) kartın geçici kaydedicilerine depolanır. Kaydedicilerin mevcut değerlerini çıkışlara aktarması için ise latch pini kullanılır. Gönderilen verinin çıkışlara yansıması için latch pininin lojik 0'dan lojik 1'e taşınması gerekir. Veri aktarımını ve latch işlevini yukarıdaki analizör çıktısından görebilirsiniz. Kısaca veri SS963'e seri olarak gönderilir ve latch sinyali ile tüm veri çıkış portlarına kalıcı olarak yazılır.

Bu örneğin anlatıldığı kaynak kodlara Github depomuzdan ulaşabilirsiniz.

Raspberry Pi üzerinde SPI-tool ile SS963 kartının kontrol edilmesini izleyebilirsiniz