Penulis Topik: Kontroller PLL dengan PIC  (Dibaca 19063 kali)

0 Anggota dan 5 Pengunjung sedang melihat topik ini.

Offline juhar

  • Full Member
  • ****
  • Tulisan: 212
    • Tekad Karya Mandiri
Kontroller PLL dengan PIC
« pada: Desember 20, 2010, 08:53:55 AM »
Berawal dari pancingan mas Ri-5-am yang memposting kode kontroller PLL FM RDVV, dan juga keinginan untuk belajar kembali dunia mikro yang lama ditinggalkan, maka ane coba buka trit baru untuk mbahas penggunaan mikrokontroller dalam aplikasi sederhana.

Biar mudah dan semua bisa cepat mengikuti, ane pilih pake bahasa BASIC aja.

Nah, yang mesti disiapkan adalah :

   1. IC PIC (boleh 16F628A ato 16F84A)
   2. Hardware programmer PIC-nya, banyak macem bisa bikin sendiri ato beli jadi
   3. Program buat compilernya (ane pakai Proton aja)
   4. Program Simulatornya (PIC Simulator)

Ane siap2 dulu yah...  :-X

update :

    Kayaknya musti pake program yg full version nih, barusan pake proton lite, cuman maksimal 50 baris aja, udah gitu PICnya terbatas. Nyari yg full dulu yah :)

-----------------------------------------------------------------------------------------------------------------------------------
Ehm... kalo pake GCBasic ama Emerald editor yang gratisan kayaknya lebih mantab nih...
seperti info dari mas Ri-5-am,

GC Basic dari http://gcbasic.sourceforge.net/download.html
Crimson Editor dari http://www.crimsoneditor.com/english/download.html

Ane cobain dulu yaa...
-----------------------------------------------------------------------------------------------------------------------------------

Update lagi : Ternyata GCBasic kurang nyaman,... mendingan pake PicBasic Pro ato Proton aja yah...
Bukannya menganjurkan membajak program, tapi klo beli emang harganya mahal... klo cuman buat belajar, mungkin bisa nyoba cari sendiri di net ato pm ane, ntar ane bantuiin cari link buat donlod programnya.

Nah sekarang mo install PBP dulu, yang nggak gedhe2 makan harddisk, klo Proton mah gedhe banget, tapi maknyoss ada simulatornya langsung. jadi bisa ngetest rangkaian sebelum dibikin PCB / disolder.

------------------------------------------------------------------------------------------------------------------------------------
Update maning:...

Ternyata Proton emang paling oyeeeee..... dah, ane pakai proton aja...
Teman2 klo mo link buat donlodnya pm aje yaa, atau bisa cari di webnya sonsivri.com
« Edit Terakhir: Desember 21, 2010, 09:26:24 AM oleh juhar »

Offline Machmud

  • Moderator
  • Hero Member
  • ********
  • Tulisan: 1254
Re:Kontroller PLL dengan PIC
« Jawab #1 pada: Desember 20, 2010, 10:07:53 AM »
Dilanjut... 8)

Offline bondanpepi

  • Sr. Member
  • ******
  • Tulisan: 304
  • berbagi ilmu hal yg tdk salah
Re:Kontroller PLL dengan PIC
« Jawab #2 pada: Desember 20, 2010, 11:35:17 AM »
mas juhar nti penjelasannya pakai pahasa  mudah di pahami ye,......maklum saya orang ndeso,ngikut belajar... :)

Offline ndroe

  • Hero Member
  • ********
  • Tulisan: 1137
  • beginer banget
Re:Kontroller PLL dengan PIC
« Jawab #3 pada: Desember 20, 2010, 12:30:44 PM »
idem sama mas bondan...wehehehe.. :-X
88,1 ..FM Ra' Ajeg

Offline juhar

  • Full Member
  • ****
  • Tulisan: 212
    • Tekad Karya Mandiri
Tahap 1: Inisialisasi dan Menuliskan di layar LCD
« Jawab #4 pada: Desember 21, 2010, 10:33:36 AM »
Setelah berhasil install Proton Basic dan IDE-nya (IDE = Integrated Development Environment, ato bahasa gampangnya Editor buat nulis & compile program), sekarang kita mulai merakit kontroler kita pake PIC 16F84.

Dari kode2 berikut akan nampak betapa mudahnya memprogram PIC dengan menggunakan BASIC.

Oh ya, baris yang dikasih tanda ' (apostrophe) adalah komentar, jadi nggak bakal dihiraukan oleh Proton

Kode: [Pilih]
' Jenis PIC yang digunakan
Device = 16F84A 
' Konfigurasi PIC
' pake kristal 4 Mhz  -->    XT_OSC
' WatchDog Timer off  -->    WDT_OFF
' PowerOn Timer off   -->    PWRTE_OFF
' Code Protection off -->    CP_OFF
Config XS_OSC, WDT_OFF, PWRTE_OFF, CP_OFF     
'susunan pinout LCD

LCD_DTPin = PORTB.4  ' Data mulai portB.4 s/d portB.7
LCD_RSPin = PORTB.2  ' Register Select di portB.2
LCD_ENPin = PORTB.3  ' Enable di portB.3
LCD_Interface = 4 ' Transmisi data 4-bit
LCD_Lines = 2        ' LCDnya 2 baris
       
ProgramKu:
   Print At 1,1, "KHE Indonesia"   ' tulis di layar, baris pertama

End  ' Selesai

Bandingkan dengan cuplikan kode yang biasa ane pakai dengan ASM langsung...


Kode: [Pilih]
;========================================================================
; Rutin untuk kontrol maupun tulis data ke LCD
;========================================================================

EnableLCD
bsf LCD_CTRLPORT, EN_LCD
nop
bcf LCD_CTRLPORT, EN_LCD
Return

ClearDisplayLCD
movlw 0x01
Call TulisPerintah
Return

LCDBaris1F
movlw 0x82
Call TulisPerintah
Return

LCDBaris1
movlw 0x80
Call TulisPerintah
Return

LCDBaris2
movlw 0xC0
Call TulisPerintah
Return

LCDCursorOn
movlw 0x0D
Call TulisPerintah
Return

LCDCursorOff
movlw 0x0C
Call TulisPerintah
Return

;=========================================================================
; menuliskan data 8 bit dalam 2x jalan (interface 4 bit)
; tulis dulu data di MSB, baru diikuti LSB
;=========================================================================


TulisData
movwf DataTemp
swapf DataTemp, w
andlw 0x0f
movwf LCD_DATAPORT
bsf   LCD_CTRLPORT, RS_LCD
Call EnableLCD
Call Tunda5ms
movf DataTemp, w
andlw   0x0f
movwf LCD_DATAPORT
bsf   LCD_CTRLPORT, RS_LCD
Call EnableLCD
Call Tunda5ms
Return

;========================================================================
; menuliskan perintah 8 bit dalam 2x jalan (interface 4 bit)
; tulis dulu perintah di MSB, baru diikuti LSB
;========================================================================

TulisPerintah
movwf DataTemp
swapf DataTemp, w
andlw 0x0f
movwf LCD_DATAPORT
bcf     LCD_CTRLPORT, RS_LCD
Call    EnableLCD
nop
movf    DataTemp, w
andlw   0x0f
movwf   LCD_DATAPORT
bcf    LCD_CTRLPORT, RS_LCD
Call   EnableLCD
Call   Tunda5ms
Return

;=========================================================================
; urutan penginisialisasian LCD
;=========================================================================

InisialisasiLCD

Call Tunda100ms
movlw 0x20           
Call   TulisPerintah
movlw      0x28
Call  TulisPerintah   
movlw 0x0C
Call   TulisPerintah
movlw 0x06
Call TulisPerintah   
Call  ClearDisplayLCD
Call LCDBaris1
Return

 ::) ::) :P :P
« Edit Terakhir: Desember 21, 2010, 10:58:18 AM oleh juhar »

Offline yd7lby

  • Sr. Member
  • ******
  • Tulisan: 466
  • elektronika is yahud
Re:Kontroller PLL dengan PIC
« Jawab #5 pada: Desember 21, 2010, 12:08:02 PM »
lanjut mas...+1 ilmu nih
"Siapa yang cinta pada nabi-Nya, pasti bahagia dalam hidupnya"
-Vita dan Hadad Alwi-

Offline Cosphi84

  • Full Member
  • ****
  • Tulisan: 118
Re:Kontroller PLL dengan PIC
« Jawab #6 pada: Desember 21, 2010, 12:27:21 PM »
Berawal dari pancingan mas Ri-5-am yang memposting kode kontroller PLL FM RDVV, dan juga keinginan untuk belajar kembali dunia mikro yang lama ditinggalkan, maka ane coba buka trit baru untuk mbahas penggunaan mikrokontroller dalam aplikasi sederhana.

Biar mudah dan semua bisa cepat mengikuti, ane pilih pake bahasa BASIC aja.

Nah, yang mesti disiapkan adalah :

   1. IC PIC (boleh 16F628A ato 16F84A)
   2. Hardware programmer PIC-nya, banyak macem bisa bikin sendiri ato beli jadi
   3. Program buat compilernya (ane pakai Proton aja)
   4. Program Simulatornya (PIC Simulator)

Ane siap2 dulu yah...  :-X

update :

    Kayaknya musti pake program yg full version nih, barusan pake proton lite, cuman maksimal 50 baris aja, udah gitu PICnya terbatas. Nyari yg full dulu yah :)

-----------------------------------------------------------------------------------------------------------------------------------
Ehm... kalo pake GCBasic ama Emerald editor yang gratisan kayaknya lebih mantab nih...
seperti info dari mas Ri-5-am,

GC Basic dari http://gcbasic.sourceforge.net/download.html
Crimson Editor dari http://www.crimsoneditor.com/english/download.html

Ane cobain dulu yaa...
-----------------------------------------------------------------------------------------------------------------------------------

Update lagi : Ternyata GCBasic kurang nyaman,... mendingan pake PicBasic Pro ato Proton aja yah...
Bukannya menganjurkan membajak program, tapi klo beli emang harganya mahal... klo cuman buat belajar, mungkin bisa nyoba cari sendiri di net ato pm ane, ntar ane bantuiin cari link buat donlod programnya.

Nah sekarang mo install PBP dulu, yang nggak gedhe2 makan harddisk, klo Proton mah gedhe banget, tapi maknyoss ada simulatornya langsung. jadi bisa ngetest rangkaian sebelum dibikin PCB / disolder.

------------------------------------------------------------------------------------------------------------------------------------
Update maning:...

Ternyata Proton emang paling oyeeeee..... dah, ane pakai proton aja...
Teman2 klo mo link buat donlodnya pm aje yaa, atau bisa cari di webnya sonsivri.com

Weh.. weh..weh.. ni pakar koding dah mulai beraksi ni... manatbbbbbbb.... 8) 8)

Se-paham dengan Om juhar ini, setelah pake GCBASCIC, dibandingkan dengan PBP (PICBASIC PRO) ato mungkin dengan laenya, ane merasa agak kurang nyaman. Mungkin ada satu falsafah yang harus diingat dalam hal ini... "GRATISAN KOK PINGIN NYAMAN" he..he..he..he... Dah bisa jalan dah untung...  :P
Akhirnya ane juga pake PBP, Untuk asm-nya pake MPASM dari microchip. Editornya pake Microstudio... uenakkk tenan... dan simulatornya pake PICSIMULATOR...

Kemarin udah selesai juga edit edit source-nya RDVV. info terahir dari p. Machmud udah bisa lock sampe 459,00MHz. Kemaren pak Machmud yang dah nyobain.. ane bikin softwarenya tapi ga punya hardwarenya... ckc..ck..ck...  :'(  Hexnnya tar tak uplod... mayan, bisa bikin STL ni...  Juga isi programnya... tar tak opensourcelah... tenang aja...

DILANJUT.... 8) 8) 8)

Offline juhar

  • Full Member
  • ****
  • Tulisan: 212
    • Tekad Karya Mandiri
Re:Kontroller PLL dengan PIC ( Bedah RDVV.BAS )
« Jawab #7 pada: Desember 21, 2010, 02:38:41 PM »
Berikut ini sekilas hasil pembacaan dan menerjemahkan kode RDVV dari ViProje
Yang jelas dicompile nggak error, cuman belum tau klo di rangkaian aslinya, wong PLL RDVVku masih belum selesai disolderin hehehe
:P :P

Mohon review dari rekan2, terutama yang PLL RDVV-nya udah jalan.
Sekalian biar bisa langsung dibuat memahami cara kerja PIC

[code]
'****************************************************************
'*  Author  : [H
« Edit Terakhir: Desember 21, 2010, 04:21:15 PM oleh juhar »

Offline isurG_

  • Isurganteng
  • Administrator
  • Hero Member
  • ********
  • Tulisan: 2671
  • Keseharianku Melawan Waktu
    • Keseharianku Melawan Waktu
Re:Kontroller PLL dengan PIC
« Jawab #8 pada: Desember 21, 2010, 03:11:38 PM »
wah ... master programer akhirnya beraksi .... ngga ada simulator ne ... hikz ... wa coba2 instal microbasic bawaan dari k182 ... ada erot di line 25 ... opo yo ??? maklum masi belum tau dengan komen2 compailer .. zizizizi ...


pic simulatorna dimana yo ?

fb : isurg
ig : isurg_ , isurganteng
yb : isurcocc
tw : isurg
web : tukangsapu.net, aditama.net, elektronika.web.id

Offline juhar

  • Full Member
  • ****
  • Tulisan: 212
    • Tekad Karya Mandiri
Re:Kontroller PLL dengan PIC
« Jawab #9 pada: Desember 21, 2010, 03:23:47 PM »
Program ini ane coba dengan Proton, jadi klo di-compile dengan MikroBasic mungkin perlu penyesuaian.
Cek PM.

Offline isurG_

  • Isurganteng
  • Administrator
  • Hero Member
  • ********
  • Tulisan: 2671
  • Keseharianku Melawan Waktu
    • Keseharianku Melawan Waktu
Re:Kontroller PLL dengan PIC
« Jawab #10 pada: Desember 21, 2010, 04:17:19 PM »
ya deh gan ntar di download ... trafik tinggi sekarang ... agak lemot internet .... lagi pula besok mo off dulu .... ngurus bini mo lahir .. lanjutkan dulu gan ....

cuma gan ada kelemahan di rdvv ... maunya si setiap frekwensi sudah lock ... dan jika osc tidak tepat mis pas tun ato apa .. maka dia unluk eh unlock ... mungkin bisa kirim data terus dari lock nya ke pengulangan osc nya ... sehingga lock nya ngga idup terus ... kemarin ada ngobrol cuma itu kelemahan rdvv harus ada prog tambahan untuk melakukan feedback terus menerus untuk mengecek apakah benar2 lock pada frek na ...

mantap2 ... lanjutkan ....  8) 8) 8)

fb : isurg
ig : isurg_ , isurganteng
yb : isurcocc
tw : isurg
web : tukangsapu.net, aditama.net, elektronika.web.id

Offline juhar

  • Full Member
  • ****
  • Tulisan: 212
    • Tekad Karya Mandiri
Re:Kontroller PLL dengan PIC
« Jawab #11 pada: Desember 21, 2010, 04:25:58 PM »
Waa... selamat ya bang Isur, dah mo punya momongan lagi
 :-*  :-*  :-*

Sepertinya sih kalo liat logika programnya, dia ada saat baca data dari I2C dan ngecheck klo ada unlock.

Coba kita modif sama2 yuk, aku soalnya juga belum jadi ni PLL RDVV-nya...
IC yang kapan hari dari mas Isur masih nganggur hehehe ...

Ayo mas Ri-5-am mana nih ??? Dikoreksi juga dong hasil bedah programnya...

Ane masih newbie juga kok. Kebetulan kemaren mas Ri-5-am yang kasih trigger jadi kepingin utak atik lagi.

Offline Cosphi84

  • Full Member
  • ****
  • Tulisan: 118
Re:Kontroller PLL dengan PIC ( Bedah RDVV.BAS )
« Jawab #12 pada: Desember 21, 2010, 04:38:54 PM »
Berikut ini sekilas hasil pembacaan dan menerjemahkan kode RDVV dari ViProje
Yang jelas dicompile nggak error, cuman belum tau klo di rangkaian aslinya, wong PLL RDVVku masih belum selesai disolderin hehehe
:P :P

Mohon review dari rekan2, terutama yang PLL RDVV-nya udah jalan.
Sekalian biar bisa langsung dibuat memahami cara kerja PIC

[code]
'****************************************************************
'*  Author  : [H

Offline juhar

  • Full Member
  • ****
  • Tulisan: 212
    • Tekad Karya Mandiri
Re:Kontroller PLL dengan PIC
« Jawab #13 pada: Desember 21, 2010, 05:13:15 PM »

Ane bikin downloadernya dulu...

Sekedar ikut me-logika,
Pada baris ini ni:

'Frek_Kerja = ERead 02 'Baca data dari internal EEPROM, ini aslinya
Frek_Kerja = 990 ' Kita set frekuensi awal 99.0 Mhz
If  Frek_Kerja > 0   Then  Lanjut

Kalo di compile, kalo sy tidak salah logika, maka setiap kali habis dimatikan, pll akan kembali ke frek. 99,0Mc ya...?
Saya kemarin modifikasi disini menjadi:

frek_kerja = eread 02
if (frek_kerja < 875 ) or (frek_kerja >108) then
'kalo ternyat frekwensinya diluar band FM, maka
frek_kerja = 100 'default 100mc
lanjut
else
lanjut
endif


Ntu aja si.. laennya OK...
Eh, pernah juga ada masalah ndak bisa simpan ke eeprom, jadi saat mati kembali ke frek. default.
Saya buat variable frek menjadi lowbyte dan highbyte. nah, dari low dan high byte ini, baru disimpan ke eep.

Lengkapnya nanti aku uplod.. dari rumah... i.alloh

Yup betul mas Ri-5-am... Kelupaan, klo mati kan mbalik lagi hehehe :)
Klo masalah kelemahan yang diungkap ama mas Isur ni gimana ya ? Ada yang ngalamin juga ?


cuma gan ada kelemahan di rdvv ... maunya si setiap frekwensi sudah lock ... dan jika osc tidak tepat mis pas tun ato apa .. maka dia unluk eh unlock ... mungkin bisa kirim data terus dari lock nya ke pengulangan osc nya ... sehingga lock nya ngga idup terus ... kemarin ada ngobrol cuma itu kelemahan rdvv harus ada prog tambahan untuk melakukan feedback terus menerus untuk mengecek apakah benar2 lock pada frek na ...


Kayaknya flowchart programnya diubah aja ya, biar lebih afdol... 
Bayanganku sih begini :

       1. Inisialisasi
       2. Baca EEPROM
       3. Jika EEPROM diluar Range, maka set Frekuensi ke 99 Mhz
       4. Set Frekuensi
       5. Baca Status Lock PLL
       6. Jika Unlock, NonAktifkan Penguat dan Set Ulang Frekuensi Trus Balik ke No. 5
       7. Tampilkan Frekuensi
       8. Tunggu Masukan Tombol
       9. Jika Ada Tombol ditekan, hitung ulang frekuensi baru
     10. Balik ke no 4.
       
Brrr... jadi kepengen nyolder RDVV nih....

Offline Machmud

  • Moderator
  • Hero Member
  • ********
  • Tulisan: 1254
Re:Kontroller PLL dengan PIC
« Jawab #14 pada: Desember 21, 2010, 06:20:54 PM »
Memang ada kelemahannya yaitu :
a. Misal pll sudah lock dan kita putuskan tegangan ke oscilator maka pll tetap lock
    padahal tidak ada signyal RF, lho kenapa diputus?
    Eh.... untuk ngebreak kang... saya putus bagian vco-nya saja dan pll lock terus.
    dan tidak menutup kemungkinan hal tsb terjadi juga bukan untuk ngebreak

b. PLL LOCK, trimer diputar dan out RF panas sedangkan di radio dan dicounter frekuensi
    tidak ada.

Nah bagusnya bagiamana dari sisi pemograman?