Posts tagged ‘Atmel AVR’

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)

USB ISP Programmer for ATMEL AVR


USP ISP prog module

USB ISP Programmer for ATMEL AVR ( 51 ATMega ATTiny )
Description:
With 500mA over-current protection to completely protect your computer motherboard
Supports Windows XP, Windows 7 operating system
Can not programme Bootloader procedure of AVR single chip
Incompatible Notebooks: Lenovo M7300, Acer 4741G, Dell Vostro3450 and other models using Pentium G6950 or Core i3, i5 processor
Devices Supported:
51 Series: AT89S51, AT89S52, AT89S8252
AVR Series:
ATMEGA8(A/L), ATMEGA16(A/L), ATMEGA128(A/L)
ATTiny12(L), ATTiny13(V), ATTiny15(L), ATTiny24(V), ATTiny25(V), ATTiny26(L), ATTiny2313(V), ATTiny44(V), ATTiny45(V), ATTiny84(V), ATTiny85(V)
AT90S2313(L), AT90S2323(L), AT90S2343(L), AT90S1200(L), AT90S8515(L), AT90S8535(L)
ATMEGA48(V), ATMEGA88(V), ATMEGA8515(L), ATMEGA8535(L), ATMEGA162(V), ATMEGA163(L), ATMEGA164(V), ATMEGA165(V), ATMEGA168(V), ATMEGA169(V), ATMEGA169P(V), ATMEGA32(L), ATMEGA324(V), ATMEGA325(V), ATMEGA3250(V), ATMEGA329(V), ATMEGA3290(V), ATMEGA64(L), ATMEGA640(V), ATMEGA644(V), ATMEGA645(V), ATMEGA6450(V), ATMEGA649(V), ATMEGA6490(V), ATMEGA1280(V), ATMEGA1281(V), ATMEGA2560(V), ATMEGA2561(V)
AT90CAN32, AT90CAN64, AT90CAN128
AT90PWM2(B), AT90PWM3(B)

Package Includes:
5x USB ISP Programmer w/ 10-pin Cable
With any more questions about compatibility or any other information, Please contact us first.

Pembelian lebih dari 2 unit, bebas ongkos kirim untuk JABODETABEK.

Pembelian lebih dari 5 unit, bebas ongkos kirim untuk JAWA.

*) pengiriman dengan tarif reguler.

Beli disini

Download dan tutorial installasi driver pada Windows XP

Download dan tutorial installasi driver pada Windows 7 dan Windows Vista x64

Shift Register/Serial to Parallel dengan 74HC595


Tulisan ini dibuat dengan merujuk dari artikel, bagi yang ingin mengetahui secara utuh dari tulisan tersebut dianjurkan untuk merujuk langsung. Pada tulisan ini saya buat dengan menambahkan apa yang telah saya praktikkan mengenai Shift Register 74HC595.

Animasi

Skema Pin 74HC595

595

Diagram clock pada Chip 74HC595

Dari diagram di atas, dapat dibuat urutan logika sebagai berikut:

  1. Membuat clock

coding AVR dengan menggunakan CodeVision adalah sebagai berikut:

</pre>
<blockquote>/*****************************************************
 This program was produced by the
 CodeWizardAVR V2.05.3 Standard
 Automatic Program Generator
 © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
 http://www.hpinfotech.com

Project :
 Version :
 Date : 11/29/2012
 Author : Rohmadi
 Company : Produk Inovatif
 Comments:
 Chip type : ATtiny2313
 AVR Core Clock frequency: 20.000000 MHz
 Memory model : Tiny
 External RAM size : 0
 Data Stack size : 32
 *****************************************************/

#include <tiny2313.h>
 #include <delay.h>

#define SHCP PORTD.0
 #define DS PORTD.1
 #define STCP PORTD.2
 #define MR PORTD.3
 #define OE PORTD.4

// Declare your global variables here
 void tunda(void)
 {
 delay_ms(100);
 }
 void main(void)
 {
 // Declare your local variables here

// Crystal Oscillator division factor: 1
 #pragma optsize-
 CLKPR=0x80;
 CLKPR=0x00;
 #ifdef _OPTIMIZE_SIZE_
 #pragma optsize+
 #endif

// Port D initialization

// Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
 // State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
 PORTD=0x00;
 DDRD=0x7F;

while (1)
 {
 // Place your code here
 int i;
 //--1
 SHCP=0; DS=0; STCP=0; MR=1; OE=0; tunda();
 //--2
 SHCP=1; tunda();
 //--3
 SHCP=0; MR=0; tunda();
 //--4
 SHCP=1; tunda();
 //---5
 SHCP=0; DS=1; MR=1; tunda();
 //---6
 SHCP=1; tunda();
 //---7
 DS=0;
 for(i=0;i<9;i++)
 {
 SHCP=0; STCP=1; tunda();
 SHCP=1; STCP=0; tunda();
 }
 //--24
 SHCP=1; OE=1; tunda();
 //--25
 SHCP=0; DS=1; tunda();
 //--26
 SHCP=1; tunda();
 //--27
 SHCP=0; DS=0; STCP=1; tunda();
 //--28
 SHCP=1; STCP=0; OE=0;
 //--29
 SHCP=0; tunda();
 //--30
 SHCP=1; tunda();
 }
 }
<pre>

Berikut adalah hasilnya:

Demikian, semoga bermanfaat.

Rohmadi

%d blogger menyukai ini: