Sida 2 av 2
Re: väldigt simpel avr-programmerare med max-krets?
Postat: 24 januari 2009, 17:47:12
av Ivarsson
- utan att vara programmerad tidigare...

Re: väldigt simpel avr-programmerare med max-krets?
Postat: 24 januari 2009, 19:28:18
av tlvb
Kan vara värt att nämna att överallt där jag har set det diskuteras, så avråds bitbangande i kombinationen med usb-adaptrar, för de som inte har tillgång till "riktiga" serie/paralellportar. Detta på grund av att adaptrarna oftast är gjorda enbart för "standard" seriell/paralell kommunikation. Kan vara värt att tänka på beroende på målgruppen för projektet.
Re: väldigt simpel avr-programmerare med max-krets?
Postat: 24 januari 2009, 20:13:24
av sodjan
> så avråds bitbangande i kombinationen med usb-adaptrar,
Inte bara avråds, jag har inte sett ett fall där det faktiskt fungerar, om
inte PC-programvaran är specialskriven för de API-er som adapter
leverantören tillhandahåller (om alls). Bitbank program som förväntar
sig att köra mot vanlig COM-hårdvara kan man nog glömma helt...
Re: väldigt simpel avr-programmerare med max-krets?
Postat: 24 januari 2009, 20:30:31
av Ivarsson
Ok.. Kommer tillämpas mot äkta serieport, men kan vara bra att veta eftersom jag själv kör med konverterare när jag utvecklar..
Re: väldigt simpel avr-programmerare med max-krets?
Postat: 25 januari 2009, 16:18:07
av pere76
Bootloadern löser problemet med att uppgradera programvan.
Men bootloadern måste in där från början(om jag inte missförstått hur det funkar)
Man kanske skulle kunna ha någon lösning när man faktiskt bitbangar(vad det nu kan heta på svenska) med dom pinnarna som finns tillgängliga i serieporten. rx/tx är ju redan lösta med den max232 som redan finns implementerad som jag förstod det.
Avrdude kan sättas att använda dom pinnar du vill.
Det behövs inte många komponenter till, reseten är väl den som kräver mest.
Nåja ni fattar vad jag menar.
Fast problemet som kvarstår är ju att det flesta seriaportar idag är usbbaserade och inte alltid funkar.
Men när bootloadern väl är på plats så kvittar ju det.
Re: väldigt simpel avr-programmerare med max-krets?
Postat: 25 januari 2009, 16:41:00
av Ivarsson
Problemet är inte att jag vill ha firmvaran uppgraderad, jag vill köra in den på en helt oprogrammerad krets. T.ex. då man bestyckar ett till likadant kort eller om AVR-kretsen skulle gå sönder av någon anledning.
Men uppenbarligen ska ju dessa simpla kretsar, som det finns exempel på, fungera. Så jag får helt enkelt konvertera det till att använda sig av en max232 i stället för resistorer/zenerdioder.
Re: väldigt simpel avr-programmerare med max-krets?
Postat: 25 januari 2009, 17:28:17
av ie
Jag har nu gjort reversed engineering på min programmerare. Ber om ursäkt för den kladdiga skissen.
Programmeraren kopplas till PC'n via en MAX232. (Jag har använt en 2x5 stiftlist (H1) och en kabel där jag klämt en 9-pol DSUB i ena ändan och en 2x5 headerkontakt i andra.) I programmeringsläget kopplas pinnarna till SPI-pinnarna på AVR'en. Jag kan köra med både 8 och 20-pins AVR i en nollkraftssockel. Jag har en bygel som kopplar GND till ben 4 när jag kör 8-pinnars kretsar.
Jag har dessutom en 2x3 polig header (H2) för ISP-programmering. Jag konstruerar in ATMELs 6-poliga ISP-kontakt på de konstruktioner jag vill kunna programmera ISP och ansluter dem då till H2 via kabel. (Om du vill använda programmeringspinnarna till något annat under drift så lägger du bara till några motstånd på dem enl ATMEL's appnötter.)
I RUN-läge kopplas RS232-porten istället till kretsarnas UART-ben, så att jag ankelt kan kommunicera med dem om jag vill. (Funkar naturligtvis endast när kretsen sitter i sockeln på programmerareren, då dessa signaler inte finns i ISP-interfacet. För att enkelt kunna prata med kretsar som inte sitter i programmeringssockeln har jag via H3 gjort RX, TX och GND enkelt åtkomliga.
Programmeraren drivs av en väggvårta som stabiliseras till 5V (Vcc). Om jag byglar J1 så matar denna även kretsn antingen i programmeringssockeln eller via ISP-kontakten. Utan bygel så är det målsystemet som spänningsmatar AVR-en, även i programmeringssockeln. Den ska då funka även om målsystemet går på 3,3V.
Jag har använt MAX232, en 74HCT04 och en 74HCT125 samt lite lösa komponenter. Värdena på dessa är inte speciellt kritiska.
Programmeraren funkar kanon.
Den kräver ett speciellt program (gratis) för att funka. Jag tror att jag hittade det på tidigare nämnda Chan-sida.

Re: väldigt simpel avr-programmerare med max-krets?
Postat: 25 januari 2009, 22:34:15
av manw
Jag kör med följande AVR-programmerare till COM-porten
http://electronics-diy.com/avr_programmer.php vilken har visat sig fungera mycket bra, och billigt var det
Till jobb-laptopen köpte jag följande USB-serie adaper på ELFA Art: 25-164-25, Adapter USB-2COM, USB-2×RS232. Fick det inte alls att fungera på Lap-topen med denna, men märkte sedan att den inte fungerade alls på denna.
Provade adaptern idag igen på mitt gamla (men mycket driftsäkra) tröskverk till dator med Widows2000. Till min stora förvåning så kunde jag läsa programmet från kretsen och upp till datorn, med beskrivna programmerare och PonyProg. Det gick dock MYCKET långsamt (provade att ställa upp bithastigheten för "devicedrivern", men jag tror snarare att det är USB1.1 som var begränsningen), men skall testa med en annan dator som har USB2.0 för att se om hastigheten blir användbar. Återkommer om detta efter vidare empiriska studier...
Har tänkt några gånger att jag skall blåsa disken på jobblaptopen och installera om allt, men jag undrar vad datasupport gillar det

Re: väldigt simpel avr-programmerare med max-krets?
Postat: 26 januari 2009, 08:54:12
av Ivarsson
Just den där fastnade jag lite för själv. Tänkte först använda någon ledig kanal på max232 och i övrigt använda motstånd/zener, men kom på att det blir dumt eftersom max:en inverterar.
Men det låter bra att du verkar ha fått den att fungera tillfredsställande! Nu ska jag bara lista ut vad jag skall göra för att kunna köra den helt och hållet ISP utan att den påverkar/påverkas av något annat till/från AVR:en.
Re: väldigt simpel avr-programmerare med max-krets?
Postat: 26 januari 2009, 12:59:26
av ie
Att köra ISP utan att det stör, beror lite på hur du menar. Normalt skiljer man ISP-kontakten och övrig logik runt AVR-en med motstånd valda så att ISP-kontakten blir dominant. Naturligtvis så kommer annan elektronik i så fall "störas" vid programmering. Om man helt vill undvika det så måste du nog ha grindar som kopplar in antingen ISP eller övrig elektronik.
Re: väldigt simpel avr-programmerare med max-krets?
Postat: 26 januari 2009, 13:20:00
av Ivarsson
Menar självklart bara det att när man ska programmera så ska man programmera... När man kör sitt vanliga program från AVR:en skall det fungera bra och TX/RX mot serieporten skall fungera samtidigt.
Detta görs med motstånd, eventuellt någon bygel som kortsluts vid programmering.
Re: väldigt simpel avr-programmerare med max-krets?
Postat: 26 januari 2009, 19:27:01
av ie
Vad jag försökte säga så beror det på din krets. Om du t ex skulle ha avfyrningsanordningen till en raket på samma pinne som du programmerar AVR'en på så kan du inte tillåta att den yttre logiken triggas under programmeringen. Är det bara en lysdiod som hänger på pinnen så spelar det kanske inte så stor roll. I det första fallet räcker det alltså inte att separera endast med motstånd. Då behöver du en switch/gate som kopplar bort yttre logik under själva programmeringen. Om du inte använder SPI-porten pinnar till något annat än programmering, då är det inget problem.
Om du tittar på min krets så ser du att Prog-switchen kopplar om vad RS232 ska lyssna på för pinne, UARTen eller SPI-porten. Detta för att enkelt kunna använda en komport både för programmering och kommunikation.
Re: väldigt simpel avr-programmerare med max-krets?
Postat: 26 januari 2009, 19:50:09
av Ivarsson
Haha, jo jag förstår.. Man får ju liksom tänka till på ifall det gör något om något skumt händer när man programmerar. I mitt fall gör det inte det, däremot vill man ju att det skall fungera både att programmera och att använda de programmerade pinnarna till andra funktioner.