Sida 1 av 2

AVR-programmerare a la tuxgraphics *färdig*

Postat: 24 oktober 2006, 20:33:39
av Diger_s
Hallå. Dags att redovisa slutspurten i mitt senaste projekt: USB-AVR programmerare som pratar STK500v2. Designen och koden är mer eller mindre saxade från tuxgraphics men med ett par ändringar. Dels har jag valt att använda en Mega88 istället för en Mega8. Sen använder jag FTDI;s FT232R istället för FT232BM så designen har blivigt pinsamt enkel men funktionell.

Jag har kommit så långt att jag framgångsrikt har kopplat upp programmeraren på en labbplatta. Samt gjort mönsterkortslayout. Ska förhoppningsvis in i skolans mönsterkortslabb nästa söndag och göra kortet.

Och så lite obligatoriska bilder:
Bild
Schemat över kretsen

Bild
Botten på kretskortet

Bild
Toppen på kretskortet

Jag kommer med mer bilder när jag är färdig

Postat: 24 oktober 2006, 20:56:01
av $tiff
Helt klart jätteintressant! Väntar med spänning på fortsättningen!

Vad använder du själv för mjukvara/OS för att programmera?

Postat: 24 oktober 2006, 21:02:40
av MicaelKarlsson
Vad säger man. Riktigt intressant, det här skall jag följa med stort intresse.

Lycka till :)

Postat: 24 oktober 2006, 21:06:05
av sodjan
Av alla oanslutna pinnar på FTDI'n, är det inga av dom som är ingångar ?
Borde de inte läggas hög eller låg eller har de inbyggda pullups/pulldowns ?

Samma sak för oanslutna pinnar på Mega'n, men det kan du ju fixa i koden...

Postat: 24 oktober 2006, 21:23:13
av MicaelKarlsson
>>Samma sak för oanslutna pinnar på Mega'n, men det kan du ju fixa i koden...

Fast ibland kan det vara bra med hängslen och livrem. 8)
The simplest method to ensure a defined level of an unused pin, is to enable the internal pull-up.
In this case, the pull-up will be disabled during reset. If low power consumption during reset is important, it is recommended to use an external pull-up or pull-down. Connecting unused pins directly to VCC or GND is not recommended, since this may cause excessive currents if the pin is accidentally configured as an output.
Saxat ur databladet till ATMega48/88/168 sid 76 i databladet.
URL: http://www.atmel.com/dyn/resources/prod ... oc2545.pdf

Postat: 24 oktober 2006, 21:36:03
av Diger_s
> Vad använder du själv för mjukvara/OS för att programmera?
Jag använder avrdude/gcc/OS X för att programmera. Det är därför jag är så mån om att det ska vara en usb-programmerare.

sodjan, jag har faktiskt inte tänkt på pullups, men jag inte sett några sådana på FTDI;s appnotes. Och det verkar fungera nu. (har ingen pullup på #TRS och #CTS) Och som sagt, på AVRen kan man internt sätta en pullup.

Dessutom skulle extra resistorer paja min kompakta layout på ca 22x42 mm 8)

Postat: 24 oktober 2006, 21:42:41
av thepirateboy
Ser kanonfin ut. Hur snabb är en sån där seriell programmerare egentligen. Har du nåt exempel på ungefär hur lång tid det tar att ladda ner ett par kB?

Postat: 24 oktober 2006, 21:47:41
av Diger_s
Jag har inte benchmarkat den och jag har inga direkta programmerare jag kan använda som referens. Men vad jag märkt hittils är att det går fort att ladda ner "mindre" program. Programmet i fråga är en RGB-ljusstyrmjukvara till en tiny45

Postat: 24 oktober 2006, 22:29:21
av $tiff
Jag antar att FTDI-chippet är där för att göra hela grejen STK500-kampatibel? Annars går det ju bra utan. I min omgivning kör man med USB-ASP.

Postat: 25 oktober 2006, 08:11:25
av Diger_s
Jag har till och med hittat någon variant som kan snacka stk500 direkt. Men då var jag redan färdig med designen. Dessutom har jag ett par FTDI-chips hemma.

Postat: 25 oktober 2006, 12:03:47
av cykze
Det finns flera fördelar med en FTDI-ic:

Eftersom FTDI fungerar som en serieport både mot datorn och AVR:en så behöver man inte alls tänka på att kommunikationen går via USB.

AVR:en behöver inte klara av USB.

Man slipper att implementera en USB-serieport i AVR:en, om man vill fungera som en STK500-programmerare.

Det går att att använda kontrollpinnarna på FTDI:n till att programmera AVR:en första gången (lååångsamt troligtvis). Annars brukar man vanligtvis redan behöva en programmerare för att ladda programmet i AVR:en första gången. Dock verkar inte Diger_s:s variant ha stöd för det. Man slipper dessutom fixa en USB-bootloader för att kunna uppdatera firmwaren i AVR:en.

Verkar enklare att ordna så att man kan programmera kretsar med sin programmerare som matas från andra spänningar än ca 3.3V. Något som t ex usbasp inte verkar klara och samtidigt hålla sig till USB-specen.

Postat: 25 oktober 2006, 13:13:01
av Diger_s
Helt sant. FTDIs chip gör det riktigt bekvämt att skapa en USB-förbindelse och med de senaste chippen behver man ännu mindre kringkomponenter såsom kristall osv.

Du har rätt, min programmerare stöder inte att själv skriva firmware. Dock kan jag med min prototyp ladda programmet i den färiga programmeraren. Prototypen programmerade jag över parallellporten från en annan dator.

Funderar på att eventuellt skriva om koden så den kan uppdatera sig själv. Men det får väl bli ett senare (annat?) projekt.

Postat: 26 oktober 2006, 10:37:51
av Virror
Du kan ju minska ner ännu mer på antal komponenter genom att ta bort spänningen och motståndet till reseten, den går ju att programmera bort.

Edit: Behövs verkligen motstånden på programerings pinnarna?

Postat: 26 oktober 2006, 12:03:17
av Diger_s
Det har du rätt i, men då har jag ingen bra failsafe om jag vill programmera om programmeraren i framtiden. Nej, det behövs inga motstånd på programmerings-pinnarna men motstånden skyddar kretsen (lite iaf) om man skulle råka kortsluta, de är med andra ord bra att ha där.

Postat: 27 oktober 2006, 18:34:38
av frejo
Ser bra ut!
Du vet att vi kan fräsa rundade hörn på kortet också om du lägger till det i fräskonturen, så det inte blir så vassa kanter ;)
Ses på söndag.
/ Fredrik