Atmel AVR ATMega128

Mikrokontroler
Mikrokontroler

Atmel AVR ATMega128 adalah mitrokontroler CMOS 8-bit berdaya rendah yang berdasarkan pada AVR RISC yang mengalami penyempurnaan arsitektur. Dengan mengeksekusi instruksi dalam satu siklus clock tunggal, ATMega128 yang mempunyai throughput mendekati 1 MIPS (Million Instructions Per Second) per MHz yang memungkinkan para perancang sistem untuk mengoptimalkan konsumsi daya dibandingkan dengan kecepatan pemrosesan.

Diagram Block

DIagram Block AVR ATMEGA128

Gambar diatas merupakan diagram block dari Atmel AVR ATMega128. Core dari Atmel AVR merupakan gabungan 32 register dengan instruksi set. 32 register terhubung langsung terhadap Logic Unit Arithmetic (ALU), yang memungkinkan dua register independen untuk diakses dalam satu instruksi tunggal yang dieksekusi dalam satu siklus clock. Sehingga mencapai throughputs hingga sepuluh kali lebih cepat daripada mikrokontroler CISC konvensional

SPI Block Diagram

Serial Peripheral Interface (SPI) memungkinkan melakukan transfer data sinkron berkecepatan tinggi antara Atmel AVR ATMega128 dengan perangkat periferal lainya.

ATMega128 SPI mempunyai beberapa fitur sebagai berikut :

  • Full-duplex, Three-wire Synchronous Data Transfer
  • Menggunakan Operasi Master atau Slave
  • Data Transfer LSB atau MSB.
  • Seven Programmable Bit Rates
  • Transmisi data diakhiri oleh Interrupt Flag
  • Menggunakan proteksi Collision Flag
  • Dapat berubah dari mode Idle
  • Berkecepatan ganda (CK/2) saat menggunakan mode Master SP

SPI Diagram Block

SPI Register

1. SPI Control Register – SPCR

  • Bit 7 – SPIE: SPI Interrupt Enable
    Bit ini menyebabkan SPI interrupt yang akan dijalankan jika bit SPIF dalam register SPSR bernilai set dan jika global interrupt enable dalam SREG bernilai set
  • Bit 6 – SPE: SPI Enable
    Saat bit SPEbernilai 1, maka SPI aktif. Bit ini harus dalam keadaan set untuk mengaktifkan setiap SPI
  • Bit 5 – DORD: Data Order
    Saat bit DORD bernilai 1, maka LSB dari data word dikirim terlebih dahulu.
    Saat bit DORD bernilai 0, maka LSB dari data word dikirim terlebih dahulu.
  • Bit 4 – MSTR: Master/Slave Select
    Saat bit bernilai 1, maka master SPI mode aktif, dan saat bit bernilai 0, maka Slave SPI mode aktif. Jika SS dikonfigurasikan sebagai input dan bernilai low saat MSTR dalam keadaan set, maka MSTR akan clear dan SPIF dalam SPSR akan bernilai set. User akan bisa untuk memberi nilai set kepada MSTR untuk re-enable SPI Master Mode.
  • Bit 3 – CPOL: Clock Polarity
    Ketika bit ini ditulis untuk bernilai 1 , SCK akan bernilai High ketika “idle” . Ketika CPOL ditulis dengan nilai zero “0”, SCK akan bernilai Low ketika “idle” .
  • Bit 2 – CPHA: Clock Phase
    Setting dari Clock Phase Bit ( CPHA ) ditentukan jika data adalah sample yang paling depan ( First ) atau trailing ( Last ) Edge dari SCK
  • Bits 1, 0 – SPR1, SPR0: SPI Clock Rate Select 1 and 0 Kedua bit yang mengontrol SCK Rate dari device yang dikonfigurasi sebagai master . SPR1 dan SPR0 tidak memiliki effect terhadap Slave .
Baca Juga:  Manfaat Data Mining

2. SPI Register-SPSR

  • Bit 7 – SPIF: SPI Interrupt Flag

Ketika Serial Transfer telah selesai, Flag SPIF akan menjadi set . Interupsi akan di generasi apabila SPIE di dalam SPCR bernilai set dan Interupsi Global di Aktifkan. Jika SS adalah input dan akan didorong untuk bernilai Low ketika SPI didalam mode Master, ini juga akan memberi nilai Set pada SPIF Flag. SPIF akan bernilai clear oleh hardware ketika di eksekusi oleh koresponden Interupsi yang meng-handle vector . Alternatifnya , SPIF bit akan bernilai Clear namun sebelumnya membaca SPI Status Register dengan SPIF bernilai set , lalu mengakses SPI Data Register ( SPDR )

  • Bit 6 – WCOL: Write COlision flag

Bit WCOL akan dalam keadaan set ketika SPI Data Register  melakukan transfer data.

  • Bit 5.1 – Res: Reserved Bits

Bit ini disediakan oleh ATMega128 yang akan selalu dibaca sebagai 0.

  • Bit 0 – SPI2X: Double SPI Speed Bit

Ketika bit ini bernilai satu, maka kecepatan SPI  ( Frekuensi SCK ) akan bernilai dua kali lebih cepat ketika menggunakan mode Master. Ini berarti bahwa periode minimum SCK akan menjadi 2 kali periode clock CPU. Ketika SPI menggunakan mode Slave, SPI hanya bekerja pada fosc/4atau kurang.

3. SPI Data Register –SPDR

SPI Data Register adalah Read/Write Register yang digunakan untuk mentransfer data antara register file dengan SPI Shift Register . Menulis data ke register meng-inisiasi transmisi Data . Membaca data dari register menyebabkan Shift Register Receive memulai buffer untuk dibaca .

Pin Assignment

Pinout ATMega128

Gambar diatas merupakan skema pinout dari ATMega128. Yang total pinnya berjumlah 64 pin.

SPI Master Slave Device

Interkoneksi Master-Slave

Slave Mode

SPI dkonfigurasikan menjadi slave, pin Slave Select (SS) selalu menjadi inputan. Ketika SS bernilai rendah, maka SPI menjadi aktif, dan user juga dapat mengkonfigurasikan MISO menjadi output. Semua pin lainya menjadi input.

Baca Juga:  Tips Produktif Work From Home (WFH) Masa Pandemi

Ketika SS bernilai tinggi, semua pin menjadi input kecuali MISO yang dapat dikonfigurasi pengguna sebagai output, dan SPI tidak akan menerima data yang masuk (SPI pasif).

Logika pada SPI akan diatur ulang setelah pin SS bernilai tinggi. Pin SS berguna untuk paket / byte sinkronisasi yang bertujuan untuk menjaga bit counter slave sinkron dengan clock generator pada master. Ketika pin SS bernilai tinggi, slave SPI akan me-reset logika pengiriman dan logika penerimaan, dan membuang data yang sebagian diterima oleh Shift Register.

Master Mode

Ketika SPI dikonfigurasi sebagai master (MSTR pada SPCR dalam keadaan set), pengguna dapat menentukan arah dari pin SS. Jika SS dikonfigurasi sebagai output, pin tersebut menjadi pin general output  yang tidak mempengaruhi sistem SPI. Biasanya, pin tersebut akan menggantikan fungsi dari SS Pin yang ada di SPI Slave .

Jika SS dikonfigurasi menjadi input, SS harus ditahan dalam posisi HIGH untuk memastikan operasi dari Master SPI . Jika Pin SS diubah menjadi Low oleh Circuit Periferal ketika SPI di konfigurasikan menjadi MASTER dengan SS Pin sebagai inputnya, sistem SPI menafsirkannya sebagai Master lain yang memilih SPI sebagai Slave nya dan memulai untuk mengirimkan data . Untuk Menghindari Bus Contention , sistem SPI akan menerima aksi sebagai berikut :

  • MSTR bit di dalam SPCR akan dihapus dan sistem SPI akan menjadi Slave. Akibat hasil dari SPI yang menjadi Slave , MOSI dan SCK Pin menjadi input .
  • SPIF Flag di dalam set SPSR , dan jika SPI Interrupt di-enable dan I-bit di dalam SREG dalam posisi Set, Rutinitas Interupsi akan dijalankan

Dengan demikian, ketika Interupsi-driven Transmisi SPI digunakan dalam Mode Master, dan disana terdapat kemungkinan SS dijalankan dalam Mode Low, Interupsi harus selalu mengecek MSTR bit dalam posisi Set. Jika MSTR Bit telah dihapus akibat dari selektor Slave, MSTR Bit harus di set kembali oleh User untuk mengaktifkan SPI Master Mode lagi .

Baca Juga:  Tanda Tangan Digital - Pengertian dan Cara Kerja

Referensi

Atmel Corporation. “ATMega128/L Datasheet.” Atmel Products – Datasheets. 2010. 10 September 2010. <http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf>

Be the first to comment

Leave a Reply

Your email address will not be published.


*