Onko enää myynnissä LPT ja COM liitäntäisiä piiriohjelmointilaitteita vai onko kaikki jo siirtyneet USB:n käyttöön? Ite olen amiksessa käyttänyt LPT-liitäntäistä laitetta ja sitä varten tietsikatkin piti olla sellaisia että niissä on aito LPT-portti.
Arduinon ohjelmointiin tuntuu olevan myynnissä nimenomaan USB-liitäntäisiä laitteita. Entäs Atmelin piireille?
Arduinon ohjelmointiin tuntuu olevan myynnissä nimenomaan USB-liitäntäisiä laitteita. Entäs Atmelin piireille?
Vastaukset 14
Vanhimmat
Niin ja onko PIC-piireille olemassa USB-liitäntäisiä ohjelmointilaitteita?
Etsikö jotain tällaista?
https://www.google.fi/search?q=pic programmer USB&tbm=isch&tbo=u&source=univ&sa=X&ei=nkXOUun4LIPg4QSkzIDoDA&ved=0CEgQsAQ&biw=1333&bih=678
Niin ja tiedäthän että LPT- ja COM-portit ovat katoavaa kansanperinnettä. Vimeisissä ostamissani emolevyissä ei ole enää ulkoisia LPT- tai COM-porttia liitinpanelissa.
Emoilla saattaa olla vielä COM-portti lattakaapeliliittimenä mutta sekin on jo harvinaisempaa. PCI-väylään on kyllä vielä saatavana kumpaakin porttia tai yhdistelmäkorttia, jossa esim. 2 kpl COM-portteja ja yksi LPT-portti.
Arduinohan on Atmelin piiriin pohjaituva laite, joten samalla tavalla sitä voidaan ohjelmoida. LPT-portti on todella harvinainen uusissa koneissa ja fyysinen COM-porttikin on häviämässä vauhdilla. Mikään uusi ohjelmointilaite ei noita käytä vaan USB:tä. Noitahan saa klooneina 20 eurolla ja alkuperäsinä 50-100 eurolla. Halvimmilla ei debuggaus onnistu ja kannattaa varmistaa, että PDI löytyy, jos aikoo käyttää uudempia Atmeleita.
Se on harmillista, että nuo ohjelmointilaitteet toimii usein kirjoitinportin filosofian vastaisesti, käyttää jotain bit-bang algoritmia, mikä ei sitten toimi usb:in yli oikein. Oikea tapa kun on käyttää strobe-signaalia datan siirrossa ulos. Kirjottimetkin tätä käyttää ja toimii sitten jitteristä ja hidastelusta huolimatta oikein. Onhan niitä uudempiakin standardeja em. portille käytössä, mutta tämä perus riittää moneen kun ei ihan megoittain ole siirrettävänä dataa. Busy päälle, jos ei voida vastaanottaa. ack:t voi lähettää..
windows 98 uusin windows joka toimii lpt porttin erikois sovellusten kanssa oikein.
Niin, onhan se väärin, että koneessa on ihan ilmaiseksi käytettävissä TTL-tason logiikkaportti. Siihen kun saa kytkettyä mitä vaan ilman, että joutuu maksamaan "connectivitystä" erikseen.
Kyllä LPT-portti toimi ainakin NT:ssä ja XP:ssä erikoissuvelluksissa. Noihin oli erilaisia systeemejä, myös illmaisia. Vistassa ja 7:ssa ei ole ollut tarvetta kokeilla.
Nykyään vanha LPT-porttinen laite on kyllä suuri ongelma, kun sellaista porttia ei ole. USB-LPT -sovittimet eivät toimi kuin printtereiden kanssa eli osaavat vain matkia printtereiden käyttämää protokollaa ei mitään muuta.
Tietenkään ohjelmointilaitteet eivät toimineet "kirjointinportin filosofian" mukaisesti, se kun on tarkoitettu vain kirjoittimelle. LPT-ohjelmointilaitteethan olivat AVR:llä vain suorat piuhat tai piuhat vastukset. Tuolloin ainoa vaihtoehto on tehdä homma bitbangillä. Ei siinä ollut mitään ongelmia jitterin ja hidastelun takia. Tuohon on SPI-protokollaa, jossa yksi bitti on kellosignaali. Data on on siis synkronoitua.
Jos taas ohjeilmointilaitteessa on älyä, luentevin tapa oli siirtää data sarjaliikenteellä eli COM-portilla.
Jos nykyään haluaa käyttää jotain LPT-portin tapaista, se onnistuu halvalla USB-sarjaportilla. Ainakin FTDI:n (yleisin piiri noissa), voi tehdä helposti bit bangia ja joillain paljon monimutkaisempiakin juttuja. Tuollaisella olen tehtnyt SPI:tä ja halvat USB-ohjelmointilaitteet perustuvat usein vastaavaan.
Ei muuten pidä paikkaansa. Kirjotinportti on itse asiassa yllättävän monipuolinen - ja siksi niin hankalasti toteutettava - portti. Sisältää kolmenlaisia nastoja, data/status/control porteiksi lueteltuina. Nuo data-portin nastat on oletuksena TTL-outputeja. Status on input-portti ja control on "i2c"-tyyppinen signaaliensa kannalta - voi käyttää sekä että. Ja tästä se lähteekin sitten heti alusta lähtien menemään sekavasti. Alkuperäisessä versiossa data oli outputeja, mutta jossakin toteutuksessa oli käytetty puskuripiirejä joissa oli suunnan vaihdolle tilaa, ts. käyttämättömiä nastoja.
Nuo data-nastat on Open Collector tyyppisiä, eli sama kuin control, mutta jätetty ylösvetovastukset pois..
Myös muistiin nuo portit on pistetty elegantisti. BASE, BASE 1 ja BASE 2 osotteissa ovat osoitteet, joita pitää hypistellä. Eli HW-näkökulmasta voisi tehdä yhden 32-bittisen operaation asettaakseen/lukeakseen kaikki porttia koskevat arvot. Jotkut toteutukset näin toimivatkin portista - tehden usb-version toteutuksesta melko lailla ongelman..
Nyt kun sitten yrittää käyttää lpt-portin kautta bit-bang algoritmiä käyttäviä laitteita, on jokaista bittiä varten siirrettävä kello-alas bitti kello-ylös. Eikä tämäkään välttämättä vielä riitä.. voi olla, että pitää vaihtaa data-portin suuntaa, jne.
USB:n virhe on ajatella, että portti on "pelkästään kirjoitinportti". Se saa homman menemään pieleen.. pikemminkin pitää ajatella, että kyseessä on "riisuttu-ISA" väylä, josta on jätetty kaikki turha pois ja lisätty jotain helpottamaan tulostusta.
Miksi sitten ei käyttää ISA-väylää suoraan omiin rakennelmiinsa? Vaikka siksi, että LPT-portti tarjoaa kaiken "tarjottimella", mitä tarvita saattaa ja on mukavasti saatavilla laitteen ulkopuolella. Lisäksi se on useimmiten riittävän nopea verrattuna sarjaporttiin, jossa on a) hankalat jännitteet ja b) nopeusrajoitukset aika alhaisia
Usein tuo on toteutettu "8255" kloonilla. Tämä tarkoittaa sitä, että lisäämällä vaikkapa ISA-väylään toisen 8255-piirin samaan osotteeseen, mutta reitittämällä datan biteistä D9..D15, saa käyttöönsä 16-bittisen väylän. Meneekö se näin sujuvasti USB:ssä? Ei.. ja yksi syy lisää miksi USB on HW-näkökulmasta aina niin heikoilla..
Siis mikä ei pidä paikkansa?
Kirjointinportti oli tosiaan monipuolinen ja melko helposti käytettevä, tosin sen toiminta riippui portin raudasta ja BIOS-asetuksista. Mutta pointtini oli, että LPT-porttteja ei enää koneissa ole ja yksikään myytävistä USB-LPT sovittimista ei toimi vanhan ohjelman kanssa ellei toisessa päässä ole tulostin. Noita USB-LPT sovittimia ei siis voi käsitellä kuten vanhaa LPT-porttia. Ero on siis hyvin selkeä USB-COM sovittimiin, jotka toimivat yleensä kaikkien vanhojen ohjelmien kanssa.
Voihan omissa rakennelmissa käyttää vaikka mitä, mutta USB-palikoita on helppo kytkeä, ohjelmoida ja niitä voi ostaa muutamalla eurolla. Niissä on yleensä 3,3 tai 5 V jännite ellei osta valmista RS232-yhteensopivaa, joka vastaa tietysti jännitteiltään vanhaa COM-porttia.
Eli vaikka meille ei opetettu mitään bit-bangeista, niin ymmärsin jotenkin niin että kannattaa säilyttää se vanha LPT-portin sisältävä kone vielä koska nuo USB-ohjelmointilaitteet ei välttämättä toimi siten kuin pitäisi.
Kyllä ne USB-ohjelmointilaitteet toimii oikein hienosti ja paljon paremmin (siis nopeammin) kuin vanhat LPT-pohjaiset.
Jos sinulla on vanhan LPT-pohjainen ohjelmointilaite, se ei tule toimimaan USB-LPT -sovittimen kanssa. Sinun pitää siis ostaa/tehdä uusi ohjelmointilaite tai käyttää konetta, jossa on aito LPT-portti.
Mulla on kyllä koneita joissa on ihan aito LPT-portti. Myös aitoja sarjaportteja löytyy koneista.
Syitä siihen miksi USB-LPT sovittimet ei toimi.
1) Ohjelma käsittelee porttia suoraan (I/O osoite 0x378, 0x278)
2) Ohjelma käyttää alkuperäistä keskeytyslinjaa IRQ7
3) Rinnakkaisportilta vaaditaan 2-suuntaisuutta ks. web ECP tai EPP
4) Sovittimen virranantokyky ei riitä
Yleensä emolevyllä piikkirimoilla olevat LPT ja sarjaportit saa alkuperäisiin osoitteisiinsa ja ne toimivat.
Asetukset löytyvät BIOSista.