[ Propalitet @ 26.09.2013. 20:18 ] @
Pozdrav članovima foruma!

Poslije dugo razmišljanja i čitanja kako ovog tako i drugih foruma vezanih za mikrokontrolere, odlučih se za navedenu kombinaciju. Naime, programator je ovaj http://www.microchipdirect.com...tsearch.aspx?keywords=PG164130, svima već dobro znani nasljednik megapopularnog PICkit2.
Mikrokontroler je http://www.microchip.com/wwwpr...Devices.aspx?dDocName=en558687 (SDIP 28 kućište), takođe poznat članovima foruma (koliko sam uspio ispratiti, član mikikg posjeduje identičan, a za isti postoji i nekoliko tema na ovom podforumu). Međutim, u navedenim temama radi se upotrebi dotičnog u svrhe meni još uvijek svjetlosnim godinama dalekim aplikacijama. Kako sam naslov kaže, odabrana kombinacija je moj početak u svijetu mikrokontrolera te je i ova tema vezana za to. Zbog svega navedenog molio bih cijenjene članove foruma da me upute na dokumentaciju, knjige, sajtove iz kojih bih na poželjno lak način ušao u svijet ove vrste programiranja (hello world i LED blink su mi idalje misaona imenica, ali znam da se od toga mora početi pa...). Da me ne bi pogrešno shvatili, čitao sam ja (donekle) i tehničke podatke i programatora i mikrokontrolera, kao i upustvo za razvojno okruženje MPLAB X (v 1.51) i jasna mi je nazovi hardverska konfiguracija cijele priče (coupling, decoupling, dužine vodova i tome slično), kao i kreiranje i podešavanje novog projekta u MPLAB X, ali ništa dalje od toga! Sve u svemu, želio bih neko "cijelovito" uputstvo koje će mi pomoći naučiti konfigurisanje portova, internog osilatora i ostalog što je važno za početak. akođe bih volio zmati gdje se mogu upozbati sa samom sintaksom razvojnog okruženja. Svaka pomoć i savjet su više nego dobrodošli! Još jedan pozdrav svima i hvala unaprijed!

PS: posjedujem "matador" ploču (na ebay-u poznata kao MB-102) tako da bi čitav "razvoj" početničkih projekata vršio na njoj.
[ mikikg @ 27.09.2013. 00:09 ] @
Pozdrav,

pre svega cestitam na izboru programatora i PIC-a, uzeo si vrlo fine spravice, videces vec kad budes krenuo nesto "ozbiljnije" da radis ...

Ne znam odakle da pocnem ali ajd ovako za uvod da napravim mali osvrt samomg tog dsPIC, njegove dobre a i neke lose osobine.

U pitanju je vrlo mocan/brz (70 MIPS) 16bitni RISC mikrokontroler, tacnije digitalni signalni kontroler (DSC) sa 128KB flash memorije prvenstveno namenjen za napredno analogno/digitalno procesiranje signala. Takva vrsta procesiranja je uglavnom potrebna za brze i kompleksne procese kojie cesto vidjaju u sklopovima za kontrolu brzine motora (razni tipovi) kao i kod prekidackih napajanja (SMPS). Naravno moze i za bilo kakve druge vrste skopova ali za ove dve oblasti se u tom dsPIC nalaze neki specificni moduli koji drasticno olaksavaju pisanje programa i hardwersku implementaciju. Sto se kaze, "natridzeni" su za te primene.

Tu se izdvajaju dva bitna modula, prvi, vrlo brz A/D konverter sa 12bit rezolucijom i brzinom uzorkovanja od 500KSPS (500.000 uzoraka u sekundi) ili ako se izabere/konfigurise druga opcija, 10bit sa 1MSPS (milion uzoraka u sekundi). Ovo je neophodno, kao sto spomenuh, za brze procese koje se desavaju kod Motor Control aplikacija (otuda u oznaci ono "MC").
Sa druge strane ako se ne bavimo tako brzim procesima vec nekim dosta sporijim, ta brzina uzorkovanja nam omogucava da signal "izmerimo" ne jednom nego dosta vise puta u nekoj jedinici vremena i kasnije vrlo prostom matematikom (sabiranje i deljenje) uradimo "ujednacavanje" sto dovodi do toga da dobijemo dosta realniji rezultat merenje, cak je moguce dobiti i vecu rezoluciju merenja, npr ako bi radili 256 puta vise uzorkovanja moguce je povecati rezoluciju za citavih 4 bita. Taj proces se zove "oversampling" i vise o njemu mozes procitati u raznim tehnickim publikacijama, nevezano za ovaj konkretan MCU. Takodje na ovaj nacim se moze uprostiti analogni ulazni deo (front-end) jer nije potrebno dodatno analogno filtriranje signala pre ulaza u sam dsPIC.

Drugi modul koji izdvaja ovu seriju dsPIC-ova od ostalih "braca" je njegov napredni PWM modul. PWM je skracenica od "pulsno sirinske modulacije" (Pulse-width modulation).
Da ne ulazim u objasnjavanje te PWM price, o tome mozes procitati opet u gomili raspolozivih tehnickih publikacija. Ono sto je bitno ovde spomenuti je to da imamo na raspolaganju jako brz i precizan PWM modul / generator sa dodatnim pod sklopovima oko njega opet vrlo zgodnih za MC i SMPS primene.
Posto taj PWM modul mozemo da posmatramo, izmedju ostalog, i kao digitalno/analogni konverter (D/A), njegova rezolucija/brzina nam daje mogucnost za generisanje dosta preciznijeg analognog napona. To ces vec videti kada se budes dotakao te problematike.

Posto je u pitanju vrsta DSP mikrokontrolera (Digital signal processing), to znaci da on u sebi ima vrlo brz modul za matematiku. Gore spomenute MC i SMPS aplikacije zahtevaju vrlo slozene matematicke racune i zbog toga je neophodno imati specificne module koji te matematicke operacije mogu odraditi najcesce u jednoj instrukciji, neke jos slozenije operacije zahtevaju naravno vise instrukcija ali u poredjenju sa ostalim mikrokontrolerima ovaj dsPIC moze to odraditi drasticno brze. Naravno opet te mogucnosti mozemo iskoristiti za bilo koju drugu namenu nevezano za ove oko MC i SMPS.

Ostali moduli poput SPI, I2C, UART i slicni su klasika koja se vidja prakticno sad na svim modernim mikrokontrolerima i necu ulaziti u dublju pricu oko toga. Taj dsPIC to sve ima.

Ono sto je (po meni) mana je sto nema USB modul. Medjutim to je do nekle i logicno (mada nebi nista falilo da ga ima) jer MC i SMPS aplikacije su vrlo specificne jer se uglavnom radi sa nekim viskom naponima, velikim strujama i snagama, dakle neki uredjaji koji nisu bas "za poneti" i da stoje na stolu pored racunara prikljuceni na USB :)
Druga mana je sto nema DCI modul a koja neka druga "braca" imaju, modul koji sluzi za kodiranje i dekoriranje raznih Audio protokola poput S/PDIF ili AES3.

----

Oko programiranja, huh, ne mogu to sve tako ukratko i sazeto da prepricam. Uglavnom, programiranje ovog ili bilo kog drugog MCU se svodi na isto. Najcesce se programi pisu u jeziku C / C++ pa je poznavanje istih neophodno. Naravno postoje opcije i za druge jezike ali su ovi standard i za njih ima detaljno objasnjenje, primera, kompajlera itd.
Za ovaj konkretan dsPIC je trenutno najzgodniji XC32 kompajler koji mozes naci na Microchip-ov sajtu. Taj kompajler se nudi i u potpuno besplatnoj verziji koja je skroz funkcionalna, bez ogranicenja na velicinu coda ili nekih drugih limita. Postoji Pro verzija ali ona ima samo neku dodatnu optimizaciju izvrsnog code-a koja dovodi do manjeg zauzeca memorije ali obzirom da ovde imamo 128KB memorije to uopste ne predstavlja neki bitan faktor.
Dakle kompajler XC32 je posebna prica i nije vezana za sam IDE (Mplab-X), znaci mora se nezavistno skinuti i instalirati.

Kao vrlo fin i sazet prirucnik oko ovog programiranja bih ti preporucio da nabavis ovu knjigu:
http://www.infoelektronika.net/knjiga/n=pic-c

----

U vezi Mplab-X, postoji gomila upustva oko toga na YouTube, evo prvih par koje sam nasao:
http://www.youtube.com/watch?v=iZuucxaAVLg
http://www.youtube.com/watch?v=Jorqs469QoE

----

Za kraj evo i jedan primer za "blinkanje" LED koji koristi tajmer za generisanje pauze izmedju ON / OFF stanja.
Ja se izvinjavam sto primer nije jos prostiji nego je sa tajmerima, probao sam bez njega i nesto me je zekilo pa sam napravio ovakvu verziju.
Proverio kod mene i radi. LED se pali/gasi na odprilike svakih 0.5 sekundi.
LED je prikljucena na nozicu 14 preko otpornika od 390ohm ka masi, isto kao na shemi na sledecem linku.
Na shemi se vidi i kako je realizovano napajanje od 3.3V, gde se prikljucuje programator, MCLR (reset) deo, decoupling kondenzatori za dsPIC, ostalo sa sheme je nebitno.
http://yu3ma.net/wp/wp-content...U3MA-Digital-ClassD-AMP-r3.pdf

Sve sto ti nije jasno slobodno pitaj ...

Code:

//Blinky LED primer za dsPIC33EPxxxMC502 pomocu tajmera

#include <xc.h> //glavni include

//Konfiguracija
#pragma config FNOSC = FRCPLL //RC oscilator sa PLL (FRCPLL)
#pragma config PWMLOCK = OFF //Iskljuci PWMLOCK!!!
#pragma config FWDTEN = OFF // Iskljuci WDT
#pragma config JTAGEN = OFF // Iskljuci JTAG (da bi radio RB5)
#pragma config ICS = PGD3 // Prebaci se na treci port za debugiranje (programiranje sam skonta)

//Prototip funckije za interapt
void __attribute__((__interrupt__, __auto_psv__)) _T2Interrupt(void);

//Funckija koja obraduje interapt/prekid za Tajmer2
void __attribute__((__interrupt__, __auto_psv__)) _T2Interrupt(void) {

    //Ocisti Timer 2 interrupt flag
    _T2IF = 0;

    //Togluj tj invertuj stanje (ON/OFF) za RB5
    _LATB5 = 1 - _LATB5;

}

//glavna startna funkcija
int main(void)
{
   
    //Za mskimalnu brzinu procesora je potrebno ovo uraditi
    _PLLDIV = 256;
    _PLLPOST = 1;
    _PLLPRE = 2;

    //Sacekaj dok se oscilator ne stabilise (zakljuca PLL)
    while(_LOCK == 0);
    
    //Definicija izlaznog porta
    //Za primer koristimo samo RB5 - nozica broj 14
    //Na tu nozicu je preko otpornika od 390ohm vezana LED ka masi
    TRISBbits.TRISB5 = 0; //0 znaci da je izlaz

    //postavimo pocetno stanje za RB5 da bude logicka nula (ugasen LED)
    _LATB5 = 0;

    /* -------------- TAJMER2  -------------------------- */
    T2CON = 0;            // Clear Timer 2 configuration
    T2CONbits.TCKPS = 3;  // Set timer 2 prescaler (0=1:1, 1=1:8, 2=1:64, 3=1:256)

    PR2 = 58594;          // Set Timer 2 period (max value is 65535)

    _T2IP = 3;            // Set Timer 2 interrupt priority
    _T2IF = 0;            // Clear Timer 2 interrupt flag
    _T2IE = 1;            // Enable Timer 2 interrupt
    T2CONbits.TON = 1;    // Turn on Timer 2

    //Beskonacna petlja
    while(1)
    {
        //Ovde se program vrti i ne radi nista
        //Tajmer 2 ce praviti interapt/prekid koji ce na odredjeni vremenski
        //period (definisan iznad) da pali/gasi RB5 tj nasu prikljucenu LED
    }
}

[ Propalitet @ 27.09.2013. 18:29 ] @
Prvo da se izvinim zbog kašnjenja odgovora, šta da se radi, obaveze su obaveze.

@ mikikg
Svaka ti čast!!! Odvojiti toliko vremena za objašnjavanje nekom potpunom strancu u današnje vrijeme je prava rijetkost! Na tome ti se svesrdno zahvaljujem.

back on topic

Kao što rekoh, sve (skoro) bitnije karakteristike navedenog MCU-a sam manje više upoznao, ali u ovoj fazi njihova upotrebna vrijednost je pod velikim znakom pitanja-jednostavno ne znam dovoljno da bih iskoristio i promill njegovih mogućnosti. Međutim, to što nisam u stanju iskoristiti konkretne mogućnosti MCU-a ne znači da ne znam o čemu se radi (opet, zahvaljujem ti se miki na temeljitom pristupu objašnjavanju, isgurno nije na odmet imati na jednom mjestu obuhvaćene sve bitnije karateristike procesora). Što se tiče poznavanja programskog jezika C, ono je u mom slučaju jako malo. Znam tek toliko koliko sam učio na fakultetu (malo, obzirom da sam po struci elektroenergetičar), no ipak sam do neke mjere ajmo reći upoznat ako ni sa čim drugim, a ono sa sintaksom. Kompjler imam već instaliran tako da znam da IDE i on ne idu u paketu. Kreiranje projekta i snalaženje u navedenom IDE mi takođe nije problem. Ono što jeste su osnovne postavke MCU-a tj. definisanje ulazno/izlaznih pinova, prebacivanje digitalni/analogni, definisanje upotrebe pojedinih pinova (koliko sam shvatio, ovaj MCU ima mogućnost dodjeljivanja različitih namjena određenin pinovima), podešavanja osilatora koje mi se zbog ovog veselog PLL-a činilo kao pravi bauk, i tome slične stvari. Međutim, sve navedeno će mi vremenom predstavljati sve manji problem između istalog i zbog primjera koji je dao miki (priznajem, malo je konfuzno zbog upotrebe interupt rutina i tajmera, ali sve ću to detaljno analizirati i u dokumenatciji potražiti šta koja funkcija tačno radi). Znam takođe da za digitlanu obradu signala treba žestoka matematika, ali kao što sam naveo, daleko sam ja od toga. Inače, konkretan MCU sam i izabrao, između ostalog, zbog nazovimo fokusiranog polja primjene-motor control aplikacije, tako da ću tokom učenja njima vjerovatno najviše i težiti. Kad je riječ o USB mogućnostima, važi isto gore napisano (no za svaki slučak u dolasku je 18F4550 i PIC32MX220F032B-I/SP, takođe SDIP i DIP kućišta ;) ). Inače, i dalje važi da je svaka pomoć i uputa vezana za literaturu i tutoriale, dobrodošla.

Pozdrav,
Nikola K.
[ bogdan.kecman @ 27.09.2013. 18:45 ] @
USB uzima mnogo resursa na svakom picu koji ima usb hw (uzima puno
klokova procesora, uzima ram, uzima rom ..) tako da ti je moj savet da
za pocetak ako ti negde treba prica sa racunarom koristis UART na picu a
sa druge strane stavis neki FT232RL ili slicnu plocicu (ima da se kupe
plocke za 2-3$ na bleju koje sa jedne strane imaju usb a sa druge strane
3V ili 5V uart koji bodes diirekt na pinove mcu-a), rad sa uartom ne
uzima skoro nista resursa, extremno je jednostavan i sa strane mcu-a i
sa strane racunara
[ Propalitet @ 27.09.2013. 19:09 ] @
^^

U redu, hvala na informaciji. Što se tiče samog ebay-a i sličnih sajtova za prodaju, otkako sam upoznao čari pay pala i kineske sposobnosti da prodaju ono za šta naši traže hrpu para, za realno smiješne novce, našim gulikožama ne dam više ni banke (osim za ono što moram i što mi je hitno)! Malo se čeka ali nema veze.

Pozdrav,
Nikola K.
[ bogdan.kecman @ 27.09.2013. 19:17 ] @
da ne bude greske na sta mislim:

http://www.ebay.com/itm/USB-To...main_0&hash=item4610c85efb
http://www.ebay.com/itm/USB-To...main_0&hash=item4855c7a330
http://www.ebay.com/itm/V1NF-U...main_0&hash=item4ac9679c07

ja vise volim ove sa cp2012 nego ove sa pl2303 cipom ali rade ok i jedni
i drugi
[ mikikg @ 27.09.2013. 21:01 ] @
Citat:
Kao vrlo fin i sazet prirucnik oko ovog programiranja bih ti preporucio da nabavis ovu knjigu:
http://www.infoelektronika.net/knjiga/n=pic-c


Hehe, ima jedna vrlo interesantna stvar sa ovom knjigom (ono sto pise u njoj je skroz OK i krajnje korisno), ja sam je uzeo (narucivao neke druge pa rekoh "ma daj i tu"), knjiga nema sadrzaj, nema, predgovor, nema index, ne pise ko je autor, ne pise ko je izdavac niti tiraz, nema ISBN, CD koji se dobija je sprzen na Verbatim CD-R ... Heh, odmah vam je jasno o cemu se radi :)
Ako moze da se "tako" odstampa onda moze i "ladno" da se skenira u PDF i sheruje :)

[Ovu poruku je menjao mikikg dana 28.09.2013. u 01:57 GMT+1]
[ Propalitet @ 08.10.2013. 19:57 ] @
Evo mene opet. Kako u proteklih 10 dana nisam bio u prilici da probam napisano i predloženo nisam daleko odmakao u svijetu mikrokontrolera. :) Međutim, danas se uhvatilo malo vremena i danas počinju problemi! Ma šta radio, kod koji je član mikikg dao u drugom postu ove teme jednostavno "neće" u mikrokontroler! Probao sam sve varijante (i da napajam mikro preko PICkit 3, tj. njegovog napajanja, i da ga napajam sa eksternog regulatora napona 3.3 V) i ništa. U većini pokušaja dobijam prikazano na slici koja je u prilogu. Inače, čitavši dokumentaciju navedenog mikrokontrolera, našao sam potrebne vrijednosti coupling i decoupling kondenzatora te sam ih kao takve vezao za svoj primjerak na slijedeći način: između AVdd i AVss keramika 1 uF, AVss na masu, Vcap pin tantal 10uF ka masi, između Vdd i Vss pina keramika 1 uF, Vss na masu, sa ICSP konektora MCLR pin na MCLR pin preko otpornika 6k8 i 470 ohm zajedno sa 10uF LOW ESR elektrolitom raskačenim za reset, linije PGD i PGC korektno spojene na PGED1 i PGEC1 pinove na kontroleru. Opet kažem, ma na koji način napajao ili sa stabilizatora napona 3,3 V (trafo 220/2X6 V 400 mA svaki izvod, grez 1,5 A, filtrat 1000 uF i 680 uF, regulator TS 1086) ili sa programatora, dobijam isto. Ako neko ima prijedčog šta uraditi bio bih mu izuzetno zahvalan jer priznajem da se čovjek malo demorališe kada ne uspije ni najosnovniji kod učitati u memoriju ovog mališana. :)
[ bogdan.kecman @ 08.10.2013. 21:16 ] @
koliko ti je dugacak kabl izmedju dspica i pickit3? pk3 i taj dspic
pricaju velikom brzinom izmedju konektora na pk3 i dspica ne sme da bude
vise od santimetar provodnika
[ mnn @ 09.10.2013. 07:30 ] @
Ja sam imao sličan problem sa novom serijom Pic18f45K50 i Pic32koji mogu jedino kroz MPLAB.Tražio sam pomoć i ovde na forumu,ali sam problem rešio slučajno.Kod mene je bio problem sa kablovima od USB do programatora .Da kažem kablovi su bili orginal koji su došli uz PK2 i PK3.Misleći da je do USB na kompu probao na još dva i isto .Jednom slučajno utaknem kabal od fotoaparata koji je bio na stolu i sve proradi.Sad se prema tome kablu odnosim sa posebnom pažnjom.Inače za ostale MC rade ovi orginalni bez problema.
[ ha_23 @ 09.10.2013. 09:43 ] @
Citat:
mikikg: Hehe, ima jedna vrlo interesantna stvar sa ovom knjigom (ono sto pise u njoj je skroz OK i krajnje korisno), ja sam je uzeo (narucivao neke druge pa rekoh "ma daj i tu"), knjiga nema sadrzaj, nema, predgovor, nema index, ne pise ko je autor, ne pise ko je izdavac niti tiraz, nema ISBN, CD koji se dobija je sprzen na Verbatim CD-R ... Heh, odmah vam je jasno o cemu se radi :)
Ako moze da se "tako" odstampa onda moze i "ladno" da se skenira u PDF i sheruje :)

[Ovu poruku je menjao mikikg dana 28.09.2013. u 01:57 GMT+1]


Ova je prevod na ova kniga PIC C : An Introduction to Programming the Microchip PIC in C by Nigel Gardner :) E sad dali su dobili pravo da prevode i da prodaje... :D

[ mikikg @ 09.10.2013. 14:02 ] @
@Propalitet Kako ona greska prikazuje, programator nije uspeo da prvo iscica stvarni model PIC-a koji je prikljucen, vraca 0x0 i to mu je problem jer on ocekuje nesto drugo.
To lici na problem sa vezama izmedju PIC-a i programatora.

Ja kada sam to pravio, ja sam postavio pin-header letvice na probnu PCB i to je odmah tu do PIC-a, na cca 1cm od prikljucenih nozica.
Probaj prvo to da resis. Tek posle toga "krece" programiranje i cela prica oko toga.


Citat:
Propalitet: ... vezao za svoj primjerak na slijedeći način:
- između AVdd i AVss keramika 1 uF = OK
- AVss na masu = OK
- Vcap pin tantal 10uF ka masi = MNOGO JE, stavi 1uF SMD keramiku (prevelik cap moze da osteti interni regulator kod ukljucenja)
- između Vdd i Vss pina keramika 1 uF = TU DODAJ PARALELNO 10uF TANTAL
- Vss na masu = OK
- sa ICSP konektora MCLR pin na MCLR pin preko otpornika 6k8 i 470 ohm zajedno sa 10uF LOW ESR elektrolitom raskačenim za reset = Sta radi tu 10uF? Odkud ti to, ne sme na reset pin nikakav kondenzator. Uradi kao prema mojoj shemi sto sam postavio (D1 i R1)
- linije PGD i PGC korektno spojene na PGED1 i PGEC1 pinove na kontroleru = Probaj PGED3 i PGEC3, moze to da pravi neke probleme.
[ lestrigonac @ 10.10.2013. 08:44 ] @
Pozdrav,

Kako ne sme C na reset? 10uF na Vcap nije puno, ja uvek tako stavljam i nista ne fali. Datasheet, strana 30. ;)

Pozdrav,
Lestrigonac
[ mikikg @ 10.10.2013. 10:49 ] @
Dobro to je vec drugacije, nije bas direktno na MCLR pin. :)

Mada mi se ni ovako ne svidja, taj MCLR pin mora jako brzo da se switcuje gore/dole kada se programira PIC, ponasanje slicno kao da je data linija i zamisli na to da okacis neki RC (redni) od 470ohm i 10uF, nasta ce da lici taj signal onda i jos se "pumpa" sa 3 naponska nivoa, 0-3-12V? Nece sigurno da bude cetvrtka iza toga!

Evo i u brosuri za PICKit 3 takodje kazu da se to NE RADI.



Jedino za Vcap sam pogresno rekao, moze 10uF mada sam ja stavio 0.1+1uF SMD keramiku (jedan preko drugog zaletovan cap) i to radi OK i to u prilicno nezgodnim uslovima, SMPS, brdo smetnji u okolini.



[Ovu poruku je menjao mikikg dana 10.10.2013. u 12:13 GMT+1]
[ bogdan.kecman @ 10.10.2013. 11:43 ] @
na mclr moze kond "samo" onda kada se ili
- ne koristi icsp uopste
- pri koristenju icsp-a otkacinje nekako taj kond (npr fora sa dil12
konektorom preko koga idu jumperi kada sprava radi normalno a skinu se
jumperi i zabode icsp kada se programira)

a i kada se stavlja stavlja se 10n, kakvih 10uF
[ lestrigonac @ 10.10.2013. 22:14 ] @
Ja uvek stavljam 100nF i 10k na reset i programiram sa picki2 i nisam imao nikakvih problema. Bar ne da sam ih bio svestan! :D

Pozdrav,
Lestrigonac
[ bogdan.kecman @ 10.10.2013. 22:18 ] @
nije problem na sporim picovima, na ovim brzim sa pk3 se vec javlja
problem, 10n + 10k je ok sa pk2, sa pk3 nisam siguran da moze da podnese
i 10n .. mnogo je brz :D

no mnogo veci problem od tog konda je duzina pgd i pgc pinova, preko 1cm
ako nisu lepo uradjeni vodovi pravi problem, kroz breadboard ne radi
uopste .. pk2 iste te cipove pece i kroz duzi kabl posto radi dosta
sporije ... pk3 su dosta zas* likovi iz icd tima jbg .. ne ume da uradi
fallback na manji takt na primer ako provali da ne moze da detektuje cip
i slicno .. pk3 je dobar alat no pk2 je bio i ostao revolucija
[ mikikg @ 11.10.2013. 02:23 ] @
Verujte mi samo diodica i otpornik za taj pic sa tim programatorom, nema potrebe da se komplikuje ;)
Ja sam stavljao shotky, mozda moze i obicna, mada je 3.3V, ne znam nisam probao.

[ Propalitet @ 06.11.2013. 13:27 ] @
Poštovane kolege forumaši,

prvo bih želio da se izvinim svima koji su se priključili temi na skoro mjesečnom nejavaljanju u temi. Nažalost, nisam imao vremena ni za šta drugo osim za rad (opet nažalost, ne u struci no na građevini kao fizički radnik, šta ćeš, situacija je takva).

Nazad na temu...
Kolega @lestrigonac je pogodio! Veze kondenzatora i otoprnika na MCLR pinu su zaista prokazane u tehničkoj dokumentaciji ovog ukontrolera i to na strani 30 navdene tehničke dokumentacije (http://ww1.microchip.com/downloads/en/DeviceDoc/70000657H.pdf). Takođe, u nekim od ranijih postova naveo sam da je kondenzator "raskačen" iz kola (pri programiranju i debagiranju, takođe upute uzete iz tehničke dokumentacije).
Bez obzira na sve ovo, i bez obzira što sam u posljednja tri dana probao (skoro) sve savjete date u ovoj temi, nikakve promjene, uspjeha ili dostignuća još uvijek nema! I dalje se javlja ista greška (fotografija data u prilogu pod nazivom "Greska adresa"). U odnosu na prethodne pokušaje, promijenilo se dosta toga. Umjesto matador ploče, čitavu "minimalnu predloženu konfiguraciju" (kako je zgodno ovi iz Mikročipa nazvaše) sam preselio na zasebnu pločicu, na kojoj su, po savjetu, vodovi PGD i PGC linija skraćeni na najmanju moguću mjeru! Tačnije, sam pin heder je tik uz navedene nogice ukontrolera. Fotografije pločice su date u prilogu (nazivi su "Plocica1", "Plocica2", "Plocica3"). Kako se na navedenim fotografijama može vidjeti, konfiguracija je slijedeća:
- otpornik 330R na MCLR pin. serijski sa njim orpornik 3k3 pa na Vdd, a sve zajedno preko prekidača vezano na ELNA kondenzator 1uF 50V
-između Vdd i Vss pinova (pinovi 13 i 8, respektivno), dva kondenzatora u paraleli keramika 1uF 16V i tantal 10uF 16V (takođe po prijedlogu čini mi se Mikija)
-Vcap pin (20) preko tantala 10uF 16V na masu (u dokumentaciji, navodi se LOW ESR od 4,7 uF pa naviše, preporučljivo 10Uf)
-Vss pin na masu
-AVss i AVdd pinovi (27 i 28, respektivno) raspregnuti sa 1uF 16V keramikom, AVss odvučen na masu, a AVdd na napajanje (takođe navod iz dokumentacije, strana 28 "PINOUT I/O DESCRIPTIONS (CONTINUED)")

Kako ne bi bilo neke zabune o šemi veza, u prilogu je data i sama šema vezivanja pojedinih pinova i komponenti ("sema dsPIC33"). Kao što rekoh, i pored maksimalno skraćenih veza za PGD i PGD pinove, i pored upotrebljenih po mom mišljenju adekvatnih vrijednosti komponenti, čudo ne radi! Ma šta probao, ma kako ga napajao (iz PICkit-a 3, naponi u power sekciji project properties-a korektno izabrani, te sam programator naveden kao izvor napajanja ili sa stabilisanog izvora 3,3V) dobijam isto. On jednostavno ne prepoznaje metu koju programira i to je kraj. Izrevoltiran svim što se dešava, prihvatih se i osciloskopa, reko' da vidim čija majka od jutros tri put' nije ustala! :) I snimih ja nešto... I snimljeno dajem u prilogu da pametniji od mene rastumače šta je šta kad već sam nemadoh neke koristi od uhvaćenih signala. Naime, snimani su redom pinovi MCLR, pinovi PGD i PGC prije i nakon poruke o neslaganju adresa ("Greska adresa"). Ako vam snimljeni signali mogu pomoći-dobro i jest, ako ne-nikom ništa. E sad, kako sam lutajući bespučjima interneta naletio na ovog nesrećnika http://www.microchip.com/forums/m741376.aspx koji je imao iste probleme kao i ja i koji ih je na kraju riješio zamjenom avog primjerka programatora, novim, pomislih, da nije to i slučaj sa mojim primjerkom? Dakle, da li je moguće da je sam programator defektan? Inače, nesrećnik je sa novim primjerkom uspješno programirao preko matador ploče. Ako kvar nije slučaj, da li je moguće da je glavni inženjer Mikorčipa napravio ovu prokletu spravu tako razmaženom i osjetljivom da može raditi samo u, za početnika u kućnom okruženju, skoro pa nemogućim uslovima?! Znam ja savršeno dobro šta i najmanja kapacitivnost vodova, komponenti, puta signala može napraviti pri frekvenciji komunikacije od nekoliko desetina megaherca ali opet... Ako i to nije slučaj, da li je moguće da i sam primjerak mikrokontrolera nije ispravan? Mislim, znam da je naravno sve moguće i ništa nije sto posto sigurno, ali... Unaprijed se izvinjavam na odveć dugom postu ali nakon toliko utrošenog vremena i truda nije mi preostalo ništa drugo da se, ako ništa, nekome požalim što nakon svega urađenog i dalje nema rezultata. :)

Pozdrav,
Nikola K.


[ bogdan.kecman @ 06.11.2013. 13:43 ] @
ovako kako si napravio bi moralo da radi .. .ja imam samo jos jedan savet ..
instaliraj mplabx na windozu
startuj MPLAB IPE
idi u advanced mode (settings/advanced mode)
na settings tabu imas "pickit3 programming speed", prebaci na najsporije i probaj opet
[ mikikg @ 06.11.2013. 13:49 ] @
Ovo sa brzinom ima veze, probaj to …

Nego jel si vezao ti napajanje za dsPIC? Odakle se on napaja, sa plocice (imas tu neki regulator?) ili hoces da ga napajas sa programatora?
Ako hoces da ga napaja programator onda ima tamo negde opcija da se ukljuci napajanje, po default je iskljuceno.
Meni se to vise puta desilo kada kreiram nov projekat, zaboravim da ukljucim i onda bijem glavu sto dobijam ISTU tu poruku kao ti!
[ Propalitet @ 06.11.2013. 17:21 ] @
@bogdan.kecman

Kako sam pri prvoj instalaciji na desktopu dobio ikonice MPLAB IDE i MPLAB IPE (a davno bijaše kad ga instalirah), ikonica MPLAB IPE je u nekoj od histerija brisanja nepotrebnih stvari sa desktopa platila glavom. Danas, pokušavajući u instalacionom folderu da nađem .exe fajl sa IPE, nađoh jar.exe aplikaciju koja zaista pokrene IPE ali se ništa osim beskonačnog vrćenja progress bara ne dešava! Ničemu ne mogu pristupiti! Naravno, u međuvremenu sam izgubio originalnu instalaciju IDE (MPLAB IDE v1.51 i njoj pripadajuća IPE v1.51 beta), skinuh sa Mikročip sajta najnoviju verziju IDE-a (v1.95). Uspio sam naći IPE, pokenuo ga ali u setings>advanced dijalog prozoru klizač preko kojeg bih trebao podesiti brzini je grezed out, tj. ne mogu mu uopšte prići. Probam nakon toga da ponovo pokušam upisati program iz najnovije verzije okruženja i dobijem rezultat kao u prilogu. Sad čak i ne izbaciuje upozorenje da se adrese ne poklapaju niti išta proba uraditi nego samo da ovo!

@mikikg

Sve sam ja to uradio. I naveo izvor napajanja, i odabrao napon i sve ali neće pa neće! Drugi izvor napajanja mi je stabilisano napajanje trafo primar 220V>sekundar 2x6V (po 400 mA)>grec 1,5A>regulator TS1086 (3,3V, 1,5A) sve filtrirano sa 1000uF 16V i sa 680uF 16V. I njega kad probam neće. A napajanje radi, daje ravan izlaz, bez nekog pretjeranog šuma.

@mnn

Probao i drugi kabal-ista stvar.

Ljudi, beskrajno vam hvala što se interesujete za moj problem. Nažalost, sve više mislim da se sve nešto urotilo protiv ove skalamerije i da j..... Marfi žestoko upravlja razvojem događaja! Ne znam šta više probati...

Pozdrav,
Nikola K.

Ipak dolazi do poruke kako mu se adrese ne poklapaju, međutim nastavlja po starom...



[Ovu poruku je menjao Propalitet dana 06.11.2013. u 18:34 GMT+1]
[ bogdan.kecman @ 06.11.2013. 18:14 ] @
Citat:
Propalitet: @bogdan.kecman
ikonica MPLAB IPE je u nekoj od histerija brisanja nepotrebnih stvari sa desktopa platila glavom.


Code:

Shortcut target: "C:\Program Files (x86)\Microchip\MPLABX\sys\java\jre1.7.0_17\bin\javaw.exe"  -jar "C:\Program Files (x86)\Microchip\MPLABX/mplab_ide/bin/ipe.jar"
Start in: "C:\Program Files (x86)\Microchip\MPLABX\sys\java\jre1.7.0_17\bin"


Citat:
Propalitet:
klizač preko kojeg bih trebao podesiti brzini je grezed out, tj. ne mogu mu uopšte prići. Probam nakon toga da ponovo pokušam upisati program iz najnovije verzije okruženja i dobijem rezultat kao u prilogu. Sad čak i ne izbaciuje upozorenje da se adrese ne poklapaju niti išta proba uraditi nego samo da ovo!


ai fatamorgana :(

evo ja startovah moj IPE (v1.9.0) isto mi ne da da smanjim brzinu kada odaberem dsPIC33EP128MC502 :(


nego potvrdi samo sledece, da li ti dobijes "Target Device ID (0x0) does not match expected Device ID (0x1e450000)." ili dobijes "Target Device ID (nesto razlicito od 0x0) does not match expected Device ID (0x1e450000)." kao gresku? posto ako ti kaze da je target device id 0x0 to znaci da ne vidi pgd uopste, to je ili otkacen pgd ili crko pic ili ima neki problem sa pgd pa na njemu nema date... ali u 99.9999% slucajeva ili je crko pic, nije zakacen pic, nije zakaceno napajanje na pic.... sa druge strane ako dobijes target device ID da je neki broj koji nije 0x0 i nije 0x1e450000 to znaci da komunikacija nije kako valja, tu je sad problem kompleksan, ja sam ga imao mnogo puta i uvek sam ga resio na jedan od dva nacina
1. skinuo pic sa protoborda, otkacio sve zice, naravio pravi pcb i zakacio icsp skoro na sam cip
2. smanjio brzinu komunikacije (najlakse tako sto predjem na pickit2, ovo za IPA da radi sporije nikad nisam probao :D )

imao sam taj problem sa nekoliko pic32 mcu-a i sa nekoliko pic18f nove generacije .. nisam nikad imao sa dspic33 ali njih sam extremno retko koristio tako da tu nisam bas iskusan. promenio sam pic vise puta i nikad nije bilo do njega (kada dobijes pogresan id) i promenio sam pickit3 2 puta i nije bilo ni do njega nikad

inace u jurcanju resenja video sam na mchip forumu neki budz koji navodno pomaze a to je da se na pgd i pgc doda RC clan, ne secam se tacnih vrednosti (nema mi ni smisla da to radi al ljudi kazu da im proradilo) ali probacu da nadjem opet pa cu proslediti link
[ Propalitet @ 06.11.2013. 18:26 ] @
Dobijam upravo "Target Device ID (0x0) does not match expected Device ID (0x1e450000)"! Sve vodove sam provjeravao više puta, sve je korektno spojeno, nigdje hladnog lema. Sve u redu, a opet nije... To za RC član ni meni nije jasno. Čak sam u tehničkoj dokumentaciji našao da na putu signala (PGD i PGC linije) ne smije stajati ništa! Ali ako kažu da pomaže, ko zna...

Pozdrav,
Nikola K.
[ bogdan.kecman @ 06.11.2013. 19:01 ] @
vidi to sa rc clanom je bas bilo kada vidi pogresan id, meni se nikad
nije desilo da vidi nulu i sa dugackim kablovima ako je pic u struji i
sve povezano ok .. imas li neki pic druge generacije da probas? neki 16f
na primer?
[ mikikg @ 06.11.2013. 19:18 ] @
Stvarno cudno sve … tu ima 5 linija koje treba da se spoje, ne verujem da si to pomesao …
Meni su cak polucrkavali ti dsPIC, spalio nekoliko outputa jer mi pala klema od 12V napajanja ali sam mogao i dalje da ih citam/programiram.

Ne znam sta vise da gledam, jedino ovo mi ostalo sporno, bez ljutnje oko pitanja ali stvarno ne znam sta vise tu zeki …
Takodje na oscilogramu za MCLR pin nisam video da si "upecao" 12V nivo tako da imam jos vise sumlje da ovo oznaceno na slici nije spojeno nego ti vidis nivoe koji se menjaju zbog napajanja (pa preko nekog internog pull-up), a i vidi se malo zakrivljenje padajuce ivice, opet simptom koji moze da bude zato sto fizicki nisu vezani ta dva oznacena pina, da su spojeni to bi moralo da ga "sece" istom brzinom kao i rastuca ivica.



[Ovu poruku je menjao mikikg dana 06.11.2013. u 20:57 GMT+1]
[ Propalitet @ 06.11.2013. 20:27 ] @
@bogdan.kecman

Imam još PIC32MX220F032B-I/SP sa približno istim rasporedom pinova pa ću ga probati na ovoj postavci i podnožju koje već imam. Jedini problem tu bi mi mogao praviti sam program koji nemam (na inetrenetu ne znam da lima blink led baš za ovaj, a naveo sam da sam potpuni početnik u programiranju tako da...)

@mikikg

Ta dva pina su mi bila spojena direktno kada nisam imao RC član na MCLR pinu koji sada imam spojen preko prekidača. Ni tada, na žalost, nije radilo. Sada je postavka takva da je 330R vezan na PIN 1 ukontrolera (MCLR), 3k3 vezan na Vdd, srednja tačka spoja na prekidač, sa prekidača na k ondenzator pa na masu. Ni ovako ne radi. Nema problema oko pitanja, šta god samo da mi ovo proradi! :) Oko oscilograma za MCLR pin, vjerujem da si slučajno pomiješao naponske nivoe, jer je podjela polja na 1V, a ima ih malo preko 3, znači negdje 3,2 V.

Pozdrav,
Nikola K.
[ mikikg @ 06.11.2013. 21:21 ] @
Evo kako izgleda moja budzevina (kao sa one moje sheme sa pocetka teme).
Jedino sam malo "jaci" decoupling uradio i koristio sam diodicu + otpornik oko MCLR bez ikakvih kondenzatora.

Sa istom tom plocicom sam programirao spomenuti dsPIC i jos neke PIC32 u tom 28pinksom kucistu.
Radi mi i sa napajanjem iz programatora i sa externim 3v3 napajanjem cak i kad su oba ukljucena (mrzi me da prebacujem) :)

A sto je najludje, MPLAB X mi radi pod virtualnom mashinom. Eto tu bi mozda moglo da se ocekuju neki problemi ali eto radi. Jedino sam onaj slajder za brzinu programiranja stavio na pola.

[ bogdan.kecman @ 07.11.2013. 00:05 ] @
Citat:
Propalitet:
Imam još PIC32MX220F032B-I/SP sa približno istim rasporedom pinova pa ću ga probati na ovoj postavci i podnožju koje već imam. Jedini problem tu bi mi mogao praviti sam program koji nemam (na inetrenetu ne znam da lima blink led baš za ovaj, a naveo sam da sam potpuni početnik u programiranju tako da...)


on je isto nezgodan za programiranje (brz), reko ako imas neki stari 16F ili tako nesto pa da probas... ako se dobro secam ti si osciloskopom na PGD liniji video neki signal, dakle ne bi smeo da procita 0x00 to mi vise lici na neispravan pickit3 nego na gresku kod tvog setap-a .. kao sto rekoh, imao sam ja nekoliko puta gresku ali uvek procita "nesto" samo procita pogresnu vrednost, tebi cita 0x00 sto je "ne vidim nista na pgd pinu" tako da ako ti osciloskopom vidis da pgd ide gore dole ja bi rekao da je neki problem u samom pk3 ..

ne vidim ti lokaciju, gde se nalazis? (ili je ovo "pale" lokacija, ako jeste onda nista, daleko)
[ Propalitet @ 07.11.2013. 12:10 ] @
Ja ću smaći s' uma sa ovim!!!

Probao PIC32MX220F032B (na ovo podnožje, ista postavka, s'tim što je kod PIC32MX malo promijenjen raspored pinova za PGD i PGC linije). NEĆE! Sad imam problem oko upisivanja samog firmwera potrebnog za ovu seriju mikrokontrolera. Skine on sam AP ali kada krene da ga "ubacije" u PICkit, melje, melje, melje i na kraju izbaci poruku tipa "could not connect to hardware tool" ili "programming failed". Iste poruke dobijam pokušao preko MPLAB IDE ili MPLAB IPE-nema razlike. Vratim dsPIC33 u podnožje, neće da povuče ni njegov firmware. Iz ovog svega zaključujem da bi sam programator mogao biti problem. Nažalost, nemam gdje probati ukontrolere pa da barem njih eliminišem kao potencijalni problem tako da... Bogdane, upravo tako. Pale, Republika Srpska je mjesto prebivališta, odveć daleko od Beograda. U svakom slučaju hvala na ponudi. Miki, ne znam šta da ti kažem! Upala ti kašika u med čovječe! Tebi radi sa dva različita napajanja zajedno, a meni neće ni sa jednim pojedinačno ni zajedno! :D Izgleda da je baš "kako se zalomi". :) Ljudi, hvala vam još jednom na pomoći i odvojenom vremenu. Ne bih vas više zamarao sa ovim jer je ovo izgelda krug bez početka i kraja. Kad ne mogu da izolujem/eliminišem barem dio problema/komponenti, ne vrijedi pokušavati dalje. Ako nađem način da bar provjerim mikrokontrolere, javiću se.

Pozdrav,
Nikola K.
[ bogdan.kecman @ 07.11.2013. 12:11 ] @
definitivno problem sa pk-om ... probaj klasicne fore
- zameni usb kabl, nadji neki deblji kraci
- promeni usb port
- promeni komp