USB => RS232 => Programator

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
TheMaster
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 233
Joined: 27-12-2008, 17:09
Location: Istra!

USB => RS232 => Programator

Post by TheMaster »

Pozdrav, zanima me dali ce raditi programator koji se inače spaja na serijski port računala (RS232) ako ga priključim na USB port preko određenog USB => RS232 adaptera ?

Shema :D

USB => RS232 => Programator
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: USB => RS232 => Programator

Post by WhiteHead »

Kod mene nije htio...
Ako kaniš pobijediti, ne smiješ izgubiti
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: USB => RS232 => Programator

Post by pedja089 »

Iako ti proradi, programiranje ce ti trajati nekoliko sati. Evo primer 24c01, treba 20min da iscita.
Napravi pk2 clone.
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: USB => RS232 => Programator

Post by jazz »

Zavisi o čemu se radi. Npr. ja nemam nikakvih problema prilikom programiranja MSP430 ili DS89C4x0 preko USB/RS232 adaptera. Dapače, ide brže nego preko standardnog rs232 pc porta.

Većinom do problema dolazi jer adapter ne podržava sve moguće brzine standardnog rs232 pc porta. I onda komunikacija uopće nije moguća, ili ide manjom brzinom. Otvorit ću uskoro temu o pl2303hx chipu koji nema tih problema.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: USB => RS232 => Programator

Post by pedja089 »

Pri programiranju Pica se ne koristi RS232 komunikacija. Nego su pinovi iskorisceni za generisanje data i clock linije.
Tako da za 1 bit sa usb-a treba biti poslat ceo paket od 64 bita, sto mnogo usporava. A i veliki je problem, dali izlazni drajver ima dovoljno snage da pogura pic. Obicno struja na izlazu takvih kablova je prilicno mala.
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: USB => RS232 => Programator

Post by jazz »

Nisam ulazio u detalje, ali mi je poznato da se pri programiranju PIC-a preko RS232 sučelja, port ne koristi za standardnu komunikaciju preko RXD/TXD linija, nego one glume "na divlje" oblik signala potreban za PIC. Fora je u tome što se za razliku od DTR/RTS linija koje se mogu stavljati u 0/1 stanje po potrebi, RXD/TXD ne mogu, nego se preko porta mora slati standardna informacija (slika PIC signala) određenim bit rate-om. Upravo taj bit rate (može se vidjeti nekim serial port spy programom) ne mora biti podržan od USB/RS232 kabla, i stvar pada u vodu. Nije problem u brzini/duljini informacije koja ide USB-om, nego bit rate.

RS232 pinovi daju par mA (+12V/-12V), bilo da se radi o standardnom portu na kanti, ili USB/RS232 adapteru, nema veće razlike. Npr. 1-Wire adapteru (http://www.maxim-ic.com/datasheet/index.mvp/id/2983" onclick="window.open(this.href);return false;) koji sam koristio za programiranje DS1075 ili DS2431, bilo je dovoljno za napajanje struja sa DTR pina USB/RS232 adaptera.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: USB => RS232 => Programator

Post by pedja089 »

RX se naravno ne moze postavi, a ni procitati, kao takav.
Ali ne znam koliko si ulazio u rad samog seriskog porta, TXd pin je moguce kontrolisati.
I ne radi se slanje, nego se vrsi upisivanje vrednosti u izlazni registar, a postavljanjem njegovi registara se zaustavi shiftofvanje izlaznog registra. Tako da samim upisivanje 0 ili 255 u izlazni registar imamo i tu vrednost na portu.
A ta fora ne prolazi kod kablova.
Ako hoces okacicu ti projekat u vb6 kojim se upravlja stanjem pina 3 serikog porta.
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: USB => RS232 => Programator

Post by jazz »

RXD je ulazna linija porta i čita se bez problema. Dali će se izlaz na TXD liniji nazvati "slanjem" ili "upisivanjem vrijednosti u izlazni registar" potpuno je nebitno. Ako se radi o vrijednosti 0 ili 255, ona se definiranim bit rate-om preko TXD pina iz-shifta prema odredištu (zajedno sa start/stop/parity bitovima). Bilo da se radi o standardnom portu na kanti ili USB/RS232 adapteru stvari funkcioniraju na isti način.

Za svu komunikaciju (ne samo flash-anje) između uC/PC koristim serijski port (točnije USB/RS232 adapter) tako da mi je poznato kako stvari funcioniraju na obe strane.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: USB => RS232 => Programator

Post by pedja089 »

Ako se stalno shifta, kako mozes podesiti de txd bude stalno nula?
A ja jos nisam uspo procitati stanje RX pina na racunaru. Mogu da procitam bajt kada se posalje. Ali bas trenutno stanje dali je 1 ili 0, nisam uspeo.
Pa ako ti nije problem opisi kako da dodjem do tog podatka. Pri programiranju piceva se ne koristi uart komunikacija. Vec postoji data pin, i clock. Ni data ni clock nisu na txd. Bas zbog tezeg kontrolisanja. Kod programatora se nalazi Vpp na txd. Jer pri programiranju njegov tajming nije toliko kritican, bitno je samo da stoji ukljucen odredjeno vreme.
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: USB => RS232 => Programator

Post by jazz »

Je, u pravu si. 8)

Kod PIC RS232 programera TXD se koristi za kontrolne signale (postavi se podatak i onda se za-shifta, te break-a, zavisno dali je potrebno "zalediti" 0/1 na pinu), a DTR/RTS za data/clock linije. Baud rate je nebitan, jer nema klasične serijske komunikacije. Napravio sam i malo testiranje u vezi brzine DTR/RTS linija, iz čega je vidljivo da je USB/RS232 adapter značajno sporiji, i zbog toga programiranje (ako je uopće moguće) traje znatno dulje.
p.gif
p.gif (2.64 KiB) Viewed 4770 times
BTW, problem postoji samo kod programatora koji koriste serijski port "na divlje". Kod loadera, gdje se koristi klasična serijska komunikacija, upotreba USB/RS232 adaptera ne predstavlja problem.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: USB => RS232 => Programator

Post by pedja089 »

Pa to sam ti pokusavao reci...
Loaderi su ok stvar, mada ih ne koristim. Sa njima nije problem ni sa kablom. Ali sa klasicnim prog je problem.
Ako sam dobro video microchip ima seriske, usb i ethenet loadere.
Video sam i neki usb od mikroelektronike, ali nisam uspeo naterati da radi...
User avatar
mario KT
Penjem se :)
Penjem se :)
Posts: 88
Joined: 11-11-2010, 21:04
Location: Kutina, Hrvatska

Re: USB => RS232 => Programator

Post by mario KT »

Evo nakon nekoliko pokusaja programiranja PIC-a preko USB RS-232 konvertora, mogu svima koji se pitaju dali je moguce, odgovoriti da sam uspio uspjesno isprogramirati PIC16f84A s blesavim pic programatorom i USB-RS232 konvertorom na bazi PL2303. Kao sto je @Pedja rekao potrajalo je nekih cca 30 minuta, ali je programiranje uspjelo. Radio sam s laptop-om bez hardverskog RS232 porta i win XP, te IcProg1.05E. Pokusavao sam s dosta razlicitih konvertera, te s nijednim nisam uspjesno uspio isprogramirati, osim s navedenim. Naravno, preporuka je svima da ako je moguce koriste hardverski port, a samo u nuzdi (koju sam ja imao) koriste ovakvo rijesenje.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: USB => RS232 => Programator

Post by pedja089 »

Zar nije puno jednostavnije napraviti usb programator :?:
froid
Penjem se :)
Penjem se :)
Posts: 91
Joined: 17-03-2007, 20:26
Location: Niš

Re: USB => RS232 => Programator

Post by froid »

Ima tu dosta stvari koje komplikuju život, i sam sam "patio" zbog nekih.
Prvo, Windows nije real-time OS. Drugo, ako i misliš da si uspeo da direktno pristupiš nekom od portova, grdno se varaš. Imao sam neke svoje programe koji su slali na COM a onda na USB-COM nisu i ispostavilo se da COM koristi FIFO dužine 256 bajta a za USB je bufer mnogo veći. Onda ti odmah javi da je slanje gotovo a ono traje li traje i program glavi (naročito ako čekaš ACK sa druge strane).
Sa PIC-ovima sam nov, od prošle godine. Odmah sam uzeo od MikroE kompajlere i onaj USB programator i makar ovaj programator jako dobro radi. Ovo sa USB/RS232 adapterom zove se "silovanje" ili "krpljenje" i odvlači ti pažnju od pravog programa koji radiš. Šta ćeš, takva nam je struka, bolje da daš neku paru za pravu opremu, ispadne jeftinije...
Jaka stvar da LED blinka. Kada je nateraš da peva onda si car za elektroniku...
Post Reply