Pelatihan AVR

06 April 2011

koin bermuka dua

Assalamualaykum wr wb,

saya terpikirkan sebuah cerita, sebuah atribut buat saya sendiri dan deman2 yang sedang berjuang menghadapi perjuangan hidup yang tidak mudah.



pada perjuangan merebut kemerdekaan RI, pasukan perjuangan ini dibagi menjadi beberapa batalyon yang masing-masing dipimpin oleh seorang kolonel. dan setiap batalyon membawa misi yang sangat berat hingga mereka harus benar benar berjuang hingga tetes darah penghabisan.

suatu ketika, suatu batalyon telah menyelesaikan misi terberat mereka, yaitu merebut suatu wilayah dari para penjajah. mereka langsung kembali ke markas besar, dengan jalan tertatih tatih, karena merekan baru saja berperang lebih dari 3 hari tanpa beristirahat sedikitpun dan kemudia mereka diwajibkan untuk langsung pulang berbekal amunisi yang sedikit tersisa.

dalam perjalanan pulang kolonel mendapatkan perintah baru dari markas besar untuk merebut suatu kota dari penjajah. ia berpikir keras, tidak mungkin melakukan penyerangan ke suatu wilayah dengan kondisi pasukan yang sedang dalam kondisi sangat lelah, terluka dan juga dengan kondisi amunisi yang sedikit tersisa dari pertempuran sebelumnya.

namun sang kolonel tidak putus asa sampai disitu, diam-diam ia mengalihkan rute kepulangan mereka, tanpa sedikitpun memberitahukan hal ini kepada pasukannya. sedikit demi sedikit mereka mulai mendekati wilayah yang ditugaskan oleh markas besar. dan sedikit demi sedikit para pasukan mulai curiga, mengapa rute pulang ini berbeda dengan rute pulang yang seharusnya. hingga suatu saat kemudian sang kolonel mangajak pasukannya untuk beristirahat di suatu hutan karena hari sudah mulai gelap.

melihat kondisi pasukan yang masih lelah dengan pertempuran sebelumnya. sang kolonel kemudian mengatakan bahwa ia baru saja menerima perintah dari markas besar untuk merebut suatu wilayah dari penjajah. dan langsung saja semua parukannya terperengah dengan seketika. berbagai kritik muncul, semuanya berpikir PESIMIS dengan kondisi mereka yang sama sekali tidak menunjukkan kelebihan, mereka masih dalam kondisi sangat lelah dan terluka ditambah dengan persediaan amunisi yang sudah menipis.

tidak sampai disitu, sang kolonel kemudian memberikan waktu kepada mereka untuk berpikir dan beristirahat. dua jam kemudian sang kolonel kembali menanyakan hal yang sama.

"apakah kalian siap dengan pertempuran esok pagi?".
tidak ada satupun dari pasukannya menjawab. mereka semua menunduk.

kemudian sang kolonel mengeluarkan sebuah koin,
"saya memegang sebuah koin, saya akan melemparkan koin ini. jika muncul tanda angka maka kita akan pulang ke markas besar tanpa harus melakukan misi ini dan saya akan bertanggung jawab sepenuhnya atas apa yang kita lakukan walaupun nanti pangkat saya akan dicopot atau bahkan lebih berat!"

semua pasukannya terdiam, mereka mungkin sudah berpikir apa hukuman yang akan diterima sang kolonel jika hal ini dilakukan, tapi mereka tetap masih tetap pada pendirian untuk tidak akan berperang, itu semua seperti misi bunuh diri!

sang kolonel melanjutkan tawarannya,
"dan jika sebaliknya, tanda burung garuda yang muncul, maka kita akan melakukan misi ini dengan sisa-sisa tenaga dan sisa-sisa amunisi yang kita miliki. dan kita tidak akan pulang sebelum misi ini selesai!!"
"YA, jika kita maju, kata selesai ini bisa berarti, KITA SELESAI atau KITA MENANG"

"bagaimana?"

merasa ada harapan baru, semua pasukan langsung menyetujui tawaran sang kolonel...
kemudian sang kolonel langsung melemparkan koin yang digenggamnya....

dan...
YANG MUNCUL GAMBAR BURUNG GARUDA!!

semua pasukan menarik nafas dalam-dalam, mereka sudah siap dengan konsekuensi pilihan ini, TAK ADA PILIHAN LAGI selain utnuk mengambil jalan berperang

esok harinya mereka berangkat berperang, semua tenaga dan amunisi yang tersisa mereka gunakan, 2 hari 2 malam mereka bertempur tanpa henti, tanpa istirahat. tak ada satupun dari mereka yang mengeluh. mereka benar benar berjuang hingga titik darah penghabisan.

dan perjuangan merekapun membuahkan hasil, dan mereka MENANG!! dengan segala sesuatu yang serba sedikit, tenaga dan juga amunisi...

kemudian mereka kembali ke markas besar dengan sambutan yang luar biasa dari komandan markas.
dengan rasa ingin tahu yang besar, sang komandan bertanya kepada sang kolonel, bagaimana bisa??
kemudian kolonel mengeluarkan koin yang ada disaku dan memperlihatkan koinnya yang kedua sisinya bergambar burung garuda!!


ya, terkadang kita terlalu fokus pada pilihan kedua, padahal kita tahu bahwa yang harus kita lakukan adalah pada pilihan pertama, terkadang pilihan pertama terlalu menakutkan dan terkadang diri ini terlalu pesimis untuk menghadapinya.
namun apa yang dilakukan sang kolonel? ya, dia menghilangkan pilihan kedua itu, sehingga membuat pasukannya TIDAK MEMPUNYAI PILIHAN LAIN sehingga mau tidak mau mereka akan berusaha menghadapinya dengan segala resiko yang ada. YA, pilihan itu adalah TERUS MAJU.

perjuangan hidup ini tidaklah mudah, dan KITA TIDAK PUNYA PILIHAN LAIN selain menjalaninya dengan segenap tenaga dan amunisi yang tersisa.
mau tidak mau, bisa tidak bisa, berhasil atau gagal itu semua tergantung pada kita. semua itu baru akan kita dapat ketika kita BERANI UNTUK MAJU, dan membuat diri kita tidak mempunyai pilihan lain selain MAJU dan emnghadapi semua itu...

semoga bermanfaat

wassalamualaykum wr wb
Fardhady Himawan KH

17 Maret 2011

Code Composer Studio (ccs) v3.3 pada TMS320C6455


Assalamu'alaykum wr wb
kali ini saya akan menjelaskan tentang software composer dan compiler yang digunakan untuk membuat program yang dapat dijalankan pada DSK6455. bagi yang belum mengetahui tentang TMS320C6455 atau yang sering disebut dengan DSK6455 dapat dibaca disini

Pemrosesan sinyal digital dilakukan pada TMS320C6455 DSK. Pada DSK (Development Starter Kits) ini sudah termasuk berbagai macam modul dari DDR2 memory, JTAG (Joint Test Action Group), AIC23, power supply, C6455 core, CPLD, Ethernet, dan modul lainnya.

Untuk perancangan program dilakukan menggunakan Code Composer studio v3.3. Code composer studio v3.3 (CCS) menggunakan bahasa C# sebagai media untuk memprogramnya. Dalam DSK C6455 mempunyai beberapa library yaitu:
·         DSK6455
Mempunyai berbagai macam tools untuk mengakses fitur-fitur DSK6455 seperti AIC23, McBSP
·         BSL (Board System Library)
Memuat fitur-fitur yang dibawa oleh board system.
·         CSL (Chip System Library)
Memuat fitur-fitur yang dibawa oleh core C6455, meliputi: interrupt, McBSP, PLL, Ethernet, GPIO, SRIO, dan lainnya
 ·         DSPLIB
Memuat fitur-fitur yang dapat menjalankan perintah-perintah untuk pengolahan sinyal digital dalam hal ini lebih kepada sinyal suara.
·         IMGLIB
Memuat fitur-fitur yang lebih berat kepada pengolahan gambar.

 
Icon CCS v3.3

 Tampilan Pada Saat Pembuatan Program Untuk DSKC6455

Untuk pengaktifan TMS320C6455 DSK pertama kali, kondisi kabel USB untuk JTAG harus dipasang terlebih dahulu sebelum kabel power dipasang. Setelah kabel power dipasang maka devais akan melakukan POST (Power On Self Test) dengan melakukan booting dan juga melakukan pengecekan pada modul-modul di luar sistem core C6455. Pengecekan dapat dilakukan juga dengan menggunakan DSK6455 Diagnostic Utility v3.3.

 Icon DSK6455 Diagnostic Utility v3.3

Untuk dapat melakukan pembuatan program yang dapat dijalankan pada DSK perlu dibuat project untuk membundlenya jadi satu. Agar satu file dapat berhubungan dengan file yang lain maka perlu disertakan file yang berfungsi untuk linker yang berformat ‘cmd’.

 Project Pada Code Composer Studio v3.3


Wassalamu'alaykum wr wb
Fardhady Himawan KH

16 Maret 2011

Motor Driver Circuit and analysis

Assalamu'alaykum wr wb

this time I'd like to share you about motor driver circuit. what is motor driver? motor driver is circuit that can driving a motor using simple control signal. a motor needs high current or high voltage. because of that, we need a motor driver circuit to make a bridge between microcontroller and motor.



in this circuit, the circuit is design to control motor direction (clockwise or counter clockwise) and PWM (pulse width modulation) to manipulate motor speed. it uses optoisolator (IC 4N25), power N-MOSFET (IRFZ44N), and relay 12v DPDT (dual pole dual throw. read here).

now I will explain how its works, control signal from microcontroller uses 5 volt TTL is too high to operates a optocoupler. as shown in optocoupler diagram above, pin 1 and pin 2 are connected to LED so we need a resistor to maintain lower voltage, because LED needs supply between 2-3.5 volts. if microcontroller uses 3.3 volts (low voltage CPU) then we don't need additional resistor.
 these LED functionally as base in BJT (bipolar junction transistor), when current flows from base to emitter, it will trigger current flows from collector to emitter. noted that, we use optocoupler to separate microcontroller  ground from motor ground. it prevent from backward current from motor while it loaded.



while LED on, current is flows from collector to emitter, with 12 v difference between collector and emitter. this will be enough voltage to control MOSFET's Gate to make current flows from drain to source. this MOSFET will be function as second switch. and to maintain the higher current to faced the next stages.

when it passed MOSFET, the logic "1" is 12 volts and logic "0" is 0 volts. this voltage is use to control the relay.

ok, I need your full attention in this part.

when the DIR is "1", there no current in relay's coil and the current will flows to negative direction. because positive  motor connected to PWM and negative motor connected to supply 12 volts.

when the DIR is "0", there no current in relay's coil and the current will flows to positive direction. because negative  motor connected to PWM and positive motor connected to supply 12 volts.

to more relay explanation, click here



wassalamu'alaykum wr wb
Fardhady HK Hanggara


15 Maret 2011

potongan kecil hati sang kakek

Assalamu'alaykum wr wb
aku teringat cerita seorang teman, tapi lupa siapa yang menceritakan dan kapan cerita diceritakan,, hihi

alkisah disebuah negara yang makmur, dimana semua orang melihat sesuatu dari hati orang lain. karena memang dinegara itu hati seseorang benar-benar dapat terlihat jelas dari luar. sehingga seorang dianggap cantik ataupun tampan semua dilihat dari hatinya.

dinegara itu terdapat seorang pemuda dengan hati yang sangat indah, begitu bersih, warna yang indah, bentuk yang sempurna dan juga masih berfungsi sangat baik. seluruh orang di negara itu sangat mengagumi pemuda itu. dan mereka berlomba lomba untuk sering mengunjungi pemuda itu hanya untuk sekedar menyapa ataupun melihat hatinya. ya seperti layaknya orang yang memiliki kelebihan, pemuda itu sangat bangga memiliki hati yang begitu sempurna. ia sering menunjukkan betapa sempurnanya hati miliknya itu. dan tak ada satupun warga di negara itu yang cemburu ataupun dengki melihat pemuda itu. semua melihatnya takjub dan menganggapnya sebagai mukjizat tuhan kepadanya.

suatu hari ketika pemuda itu sedang berjalan-jalan sekedar mencari angin segar. tak ajal setiap orang yang dilewatinya selalu memuji hati miliknya. tiba-tiba tak sengaja ia melihat sesuatu yang ganjil, ia melihat seorang kakek tua yang renta, tapi bukan fisik kakek itu yang menjadi perhatian sang pemuda. namun ia sangat heran melihat hati sang kakek. hati sang kakek terdapat banyak tambalan, banyak lubang, bahkan antara tambalan satu dan lainnya tak jarang warna dan bentuk tambalannya berbeda dengan warna asli hati sang kakek. apa yang gerangan terjadi? pikir sang pemuda. pemuda itu begitu penasaran.

kemudian didekatilah sang kakek tua yang renta itu. bahkan sebelum sang pemuda menyapa sang kakek, kakek itu terlebih dahulu tersenyum padanya. kemudian dibalasnya senyuman sang kakek. namun perhatian sang pemuda masih pada hati sang kakek. ia emncoba melihatnya dekat... dan lebih dekat... lebih dekat lagi...

hingga sang kakek berkata "sentuhlah nak"

pemuda itu terkejut, tanpa berkata sepatah katapun ia memberanikan diri untuk menyentuh hati itu dengan perlahan.

setelah berhasil menyentuhnya dan melihat dengan dekat hati kakek itu, kemudian dia memberanikan diri untuk bertanya.
"apa yang tejadi dengan hatimu kek? apakah gerangan yang terjadi hingga bentuknya seperti itu?" tanya sang pemuda dengan terheran-heran


sang kakek tersenyum, "duduklah, jika kamu tertarik untuk mendengar cerita kakek"
pemuda itu kemudian duduk disamping kakek itu.
"mungkin kamu merasa terheran mengapa banyak lubang dan tambalan dihati ini, bahkan ada yang tambalannya kekecilan, ada yang pas, bahkan ada juga yang kekecilan" sang kakek menghela nafas.

"hati ini saya dapat ketika saya mencoba mengambil sepotong kecil hati ini dan memberikannya kepada orang yang berarti dan orang yang baik kepada saya. terkadang orang tersebut membalasnya dengan memberikan potongan hatinya, ada yang memberikan lebih besar dari apa yang saya berikan, tak jarang juga ada yang memberikan potongan hati yang lebih kecil. hingga muncullah tambalan-tambalan pada hati ini, ada yang kebesaran dan ada yang kekecilan." sang kakek kembali menghela nafas

"lalu bagimana dengan lubang itu?" sang pemuda tak sabar

"ya, terkadang apa yang kita berikan ke orang lain tidak mendapatkan balasan dari orang itu. dan saya tidak terlalu mempermasalahkan hal itu, karena bagi saya, ketika saya sudah memberikan hati kepada orang yang berarti bagi saya dan juga kepada orang yang sudah berbaik hati pada saya. itu sudah menjadi hal yang terindah bagi saya. tidak terlalu penting apakah nanti orang itu membalas dengan memberikan potongan hatinya atau tidak"

pemuda itu kemudian terdiam, dan melihat hati yang dimilikinya. tersadar bahwa ia tak pernah sedikitpun memberikan potongan kecil hatinya kepada orang lain. seakan akan kekaguman dirinya akan kesempurnaan hatinya luluh lantak saat itu juga.
"terima kasih kek, " kata pemuda itu sambil mengambil potongan hatinya dan berusaha menempatkannya pada lubang di hati sang kakek. kemudian sang kakek tersenyum dan membalas memberikan potongan hatinya.

hati pemuda itu kini tak lagi sesempurna seperti sebelumnya, karena kini ia memiliki tambalan dari sang kakek. namun ketidaksempurnaan ini membuat dirinya lebih berarti di banding kesempurnaan yang tidak berarti. ia melangkah dengan bangga menuju rumahnya.

"terkadang ketidaksempurnaan yang berarti itu lebih berharga daripada kesempurnaan yang tidak berarti"


"terkadang aku melihat kesempurnaan dalam ketidaksempurnaan, dan aku lebih nyaman seperti itu dibanding melihat ketidaksempurnaan dalam kesemprnaan"

wassalamualaykum wr wb
Fardhady Himawan KH

BURUAN!! pelatihan mikrokontroler telah dibuka

Assalamu'alaykum wr wb

ini ada info tentang pelatihan mikrokontroler AVR nih, ayo ikutan! kuota terbatas
"Microprocessor and Interfacing Laboratory" Reserach Present


"Pelatihan Mikrokontroler AVR"
Pelatihan 1 : Hardware
Pelatihan 2 : Program dan Aplikasi Mikrokontroler (Segera menyusul)

...Tiket : Rp 200.000,- untuk pelatihan 1

Fasilitas :
- Ilmu Insya Allah bermanfaat
- Modul
- CD
- Kit Pelatihan
- Snack + Lunch
- Sertifikat & TAK

Kuota terbatas..
Segera daftar yaa..:D


Wassalamu'alaykum wr wb
Fardhady HK Hanggara

14 Maret 2011

designing quiz lamp circuit

Assalamu'alaykum wr wb

bismillahirrohmanirrohim...
ill try to write down this article using english, altough my english is rather bad, hehe

i was thinking, how can i have quiz lamp that use to science competition occasionally. if i mere make some circuit that work if i press the button and lamp will light on, im sure that very easy. but the problems is what if the participants press the button approaching at same time. then the fastest one will get the light on.
and the others won't get their lamp light on until the fastest one release his button.

then i thought that i can use microcontroller, i sure will be easy but it will be price arm and length (haha). minimum system is expensive for this mini project. then i thought to using basic logic gate to redesign it. wow impressive, i can do it!

ok  this is my design, im using OR gate to design the circuit, it sure harder that design using microcontroller.


im design for 5 participants, in this case i just have to use 5 logic gate ICs. using 74LS32N for the OR logic gate. LM7805 to give 5 volts regulated voltage. and some capacitor for removing the ripple from rectifiers.

this is circuit for the button (larged scale)
this design same as push button, the button connected to the terminal as shown as header 2 above. when it pressed, it will be send 0 volt (logic 0). and when it released it will be send 5 volt (logic 1). in other words this is the active low design.

for actuator, relays are use to activating the lamp and bell (optional). i assume that bell and lamp use home voltage 220VAC 50Hz. and use relays that operate at 5 volt.

how it works?
1. assume that initial voltage is 5 volt for the button. so output from the OR logic gates  will be "1". and when it passes the NOT gate, it will become "0". then initial stages of each circuits is  "0" (remember that OR gate always produces "1" is one or more of its input is "1").
2. when one of them pressed, then the button circuit will be produces logic "0". noticed that all of OR logic inputs will be "0". and output from the NOT gate will be "1" .
3. while one of them produces "1". the others circuit will be locked into "0" condition. it means during the first contestant pressed until he released the others can't press it and light won't be turned on.
4. to control the lamp and bell, logic 0 will be send. why use logic "0"? i guess current from the gate is relatively small and needed other source to activated it. how i have logic "0", is the output logic when it active is "1"? its easy! just get them before it enters the NOT gate.

it easy to design right?
please correct me i wrong, if it about the design or the english, hehe


Wassalamu'alaykum wr wb
Fardhady HK Hanggara


Mengenal dan Menganalisis Relay

Assalamu'alaykum wr wb

karena banyak yang menanyakan tentang relay, maka kali ini saya akan mencoba menjelaskan tentang relay. khususnya tentang relay SPDT dan DPDT. pertama saya akan jelaskan apa itu relay. relay adalah komponen atau alat yang berfungsi sebagai switch untuk on/off yang dikontrol oleh arus.

seperti gambar relay diatas, pada relay biasanya digunakan kumparan/coil sebagai media untuk mengontrol switch. bagaimana bisa? ya ketika kumparan dialiri arus, maka pada kumparan dihasilkan medan magnet yang akan menarik plat konduktor yang berfungsi sebagai switch sehingga berpindah titik yang lain, sebagai ilustrasi diatas, kumparan terletak diantara kaki 4-5. sedangkan plat yang dimaksud adalah pada kaki 1 yang akan "berpindah" dari plat 2 ke 3 dan sebaliknya.

ada beberapa jenis relay, namun saat ini saya akan membahas hanya 2 jenis, yaitu relay SPDT dan DPDT

1. Relay SPDT (Single Pole Dual Throw)
prinsip kerja dari relay ini yaitu: pada AB terdapat kumparan sebagai driver. ketika AB belum dilewati arus, maka terminal CE akan tersambung, dan ketika AB dilewati arus maka plat C akan berpindah sehingga terminal CD akan tersambung.

2. Relay DPDT (Dual Pole Dual Throw)
prinsip kerja dari relay ini yaitu: pada AB terdapat kumparan sebagai driver. ketika AB belum dilewati arus, maka terminal CE dan FG akan tersambung, dan ketika AB dilewati arus maka plat C dan F akan berpindah sehingga terminal CD dan FH akan tersambung. jadi ketika driver AB dilewati arus plat yang berpindah ada 2 yaitu C dan F.

3. Relay SPST (Single Pole Single Throw)
prinsip kerja dari relay ini yaitu: pada AB terdapat kumparan sebagai driver. ketika AB belum dilewati arus, maka circuit akan bersifat open cicuit (plat C tidak tersambung), dan ketika AB dilewati arus maka plat C akan berpindah sehingga terminal CD akan tersambung (closed circuit).

4. Relay DPST (Dual Pole Single Throw)
 prinsip kerja dari relay ini yaitu: pada AB terdapat kumparan sebagai driver. ketika AB belum dilewati arus, maka circuit akan bersifat open cicuit (plat C dan E tidak tersambung), dan ketika AB dilewati arus maka plat C dan E akan berpindah sehingga terminal CD dan EF akan tersambung (closed circuit).

nah itu beberapa jenis relay yang sering digunakan dipasaran. tidak ada relay yang lebih bagus, yang terpenting tau kapan dan bagaimana cara menggunakan relay tersebut sehingga efektif dan efisien.

oya, relay juga dibedakan menurut tegangan operasinya. (tegangan minimum untuk men-drive kumparan sehingga plat dapat berpindah) ada yang 5V dan 12V

beberapa fungsi lain dari relay yaitu digunakan untuk memisahkan Ground antara ground driver dan ground driven (yang di kontrol). hal ini dimaksudkan untuk mencegah efek dari arus balik rangkaian karena beban yang dialami. hal ini sering terjadi pada rangkaian motor.
namun karena penggunaannya masih bersifat mekanik karena menggunakan kumparan dan plat, maka responnya sedikit lambat, namun jika masih digunakan dalam periode milidetik, relay masih dapat diandalkan.

mungkin itu dulu tentang relay, kalo ada yang mau ditambahkan sok di komen aja dibawah.


wassalamu'alaykum wr wb
Fardhady HK Hanggara


11 Maret 2011

Texas Instruments Digital Signal Processor (TI DSP)

Assalamu'alaykum wr. wb.

sebelum melangkah lebih lanjut, mungkin saya jelasin dulu apa itu DSP. berbeda dengan DSP yang berati digital signal processing yang lebih kepada pemrosesan sinyal digital atu lebih kepada cara proses suatu sinyal digital. nah kalo DSP yang akan dibahas yaitu Digital Signal Processor yang berarti processor yang dirancang khusus untuk pemrosesan sinyal digital.

lalu apa bedanya DSP dengan prosesor umum seperti Intel, AMD, ataupun Power PC?
jika prosesor secara umum memang didesain untuk Multi Purpose Tasking dan memang tidak dikhususkan untuk suatu proses tertentu seperti prosesor yang ada di motherboard yang dikhususkan untuk transfer data, prosesor di VGA card untuk graphik dan lainnya.

DSP didesain khusus untuk operasi SOP (Sum Of Product). jadi jenis operasi SOP itu merupakan operasi perkalian di dalam penjumlahan (nah lho...). atau bisa dikatakan prosesor ini didesain khusus untuk pemrosesan array karena biasanya sinyal berbentuk array. misalnya sinyal suara merupakan array 1 dimensi dan gambar merupakan array 2 diminesi. bagi yang belum mengerti tentang SOP, biasanya operasi SOP dapat ditulis seperti ini :

SOP array 1 dimensi :

SOP array 2 dimensi :

SOP array 3 dimensi :
nah itulah perbedaan mendasar pada jenis prosesor ini dengan prosesor pada umumnya.

kemudian lebih mendasar lagi akan saya jelaskan DSP yang berasal dari texas instruments atau yang sering juga disebut dengan seri TMS. pada prosesor ini memiliki arsitektur khusus yang disebut dengan velociTI. dengan arsitektur ini didesain prosesor bisa mempunyai fitur superscalar yang dapat memproses instruksi hingga 8 kali. hal ini dikarenakan prosesor ini mempunyai 8 ALU (arithmetic logic unit) yang digunakan sebagai media penghitung. dengan kata lain prosesor ini dapat menjalankan 8 instruksi sekaligus dalam 1 clock.

masih bingung? saya ambil contoh prosesor tipe TMS320C6455 (baca disini)memliki 8 ALU dengan clock sebesar 1.2 GHz. dengan kata lain prosesor ini memiliki dapat menjalankan 8 x 1.2 GHz instruksi dalam 1 detik atau nama kerennya 9.6 GIPS (Giga Instructions per Second).

oya prosesor tipe ini menggunakan dasar arsitektur Harvard lho, nanti saya jelasin deh pa itu Harvard architecture. dengan kemapuan dapat mengakses JTAG untuk simulasi dan analisis dan juga sistem pengaksesan memory yaitu Little Endian dan Big Endian. penasaran? lihat posting selanjutnya. :)


Wassalamu'alaykum wr wb
fardhady HK Hanggara


algorima matching

Assalamu'alaykum wr wb

beberapa saat yang lalu saya mengerjakan proyek tentang sistem embedded mikrokontroller yang menharuskan saya memasang database didalamnya (baca) setelah berhasil menaruh database diadalamnya, kemudian terbesit pertanyaan : dengan kecepatan mikro yang hanya 16 MIPS (mega instruction per seconds) bagaimana bisa mengolah data sebanyak 500 data dengan cepat. permasalahan selanjutnya ialah, database diletakkan di memeory yang lambat namun besar. kalo dipakai algoritma standar yang mancocokkan satu per satu, maka pasti perlu beberapa detik hanya untuk mencocokkan kata mana yang cocok belum lagi proses lainnya yang juga diperlukan.

ketika saya iseng-iseng bertanya ke dosen saya, "pake algoritma yang biasa saja far", saya langsung terdiam, wah masa belum ada algoritma khusus nih? sebagai informasi, saya memang kuliah di kampus IT, tapi jurusan telekomunikasi, jadi untuk programming saya ngerti tapi kalo sampai algoritma yang mendalam saya kebanyakan belum pernah mendalami.

kemudian iseng iseng saya memikirkan bagaimana saya membuat semua proses jauh lebih singkat, tiba tiba terbesit, bagaimana dengan menggunakan string table? tabel yang dimaksud bukan tabel yang berisi string, tapi tabel yang memuat index string yang masuk ke kategori tertentu, memang dalam beberapa alortinma matching biasanya beberapa data sudah dikelompokkan ke dalam kategori tertentu, namun kalo yang saya lakukan sih tidak, karena sistem yang dibuat merupakan sistem yang embedded jadinya untuk me-rearrange data agak sedikit sulit, karena harus mereset lagi semua data dalam mikro yaitu dengan re"flash"ing program atau kata lainnya install ulang program.

singkatnya seperti ini algoritmanya:
- jika baris datanya ada sejumlah N, maka perlu tabel 1xN untuk menyimpan index
- isi tabel 1xN dengan angka default 0-(N-1) yang menunjukkan default elemen dari database

- kemudian perhatikan yang terpenting, jika persebaran dan karakteristik datanya jika data yang mau di cari bersifat terurut seperti no ID atau NIM, maka carilah mulat dari karakter paling belakang, tapi kalo data yang dicari bersifat random  dan memilki panjang yang berbeda seperti nama maka pencarian dapat dimulai dari karakter yang paling depan.

- pencarian dilakukan dengan mencocokkan karakter demi karakter, namun pencocokan dilakukan secara vertikal dan bukan horzantal secara umum, hal ini dilakukan agar lebih cepat. jika ditemukan karakter yang sesuai maka hal yang dilakukan adalah mengupdate tabel yang tadinya masih terurut dengan index string yang cocok "sementara" dengan string yang akan dicari
- cari sampai isi index tabel bersisa satu

keunggulan:
- jika dibandingkan dengan sistem pencarian konvensional dengan algoritma horizontal misal dengan rata-rata panjang string yang di cari misalnya L dan banyak data keseluruhan N,. dan misal data yang akan dicari terletak pada elemen paling bawah, maka dengan algoritma konvensional maka diperlukan LxN pencocokan karakter. sedangkan jika menggunakan algoritma ini maka pencocokan karakter bisa di reduksi hingga 2xN bahkan lebih sedikit tergantung dengan persebaran data. maka jika data yang akan di cari semakin random dan tingkat keragaman data semakin tinggi, maka kecepatan pencarian data akan semakin cepat pula.


Wassalamu'alaykum wr wb
Fardhady Himawan KH


10 Maret 2011

membuat database pada mikrokontroller

Assalamu'alaykum wr wb

sekarang saya akan membahas bagaimana membuat database sederhana pada mikrokontroller.
ada beberapa cirikhas yang sering terjadi pada mikrokontroller yaitu
- biasanya ukuran SRAM (static RAM) hanya seperdelapan dari ukuran memory Flash
- ukuran memory flash hanya berkisar 1-128 KByte
- dapat disimpulkan bahwa ukuran SRAM hanya berkisar 128 Byte - 2 KByte

hal inilah yang sering manjadi kendala ketika membuat database pada mikrokontroller. memory SRAM yang kecil dan memory flash yang lambat. hal ini juga belum diperhitungkan mengenai penggunaan ruang untuk program memory pada kedua memory tersebut, sehingga ruang yang dapat digunakan menyusut sangat kecil.
namun sebelum melangkah lebih jauh, ada beberapa dasar yang perlu diketahui baik menggunakan bahasa assembly maupun bahasa C pada pemrogramannya.



1. database diletakkan di SRAM
   keunggulannya : lebih cepat
   kekurangannya : ruang penyimpanan relatif sangat kecil
  misal data yang akan ditaruh yaitu ABCDEFh
  * pada bahasa assembly
    LDI YL, 45
    LDI YH, 07
    LDI R16,0xAB
    ST Y+,R16
    LDI R16,0xCD

    ST Y+,R16

    LDI R16,0xEF

   ST Y+,R16
  *pada bahasa C
    - bentuk array of char
     char data[3] ={0xAB,0xCD,0xEF};
    - bentuk string
     char *data = {"dfg"};

2. database diletakkan di memory flash
   keunggulannya : ruang lebih besar
   kekurangan : kecepatan lebih lambat
  misal data yang akan ditaruh yaitu ABCDEFh
  * pada bahasa assembly
    - bentuk array of char
    LDI ZL, 45
    LDI ZH, F7
    LDI R0,0xAB
    STM Z+,R16
    LDI R0,0xCD

    STM Z+,R16
    LDI R0,0xEF

    STM Z+,R16
   - bentuk string
   .db data 0xAB,0xCD,0xEF,0
  *pada bahasa C
    - bentuk array of char
     char flash data[3] ={0xAB,0xCD,0xEF};
    - bentuk string
     char flash *data = {"dfg"};


nah biar ga bingung, saya jelasin pake bahasa C aja ya, soalnya kalo pake bahasa assembly agak banyak, kalo requestnya banyak nanti saya akan buatkan menggunakan bahasa assembly pada posting tersendiri

cara paling mudah menuliskan database yaitu seperti ini:
pada contoh ini saya akan membuat tabel 4x8 dengan kriteria seperti ini : syarat setiap elemen database harus memiliki panjang karakter yang sama.

NIMNAMAPASSID
111070008FARD  1234561234567890123456
611070002KEREN 1234562345678901234567
114070003  AKU  1234563456789012345678
115070067AMPUN 1234564567890123456789
111080008FARD1 1234565678901234567890
611080456WAWAH 1234566789012345678901
114080056DUNG  1234567890123456789012
115080023TUING 1234568902345678901234

char  kolom[4]={0,10,18,25};
char flash *database [8]={
"111070008# FARD #123456#1234567890123456#",
"611070002# KEREN #123456#2345678901234567#",
"114070003#  AKU  #123456#3456789012345678#",
"115070067# AMPUN #123456#4567890123456789#",
"111080008# FARD1 #123456#5678901234567890#",
"611080456# WAWAH #123456#6789012345678901#",
"114080056# DUNG  #123456#7890123456789012#",
"115080023# TUING #123456#8902345678901234#"};


 pada contoh diatas database saya letakkan di flash memory terlihat pada kolom pertama saya memberi batas panjang karakter 9 karakter, kolom kedua 7 karakter, kolom ketiga 6 karakter, kolom keempat 16 karakter
cara mengakses baris pertama kolom pertama menggunakan *database[0]
cara mengakses baris ketiga kolom keempat menggunakan *(database[2]+25)
cara mengakses baris kedua kolom ketiga tinggal menggunakan *(database[1]+18)

untuk mengakses kolom pertama tambahkan 0, kolom kedua 10, kolom ketiga 18, kolom keempat 25
untuk mengakses baris pertama hanya lakukan pengaksesan pada array saja. hal ini dikarenakan peletakan database berdasarkan array of string. dan berhatikan database[i] artinya variabel tersebut menyimpan alamat dari string yang diletakkan pada baris [i+1].
 jika ingin mengakases data pada kolom ke i dan baris ke j dapat dilakukan menggunakan
*(database[j-1]+kolom[i-1])

mungkin sekian yang dapat saya sampaikan
kalo ada saran, silahkan dikomen saja
thx


Wassalamu'alaykum wr wb
Fardhady HK Hanggara