Posts tagged ‘SPI’

Desain SPI Untuk Display Dot Matrix LED


Tulisan ini merupakan kelanjutan dari tulisan sebelumnya.

Prinsip Kerja SPI

Gambar di bawah ini menunjukkan prinsip kerja SPI.

Skema Konsep Cara Kerja SPI
Untuk berkomunikasi, SPI master dan SPI slave masing-masing memiliki shift register yang saling terhubung satu dengan yang lain melalui jalur signal MOSI (master-out-slave-in) dan MISO (master-in-slave-out).

Master dan Slave saling bertukar data dengan menumpangkan data ke shift register dan memberikan sinyal clock melalui jalur sinyal SCK.

Perangkat SPI slave dapat dibuat dengan sebuah rangkaian yang sederhana. Port Serial-in/Parallel-out atau Parallel-in/Serial-out yang biasanya terdiri dari pin kontrol SCK dan SS, shift register dan Latch..

Menghubungkan HC595 Pada SPI

74HC595 memiliki 8-bit shift register dan didalamnya terdapat 8-bit latch, yang cocok untuk mengkonversi dari input serial ke output parallel (lihat blok gambar). Shift register dan latch adalah sinkron terhadap clock sirkuit logik yang independen, dan masing-masingnya beroperasi pada transisi negatif ke positif (positive edge). Clear input dan pengunci keluaran (output enable ) didesain untuk bekerja secara asinkron. Untuk lebih jelasnya, silakan merujuk pada gambar berikut.

Diagram Blok 74HC595

74HC595 state transition table

Input Operation
SER SRCLK /CLR RCLK /OE
X X X X H Qa … Qh pins are in 3-state
X X X X L Qa … Qh pins are driven to the latched value
X X L X X Clear shift register bits
L H X X Shift, with the first bit as 0
H H X X Shift, with the first bit as 1
X X X X Latch shift register bits

Dengan memperhatikan diagram waktu di atas, kita dapat mendesain rangkaian dan setting seperti berikut.

Pertama, bisa kita lihat pada MOSI, master output. Clock HC595 dengan sisi transisi ke positif. Saat bit data

First, let’s see MOSI, the master output. HC595 clocks with a positive edge of shift clock. When a new bit value is set up on the serial input and a positive edge comes in, HC595 takes the bit value into its shift register. Therefore if you connect MOSI to SER input and SCK to SRCLK, you should make its clock settings like

  • Falling edge as leading edge: Setup of MOSI connected to SER.
  • Rising edge as trailing edge: Shift HC595’s shift register

Next, after HC595’s shift register sequentially takes in 8 bits, you should set the latch clock signal to high so that HC595 can capture the shift register bits into the latch logic. The usual design of /SS line (High = “inactive”, Low = “selected”) will work fine if it is connected to RCLK clock input. Note that this setting will give the first bit value to Qh output, and the last bit value to Qa output, meaning “Qh = MSB / Qa = LSB” if MSB is sent out first.


HC595 timing diagram

From that consideration, the following connection between ATmega88 SPI and HC595 will form an 8-bit SPI parallel output.


AVR SPI and HC595 wiring (8 bit)

You should set up AVR(ATmega) SPI like,

  • Clock mode: Mode 3 (leading edge is falling: latch, trailing edge is rising: shift)
  • SPI master operation, /SS as output
  • Data order: MSB first (this depends on your situation. either order will work)

Remember that you need to control the /SS pin by software, just like normal port pins. In AVR SPI master operation with /SS set as output, /SS has nothing to do with SPI master behavior. Even you can use other port pin for the same purpose.

You can increase the number of output bits to 16 bits or 24 bits by a series connection of HC595’s, between each HC595’s serial outputs (Qh’) and next serial inputs (SER). (See the following diagram, or target schematic shown later)


AVR SPI and HC595 wiring (16 bit)

Membuat Dot Matrix Dengan SPI AVR


Tulisan ini merupakan terjemahan bebas dari sebuah artikel yang saya pelajari. Untuk dapat memahami dengan utuh, pembaca dapat merujuk pada tulisan aslinya. Untuk dapat memahami dengan mudah, tulisan ini akan saya sampaikan dalam beberapa sesi.

Suatu ketika kita akan dihadapkan dengan kondisi dimana kebutuhan port dengan jumlah pin yang tersedia pada sebuah mikrokontroller tidak sama. Dengan situasi lain, mungkin kita memiliki ide untuk dapat mengendalikan sebuah rangkaian logic dengan port mikrokontroller dengan jumlah sedikit. Pada kondisi ini, kita dapat menggunakan sebuah komponen yang memiliki prinsip serial to parallel. Sebagai contoh kasus, kita ingin mengontrol sebuah dot matrix display.

Artikel ini akan menjelaskan sedikit hasil eksperimen menggunakan port Atmel AVR dengan metode SPI dengan sedikit tambahan IC logic untuk mengedalikan LED dot matrix.

Apakah SPI

Umumnya sebuah mikrokontroller memiliki beberapa pin yang berfungsi sebagai port I/O dan sebagian lagi memiliki fungsi khusus seperti serial dan SPI yang digunakan untuk komunikasi. SPI memiliki tiga pin sinyal dan satu pin untuk memilih antara mengirim data dan menerima data. Transfer data sinkron berdasarkan sinyal clock yang mengikutinya secara sederhana. Eksperimen ini akan membantu untuk memahami cara kerja SPI, dengan menggunakan AVR ATmega88 sebagai master SPI dan beberapa komponen logic sebagai slave SPI.

Komponen Digunakan

1. 74HC595

74HC595 (HC595) adalah komponen yang memiliki fungsi sebagai shift register serial to parallel 8-bit. Beberapa pabrikan mengeluarkan komponen yang sejenis, dan pada eksperimen ini digunakan dari pabrikan Texas Instrumen dengan datasheet dapat dilihat disini.

2. Dot-matrix LED display

Pada eksperimen ini digunakan dot matrix LED untuk menampilkan cara kerja SPI. Komponen ini dapat dijumpai di toko elektronik terdekat. Pada eksperimen ini digunakan dua buah dot matrix dengan dua warna yaitu merah dan hijau, dengan mengacu pada datasheet didapatkan bahwa dot matrix adalah common katoda dengan Vf = 1,7V (merah) dan Vf=2,2V (hijau).

Berikut adalah library yang dapat digunakan pada Eagle.


(8×8 red-and-green LED, Eagle library)

(Anda dapat mendownload library dari url; → “8x8LED.lbr” made with Eagle 5.10.0 Linux)

Sekarang, perhatikan bagaimana mengendalikan LED grafik display. Secara sederhana, kita dapatkan 8 pin anoda untuk LED merah, 8 pin anoda untuk LED hijau, 8 pin untuk common katoda; jumlahnya adalah 24 bit. Dengan MCU yang berukuran kecil, kita akan kesulitan karena sedikitnya jumlah port. Pada artikel ini, kita akan menghubungkan 3 HC595 secara seri untuk membentuk shift register 24-bit dan mengontrolnya dengan SPI.

Bersambung…

Demikian, semoga bermanfaat.

Sumber:http://awawa.hariko.com/avr_spi_hc595_en.html

%d blogger menyukai ini: