Board ARM Cortex M0 Produksi Lokal

Beberapa waktu lalu sudah ada vendor lokal yang menjual perangkat pengembangan ARM berbasis LPC Cortex M0. Harganya murah juga.

Perangkat Pengembangan Mikrokontroler ATMega

Berikut ini perangkat pengembangan sistem mikrokontroler ATMega yang saya pakai:

  • Komputer laptop/desktop untuk melakukan kompilasi dan upload program
  • Rangkaian sistem mikrokontroler ATMega8535 yang dilengkapi dengan konektor ISP (In System Programming). Deskripsi rangkaian ini dapat dibaca di artikel rangkaian sederhana ATMega8535
  • Antar muka USB to Serial adapter, perangkat ini dipakai untuk menghubungkan konektor serial di rangkaian ATMega dengan konektor USB di komputer PC. Jika menggunakan desktop PC yang ada port serialnya, perangkat USB to serial adapter ini tidak diperlukan. Output dari port serial mikrokontroler sangat berguna untuk mengetahui jalannya program di dalam mikrokontroler tersebut.
  • Kabel serial RS-232 jenis ‘straight’
  • Adaptor dari jala-jala listrik ke DC 12V
  • Programmer USB-ISP merek DI-USB AVR ISP V2 (DIM.024)  buatan Depok Instruments. Dapat dibeli di Jaya Plaza Bandung. Berbagai macam programmer AVR lain dapat dibaca di artikel tentang programmer AVR secara umum dan di artikel tentang progammer AVR buatan Indonesia.

perangkat-pengembangan-mikrokontroler-IMG_5695

Rangkaian mikrokontroler:

rangkaian-prosesor-atmega8535-sederhana-IMG_5685

Implementasi dengan PCB single layer. Konektor DB9 untuk RS232 dari jenis female, dan diletakkan di pinggir PCB supaya kabel serial dapat dipasang tanpa menabrak PCB.

Fiturnya:

  • Mikrokontroler ATMega8535, bisa juga diganti dengan ATMega16 karena pin nya sama
  • Crystal 16MHz
  • Port serial untuk input output
  • 8 buah LED dihubungkan ke port C untuk debugging
  • Port ISP
  • Masing-masing port A , port B , port C dan port D dikeluarkan ke sebuah konektor 10 pin, sehingga memudahkan jika rangkaian ini dipakai untuk keperluan khusus.
  • LED hijau untuk power ON.

Penampakan modul mikrokontroler dari sudut lain:

rangkaian-mikrokontroler-atmega8535-IMG_5686

 

Pada bagian kiri bawah nampak 3 macam konektor power 12V. Konektor yang warna putih dan hitam mempunyai keunggulan tidak dapat dipasang terbalik, sehingga memudahkan pada waktu percobaan. Pada akhirnya yang paling sering dipakai adalah konektor DC warna hitam, karena lebih kuat. Konektor putih kelemahannya adalah kabelnya mudah putus.

Modul programmer:

programmer-usb-isp-avr-IMG_5691

Universal Programmer TOP 2049

Universal Programmer tipe TOP 2049 yang dapat dipakai untuk memprogram berbagai macam mikrokontroller, Flash ROM dan EEPROM.

universal-programmer-20140217_191540
Universal Programmer TOP 2049
universal-programmer-20140217_191621
Universal Programmer TOP 2049

Universal Programmer rata-rata menggunakan Zero Insertion Force Socket (ZIF) untuk menyambungkan ke IC yang akan diprogram.

729px-Textoolfassung_28_(smial)
Contoh Zero Insertion Force socket untuk kemasan DIP

Referensi

USB to Serial tipe HL-340

usb-serial-hl-340-IMG_2958.preview
USB to Serial tipe HL-340

 

CAB-USB2SERIAL2
Konverter USB to Serial tipe HL-340

 

Driver for USB Serial HL-340

HL-340 driver does not work, such as this: http://www.tomdoyletalk.com/2010/01/21/hl-340-drivers-rs232-usb-cable/

Real driver name is “CH340”. Have no idea how can HL-340 changed to CH340.

Source of the driver: http://wch.cn/download/list.asp?id=65

Mirror of driver is available here:  CH341SER

Discussion about this particular driver: http://davesdrivers.com/forum/showthread.php?tid=1255

Driver:

Problem Installing Prolific PL2303 in Windows 7

pl2303hx
Chip Prolific PL2303

Installing driver for Prolific USB adapter can be problematic. The cause maybe because counterfeit chip, as noted in http://www.ifamilysoftware.com/news37.html

What appears to be happening is that there are a ton of counterfeit “Prolific” chips coming from China and getting the correct driver installed is like playing Russian roulette. Prolific talks about this on their web site and I’m betting are as frustrated as we end users.

In my case, my installation problem is solved by reading a note in the following forum http://www.sevenforums.com/drivers/4476-prolific-usb-serial-driver-2.html

This is how I got to connect my older Nokia 6103 to sync with Outlook in Windows 7. Surprisingly it was not the latest build of the driver found on the prolific website that was compatible with Windows 7 that worked for me. I went here instead: Windows Vista driver for prolific chip USB Serial Adapters and got the vista version. Even though it did not ask for a reboot, I did so because of the nature of serial ports and it installed successfully. It still did not recognize the phone until I change the com port from no. 1 to 3 that it did work. Cheers! “.

Reference

Mengukur Ketinggian Air

Ada beberapa ide cara-cara untuk mengukur ketinggian air di sebuah wadah sebagai berikut

  • Menggunakan switch mekanik dengan pelampung
  • Menggunakan magnet dengan pelampung
  • Menggunakan sensor tekanan air
  • Menggunakan load cell untuk mengukur berat air
  • Menggunakan load cell untuk mengukur berat pelampung di air
  • Menggunakan sensor kapasitif
  • Menggunakan sensor induktif
  • Menggunakan sensor ultrasonik
  • Menggunakan sensor laser

Berikut ini contoh menggunakan pengukuran kapasitansi:

sensor-ketinggian-air

Kapasitansi diukur dengan cara menggunakan kapasitor sebagai rangkaian osilator. Perubahan kapasitansi akan menyebabkan perubahan frekuensi.

skema-rangkaian-pengukur-ketinggian

Ada juga ide menggunakan sifat kapasitif untuk mengukur keberadaan makhluk hidup yang mengandung air: http://spectrum.ieee.org/geek-life/hands-on/how-to-build-an-electronic-bee-counter

Referensi

Sistem Penjernihan Air v2.0

Di rumah saya menggunakan sistem penjernihan air yang dibuat sendiri. Detail sistem penjernihan air v1.0 sudah dijelaskan di artikel  “Sistem Penjernihan Air di Rumah versi 1“. Untuk memperbaiki kelemahannya saya membuat sistem penjernihan air v2.0 dengan blok diagram sebagai berikut ini:

instalasi-penjernih-air-prva116

Perubahan yang dilakukan:

  • Menambah tangki 5 yang posisinya lebih tinggi sedikit dari tangki 4, untuk menambah tekanan air di rumah
  • Mengganti pengendalinya menggunakan prosesor ATMega dari AVR, sebelumnya menggunakan prosesor AT89 dari AVR

Sumur

Sumur berkedalaman sekitar 12 meter.

Pompa 1

Pompa dari jenis sumur dalam karena pompa sumur dangkal hanya dapat memompa sampai kedalam 8 meter saja.

Pada awalnya menggunakan pompa Sanyo HD255D, namun rusak dan diganti dengan pompa Grundfos

Tangki 1

Tangki ini berfungsi menampung air dari sumur. Air ini masih mengandung garam besi dan mangan, sehingga perlu didiamkan sekitar 2 jam agar garam-garam tersebut bereaksi dengan oksigen dan menggumpal, untuk kemudian dapat disaring.

Pompa 2

Pompa ini memompa air dari hasil pengendapan ke tangki atas. Air perlu dinaikkan agar dapat dialirkan ke filter.

Tangki 2

Tangki ini menyimpan air + lumpur yang siap disaring. Tangki ini diletakkan di menara air.

Filter

Filter pasir. Pada awalnya menggunakan pasir aktif, namun pasir aktif ini repot karena setiap beberapa waktu perlu diaktifkan kembali. Akhirnya menggunakan filter pasir biasa.

Tangki 3

Tangki penyimpanan air bersih hasil filter. Diletakkan di permukaan tanah ( di bawah)

Pompa 4

Memompa air dari tangki 3 ke tangki 4 di atas menara.

Tangki 4

Tangki ini berfungsi menyimpan air bersih yang siap dipakai. Ditaruh di menara air sehingga air dapat mengalir ke rumah dengan gravitasi. Kapasitas 1000 liter

 

Tarif charge telepon genggam

Biasanya numpang charge handphone gratis, namun ada juga yang berbayar. Kalau dihitung-hitung harga listrik 1 kWh (1000Wh) adalah kurang dari Rp 1000, sedangkan energi yang diperlukan untuk mengisi batere blackberry adalah 4,3 Wh , sedangkan powerbank 120 Wh. Jadi nampaknya dengan tarif Rp 2000 masih balik modal.

Tarif mengisi ulang batere telepon genggam
Tarif mengisi ulang batere telepon genggam

Memastikan Ukuran Komponen

Sebelum kita membuat layout PCB (Printed Circuit Board), idealnya kita mengetahui dulu dengan pasti ukuran komponen-komponen yang dipakai. Cara paling mudah adalah dengan membeli semua komponen yang akan dipakai. Jika tidak bisa juga dengan cara mencari ukuran komponen tersebut di datasheetnya. Jika salah menduga ukuran komponen, berakibat layout rangkaian menjadi ‘aneh’, seperti pada gambar berikut ini:

ukuran-komponen-led-IMG_1579

Pada gambar tersebut, komponen yang bermasalah adalah LED 5mm, yang ternyata ukurannya lebih besar daripada tempat yang tersedia. Artikel serupa tentang ukuran komponen dapat dilihat di “Memastikan Jarak Antar Komponen”

Kegagalan Pada Produksi PCB

Defect-survey-PCB-2012Jajak pendapat yang dilakukan oleh IPC (organisasi profesi dan konsorsium industri PCB dan perakitan papan modul elektronika) menyimpulkan bahwa ada 3 jenis kegagalan paling menonjol yang di jumpai dalam proses manufaktur di industri ini:

  1. Pada pembuatan PCB: masalah jalur yang terhubung singkat atau terputus dan masalah Solderability
  2. Pada perakitan: proses Solder Reflow dan pensablonan
  3. Komponen yang paling susah dirakit: komponen elektronika dengan jenis kemasan BGA: Ball Grid Array

Referensi:

Rangkaian LED Matrix

Sebagai kelanjutan dari proyek sebelumnya [mencocokkan ukuran komponen]  [LED Matrix dan kontrol kualitas], berikut ini hasil perancangan LED matrix untuk keperluan praktikum:

Layout Rangkaian LED Matrix
Layout Rangkaian LED Matrix
Foto Rangkaian LED Matrix
Foto Rangkaian LED Matrix

Pada rangkaian ini sudah diberi transistor dan ULN2803 untuk penguat arus serta resistor untuk pembatas arus, jadi seharusnya tampilannya lebih baik dibandingkan jika tidak menggunakan transistor/resistor.

Detail teknis rangkaian transistor dan ULN2803 nampaknya perlu menunggu ada waktu, karena perlu membuat beberapa gambar rangkaian dan perhitungan. Untuk sementara dapat saya katakan bahwa ide rangkaiannya tidak jauh-jauh dari rangkaian antarmuka mikroprosesor sederhana.

Tahap selanjutnya adalah membuat software untuk menampilkan angka/huruf/gambar di LED matrix tersebut.

LPC800 Mikrokontroler ARM Dengan Kemasan DIP

Awal tahun 2012 lalu NXP telah mengeluarkan mikroprosesor ARM Cortex M0 dengan kemasan DIP (Dual In Line Package), yaitu tipe LPC1114FN28.

Model ini diikuti oleh model berikutnya yaitu LPC800 yang dikeluarkan pada akhir 2012. LPC800 ini juga dari keluarga ARM Cortex-M0.

NXP juga menyelenggarakan kompetisi terkait dengan produk baru ini, yaitu LPC800 Simplicity Challenge. Kompetisi ini nampaknya bertujuan mempromosikan keunggulan LPC800 yaitu kesederhanaan dan low power.

lpc800-simplicity-challenge-header-home-sub

Sejauh ini baru NXP yang membuat prosesor ARM dengan kemasan DIP, yaitu LPC810 dengan kemasan 8 pin DIP dari keluarga LPC800 dan LPC1114FN28 dengan kemasan 28 pin DIP dari keluarga LPC1100.

Menurut situs toko komponen online Element 14 (http://sg.element14.com), komponen ini harganya per unit adalah SGD 1,28 atau sekitar Rp 10.100,- saja. Lumayan murah, mengingat mikrokontroler Atmel AT89S51 di Bandung dijual sekitar Rp 12.500,- saja.

Berikut ini spesifikasi dari LPC800 tersebut:

Features and benefits

  • System:
    • ARM Cortex-M0+ processor, running at frequencies of up to 30 MHz with single-cycle multiplier and fast single-cycle I/O port
    • ARM Cortex-M0+ built-in Nested Vectored Interrupt Controller (NVIC)
    • System tick timer
    • Serial Wire Debug (SWD) and JTAG boundary scan modes supported
    • Micro Trace Buffer (MTB) supported
  • Memory:
    • 4 kB on-chip flash programming memory
    • 1 kB SRAM
  • Boot ROM API support:
    • Boot loader
    • USART drivers
    • I²C drivers
    • Power profiles
    • Flash In-Application Programming (IAP) and In-System Programming (ISP)
  • Digital peripherals:
    • High-speed GPIO interface connected to the ARM Cortex-M0+ IO bus with 6 General Purpose I/O (GPIO) pins with configurable pull-up/pull-down resistors
    • GPIO interrupt generation capability with boolean pattern-matching feature on eight GPIO inputs
    • Switch matrix for flexible configuration of each I/O pin function
    • State Configurable Timer (SCT) with input and output functions (including capture and match) assigned to pins through the switch matrix
    • Multiple-channel multi-rate timer for repetitive interrupt generation at up to four programmable, fixed rates
    • Self Wake-up Timer (WKT) clocked from either the IRC or a low-power, low-frequency internal oscillator
    • CRC engine
    • Windowed Watchdog timer
  • Analog peripherals:
    • Comparator with external voltage reference with pin functions assigned or enabled through the switch matrix
  • Serial interfaces:
    • Two USART interfaces with pin functions assigned through the switch matrix
    • One SPI controller with pin functions assigned through the switch matrix
    • One I²C-bus interface with pin functions assigned through the switch matrix
  • Clock generation:
    • 12 MHz internal RC oscillator trimmed to 1 % accuracy that can optionally be used as a system clock
    • Crystal oscillator with an operating range of 1 MHz to 25 MHz
    • Programmable watchdog oscillator with a frequency range of 9.4 kHz to 2.3 MHz
    • 10 kHz low-power oscillator for the WKT
    • PLL allows CPU operation up to the maximum CPU rate without the need for a high-frequency crystal. May be run from the system oscillator, the external clock input CLKIN, or the internal RC oscillator
    • Clock output function with divider that can reflect the crystal oscillator, the main clock, the IRC, or the watchdog oscillator
  • Power control:
    • Integrated PMU (Power Management Unit) to minimize power consumption
    • Reduced power modes: Sleep mode, Deep-sleep mode, Power-down mode, and Deep power-down mode
    • Power-On Reset (POR)
    • Brownout detect
  • Unique device serial number for identification
  • Single power supply
  • Available as DIP8 package

Features and benefits

  • System:
    • ARM Cortex-M0+ processor, running at frequencies of up to 30 MHz with single-cycle multiplier and fast single-cycle I/O port
    • ARM Cortex-M0+ built-in Nested Vectored Interrupt Controller (NVIC)
    • System tick timer
    • Serial Wire Debug (SWD) and JTAG boundary scan modes supported
    • Micro Trace Buffer (MTB) supported
  • Memory:
    • 4 kB on-chip flash programming memory
    • 1 kB SRAM
  • Boot ROM API support:
    • Boot loader
    • USART drivers
    • I²C drivers
    • Power profiles
    • Flash In-Application Programming (IAP) and In-System Programming (ISP)
  • Digital peripherals:
    • High-speed GPIO interface connected to the ARM Cortex-M0+ IO bus with 6 General Purpose I/O (GPIO) pins with configurable pull-up/pull-down resistors
    • GPIO interrupt generation capability with boolean pattern-matching feature on eight GPIO inputs
    • Switch matrix for flexible configuration of each I/O pin function
    • State Configurable Timer (SCT) with input and output functions (including capture and match) assigned to pins through the switch matrix
    • Multiple-channel multi-rate timer for repetitive interrupt generation at up to four programmable, fixed rates
    • Self Wake-up Timer (WKT) clocked from either the IRC or a low-power, low-frequency internal oscillator
    • CRC engine
    • Windowed Watchdog timer
  • Analog peripherals:
    • Comparator with external voltage reference with pin functions assigned or enabled through the switch matrix
  • Serial interfaces:
    • Two USART interfaces with pin functions assigned through the switch matrix
    • One SPI controller with pin functions assigned through the switch matrix
    • One I²C-bus interface with pin functions assigned through the switch matrix
  • Clock generation:
    • 12 MHz internal RC oscillator trimmed to 1 % accuracy that can optionally be used as a system clock
    • Crystal oscillator with an operating range of 1 MHz to 25 MHz
    • Programmable watchdog oscillator with a frequency range of 9.4 kHz to 2.3 MHz
    • 10 kHz low-power oscillator for the WKT
    • PLL allows CPU operation up to the maximum CPU rate without the need for a high-frequency crystal. May be run from the system oscillator, the external clock input CLKIN, or the internal RC oscillator
    • Clock output function with divider that can reflect the crystal oscillator, the main clock, the IRC, or the watchdog oscillator
  • Power control:
    • Integrated PMU (Power Management Unit) to minimize power consumption
    • Reduced power modes: Sleep mode, Deep-sleep mode, Power-down mode, and Deep power-down mode
    • Power-On Reset (POR)
    • Brownout detect
  • Unique device serial number for identification
  • Single power supply
  • Available as DIP8 package

Referensi