Talaan ng mga Nilalaman:

Programming ang ATTiny85, ATTiny84 at ATMega328P: Arduino Bilang ISP: 9 Mga Hakbang (na may Mga Larawan)
Programming ang ATTiny85, ATTiny84 at ATMega328P: Arduino Bilang ISP: 9 Mga Hakbang (na may Mga Larawan)

Video: Programming ang ATTiny85, ATTiny84 at ATMega328P: Arduino Bilang ISP: 9 Mga Hakbang (na may Mga Larawan)

Video: Programming ang ATTiny85, ATTiny84 at ATMega328P: Arduino Bilang ISP: 9 Mga Hakbang (na may Mga Larawan)
Video: Programming the new ATtiny from Arduino using UPDI [Beginner Tutorial] 2024, Hulyo
Anonim
Pagprogram ng ATTiny85, ATTiny84 at ATMega328P: Arduino Bilang ISP
Pagprogram ng ATTiny85, ATTiny84 at ATMega328P: Arduino Bilang ISP
Pagprogram ng ATTiny85, ATTiny84 at ATMega328P: Arduino Bilang ISP
Pagprogram ng ATTiny85, ATTiny84 at ATMega328P: Arduino Bilang ISP

Paunang salita

Kamakailan lamang ay bumubuo ako ng ilang mga proyekto sa IoT batay sa ESP8266 at nahanap na ang pangunahing processor ay nagpupumilit na maisakatuparan ang lahat ng mga gawain na kailangan ko upang pamahalaan, kaya't napagpasyahan kong ipamahagi ang ilan sa mga hindi gaanong mahalagang gawain sa ibang (mga) microcontroller sa sa ganitong paraan ay pinapalaya ang ESP8266 upang makapagsimula sa trabahong ito ng pagiging isang aparato ng IoT.

Dahil nais kong mai-publish ang aking proyekto sa malawak na madla hangga't maaari ay pinili kong gamitin ang Arduino IDE bilang platform ng pag-unlad na napili dahil mayroon itong malawak na sinusuportahang komunidad.

Mga hadlang sa Disenyo

Upang maibigay ang isang makatwirang pagkalat ng mga target na aparato na nagpapahintulot sa pagpili ng isang naaangkop na microcontroller para sa aplikasyon na nasa kamay, naayos ko ang mga sumusunod na bahagi ng Atmel; ATMega328P, ATTiny84 at ATTiny85. Upang limitahan ang pagiging kumplikado ng kinakailangang programmer pinilit ko ang pagpili ng orasan sa panloob para sa lahat ng mga aparato at panlabas na 16MHz para lamang sa ATMega328P at ATTiny84.

Ang sumusunod ay isang koleksyon ng mga tala sa pag-program kasama ang Arduino at isang paglalarawan kung paano ko pinagsama ang isang simpleng Arduino Uno based programmer para sa mga aparatong ito (Mga larawan sa itaas).

Anong mga bahagi ang kailangan ko?

Upang mabuo ang programmer kakailanganin mo ang mga sumusunod na bahagi

  1. 1 off Arduino Uno
  2. 2 off 28 pin Zero Insertion Force (ZIF) DIP sockets (upang hawakan ang ATMega328P, ATTiny85, ATTiny84)
  3. 1 off Arduino prototype Shield (Nakuha ko ang mina dito;
  4. 2 off 5MM LEDs
  5. 2 off 1K resistors
  6. 1 off 10K risistor
  7. 4 off 22pF Ceramic capacitors
  8. 2 off 16MHz crystals
  9. 3 off 0.1uF ceramic capacitors
  10. 1 off 47uF Electrolytic Capacitor
  11. 1 off 10uF Electrolytic Capacitor
  12. Iba't ibang mga haba wire wire wrap.

Anong software ang kailangan ko?

Arduino IDE 1.6.9

Anong mga kasanayan ang kailangan ko?

  1. Kaalaman sa Arduino IDE
  2. Ang ilang kaalaman sa electronics at kung paano maghinang
  3. Ang isang mahusay na pakikitungo ng manual na kagalingan ng kamay
  4. Isang karga ng pasensya at magandang paningin

Saklaw ang mga paksa

  1. Pangkalahatang Panimula sa programa ng Atmel Microcontrollers
  2. ISP o Bootloader: Medyo nakalilito ang lahat
  3. Pangkalahatang-ideya ng circuit
  4. Pagse-set up ng iyong programmer
  5. Gamit ang iyong Arduino ISP Programmer
  6. Ang pagbuo ng code sa iyong target na system
  7. Gotchas
  8. Konklusyon
  9. Ginamit na mga sanggunian

Pagwawaksi

Tulad ng dati, ginagamit mo ang mga tagubiling ito sa iyong sariling peligro at hindi sinusuportahan

Hakbang 1: Pangkalahatang Panimula sa Programming Atmel Microcontrollers

Pangkalahatang Panimula sa Programming Atmel Microcontrollers
Pangkalahatang Panimula sa Programming Atmel Microcontrollers
Pangkalahatang Panimula sa Programming Atmel Microcontrollers
Pangkalahatang Panimula sa Programming Atmel Microcontrollers
Pangkalahatang Panimula sa Programming Atmel Microcontrollers
Pangkalahatang Panimula sa Programming Atmel Microcontrollers

Mayroong dalawang pamamaraan na magagamit para sa pagprograma ng mga Atmel microcontroller;

  1. Sa System Programming (ISP),
  2. Self Programming (sa pamamagitan ng isang bootloader).

Ang dating pamamaraan (1) ay direktang nag-program ng microcontroller sa pamamagitan ng interface ng SPI pagkatapos unang ilagay ang aparato sa pag-reset. Maliban kung itinuro kung hindi man ang isang naipong maipapatupad na mapagkukunang programa ay nakasulat sa aparato nang paitaas sa code ng memorya mula sa kung saan ito isinasagawa sa pagsisimula. Maraming mga aparatong ISP na may kakayahang mag-program ng mga aparatong Atmel, ilan sa mga ito ay (larawan 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Ipinapakita ng larawan 2 kung paano kumokonekta ang aparato ng ISP sa ATMega328P (kakaibang minarkahang ICSP) sa Arduino Uno R3 board (binibigyan ng pic 3 ang ISP pin out). Posible ring magprogram ng isang Atmel microcontroller sa pamamagitan ng interface ng SPI na gumagamit ng isang Arduino Uno bilang ISP (larawan 4), narito ang Uno na ginagamit upang magprograma ng isang ATMega328P.

Ang huling pamamaraan (2) ay gumagamit ng isang maliit na code rint na kilala bilang isang 'bootloader' na permanenteng residente sa maipapatupad na memorya ng code (karaniwang naka-lock upang maiwasan ang hindi sinasadyang pag-overtake ng larawan 5). Ang code na ito ay naisakatuparan unang bagay sa power up o pag-reset ng aparato at pinapayagan ang microcontroller na muling i-program ang sarili nito sa bagong code na natanggap sa pamamagitan ng isa sa mga interface mula sa isang mapagkukunang panlabas sa sarili. Ang pamamaraan ng bootloader ay ginagamit ng Arduino IDE upang muling mai-program ang Arduinos na nai-map bilang isang USB comm port sa PC (O MAC, Linux box at iba pa, larawan 6) at sa kaso ng Arduino Uno ay nakikipag-usap sa aparato ng Atmel sa pamamagitan nito serial interface sa IC Pins 2 at 3 ng ATMega328P. Gayundin ang Arduino Uno (na tinanggal ang micrcontroller ng ATMega328P) ay maaaring magamit upang mai-program ang isang ATMega328P sa pamamagitan ng pamamaraang bootloader na mabisang kumikilos bilang isang USB sa serial adapter device (larawan 7).

Ano ang isang USB sa serial adapter?

Ang isang USB sa serial adapter ay isang piraso ng hardware na kung saan naka-plug sa iyong PCs USB port at mukhang isang serial com port (isang legacy mula sa naunang mga oras kapag ang mga computer ay gumamit ng isang pamantayang serial na komunikasyon na kilala bilang EIA-232, V24 o RS232) na nagpapahintulot sa iyo na magpadala at tumanggap ng serial data sa parehong antas ng elektrikal ng microcontroller. Kapag Pinili Mo ang Mga Tool -> Port -> COMx mula sa Arduino IDE ikinokonekta / hinaharap mo ang iyong PC sa iyong Arduino.

Ang isang aparato tulad nito ay minsan tinutukoy bilang isang FTDI (larawan 8, na kung saan ay isang tatak na pangalan) o CH340G atbp. Ang USB sa serial sa Arduino uno ay nakakamit sa pamamagitan ng isang ATMega16U2-MU (R) IC ZU4 tulad ng sa Arduino Schematic sa ibaba.

Para sa kalinawan larawan 9 kinikilala ang dalawang mga aparato ng Atmel at ang kani-kanilang mga konektor ng ISP sa Arduino Uno R3.

Tandaan 1: Kung pipiliin mong bumaba sa ruta ng aparato ng FTDI matiyak na bumili ka mula sa isang kagalang-galang na nagbebenta dahil maraming mga murang pekeng aparato sa merkado na nabigo sa pag-apply ng isang pag-update sa windows.

Inirerekumendang: