Sida 1 av 2

Behöver jag en bootloader först?

Postat: 16 februari 2018, 00:19:21
av Magnus_K
Hej hej.

Har nyligen gjort ett kort med en ATtiny45:a på. För att programmera drog jag ut en header med matning + MISO, MOSI, SCK och RESET.
Tankevurpan blev när jag inbillade mig i all hast att det räckte med en USB-TTL omvandlare nu för att programmera kretsen. Visst är det fel va?
Jag måste först och främst få i en bootloader först (på något sätt), och sen behövs en AVR-ISP (eller liknande) för att köra ner mitt program?

Har kollat lite på guider på nätet och det verkar som att man kan använda en Arduino som "programmerare". Visst har jag en litet Nano här men självklart ingen USB-mini sladd utan bara micro.

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 00:33:29
av Xyzzy
Kör du ISP behövs ingen bootloader men vill du överföra programmet på annat sätt så behövs det.

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 00:43:39
av Magnus_K
Aj aj aj, jaha, då får projektet vänta... Tack för svar :)

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 00:47:57
av Borre
Ja bootloadern är bara ett program som programmeras på samma sätt som ett "vanligt" program och används sen för att slippa en extern programmerare.

Dra ur reset till headern också så går det lättare att programmera. :)

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 00:50:04
av Magnus_K
Det har jag gjort men missade det när jag skrev första inlägget. Editerat!
Tack Borre :)

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 00:52:41
av Borre
Så bra.

Nu hann jag editera ovan inlägg när du skrev ditt..aja läs ovan igen :)

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 00:56:16
av Magnus_K
Hur kunde jag göra den här tabben...

Nano:n jag har framför mig vet jag har bootloader men som sagt, saknar rätt USB-kabel.
Kan jag programmera den med USB-TTL omvandlaren, så den kan i sin tur programmera bootloadern på ATtiny45:an?

EDIT: Tror jag lyckats få igång det nu. Kan använda Nano:n som ISP. Kunde lägga in "ISP-programmet" i Nano:n mha USB-TTL adaptern och sen kör jag SPI mellan Nano:n och ATtinyn.

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 06:24:57
av NULL
För att få ett förtydligande...

"Kör du ISP behövs ingen bootloader men vill du överföra programmet på annat sätt så behövs det."

Så om jag kör in programmet från PC'n via en USB-TTL adapter på ICSP kontakten på enheten som ska programmeras, så ska fungera?

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 07:38:56
av Xyzzy
NULL :
Ja om den är tillräckligt avancerad. Behöver ha I/O mode så den kan köra SPI. UART räcker inte.

Magnus:
Gött mos!
(funkade det sen, utan avkoppling? :D)

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 10:47:20
av Magnus_K
Jag vet faktiskt inte än Xyzzy :)
När ATtinyn kändes klar för att programmera så kom jag på att jag har ju ingen möjlighet att använda Arduinos serie-monitor. Är nog lite bortskämd använda AVRer med lite fler pinnar.
Har inte heller någon LED att blinka på kortet för att testa programmeringen. Nej det blir att löda ihop allt och köra skarpt.

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 14:51:28
av Xyzzy
Haha, helt rätt, det är ju mjukvara så vad kan gå fel :razz:

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 14:53:02
av Magnus_K
Precis! :D

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 15:29:04
av Magnus_K
Dra mig baklänges, det fungerar!
Kom på att jag dragit ut en pinne som egentligen ska till en servo men patchade dit en LED lite snyggt för att testa, och visst, den blinkar så fint!

Ska försöka sammanfatta vad jag gjort så det kanske hjälper någon.
  • 1. Kopplade in mig mellan dator och Nano genom en USB-TTL adapter. Då Nanon redan hade bootloader så kunde jag här använda UART och programmera denna genom TX/RX-pinnarna. Dock saknas RESET snöre på denna adapter men genom att hålla nere RESET-knappen på Nanon under kompileringen och sedan släppa när den ville börja programmera så gick det galant.

    2. Laddade ner sketchen "ArduinoISP" under exempelmenyn till Nanon.

    3. Tankade ner ATtiny-biblioteket från http://highlowtech.org/?p=1695 och installerade detta.

    4. Gjorde nu följande val under verktygsmenyn:
    • - Kort -> ATtiny25/45/85
      - Processor -> ATtiny45
      - Klocka -> "Internal 8 MHz"
      - Port -> Relevant port som USB-TTL adaptern är på
      - Programmerare -> Arduino as ISP
    5. Kopplade in 5V, GND, MOSI, MISO, SCK och RESET mellan Nanon och ATtinyn.

    6. Valde "Bränn bootloader".

    7. Nu är var det bara att snygga till alla kablar och programmera ATtinyn som vilken MCU som helst, och med Nanon som programmerare. Slipper även trycka på RESET varje gång då Nanon nu sköter detta. :bravo:

    Default är ATtiny45 inställd på intern 1 MHz och jag var lite nödig över att fippla med "fusarna" och lyckas ställa om klockan till extern eller så, men det gick tydligen bra. Måste lyckats ställa om klockan från 1 till 8 MHz också då mitt blink-exempel verkligen blinkar med 1s.
Blink.jpg

Re: Behöver jag en bootloader först?

Postat: 16 februari 2018, 16:12:05
av Xyzzy
Härligt Magnus! Å se, avkoppling är för chickens :lol: (nu får jag snart alla på mig, det är lugnt skulle aldrig välja detta "seriöst", problemet var att det inte fanns tillgängligt och alternativet var att sätta sig och rulla tummarna... Typ..., så varför inte prova utan och montera vid (närmaste!) tillfälle)

Re: Behöver jag en bootloader först?

Postat: 17 februari 2018, 17:09:32
av KLset
Tjusigt! Såg att du hade tejpat ihop pinnarna till kontakter. Då kanske du skulle gilla att använda krympslang som i bilden. :) Hittade den i en reddit-post ett tag tillbaka.