Saturday 30 July 2011

Parade Prosesor ARM

Minggu ini saya berhasil mengumpulkan beberapa board ARM:

Pekerjaan selanjutnya adalah membandingkan kemampuan dari masing-masing board tersebut.

Update: sempat beberapa jam mencoba board ARM dari Texas Instrument: Stellaris LM3S8962


Wednesday 20 July 2011

Mempelajari ARM Cortex M3 dengan development board LPCXpresso

LPCXpresso LPC1769 (kanan) disandingkan dengan modul LPC2294 dari Olimex (kiri)

Salah satu cara cepat belajar ARM Cortex M3 adalah dengan menggunakan board LPCXpresso. Board ini adalah hasil kerjasama antara NXP sebagai produsen mikroprosesor ARM, CodeRed sebagai produsen compiler dan Embedded Artist sebagai produsen development board.

Keunggulan produk ini yang saya rasakan:
  • Dapat langsung digunakan
  • Tersedia pin-pin untuk menyambungkan ke periferal yang kita inginkan
  • Jika ingin menggunakan development board yang lebih besar dan lengkap, dapat membeli base board dari Embedded Artist
  • Sudah ada JTAG
  • Compiler gratisan dari CodeRed dapat membuat aplikasi sampai ukuran 128k. Ini lebih besar daripada hasil software gratisan dari Keil / IAR
  • Sudah ada porting FreeRTOS untuk LPCXPresso. Ini sangat memudahkan untuk mencoba RTOS (Real Time Operating System)
  • Tersedia modul LPCXpresso untuk kelas Cortex M0 dan Cortex M3
  • Sudah ada chip ethernet, tinggal ditambah konektor ethernet.
  • Harganya lumayan murah , €20

Referensi untuk mempelajari teknik reduksi derau (noise) pada sistem elektronika

Dalam membuat sebuah sistem elektronika, kita akan menghadapi adanya ketidaksesuaian antara apa yang kita rancang dengan yang terjadi di dunia nyata. Salah satu penyebabnya adalah fenomena derau (noise). Fenonema derau ini sering diabaikan pada waktu perancangan, namun ternyata muncul pada waktu implementasi perangkat keras.

Berikut ini beberapa referensi yang pernah saya pakai untuk belajar / mengajar mengenai EMI (Electromagnetic Interference) /EMC(Electromagnetic Compatibility) /ESD (Electrostatic Discharge):


Referensi berupa Textbook:
Referensi berupa Application Note:

Tuesday 19 July 2011

Prosesor ARM Cortex M0 dari Nuvoton

Baru saja saya mendapatkan 2 buah sampel development board dari Nuvoton. Saya belum sempat mencobanya, jadi sementara ini cuma ada uraian pandangan mata saja.

Board pertama adalah development kit tipe NuTiny SDK M051. Isinya adalah board ARM Cortex M0 dari seri M051. Kode '051' ini mengingatkan ke prosesor 8051, dan barang ini memang ditarget untuk menjadi prosesor yang bersaing dengan seri 8051. Dari sisi harga sepadan, sedangkan dari sisi kemampuan prosesor ini adalah masuk ke jenis ARM32. Dengan harga yang mirip harga prosesor 8 bit, bisa mendapatkan kemampuan yang mendekati prosesor 32 bit.

Dari foto close up prosesornya,  tipe prosesornya adalah "M0 516 LAN", artinya kapasitas Flash ROMnya adalah 64k


Menurut Digikey, harga board ini adalah USD 19.95
Harga prosesornya saja berkisar antara USD 1.8 sampai dengan USD 4.23 tergantung jumlah pesanan.
Board ini sempat juga didiskusikan di forum AVRFreaks





Board kedua adalah starter kit tipe Nu-LB-NUC140. Board ini sudah dilengkapi beberapa periferal, sehingga di sini sudah dapat melakukan percobaan yang cukup kompleks.


Tipe prosesornya adalah NU140VE3CN artinya: CPU Core Cortex-M0, Connectivity Line, APROM size 128K, RAM Size 16K


Spesikasi prosesor NUC menurut user's guide"
The NUC1XX series are ARM® Cortex™-M0 core embedded microcontroller for industrial control and the applications which needed Rich communication functions. The Cortex™-M0 is the newest ARM embedded processor with 32-bit performance and at a cost equivalent traditional 8-bit microcontroller.

The NUC1XX series with Cortex™-M0 core runs up to 50MHz, up to 32K/64K/128K-byte embedded flash, and 4K/8K/16K-byte embedded SRAM, it also integrates Timers, Watchdog Timer, RTC, PDMA, UART, SPI/SSP, I2C, PWM Timer, GPIO, LIN, CAN, USB 2.0 FS Device, 12-bit ADC, Analog Comparator, Low Voltage Detector and Brown-out detector
.
Periferal yang sudah ada di board starter kit ini adalah sebagai berikut:
  • 7-segment sebagai output
  • keyboard 3x3 sebagai input
  • push button interrupt
  • LCD sebagai tampilan
  • UART melalui konektor DB9
  • Buzzer
  • Konektor I2C
  • Konektor SPI
  • Konektor PS2
  • Konektor ADC
  • Konektor I2S
  • Konektor LIN dan CAN
  • Antar muka untuk memori SD
Harga board ini di Digikey adalah USD 119.7

Daftar prosesor dari Nuvoton dapat dilihat di situs Nuvoton. Berikut ini diagram ringkasnya. Nampak bahwa M051 adalah 'lowest of the low' dari keluarga ARM Cortex M0, sedangkan NU140 adalah tipe high-end nya.

Berbagai Teknik Programmer untuk AVR

Pada tulisan ini diuraikan berbagai teknik untuk memasukkan program ke dalam Flash memory pada mikrokontroller AVR. Teknik tersebut adalah sebagai berikut:

  1. Programmer AVR dengan ISP via port paralel
  2. Programmer AVR melalui port serial dengan bit-banging ISP
  3. Programmer AVR dengan ISP via port serial dengan protokol serial
  4. Programmer AVR via port serial dengan bootloader
  5. Programmer USB dengan bit banging
  6. Programmer USB dengan port serial
  7. Programmer Tegangan Tinggi (HV Programmer)
Berikut di bawah ini adalah uraian dari masing-masing teknik tersebut.

Programmer AVR dengan ISP via port paralel

Pada programmer jenis ini, pemrograman dimasukkan melalui port SPI (Serial Peripheral Interface) di mikrokontroler AVR. Teknik ini dikenal juga dengan nama ISP (In System Programming), artinya mikrokontroler dapat diprogram pada sistem yang sudah tersolder, tanpa perlu mencopot mikrokontroler tersebut dari PCB. Pada teknik ini, pin-pin ISP di AVR langsung dikendalikan oleh port paralel dari PC.

Ada 2 varian rangkaian jenis ini, yaitu programmer tanpa buffer dan programmer dengan buffer.
Blok diagram rangkaian tanpa buffer adalah sebagai berikut:


Blok diagram rangkaian dengan buffer adalah sebagai berikut:

Contoh hardware rangkaian programer jenis ini adalah sebagai berikut:
Sebagai pasangan hardware programmer, diperlukan juga software di PC untuk melakukan programming. Contohnya adalah sebagai berikut:

Programmer AVR melalui port serial dengan bit-banging ISP

Blok diagram sederhana

Pin-pin ISP dikendalikan oleh port serial dari PC, .
Pemrograman tidak menggunakan protokol komunikasi serial, melainkan menggunakan metode ''bit-banging''. Contoh rangkaian dapat dilihat di URL berikut. http://www.lancos.com/siprogsch.html .
Software dapat menggunakan PonyProg

Programmer AVR dengan ISP via port serial dengan protokol serial


Pada programmer ini, PC berkomunikasi melalui protokol serial dengan sebuah mikroprosesor.
Mikroprosesor ini kemudian mengendalikan pin-pin ISP pada mikrokontroler AVR yang akan diprogram.
Contoh Rangkaian

Programmer AVR via port serial dengan bootloader


Pada programmer jenis ini, pada AVR yang akan diprogram diaktifkan dulu suatu program kecil bernama ''bootloader''. PC mengirimkan software yang akan diprogramkan ke program bootloader ini , kemudian program bootloader akan memprogram memori Flash dengan program yang diinginkan tersebut.
Contoh software bootloader

Programmer USB dengan bit banging


Pada programmer jenis ini, sebuah mikroprosesor dipakai untuk menerima sinyal USB langsung dari PC tanpa menggunakan chip khusus USB. Mikroprosesor programmer ini kemudian memprogram chip AVR melalui koneksi ISP.
Contoh rangkaian programmer USB dengan bit banging
Contoh produk jadi:

Programmer USB dengan port serial


Pada dasarnya programmer USB ini adalah salah satu dari programmer via serial di atas, namun port serial yang digunakan adalah komponen konverter USB to Serial Adapter.

Programmer Tegangan Tinggi (HV Programmer)

Programmer ini mengakses flash di AVR melalui port paralel di AVR. Pada waktu pemrograman diperlukan tegangan +12V pada pin tertentu, oleh karena itu teknik ini disebut programmer tegangan tinggi. Tegangan tinggi di sini tidak mencapai puluhan ataupun ratusan volt, tapi hanya +12 V. Keunggulannya utama programmer adalah dapat dipakai untuk memprogram chip AVR yang sempat dimatikan SPI atau pin Resetnya. Kelemahannya adalah rangkaian programmernya cukup kompleks dan juga chip mikrokontroler yang diprogram harus dilepas dari PCB.

Terdapat beberapa rangkaian programmer yang berbasis berbasis dari board STK500 sebagai berikut:
Programmer paralel tegangan tinggi sederhana: