Översikt Arduino skiss belastande upp processen och ISP (9 / 10 steg)
Steg 9: Diverse extra saker
Som jag nämnde tidigare, bootloader är bosatt i en liten del av det övre intervallet av blixt minnet. Avsnittet bootloader flashminne ligger i särskilda register kallas säkringar som talar om för behandlaren hur stor bootloader är och var man kan hitta det att börja köra det på power eller återställa. Som får bootloader programmet skissen, lagras in i nedre delen av blixt minne. En skiss som du har laddat i blixt minne kan inte brukar ändra sig eller bootloader, inte heller kan det skriva till oanvända delar av Flash-minne. Endast program som körs i området reserverade bootloader kan skriva till Flash-minne. Avancerade användare kan sätta en liten kodsnutt i området bootloader minne har det sitter där, som bor tillsammans med bootloader och kalla det från deras program som körs i den nedre delen av Flash-minne, vilket gör att deras program att skriva till Flash-minne.
Sedan den äkta eller klon UNO och Mega 2560 kommer med en programmerbar USB-till-seriell-processor, är det möjligt att ladda upp ett program till det processorn att agera som en ISP programmerare, och ansluta det till UNOS eller till den Mega huvudprocessorn och åter bränna sin bootloader eller läsa in en skiss via Internet-leverantör. Eller du kan ladda upp en skiss till huvudprocessorn att åter programmen USB-till-seriell processorn via Internet-leverantör. Detta kallas ibland UNO self-ISP.
Du kan också använda en FTDI USB-till-seriell konverterare som en ISP programmerare med ett program på datorn som bit-bangs ISP protokollet till FTDI converter stift.
Dessa alternativa metoder som ISP är mestadels akademiska sysselsättningar, eftersom det är enklare och billiga att använda en ISP programmerare enhet eller använda en annan Arduino som en ISP programmerare. Men om du är inlåst i en brinnande byggnad med ingenting men begränsad Arduino hårdvara, din kompis MacGyver, nagelklippare och en matchbook, du kan göra ISP programmering och kan fortfarande ha tid att fly innan fireball explosionen.
Det är möjligt att använda Optiboot bootloader på ATmega32U4-baserade Arduinos, ladda upp skisser genom TTL seriell RX och TX stiften. Då skulle du behöva använda en extern USB-till-seriell adapter eller andra seriella enheter att ladda upp, och inte använder USB-port ATmega32U4 processorn. Jag täcka detta begrepp i en annan Instructable där jag visar hur du använder en Bluetooth-modul till belasta upp till en Leonardo. Jag hålla talande du så en sak till... Ja, det är ytterligare ett sätt att ladda upp en skiss till Arduino: via Bluetooth- eller annan trådlös seriell enhet.
Det är också möjligt att göra en virtuell USB-port på en processor som ATmega328P. I Adafruit's Pro prydnadssak, det finns ingen USB-till-seriell chip, men det finns en USB-port ändå. Hur de sig åt? Vad de har gjort är ansluta de digitala stift 2 och 7 till USB-porten och sedan bränna en speciell bootloader på det chip som lyssnar efter USB-signaler på dessa 2 stift. Det finns ingen speciell hårdvara inuti det chip som läser dessa signaler, så bootloader innehåller speciell kod som figurerar ut signaler och accepterar en skiss. Det är ytterligare ett sätt att ladda upp en skiss.
När du klickar på knappen upload i Arduino IDE, eller när du går på menyn fil eller skiss och klicka på ladda upp, är USB till seriell ladda upp metoden den standard som används för de flesta styrelser. När du går på menyn till skiss (eller en fil på IDE 1.6.4 och äldre) och klicka på ladda upp med hjälp av programmerare, som är när IDE försöker använda din ISP programmerare eller Arduino som ISP, ladda upp en skiss via Internet-leverantör. Här är en mer godbit du kan forskning och spela med. Vill du på upload-knappen att göra ISP programmering för att ladda upp till en target ombord, kan du skapa en anpassad boards.txt post. Det finns inställningar i den transaktion som avgör vilken uppladdning metod används, seriell eller ISP.
Här är en godbit som jag hoppas klargör i stället för förvirrar. Jag tycker det är olyckligt att Arduino gjorde en ISP programmerare enheten kallas ArduinoISP, och när du använder det du behöva välja på menyn verktyg, programmerare, ArduinoISP. Enheten upphör såvitt jag vet, men är det fortfarande tillgängliga via vissa butiker. Det är olyckligt ordalydelsen och potentiellt förvirrande eftersom när du använder en Arduino som ISP du läsa skiss kallas ArduinoISP och välj på menyn verktyg, programmerare, Arduino som ISP.