Jump to content
Sign in to follow this  
lanuncyber

[elektronik] Microchip P I C 18f4220

Recommended Posts

aku xtau mane nak carik forum yg sesuai dgn benda ni. jadi maaf kalau post aku ni salah tempat.

actually post ni aku dah bnyk post kat forum english yg lain. tp masih belum ade reply. so, aku nk mintak tlg kat korang kat putera.com ni. mane la tau ade yg otai2 elektronik.

ni masalah aku...

i am now doing a project using MC PIC 18F4220. it is actually a fiber optics project, but i've been assigned to complete the receiver part which includes front-end, digital signal processing and other two more parts. i'm doing only the digital signal processing part and i need to use PIC18F4220.

actually, my level of electronics is very poor. after reading through the Microchip PIC 18F4220 datasheet, i don't even understand even 5% of it.

i simply explain my project like this:

- the digital signal processing part (DSP) will receive signal from the front-end (FE).

- because this is a multilevel transmission system project, for assumption and example, there will be 4 signals coming from FE to DSP.

- by using Non-Return Zero (NRZ) modulation, these 4 signals will be combined and transmitted into PIC18F4220.

- through the PIC18F4220, the signal will be processed and the output will be 4 signals which are identical to the original signals.

i really need help for this project. there are 40 pins on PIC18F4220, and AT LEAST, can anybody please help me to show at what pin...

( a ) to insert a signal (one signal) to the PIC18F4220?

( b ) to insert 4 signals to the PIC18F4220?

( c ) to measure the output of ( a )?

( d ) to measure the ouput of ( b )?

bidang aku adlh computer & communication. dulu ade gak belajar elektronik, tp dapat D je. memang aku sangap giler bab elektronik ni.

aku ngaku, benda ni memang melibatkan projek aku. aku dah study datasheet Microchip PIC 18F4220 tu, tp satu benda pun aku x paham. dan sebelum aku buat hands-on, aku kene setelkan simulation guna software Proteus 6 Professional dan utk microcontroller programming, PIC C Compiler.

bukanla aku nak mintak orang buat projek aku ni, cuma aku nak mintak tolong, sesapa yg sudi tolong, bantu aku paham benda ni, at least aku dapat buat 4 benda yg kat atas ni tadi.

tolong sesangat dan trima kasih bnyk2!

Share this post


Link to post
Share on other sites

ni image utk Microchip PIC18F4220

image dlm software Proteus ISIS Pro

pic18f4220.jpg

image dr datasheet PIC18F4220

pic18f42202.jpg

...

Actually, PIC means Programmed Intergrated Circuit. Firstly, bila ko dpt bli PIC ni,tnya kat tuan kdai tu IC ni dh siap program ke blum...Klu dh siap program,bgus..lg sng keje ko..just cr info psl ic nie je..aku akn tlg skit sbyk psl ic ni..klu ko nk sng, ko cr buku psl ic review..dlm buku ni segala mcm ic ko leh tau cmne nk guna...dr transistor yg blum jd ic pun akn dpt tau..

image yg ko bg ni simple sgt..aku xleh nk wat review..klu ko x kesah,aku nk tgk litar skematik utk projek ko..

Share this post


Link to post
Share on other sites

general overview benda yg aku kena buat…

general-overview.jpg

RECEIVER ni consists of 4 parts:

- Front-End (FE)

- Digital Signal Processing (DSP)

- other two parts

4-parts-in-receiver.jpg

Bila dah masuk bahagian RECEIVER, ni, semua optical signal akan ditukar kepada electrical signal kan?

Bahagian Front-End, member aku kena buat. Aku pulak kena buat bahagian Digital Signal Processing. Actually, tajuk projek ni adalah “Design and Development of…â€. Jadi, aku kena design schematic untuk bahagian DSP. Oleh sebab aku memang bangang habis bab elektronik ni, tu yang aku nak minta tolong sesiapa yang boleh ajar aku untuk buat schematic tu.

Bahagian DSP ni, akan menerima signal dari Front-End. Modulation yang perlu digunakan adalah NRZ (Non-Return Zero), dengan guna konsep Duty Cycle.

bersambung...

Share this post


Link to post
Share on other sites

Contoh, ada 4 signals (mewakili 4 users), transmit melalui optical system, masuk ke RECEIVER.

signal1.jpg

signal2.jpg

signal3.jpg

signal4.jpg

selepas melalui Front-End, 4 signals tu akan di-modulate dgn guna multiplexing technique Duty Cycle dan modulation NRZ (Non-Return Zero), kononnya macam ni...

result-signal.jpg

bersambung...

Share this post


Link to post
Share on other sites

RESULT signal tadi akan masuk ke Front-End, amplified, filtered dan akan kuar yang kemudian menjadi INPUT kepada bahagian DSP.

jadi, fungsi bahagian DSP yang aku kena buat ni adalah untuk demodulate RESULT signal tadi kepada 4 signals yang sama dengan 4 signals yang masuk awal2 tadi...

lab assistant aku mencadangkan guna microcontroller Microchip PIC 18F4220 (seperti rajah yang aku post awal2 tu) untuk demodulate signal ni.

dan memang benar ada sedikit hardware programming yang aku perlu lakukan (bab programming ni aku lagi hancur), tapi, aku dah search kat internet, dan dah jumpa 1 file 18f4220.h, programming untuk microcontroller 18F4220 ni. kira macam programming default chip ni la. memang ada certain2 benda yang aku perlu ubah, tapi, buat masa ni, aku hanya nak belajar untuk dapatkan...

to show at what pin...

( a ) to insert a signal (one signal) to the PIC18F4220? (RESULT signal)

( b ) to measure the output of ( a )? (nak dapatkan semula 4 signals yang sama macam 4 input signals tadi)

sesiapa, especially pakerk, tolong la aku yang bengong dan tengah tensen ni. trima kasih bnyk2!

p/s: actually, aku dah baca semua datasheet yang melibatkan 18F4220 ni, (mostly download dari microchip) dan oleh sebab tahap elektronik aku memang menyedihkan, aku x paham langsung apa yang terkandung dalam datasheet tu. jadi, harap sape2 bleh ajar aku sesimple mungkin asalkan aku bleh dapat objektif aku... tolong sgt2 dan trimas!

Edited by lanuncyber

Share this post


Link to post
Share on other sites

untuk pengetahuan ko (lanun cyber),aku bljr pun x tggi sgt...just diploma dlm elektronik je..bkn ko je yg minta tlg kat aku tp engineer2 yg dh berdaftar dgn Persatuan Engineer Malaysia pun minta tlg kat aku gak..aku akn tlg ko seberapa mungkin la...lgpun aku xpenah jupe PIC nie..nak kata aku nie hebat,xla hebat sgt..tp aku ni mmg gile ckit klu bab elektronik@technology.. klu ko tau aku keje ape msti ko tkjut...aku ni seorg PENGANGGUR...dh 2 thn aku xde keje..ni je la keje aku..aku tlg org tp org x tlg aku..(Sorry..off topic)..

Anyway,aku akn try gak tlg semampu yg mgkin...klu ada ape2 info lg psl project ko,tlg bgtau aku..mgkn berguna info tu..

Share this post


Link to post
Share on other sites

[off topic] x kisah la bro dip ke ape... aku sentiasa respek orang yg ade ilmu, mcm ko, pasal ko ada ilmu yg aku xde... insyaAllah, ko tlg org, Tuhan x lupa, esok2 Tuhan balas x terkata punya balasan... [end off topic]

setakat ni, ni la serba sedikit, general overview ttg projek yg aku kena buat ni. kalau ko perlu, aku bleh send kat ko datasheet ttg PIC18F4220 ni...

Microchip PIC 18F4220

tlg la ape yg bleh ye. trimas bnyk2!

...

Share this post


Link to post
Share on other sites

em buat masa ni, aku baru je belajar camne nak masukkan input signal mcm yg aku perlukan tu. aku guna generator PWLIN, (voltage level [V] lawan time [ms]. bleh generate signal dlm bentuk modulation NRZ dan mux technique Duty Cycle, input masuk ke mane2 pin AN0 hingga AN11.

output pulak bleh di-measure di mane pin part B, C atau D. contohnye, aku measure output di pin D. so, sbb aku nak 4 signals, jadi output akan kuar dr pin D0, D1, D2 dan D3.

pic18f4220.jpg

>>> ape benda yang perlu digunakan untuk measure digital signal (output) tu?

untuk menghasilkan output ni, aku perlu program-kan PIC ni. ade x sesapa bleh tlg aku untuk programming PIC18F4220 ni, (guna C) ? aku memang hampeh jgk dlm programming ni, jadi utk ni, aku belajar sket2.

ia melibatkan variable x dan y, x untuk input, y untuk output, agaknye la...

signal dlm bentuk digital (binari) adalah variable x. so...

[bersambung...]

Share this post


Link to post
Share on other sites

utk programkan PIC ni,ko perlukan 1 alat untuk disambungkan ke PC...alat ni mahal gak la..aku xpandai sgt bahasa C ni..x ngn y tu aku xpasti sgt cz aku xpenah program PIC guna x ngn y..

untuk measure output, biasa org guna osiloskop la...bleh tgk wave untuk ouput & input..tp aku xde osiloskpp...aku guna bnda2 biasa je cm multimeter, lampu(LED), Speaker & mcm2 lg la...tp bg ko ni aku rasa baik guna osiloskop la..xssh pun nk gunanya..

Share this post


Link to post
Share on other sites

alat tu aku rasa kat lab ada. tp wat masa ni, aku cuma nak setelkan simulation ni dulu.

ok, aku pakai osiloskop.

aku nak mintak tlg bab hardware programming ni.

lepas ni aku pos schematic output dr pin PIC18F4220 ni ke osiloskop. aku guna 4 osiloskop. bleh guna 2 je kan? tp xpe la, aku saja nak guna 4 bijik.

dan, aku akan post kat cni sket dpd hardware programming yg aku buat. mintak tlg ko tlg tgk2kan la ye...

...

Share this post


Link to post
Share on other sites

general overview benda yg aku kena buat…

general-overview.jpg

RECEIVER ni consists of 4 parts:

- Front-End (FE)

- Digital Signal Processing (DSP)

- other two parts

4-parts-in-receiver.jpg

Bila dah masuk bahagian RECEIVER, ni, semua optical signal akan ditukar kepada electrical signal kan?

Bahagian Front-End, member aku kena buat. Aku pulak kena buat bahagian Digital Signal Processing. Actually, tajuk projek ni adalah “Design and Development of…â€. Jadi, aku kena design schematic untuk bahagian DSP. Oleh sebab aku memang bangang habis bab elektronik ni, tu yang aku nak minta tolong sesiapa yang boleh ajar aku untuk buat schematic tu.

Bahagian DSP ni, akan menerima signal dari Front-End. Modulation yang perlu digunakan adalah NRZ (Non-Return Zero), dengan guna konsep Duty Cycle.

bersambung...

lanuncyber projek yang ko nak wat ni kalo tak silap aku ialah berkaitan dengan signal processing. Berkaitan ngan Analog / Digital.

Kawan ni x lah pandai sangat tapi kawan ada terbaca tang Signal Processing ni. PIC yang ko gunakan tu ialah sejenis Microcontroller gak. Rasanya pakerk lebih arif tang ni. Tapi untuk process signal, ngan PIC je x boleh rasa kawan. Ko kena guna IC Analog / Digital converter.

Kawan belajar gak tang Microcontroller tapi Basic Stamp.Salah satu golongan PIC gak tapi dah di modified oleh Parallax untuk di program ngan PBasic. Lebi mudah untuk orang yang baru belajar cam kawan nih. Microcontroller nih bukan boleh buat robot je tapi macam macam termasuklah komunikasi wireless dan GPS. Kat bawah ni kawan siap kan cara kasar langkah yang patut dibuat untuk signal processing. Tapi ko boleh mintak pandangan member2 lain . Kawan pun x pandai sangat. Cuba nak nolong je.

Step:

Digital Signal -> A/D conveter (convert to analog)-> Analog Signal -> PIC -> A/D conveter (convert to Digital) -> Result.

Lagi satu ko pegi kat sisni http://www.parallax.com/html_pages/downloa..._curriculum.asp pastu ko download

" Understanding Signal: PDF " cuba fahamkan. Kat dalam tu dia ada bagitau cam mana nak convert signal siap ngan source kod lagi. Ko ubah je dari Pbasic ke C.

Harap harap sedikit sebanyak dapat membantu ko.

Satu nasihat aku. Baca sebanyak mungkin dan cuba faham kan apa yang ko baca. Tak ada benda yang susah dalam dunia ni selain kita sendiri yang selau menganggap demikian.

Chow dulu.

Share this post


Link to post
Share on other sites

thanx azmax100 atas nasihat dan tunjuk ajar ko...

sambil aku tanya kat sini, aku masih jugak teruskan study benda ni.

dan smpai la bahagian paling aku kantoi giler.

aku dah buat programming untuk output PIC ni, dengan menggunakan PIC C Compiler. bleh x sesape antara korang tolong tengok2kan ok ke x.

#include "D:\My Documents\p1.h"

#use fast_io(D)

void main()

{

setup_adc_ports(AN0|VSS_VDD);

setup_adc(ADC_CLOCK_DIV_2|ADC_TAD_MUL_0);

setup_psp(PSP_DISABLED);

setup_spi(FALSE);

setup_wdt(WDT_OFF);

setup_timer_0(RTCC_INTERNAL);

setup_timer_1(T1_DISABLED);

setup_timer_2(T2_DISABLED,0,1);

setup_comparator(NC_NC_NC_NC);

setup_vref(FALSE);

setup_oscillator(False);

// TODO: USER CODE!!

while(true){

switch(x)

{

case 0: output_d(0x00);

delay_us(10);

break;

case 1: output_d(0x01);

delay_us(10);

break;

case 2: output_d(0x02);

delay_us(10);

break;

case 3: output_d(0x03);

delay_us(10);

break;

case 4: output_d(0x04);

delay_us(10);

break;

case 5: output_d(0x05);

delay_us(10);

break;

case 6: output_d(0x06);

delay_us(10);

break;

case 7: output_d(0x07);

delay_us(10);

break;

case 8: output_d(0x08);

delay_us(10);

break;

case 9: output_d(0x09);

delay_us(10);

break;

case 10: output_d(0xA);

delay_us(10);

break;

case 11: output_d(0xB);

delay_us(10);

break;

case 12: output_d(0xC);

delay_us(10);

break;

case 13: output_d(0xD);

delay_us(10);

break;

case 14: output_d(0xE);

delay_us(10);

break;

case 15: output_d(0xF);

delay_us(10);

break;

)

}

//delay_us(5);

}

}

soalan aku, camne aku nak hasilkan file .hex daripada file .c ni? sebab aku kena loadkan file .hex coding ni ke dalam PIC. actually sume ni masih simulation. untuk schematic PIC ni, aku guna Proteus ISIS 6 Pro.

seterusnya, aku kena buat programming untuk input kepada PIC tu. aku letak signal generator masuk ke PIC melalui pin AN0 (pin no 2).

seperti yang aku tentukan, ada 4 users. dengan menggunakan duty cycle dan modulation NRZ, satu duty cycle (100%) perlu dibahagikan kepada 5 portions (20%, 40%, 60%, 80%, 100%)

input_02.jpg

bersambung...

Edited by lanuncyber

Share this post


Link to post
Share on other sites

sekarang, macam ni...

satu duty cycle aku set kepada 10 us (micro-seconds). in order nak support 4 users. maka, setiap duty cycle (20,40,60,80) % bersamaan dengan (2,4,6,8) us.

bacaan sampling aku kena ambil pada point yang garis putus2 tu. so, keadaan yang aku perlukan untuk programming tu macam ni...

delay 1 us

baca sampling pada point x1

kuarkan bacaan

delay 2 us

baca sampling pada point x2

kuarkan bacaan

delay 2 us

baca sampling pada point x3

kuarkan bacaan

delay 2 us

baca sampling pada point x4

kuarkan bacaan

delay 2 us

baca sampling pada point x5

kuarkan bacaan

untuk delay: delay_us(value); di mana value adalah integer

untuk baca sampling pada point tertentu: read_adc(value);

untuk kuarkan bacaan: printf("%d,x"); di mana x = x1, x2, x3, x4, x5

aku tanya lab assistant kat lab tu, dia kata, kes macam ni kena guna ifelse bagi setiap kes...

ni yang aku dah buat. bleh x korang ajar aku mana yang salah dan perlu dibetulkan? dan apa yang perlu aku tambah kalau x cukup? ni guna C ni... memang nampak macam hampeh pasal aku memang fail dalam programming ni... tolong la bagi sesapa yang terer tu...

void main()

{

setup_adc_ports(AN0|VSS_VDD);

setup_adc(ADC_CLOCK_DIV_2|ADC_TAD_MUL_0);

setup_psp(PSP_DISABLED);

setup_spi(FALSE);

setup_wdt(WDT_OFF);

setup_timer_0(RTCC_INTERNAL);

setup_timer_1(T1_DISABLED);

setup_timer_2(T2_DISABLED,0,1);

setup_comparator(NC_NC_NC_NC);

setup_vref(FALSE);

setup_oscillator(False);

// TODO: USER CODE!!

if(x1=1)

{

delay_us(1);

read_adc();

printf("%d",x1);

}

else

{

printf("&d",0);

}

if(x2=1)

{

delay_us(2);

read_adc();

printf("%d",x2);

}

else

{

printf("%d",0);

if(x3=1)

{

delay_us(2);

read_adc();

printf("%d",x3);

}

else

{

printf("%d",0);

}

if(x4=1)

{

delay_us(2);

read_adc();

printf("%d",x4);

}

else

{

printf("%d",0)

}

}

Share this post


Link to post
Share on other sites

sekarang, macam ni...

satu duty cycle aku set kepada 10 us (micro-seconds). in order nak support 4 users. maka, setiap duty cycle (20,40,60,80) % bersamaan dengan (2,4,6,8) us.

bacaan sampling aku kena ambil pada point yang garis putus2 tu. so, keadaan yang aku perlukan untuk programming tu macam ni...

delay 1 us

baca sampling pada point x1

kuarkan bacaan

delay 2 us

baca sampling pada point x2

kuarkan bacaan

delay 2 us

baca sampling pada point x3

kuarkan bacaan

delay 2 us

baca sampling pada point x4

kuarkan bacaan

delay 2 us

baca sampling pada point x5

kuarkan bacaan

untuk delay: delay_us(value); di mana value adalah integer

untuk baca sampling pada point tertentu: read_adc(value);

untuk kuarkan bacaan: printf("%d,x"); di mana x = x1, x2, x3, x4, x5

actually,untuk part electronic mmg ko dh lpas...so,skrg ni just tggl part untu programming je...untuk programming,aku mmg bwh dr pd Gagal...aku mmg xtau ape tu Programming...biasanya aku sruh mmbr aku yg watkan..

experiment untuk PIC tu aku nk dptkan gmbr gelombang yg ko lihat dr OSC tu.

Share this post


Link to post
Share on other sites

gelombang pada osiloskop xkan kuar selagi aku x programkan dulu PIC ni. bleh ke kuarkan wave pd osiloskop kalau x program-kan PIC ni?

...

Share this post


Link to post
Share on other sites

gelombang pada osiloskop xkan kuar selagi aku x programkan dulu PIC ni. bleh ke kuarkan wave pd osiloskop kalau x program-kan PIC ni?

...

laaaa....aku ingt kan ko dah program kan...bkn xleh kuar tp bleh...jsut wave dia lain ckit la dr yg ko nak tu...

tp xpe....ko try tnya org yg pakar dlm bidang programming ni...aku mmg 0 dlm bab ni...

Share this post


Link to post
Share on other sites

owh....mcm nie rupanye p.i.c....nk programkan dia kena pkai bahasa c ekk...senang x p.i.c ni???...klu ble nk blaja ckit,coz ari tu g tengok pertandingan robot ala2 robotcon kt pwtc...kebanyakkan robot yg brtanding diprogramkan pakai p.i.c..ble x terangkan basic2 dahulu???

Share this post


Link to post
Share on other sites

kebanyakan U yg masuk Robocon pakai PIC16F877A..

basic kena ada:

1) programming (sama ada C atau pun assembly language utk PIC)

2) teori elektronik (sambungan yg patut)

3) teori mekanikal (kena ambik perhatian mcm motor nk letak camner, gear dsb)

Share this post


Link to post
Share on other sites
QUOTE(lanuncyber @ Mar 8 2007, 10:07 PM) <{POST_SNAPBACK}>
thanx azmax100 atas nasihat dan tunjuk ajar ko...

sambil aku tanya kat sini, aku masih jugak teruskan study benda ni.

dan smpai la bahagian paling aku kantoi giler.

aku dah buat programming untuk output PIC ni, dengan menggunakan PIC C Compiler. bleh x sesape antara korang tolong tengok2kan ok ke x.


#include "D:\My Documents\p1.h"
#use fast_io(D)

void main()
{

setup_adc_ports(AN0|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2|ADC_TAD_MUL_0);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_oscillator(False);

// TODO: USER CODE!!

while(true){
switch(x)
{
case 0: output_d(0x00);
delay_us(10);
break;

case 1: output_d(0x01);
delay_us(10);
break;

case 2: output_d(0x02);
delay_us(10);
break;

case 3: output_d(0x03);
delay_us(10);
break;

case 4: output_d(0x04);
delay_us(10);
break;

case 5: output_d(0x05);
delay_us(10);
break;

case 6: output_d(0x06);
delay_us(10);
break;

case 7: output_d(0x07);
delay_us(10);
break;

case 8: output_d(0x08);
delay_us(10);
break;

case 9: output_d(0x09);
delay_us(10);
break;

case 10: output_d(0xA);
delay_us(10);
break;

case 11: output_d(0xB);
delay_us(10);
break;

case 12: output_d(0xC);
delay_us(10);
break;

case 13: output_d(0xD);
delay_us(10);
break;

case 14: output_d(0xE);
delay_us(10);
break;

case 15: output_d(0xF);
delay_us(10);
break;
)
}
//delay_us(5);
}
}


soalan aku, camne aku nak hasilkan file .hex daripada file .c ni? sebab aku kena loadkan file .hex coding ni ke dalam PIC. actually sume ni masih simulation. untuk schematic PIC ni, aku guna Proteus ISIS 6 Pro.

seterusnya, aku kena buat programming untuk input kepada PIC tu. aku letak signal generator masuk ke PIC melalui pin AN0 (pin no 2).

seperti yang aku tentukan, ada 4 users. dengan menggunakan duty cycle dan modulation NRZ, satu duty cycle (100%) perlu dibahagikan kepada 5 portions (20%, 40%, 60%, 80%, 100%)



bersambung...



Ape2 pun ni website aku:

www.bizbot-technology.myportal.my

ok,mcm ni,sbnrnya,tanpa gunakan PIC pun kita boleh meaure analog input dgn menggunakan IC ADC0808(search kat goole engine).IC nih bnyk digunakan dlm telefon2 awam g mana kita cuba untuk meminimakan complexity aturcara untuk microcontroller selain dapat meningkatkan prestasi
microcontroller tersebut.
Untuk hasilkan hex file, ko kene guna compiler tu untuk compile program ko.Contohnya,untuk micrchip, ko bleh guna programming editor MPlabIDE dan ko kene install CCS compiler supaya MPlabIDE boleh faham aturcara ko tu.ada bnyak jenis compiler yang ko leh dapat di pasaran contohnya PICbasic(kene bayar),CCS(kene bayar) dan sebgainya.

bila ko dh compile and xde error, ko pergi ke ruangan file>export>ok>ok>bagi nama untuk hex file tu.dan automatic MPlabIDE akan create hex file
untuk aturcara tersebut.

itu sahaja.kalo still x faham, pergi website aku, dan sign as member guest then aku akan tgk problem .

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...