Blok
diagram komunikasi dengan SPI pada UC Atmega328 diperlihtakan pada
gambar 1. Dua device
atau lebih jika dipergunakan untuk berkomunikasi dengan metode SPI
maka salah satu dari device tersebut harus disetting sebagai master.
Metode
ini menrapkan sistem Master dan Slave dalam berkomunikasi. Master
memegang kendali terhadap pembangkitan serial clock (SCK) dan Select
Slave
(SS).
Selain pin SCK dan SS,
pada metode SPI sangat
diperlukan pin Mater In
Serial Out
(MISO) dan PIN Master
out
Serial in
(MOSI).

Gambar 1. Blok diagram komunikasi SPI pada UC Atmega328
Gambar 1. Blok diagram komunikasi SPI pada UC Atmega328
Interkoneksi
metode SPI diperlihatkan pada gambar 2. Pada metode ini,
diperlihatkan pada gambar 2, dipergunakan dua unit shift register,
dan master clock generator, dikenal dengan nama serial clock (SCK).
Master memulai
(menginisialisasi) komunikasi dengan mengendalikan pin SS menjadi LOW
terhadap Slave
yang dituju oleh Master.
Kemudian Master dan Slave mempersiapkan shift register masing masing.
Setelah Master
dan Slave
telah siap untuk berkomunikasi, Master
membangkitkan pulsa SCK agar pertukaran data dapat terlaksana.
Setelah paket data terkirim, Master
akan mengendalikan pin Slave Select (SS pin) menjadi high.
Gambar 2. Interkoneksi antara Master dan Slave pada komunikasi SPI
Komunikasi
SPI ini memiliki keistimewaan dibandingkan dengan komunikasi lainnya.
Keistimewaan tersebut adalah pada saat yang bersamaan, Master dan
Slave dapat sama sama mengirimkan data. Sebagai contoh Master ingin
mengirimkan data 0b10001101 (0x8E)
ke Slave dan Slave juga ingin mengirimkan data 0b00110010
(0x32) ke Master. Ketika SS pin dalam keaadaan LOW,
pada clock pertama, shift register pada Master dan Slave akan secara
bersamaan mengeser isi shift register mereka kekiri, Slave akan
menerima bit pertama, data yang dikirimkan Master, pada LSB
registernya. Pada saat yang bersaman, Master juga akan menerima bit
pertama, data yang dikirimkan Slave, pada LSB registernya. Gambar 3
memperlihatkan komunikasi SPI.
Gambar 3. Pengiriman Data secara bersamaan pada Master dan Slave
Port
SS, MOSI, MISO, dan SCK pada UC Atmega328 terletak masing masing pada
pin PORTB2, PORTB3, PORTB4, dan PORTB5. Interkoneksi Master dan
Slave, baik Master maupun Slave keduanya UC buatan Atmel, adalah
terhubung seperti gambar 2. Hal ini berarti pin MOSI bertindak
sebagai data output ketika UC tersebut sebagai Master dan sebagai
data input apabila UC disetting sebagai input. Begitu juga dengan pin
MISO, pin tersebut sebagai data input ketika UC sebagai Master tetapi
sebagai data output jika diperlakukan sebagai Slave.
Interkoneksi,
komunikasi SPI anatar UC buatan Atmel, pada gambar 2 tidak berlaku
jika Master dan Slave bukan device buatan atmel. Gambar 4
memperlihatkan interkoneksi SPI antara UC Atmel dengan device buatan
pabrik STMicroelectronics. Untuk melakukan komunikasi, pin Chip
Select Not (CSN) harus diberikan pulsa Low. Jika pin CSN diberikan
sinyal high, maka device tidak aktif dan Serial Data Output (SDO)
merupakan high impedance. Satu lagi pin yang bersifat
opsional, pada device produksi STMicroelectronics, adalah pin Failure
Status (FSTAT). Pin FSTAT bersifat Open-Drain
Output sehingga
jika pin ini dipergunakan maka sebuah pull-up resistor harus
dipergunakan.
Contoh
device lain yang mempergunakan komunikasi SPI adalah EEPROM 25LC128
buatan Microchip. Kita akan membahas EEPROM tersebut secara khusus
karena untuk mengaksesnya diperlukan perlakuan khusus. Sebagai contoh
adalah chip ini mengandung 8 bit register instruksi. dan untuk
mengaksesnya melalui pin Serial Input. Tabel 2 memperlihatkan seluruh
intrusksi yang terdapat pada register EEPROM tersebut. Seluruh
pengiriman, baik alamat maupun data, memiliki format MSB dikirim
pertama kali dan bit LSB dikirim paling akhir.
EEPROM
25LC128
EEPROM
25LC128 atau 25AA128 adalah EEPROM yang memiliki kapasitas 128 Kb
dengan kecepatan clock (SCK) dapat mencapai 10 MHz. Gambar 5
memperlihatkan EEPROM 25LC128 beserta pin out chip tersebut, fungsi
nama nama pin tersebut diperlihatkan pada tabel 1. Ada dua nama pin
yang baru dari chip buatan Microchip tersebut yaitu pin WP dan pin
HOLD yang keduanya aktif LOW. Dilengkapinya HOLD pin pada chip
tersebut memungkinkan komunikasi dapat dipause sehingga dapat
dimamfaatkan untuk melayani interrupt jika UC mengalami interrupt.
Untuk mengaksesnya CS pin harus LOW dan HOLD pin harus High, Kedua
kondisi tersebut berlaku untuk semua mode operasi,
Tabel
1. Pinout EEPROM 25LC128
Gambar 5. Pin out dan penjelasannya dari EEPROM 25LC128
Tabel
2. Instruksi pada EEPROM 25LC128
Pada
proses pembacaan yaitu UC meminta data dari EEPROM 25LC128, dimulai
dengan Master atau UC mengirimkan READ Instruction (0000 0011)
kemudian diikuti oleh 16 bit alamat memory tempat data disimpan pada
EEPROM. Data tersebut kemudian digeser keluar (ditransmit) melalui
Serial Out pin. Data yang terdapat pada alamat berikutnya dapat
dibaca secara sequensial seiring dengan pulsa clock SCK yang
dibangkitkan oleh Master. Hal ini dimungkinkan karena Address Pointer
akan ditambahkan secara otomatis kealamat berikutnya. Untuk
lengkapnya proses pembacaan disajikan secara diagram pada gambar 6
dan gambar 7 merupakan diagram proses penulisan.
Gambar 7. Urutan proses Penulisan (Write Operation) pada EEPROM 25LC128
Gambar
8. Urutan proses Penulisan (Write Operation) untuk satu halaman
dengan maksimum data
sebanyak
64 data byte.
Hal
yang istimewa pada EEPROM 25LC128 adalah memiliki instruksi Read
Status Register dan instruksi Write Status Register. Kedua status
register tersebut dapat dibaca setiap saat meskipun masih dalam
operasi penulisan atau EEPROM masih dalam proses penulisan. Tabel 3
menggambarkan isi dari Status Register.
Tabel
3. Status Register
Bit
WIP (Write-In-Process) menunjukkan bahwa EEPROM sedang sibuk dengan
sebuah operasi penulisan, Jika bit ini dalam keadaan set, logika 1,
maka sebuah opearsi penulisan sedang berjalan, tetapi jika bit ini
dalam keadaan clear, berlogika 0, maka operasi penulisan telah
selesai.
Bit
Write Enable Latch (WEL) menunjukkan status dari write enable latch.
Jika bit ini dalam keadaan set “1” maka operasi penulisan ke
array memory diperkenankan tetapi jika bit ini dalam keadaan clear
“0” maka penulisan memory array dihalangi. Status dari bit ini
dapat selalu diup-date melalui perintah WREN dan WRDI.
Bit
BP0 dan Bit BP1 merupakan Block Protection yang mengindikasi bahwa
block yang sedang aktif sedang write-protected. Kedua bit ini
disetting oleh programmer melalui instruksi WRSR. Gambar 8
menunjukkan diagram waktu dari RDSR dan gambar 9 diagram waktu WRSR.
User dapat memprotect seluruh array memory, ½ array memory, ¼ array
memory atau sama sekali tidak ada array memory yang diprotect. Tabel
4 memperlihatkan array protection.
Gambar
8. READ
STATUS REGISTER
TIMING SEQUENCE
(RDSR)
Gambar
9.
WRITE
STATUS REGISTER
TIMING SEQUENCE
(WRSR)
Tabel
4. Array Protection
Sisa
bab ini akan mendiskusikan protokol SPI pada UC ATMega328. Pada mode
transmit, UC hanya dilengkapi dengan single buffer. Hal ini berakibat
byte (data dalam 8 bit) yang akan ditransmit tidak dapat ditulis pada
SPI Data Register sebelum seluruh data pada buffer terkirim atau
sebelum siklus pergeseran complete. Hal yang sama hendaknya juga
diperhatikan pada mode receive. Seluruh kerja mode SPI ditentukan
oleh pulsa clock yang dibangkitkan oleh SCK. Sehingga lebar pulsa
pada posisi high dan pada posisi low haruslah lebih besar dari 2
kali siklus clock CPU.
Gambar
5 memperlihatkan potongan program untuk menginisialisasi UC sebagai
master dengan nama fungsi “void
SPI_MasterInit(void)”.
Pada gambar tersebut juga diperlihatkan fungsi untuk mengirimkan data
dengan nama fungsi “void
SPI_MasterTransmit(char cData)”. DDR_SPI dalam contoh
tersebut harus diganti dengan DDR yang mengendalikan pin-pin SPI
tersebut. DD_MOSI, DD_MISO dan DD_SCK harus diganti dengan data
direction atas nama pin-pin tersebut. Sebagai contoh jika MOSI
diletakkan pada pin PB5, maka gantikan DD_MOSI dengan DDB5 dan
DDR_SPI dengan DDRB.
Bersambung ke :
Menambah I/O Port (I/O Ekspander)
Bersambung ke :
Menambah I/O Port (I/O Ekspander)
Poker - JammyCity Casino Resort, NV - KTNV
BalasHapusPoker - Omaha. 순천 출장샵 Poker, Rules and 의정부 출장마사지 Regulations; Texas Hold'em; Rules and Regulations; Poker Room; 화성 출장마사지 Table 오산 출장안마 Games; Live Poker. 광명 출장샵