COM -> USB konverterare
COM -> USB konverterare
Hej!
Har bestämt mig för att bygga en PIC-programmerare.
Det får bil denna fina sak
Men saken är den att jag har ingen COM-port. Kommer en COM -> USB
konverterare att fungera med avseende på programvara (ICPROG) osv?
MVH JOnas
Har bestämt mig för att bygga en PIC-programmerare.
Det får bil denna fina sak
Men saken är den att jag har ingen COM-port. Kommer en COM -> USB
konverterare att fungera med avseende på programvara (ICPROG) osv?
MVH JOnas
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
Mig veteligen borde det gå hur bra som helst, jag har själv byggt en JDM men de varnar mot att ha "svaga" serieporta, detta kan vara ett problem med USB-porte men det kan du bara testa dig fram till, jag har inte hunnit testa den biten, jag har nämlig en "riktig" port.
Men själva mjukvaran fungerar bra.
Men själva mjukvaran fungerar bra.
Jag följde din länk till "denna fina sak", men hittade bara en JDM konstruktion... 
Hur som helst...
Med allra största säkerhet kommer det *INTE* att fungera med en RS232 <-> USB konverter !!
Detta är ett allmänt problem med alla "JDM", "no parts", "low cost" , whatever programmerare som saknar lokal processorkraft.
Dessa programmerare bygger på att programmvaran i PC'n direkt hanterar pinnarena på PIC'en genom att styra signalerna i RS232 interfacet på ett sätt som ej följer normal standard (genom direkt hårdvaru access). PC'n har ingen som helst kontroll över pinnarna i RS232 kontakten på USB konvertern (annat än genom normala API'er för att sända och ta emot "normal" seriedata).
Även på "riktiga" RS232 postar fungerar det inte alltid, det beror på hårdvarukonstruktionen. T.ex laptops brukar strula i detta avseende. Det betyder inte att det är något "fel" på RS232 porten i sig, utan att man försöker använda den till något den aldrig var konstruerad för.
Med det sagt, om du har en massa tid över, och din budget är riktigt ansträngd, så visst, kör på !
(Med en programmerade som har lokal processor, där PC kommunikationen sker med "ren" seriekommunikation, går det däremot hur bra som helst med en USB <-> RS232 konverter...)

Hur som helst...
Med allra största säkerhet kommer det *INTE* att fungera med en RS232 <-> USB konverter !!
Detta är ett allmänt problem med alla "JDM", "no parts", "low cost" , whatever programmerare som saknar lokal processorkraft.
Dessa programmerare bygger på att programmvaran i PC'n direkt hanterar pinnarena på PIC'en genom att styra signalerna i RS232 interfacet på ett sätt som ej följer normal standard (genom direkt hårdvaru access). PC'n har ingen som helst kontroll över pinnarna i RS232 kontakten på USB konvertern (annat än genom normala API'er för att sända och ta emot "normal" seriedata).
Även på "riktiga" RS232 postar fungerar det inte alltid, det beror på hårdvarukonstruktionen. T.ex laptops brukar strula i detta avseende. Det betyder inte att det är något "fel" på RS232 porten i sig, utan att man försöker använda den till något den aldrig var konstruerad för.
Med det sagt, om du har en massa tid över, och din budget är riktigt ansträngd, så visst, kör på !
(Med en programmerade som har lokal processor, där PC kommunikationen sker med "ren" seriekommunikation, går det däremot hur bra som helst med en USB <-> RS232 konverter...)
Nu har du faktisk fel sodjan!
Det som kan vara ett problem med USB<->SR232 mojängerna i samband med JDM är inte att det inte fungerar för att pinnerna inte kan styras, det har med spänningsnivåerna att göra.
"på ett sätt som ej följer normal standard (genom direkt hårdvaru access)" är rakt av tvärfel! Serieporten har, i motsats till paralellporten, ett utmärkt mjukvarustöd och alla pinner kan styras utan speciella drivrar osv, den kontroll är inbyggd i Windows API och samma program styr alltså lika bra från Win98 till WinXP Pro, utan speciella drivrar osv, jag vet för jag programmerar Borland C Builder 6 (mycket!) och använder serieporten en hel del, utan drivrutiner osv, enbart med Windows API.
Jag kör JDM på min vanliga serieport då spänningsnivåerna är lämpliga och det fungerar bra men jag är tveksam till att USB-grejen skulle fungera (har ej testat), när jag mätar "tomgångsspänningen" på min "normala" serieport ligger den på ca: ±11,5V och på USB-grejen ligger den på ca: ±8V och detta kan vara i underkanten.
Det som kan vara ett problem med USB<->SR232 mojängerna i samband med JDM är inte att det inte fungerar för att pinnerna inte kan styras, det har med spänningsnivåerna att göra.
"på ett sätt som ej följer normal standard (genom direkt hårdvaru access)" är rakt av tvärfel! Serieporten har, i motsats till paralellporten, ett utmärkt mjukvarustöd och alla pinner kan styras utan speciella drivrar osv, den kontroll är inbyggd i Windows API och samma program styr alltså lika bra från Win98 till WinXP Pro, utan speciella drivrar osv, jag vet för jag programmerar Borland C Builder 6 (mycket!) och använder serieporten en hel del, utan drivrutiner osv, enbart med Windows API.
Jag kör JDM på min vanliga serieport då spänningsnivåerna är lämpliga och det fungerar bra men jag är tveksam till att USB-grejen skulle fungera (har ej testat), när jag mätar "tomgångsspänningen" på min "normala" serieport ligger den på ca: ±11,5V och på USB-grejen ligger den på ca: ±8V och detta kan vara i underkanten.
OK. Got carried away... 
Spänningsnivåerna är ju även det som gör att dessa "programmerare" har problem med många nyare moderkort (och laptops), där man har "sneakat" lite i konstruktionen och inte har full +- 12-15 V swing.
"Timingen" skulle kanske även kunna vara ett problem, det är lite längre "väg" mellan (t.ex) IC-Prog och pinnarna på RS232 kontakten i USB konvertern.
Jag kanske har fel angående själva RS232 programmeringen, men jag har aldrig läst något eller sett någon säga att denna typ av programmerare skulle fungera på en USB -> RS232 konverterare. Tvärtom är det många som intygar att det *inte* fungerar.
> "och alla pinner kan styras utan speciella drivrar..."
Inkl pinne 3 (d.v.s "serie ut" signalen) ? Förrutom att skicka en "byte" på normalt sätt alltså ? DTR och de andra känner jag till, men jag visste inte att det fanns standard API'er för att "manuelt" sätta pinne 3 hög eller låg. Intressant...
Men, det är väll bara att testa, antar jag.
Det jag kan bidra med här är att åtminstånde *en* (riktig) programmerare fungerar utmärkt via C-O billiga USB konverter...

Spänningsnivåerna är ju även det som gör att dessa "programmerare" har problem med många nyare moderkort (och laptops), där man har "sneakat" lite i konstruktionen och inte har full +- 12-15 V swing.
"Timingen" skulle kanske även kunna vara ett problem, det är lite längre "väg" mellan (t.ex) IC-Prog och pinnarna på RS232 kontakten i USB konvertern.
Jag kanske har fel angående själva RS232 programmeringen, men jag har aldrig läst något eller sett någon säga att denna typ av programmerare skulle fungera på en USB -> RS232 konverterare. Tvärtom är det många som intygar att det *inte* fungerar.
> "och alla pinner kan styras utan speciella drivrar..."
Inkl pinne 3 (d.v.s "serie ut" signalen) ? Förrutom att skicka en "byte" på normalt sätt alltså ? DTR och de andra känner jag till, men jag visste inte att det fanns standard API'er för att "manuelt" sätta pinne 3 hög eller låg. Intressant...
Men, det är väll bara att testa, antar jag.

Det jag kan bidra med här är att åtminstånde *en* (riktig) programmerare fungerar utmärkt via C-O billiga USB konverter...

En "note" från en sida om "WinPic" (http://www.qsl.net/dl4yhf/winpic/) :
"A note on serial interfaces:
You need a computer with a "real" serial port. An USB->RS-232 adapter will not work (yet?). Because WinPic needs to set the TxD line to a permanently low or high level, it accesses the modem control register. Such a register does not exist in a USB<->RS232 port adapter, only in a standard UART"
Detta med TxD linjen verkar väll stämma med den konstruktion som har reffererats till här.
Och vidare på samma sida :
"I may, however, decide one day to support the "bit-banging" mode in the FTDI chip (FT232BM) . Some of the cheap ready-made USB<->RS232 adapters ("dongles") contain this chip, unfortunately mine does not
"
"A note on serial interfaces:
You need a computer with a "real" serial port. An USB->RS-232 adapter will not work (yet?). Because WinPic needs to set the TxD line to a permanently low or high level, it accesses the modem control register. Such a register does not exist in a USB<->RS232 port adapter, only in a standard UART"
Detta med TxD linjen verkar väll stämma med den konstruktion som har reffererats till här.
Och vidare på samma sida :
"I may, however, decide one day to support the "bit-banging" mode in the FTDI chip (FT232BM) . Some of the cheap ready-made USB<->RS232 adapters ("dongles") contain this chip, unfortunately mine does not

Hehe, ja Sodjan, en säljare måste ju kunna tala för sin produkt.
Det var roligt och lärorikt att följa diskussionen.
Jag tror jag gör som ni säger, bygger programmeraren och testar mig helt enkelt fram. Hur fel kan det gå?
Ska få kortet fräst. Må hända en smula "overkill", men fint blir det!
Får väl göra så att jag rapporterar hur det går med det hela, om det funkar eller inte.
Det var roligt och lärorikt att följa diskussionen.
Jag tror jag gör som ni säger, bygger programmeraren och testar mig helt enkelt fram. Hur fel kan det gå?

Ska få kortet fräst. Må hända en smula "overkill", men fint blir det!
Får väl göra så att jag rapporterar hur det går med det hela, om det funkar eller inte.
Jag beslutade mig för att testa och därmed veta i stället för att gissa.
Enligt programmet "IC-prog1.05D" har jag lyckad med att programmera en PIC16F873A (verifiering OK) via min USB<->RS232 port!
Jag hade ställd den till att använda Windows API.
Men det tog en FASLIG tid! Men det gick.
Jag har såklart testat på 2 olika USB<->RS232 mojänger, båda tog en jäkla tid på sig men det körde ändå.
Så sodjan: det fungerar!
Men jag skulle ALDRIG använda det själv, det tar på tok för lång tid (typ 20 min/krets).
Jag anser också att ett bra resultat är viktigt när man pysslar, det känns för jävligt att man duttar o pillar och inget fungerar, till slut ger man upp att få programmet att fungera....o sen visar det sig att det var själva programmeringsadaptern som inte fungerade. Lagom kul.
Enligt programmet "IC-prog1.05D" har jag lyckad med att programmera en PIC16F873A (verifiering OK) via min USB<->RS232 port!
Jag hade ställd den till att använda Windows API.
Men det tog en FASLIG tid! Men det gick.
Jag har såklart testat på 2 olika USB<->RS232 mojänger, båda tog en jäkla tid på sig men det körde ändå.
Så sodjan: det fungerar!
Men jag skulle ALDRIG använda det själv, det tar på tok för lång tid (typ 20 min/krets).
Jag anser också att ett bra resultat är viktigt när man pysslar, det känns för jävligt att man duttar o pillar och inget fungerar, till slut ger man upp att få programmet att fungera....o sen visar det sig att det var själva programmeringsadaptern som inte fungerade. Lagom kul.
Mig veteligen går det inte att sätta TxD hög/låg på de inbyggda heller, men jag kanske har missat något?
Eftersom drivrutinerna styr driverkretsen (16550(A)/16650) som innehåller en FIFO, så borde det ju innebära att kretsen själv genererar flankarna med rätt tidsintervall?
Och enligt databladet på 16650 så hittar jag inget register som erbjuder statiskt läge för TxD.
Praktiskt sett så går det nog inte att använda snik-programmeraren efter en konverter. Jag lyckades då inte.
Kanske var det som Icecap; det tog helt enkelt för lång tid, men jag minns att jag fick byta port.
Mvh
speakman
Eftersom drivrutinerna styr driverkretsen (16550(A)/16650) som innehåller en FIFO, så borde det ju innebära att kretsen själv genererar flankarna med rätt tidsintervall?
Och enligt databladet på 16650 så hittar jag inget register som erbjuder statiskt läge för TxD.
Praktiskt sett så går det nog inte att använda snik-programmeraren efter en konverter. Jag lyckades då inte.
Kanske var det som Icecap; det tog helt enkelt för lång tid, men jag minns att jag fick byta port.

Mvh
speakman
Precis! Man hinner ju klia sig ganska ordentligi i rö... innan den är klar men varför inte gå på en ICD?
ICD2 kan ju köra på USB och jag vet om att det finns "billig"versioner på nätet, med ICD kan man debugga (vissa kretsar), programmera osv, mycket vettigt och när man "lekar" o testar är det helt rätta grejen.
ICD2 kan ju köra på USB och jag vet om att det finns "billig"versioner på nätet, med ICD kan man debugga (vissa kretsar), programmera osv, mycket vettigt och när man "lekar" o testar är det helt rätta grejen.
He he...
Visst, om du kallar 20 min/krets för att "fungera", OK...
> "Jag hade ställd den till att använda Windows API."
Kan du göra det också med adaptern direktansluten ?
Blir det någon (större) skillnad ?
Notera att två kontroll-linjer används som PGC och
PGD och skall alltså ställas om flera gånger
för varje *bit* som skall över till PIC'en. Kan det vara
därför det blir långsamt när man kör via API'erna ?
Men, kanske som en sista nöd-lösning då...
Jag tror som helhet att det var bra för Lajo att få
detta testat.
Visst, om du kallar 20 min/krets för att "fungera", OK...

> "Jag hade ställd den till att använda Windows API."
Kan du göra det också med adaptern direktansluten ?
Blir det någon (större) skillnad ?
Notera att två kontroll-linjer används som PGC och
PGD och skall alltså ställas om flera gånger
för varje *bit* som skall över till PIC'en. Kan det vara
därför det blir långsamt när man kör via API'erna ?
Men, kanske som en sista nöd-lösning då...

Jag tror som helhet att det var bra för Lajo att få
detta testat.