ns. pöytä -PC:llä AVR:n ohjelmointi, eli siis PC:llä olevan .hex -tiedoston siirto AVR:n sisäiseen FLASH -muistiin ei juuri sen ihmeellisempää ohjelmointilaitetta tarvitse, vaan olen itse käyttänyt omatekoista kaapelia tietokoneen LPT1 -portin ja mikrokontrollerin välillä sekä avrdude -ohejlmaa linuxissa.
avrdude toki tarvitsee LPT1 -portin käyttöoikeudet, eli joko ajetaan pääkäyttäjänä tai jos haluaa ajaa normaalikäyttäjänä (tietoturvamielessä parempi niin), niin ohjeet siitä, miten saa toimimaan normaalikäyttäjänä:
http://keskustelu.suomi24.fi/node/11077043
Pöytä -PC:llä (jossa on LPT1 -portti) ylläoleva ratkaisu toimii ihan hyvin, joten sellaisen omistajalle tuo ylläoleva riittääkin.
MUTTA:
Entä, kun käytössä on modrni kannettava, josta ei löydy sen paremmin LPT1 kuin perinteistä sarjaporttiakaan ( joka olisi 9-nastainen D -liitin, sunniteltu toimimaan RS232 -protokollalla, usein nimellä COM1 ) ?
Eli, jos koneessa ainoat portit ovat USB 2.0 -standardin mukaisia ?
Mikä neuvoksi ?
Saako jostain kohtuuhintaista, ja *luotettavasti toimivaa* avr -ohjelmointilaitetta, joka liitetään kannettavaan USB -liitännällä, ja joka tottelisi mielellään niin avr Studiota windowsissa, kuin myös avrdude:a linuxissa ?
Toki on olemassa USB / RS-232 -muuntokaapeleita.
Niillä on yleensä aika epäluotettava maine, mutta analysoidaanpa lisää...
Kumpikohan on oikeasti totta:
a) kyseisistä USB / RS-232 -muuntokaapeleista moni on oikeasti niin huonoa tekoa, ettei se toimi kunnolla silloinkaan, kun kaapelilla on tarkoitus välittää ainoastaan normaalia standardinmukaista sarjaliikennettä ainakin pääasiassa RS-232 -standardin mukaisesti (toki HW -kättelyn osalta standardia on muutenkin hieman sovellettava, sillä alkuperäien standardi ei kättelyn osalta vastaa nykyajan tarpeita muutenkaan).
VAI
b) Kaapelit ovat laadultaan aivan asiallisia silloin, kun niitä käytetään vain normaaliin sarjaliikenteeseen, mutta ongelmat aiheutuvat siitä, että jos joku ohjelma yrittää käyttää ns. bit banging -tekniikkaa ja ohjelma luulee olevansa tekemisissä oikean laitesarjaportin kanssa, niin ei mikään ihme, että ongelmia tulee. USB kun tukee enintään 1000 pakettia sekunnissa molemmat suunnat yhteensä eli siis jos paketteja menee sama määrä molempiin suuntiin, niin tuo tarkoittaa max. 500 pakettia sekunnissa per suunta !
Suuret jopa 480 Mbps nopeudet eivät siis lisää sekunnissa siirtyvien pakettien määrää, vaan niiden kokoa. Eli teoreettinen maksimi 480 Mbps tarkoittaisi siis sitä, että sekunnissa siirtyy 1000 pakettia, kukin 480000 bittiä.
Eli siis joko tarvitaan suoraan USB -liitäntään liitettäväksi tarkoitettu ohjelmointilaite ja sitä tukeva ohjelmisto, tai sitten voi toki tehdä itse sarjaporttiin tarkoitetun ohjelmointilaitteen, joka käyttää sarjaporttia ainoastaan normaaliin sarjaliikenteeseen, ja itse laite hoitaa tuon bit bangingin avr:n suuntaan.
Mutta mikä on hinnaltaan edullisin luotettavasti toimiva ratkaisu ?
avrdude toki tarvitsee LPT1 -portin käyttöoikeudet, eli joko ajetaan pääkäyttäjänä tai jos haluaa ajaa normaalikäyttäjänä (tietoturvamielessä parempi niin), niin ohjeet siitä, miten saa toimimaan normaalikäyttäjänä:
http://keskustelu.suomi24.fi/node/11077043
Pöytä -PC:llä (jossa on LPT1 -portti) ylläoleva ratkaisu toimii ihan hyvin, joten sellaisen omistajalle tuo ylläoleva riittääkin.
MUTTA:
Entä, kun käytössä on modrni kannettava, josta ei löydy sen paremmin LPT1 kuin perinteistä sarjaporttiakaan ( joka olisi 9-nastainen D -liitin, sunniteltu toimimaan RS232 -protokollalla, usein nimellä COM1 ) ?
Eli, jos koneessa ainoat portit ovat USB 2.0 -standardin mukaisia ?
Mikä neuvoksi ?
Saako jostain kohtuuhintaista, ja *luotettavasti toimivaa* avr -ohjelmointilaitetta, joka liitetään kannettavaan USB -liitännällä, ja joka tottelisi mielellään niin avr Studiota windowsissa, kuin myös avrdude:a linuxissa ?
Toki on olemassa USB / RS-232 -muuntokaapeleita.
Niillä on yleensä aika epäluotettava maine, mutta analysoidaanpa lisää...
Kumpikohan on oikeasti totta:
a) kyseisistä USB / RS-232 -muuntokaapeleista moni on oikeasti niin huonoa tekoa, ettei se toimi kunnolla silloinkaan, kun kaapelilla on tarkoitus välittää ainoastaan normaalia standardinmukaista sarjaliikennettä ainakin pääasiassa RS-232 -standardin mukaisesti (toki HW -kättelyn osalta standardia on muutenkin hieman sovellettava, sillä alkuperäien standardi ei kättelyn osalta vastaa nykyajan tarpeita muutenkaan).
VAI
b) Kaapelit ovat laadultaan aivan asiallisia silloin, kun niitä käytetään vain normaaliin sarjaliikenteeseen, mutta ongelmat aiheutuvat siitä, että jos joku ohjelma yrittää käyttää ns. bit banging -tekniikkaa ja ohjelma luulee olevansa tekemisissä oikean laitesarjaportin kanssa, niin ei mikään ihme, että ongelmia tulee. USB kun tukee enintään 1000 pakettia sekunnissa molemmat suunnat yhteensä eli siis jos paketteja menee sama määrä molempiin suuntiin, niin tuo tarkoittaa max. 500 pakettia sekunnissa per suunta !
Suuret jopa 480 Mbps nopeudet eivät siis lisää sekunnissa siirtyvien pakettien määrää, vaan niiden kokoa. Eli teoreettinen maksimi 480 Mbps tarkoittaisi siis sitä, että sekunnissa siirtyy 1000 pakettia, kukin 480000 bittiä.
Eli siis joko tarvitaan suoraan USB -liitäntään liitettäväksi tarkoitettu ohjelmointilaite ja sitä tukeva ohjelmisto, tai sitten voi toki tehdä itse sarjaporttiin tarkoitetun ohjelmointilaitteen, joka käyttää sarjaporttia ainoastaan normaaliin sarjaliikenteeseen, ja itse laite hoitaa tuon bit bangingin avr:n suuntaan.
Mutta mikä on hinnaltaan edullisin luotettavasti toimiva ratkaisu ?
Vastaukset 2
Vanhimmat
No, tästä on hyviä kokemuksia:
http://www.ladyada.net/make/usbtinyisp/
Toimii Linuxissa USB-portin kautta (USB 1.0 riittää) ja syöttää myös tarvittaessa virrat kohdelaittelle. Vähän voi joutua kikkailemaan, mikäli MISO/MOSI ohjelmointinastat muut on käytössä omassa laitteessa omiin tarkoituksiin.
Tässähän näitä toimivia laitteita.
http://www.robomaa.com/index.php?main_page=index&cPath=1014_1033
Mikäli omistaa tai on muuten tarvetta arduinolle, voi sitä käyttää ohjelmointiin.
http://www.ruuvipenkki.fi/2011/01/13/arduinosta-ohjelmointilaite
Jos on vanhempi läppäri (PCMCIA korttipaikka) löytyy siihen toimiva lpt portti joka tosin asentuu eri osotteeseen mitä standardit, mutta jos softassa saa osoitteen annettua käsin.