INHOUDSOPGAWE:

AVR/Arduino flits met framboos Pi: 3 stappe (met foto's)
AVR/Arduino flits met framboos Pi: 3 stappe (met foto's)

Video: AVR/Arduino flits met framboos Pi: 3 stappe (met foto's)

Video: AVR/Arduino flits met framboos Pi: 3 stappe (met foto's)
Video: Marlin Firmware - VScode PlatformIO Install - Build Basics 2024, Julie
Anonim
AVR/Arduino flits met framboos Pi
AVR/Arduino flits met framboos Pi

'N In-stelsel programmeerder (ISP) is 'n toestel wat u kan gebruik om baie mikrobeheerders te programmeer, byvoorbeeld die ATMega328p wat die brein van 'n Arduino Uno is. U kan iets soos 'n USBtinyISP koop, of u kan selfs 'n Arduino gebruik. Hierdie instruksies sal u wys hoe u 'n Raspberry Pi as 'n ISP kan gebruik.

Die avrdude -program, wat die Arduino IDE onder die enjinkap gebruik om skyfies te flits, kan met baie programmeerders gebruik word. Een van die opsies is om die SPI -penne op die uitbreidingspoort van die Pi te gebruik. Ek sal verduidelik hoe u die regte verbindings kan maak, 'n eenvoudige stroombaan op perfboard saamstel, sodat u nie die bedrading hoef te herhaal elke keer as u 'n chip wil flits nie, en hoe u avrdude moet installeer en gebruik. Ek sal u ook wys hoe u programme met behulp van die Arduino IDE op 'n AVR -chip soos 'n ATmega of ATtiny met hierdie metode saamstel.

Dinge wat benodig word:

  • Raspberry Pi met die nuutste Raspbian geïnstalleer
  • 40-pins manlike kopstuk (of 26-pen as u 'n ouer Pi het)
  • IDE -kabel om aan te sluit op u Pi
  • 16 MHz kristalresonator
  • 22 pF kapasitors (2)
  • LED (1) om programmeerstatus aan te dui
  • 8, 14 en/of 28 -pen IC -voetstukke, afhangende van die vorm van skyfies wat u wil flits
  • 'N Paar bord, drade, soldeersel

Stap 1: Bou Cobbler Attachment

Bou skoenmaker aanhegsel
Bou skoenmaker aanhegsel
Bou skoenmaker aanhegsel
Bou skoenmaker aanhegsel
Bou skoenmaker aanhegsel
Bou skoenmaker aanhegsel

Serial Peripheral Interface (SPI), ook bekend as vierdraadserie, is 'n manier om te kommunikeer tussen 'n enkele meesterapparaat en een of meer slave-toestelle. Ons sal dit gebruik om skyfies te flits, met die Pi as die meester en die chip as die slaaf. U maak die volgende verbindings tussen die Pi en u chip (sien die pinouts hierbo vir verskillende AVR's en Pi -uitbreidingspoort om te weet watter penne dit is):

  • Koppel die MOSI (master-out-slave-in) penne aanmekaar
  • Koppel die SCLK (gedeelde klok) penne aan mekaar
  • Verbind die MISO (master-in-slave-out) penne saam met 'n weerstand van 220 Ohm om die Pi te beskerm teen onverwagte hoë spanning van die chip
  • Koppel GPIO 25 op die Pi direk aan die RESET -pen op die chip. Die Pi trek hierdie pen laag by die programmering, dus gebruik ons 'n 10K -weerstand om dit hoog te hou wanneer dit nie geprogrammeer word nie, en 'n LED met 'n 1K -weerstand wat teen positiewe spanning loop om ons goeie visuele terugvoer te gee wanneer dit programmeer.

Ons verbind grond- en kragpenne (3.3V) tussen die Pi en die skyfies wat ons wil programmeer. As u dit nog nie weet nie, is die penne van die Raspberry Pi nie 5V -verdraagsaam nie - dit sal beskadig word as meer as 3,3V daarop verskyn. As die skyfies wat geprogrammeer word om een of ander rede 5V krag benodig, kan ons 'n vlakverskuiver -chip gebruik om die penne van die Pi te beskerm, maar ek het geen probleme ondervind met die gebruik van 3.3V nie - daarom beveel ek aan dat u veilig speel en bespaar op komponente.

Laastens verbind ons 'n 16MHz kristal ossillator oor die XTAL -penne op die chip, wat ons ook via 'n paar 22pF -kondensators met die aarde kan verbind. AVR -skyfies kan op verskillende frekwensies uitgevoer word, en kan ook ingestel word om 'n interne of eksterne bron te gebruik om die frekwensie te bepaal. As u chip 'n eksterne kristal as frekwensiebron gebruik, kan u nie sonder dit herprogrammeer nie. Anders maak dit nie saak of dit daar is nie.

U kan die stroombaan in die laaste prent gebruik as 'n riglyn vir die montering van u skoenlapper aan perfboard. U kan soveel of so min verskillende vorme van IC -voetstukke hê as wat u wil; verbind die toepaslike penne parallel met die Pi en die kristal. N. B. As u die prentjie van my prototipe as 'n riglyn gebruik, moet u daarop let dat ek 'n paar ekstra kopstukke en voetstukke bygevoeg het sodat ek om onverwante redes toegang tot penne op die Pi kon kry.

Stap 2: Installeer en gebruik Avrdude

Avrdude installeer en gebruik
Avrdude installeer en gebruik
Avrdude installeer en gebruik
Avrdude installeer en gebruik
Avrdude installeer en gebruik
Avrdude installeer en gebruik
Avrdude installeer en gebruik
Avrdude installeer en gebruik

Tik net om avrdude op u Pi te installeer

sudo apt-get install avrdude

U moet dan die SPI -koppelvlak aktiveer as dit nog nie aangeskakel is nie. Daar is 'n opdragreël om dit te doen, maar dit is baie makliker om die Raspberry Pi-konfigurasiehulpmiddel te gebruik. Tik

sudo raspi-config

en gaan na Interface Options om SPI aan te skakel.

Om u chip te flits, steek die lintkabel van u Pi in die aansluiting op die perfboard -kring en steek die chip in die toepaslike IC -aansluiting (maak seker dat dit op die regte manier is).

As u 'n program flits, moet u ook seker maak dat die lont in die chip korrek is. Dit is eintlik net stukkies in die chip wat u stel om aan te dui op watter kloksnelheid u moet hardloop, of u die EEPROM moet uitvee tydens die skryf van die chip, ens. U kan die volledige AVR -spesifikasie lees om uit te vind hoe u elke bietjie moet stel, maar dit is baie makliker om die lontrekenaar op engbedded.com/fusecalc te gebruik. Kies die AVR -onderdeelnaam wat u gebruik en kies die gewenste opsies in die gebied "Funksieseleksie". Ek maak gewoonlik net seker dat die klokinstellings reg is en laat die ander dinge by verstek staan. U sal byna altyd 'Seriële programmering geaktiveer' GETOEK en 'Reset gedeaktiveer' ongemerk wil laat, anders kan u die chip nie herprogrammeer nie. As u die regte instellings het, kan u deur die gebied "Huidige instellings" blaai en die AVRDUDE -argumente kopieer soos in die prentjie getoon.

Voer die opdrag in om die sekuriteite in te stel

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p

waar deelnaam ooreenstem met die chip wat u gebruik. U kan die lys met onderdeelname vind deur die tipe sudo ardude -c linuxspi -p? Om u program te flits, maak seker dat dit in u huidige gids is en voer dit in

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flits: w:: i

Na albei opdragte, sal die LED brand terwyl die chip verander word.

Stap 3: Kry Arduino -programme op AVR's

Kry Arduino -programme op AVR's
Kry Arduino -programme op AVR's
Kry Arduino -programme op AVR's
Kry Arduino -programme op AVR's
Kry Arduino -programme op AVR's
Kry Arduino -programme op AVR's

Die belangrikste fokus van hierdie instruksies is om reeds saamgestelde programme op skyfies te flits, nie hoe om dit te skryf of op te stel nie. Ek wou egter verduidelik hoe u binaries met die Arduino IDE kan saamstel en dit op hierdie kaal AVR -skyfies kan kry, aangesien Arduino relatief maklik is om te leer en daar is soveel tutoriale en voorbeelde.

Eerstens moet u inligting byvoeg oor die AVR -skyfies wat u sal flikker, sodat die IDE weet hoe om dit op te stel. James Sleeman het baie nuttig 'n paar opstellêers saamgestel wat op github beskikbaar is. Om dit te gebruik, maak die spyskaart "Voorkeure" in die Arduino IDE oop en klik op die blokkie langs die veld "Bykomende bestuurders -URL's". Kopieer en plak die volgende URL's in die dialoogkassie wat verskyn:

Gaan dan na die menu "Tools" en vind die opsie "Boards Manager …" in die submenu "Board". Rol tot onder in die lys in die dialoogkassie Bestuurders en installeer die DIY ATmega- en DIY ATtiny -borde.

Om u programme saam te stel, moet u eers seker maak dat u die korrekte chip in die menu "Verwerker" gekies het, sowel as die korrekte verwerkersnelheid. Kies die opsie "Gebruik selflaaiprogram: geen", aangesien ons direk met die Pi sal oplaai en dus die ekstra spasie kan gebruik wat normaalweg deur die Arduino -laaiprogram geneem sou word. Klik nou op die knoppie "Verifieer" (die vinkje). Dit sal u program saamstel sonder om dit op te laai (aangesien u die stap self doen).

As alles goed gaan, moet u nou die saamgestelde program na u Pi bring. Die IDE verberg hulle op 'n tydelike plek, aangesien dit ontwerp is om self programme op te laai. Op Windows is dit in AppData/Local/Temp in u gebruikersgids, in 'n gids wat begin met 'arduino_build'. Soek die.hex -lêer - dit is u program! Stuur dit na u Pi via FTP of met 'n USB -stick, en u is besig.

Om dit te doen, benodig u 'n Windows -rekenaar of Mac om u programme saam te stel wat u dan na die Pi stuur. Dit sou regtig glad wees om dit op die Pi self te kan doen, maar ongelukkig is die amptelike weergawe van die Arduino IDE wat beskikbaar is in die Raspbian -bewaarplek redelik oud en beskik nie oor die bestuurder nie. Sonder dit is dit 'n bietjie lastiger om die toepaslike instellings by te voeg om vir kaal AVR's saam te stel. Daar is tutoriale om 'n meer onlangse weergawe van Arduino op u Pi saam te stel - as u dit wil doen, gaan soek dit! Ek voel ook dat dit moontlik is dat die IDE die linuxspi -programmeerder kan gebruik om 'n skyfie binne die IDE self te flits (dit wil sê met die "aflaai" -knoppie), maar dit is my geduld en vaardigheidsvlak te bowe - as u weet 'n manier, plaas dit in die kommentaar! Laastens kan u programme direk in AVR-C skryf en dit op die Pi saamstel met avr-gcc, wat u 'n volledige AVR-ontwikkelingsplatform in die Raspberry Pi gee. Ek het 'n klein bietjie daarvan gedoen, en as jy die pad wil volg, groet ek jou. Raak flitsend!

Aanbeveel: