Orodha ya maudhui:

Standalone Arduino 3.3V W / Saa ya nje ya 8 MHz Iliyopangwa Kutoka Arduino Uno Kupitia ICSP / ISP (pamoja na Ufuatiliaji wa Siri!): Hatua 4
Standalone Arduino 3.3V W / Saa ya nje ya 8 MHz Iliyopangwa Kutoka Arduino Uno Kupitia ICSP / ISP (pamoja na Ufuatiliaji wa Siri!): Hatua 4

Video: Standalone Arduino 3.3V W / Saa ya nje ya 8 MHz Iliyopangwa Kutoka Arduino Uno Kupitia ICSP / ISP (pamoja na Ufuatiliaji wa Siri!): Hatua 4

Video: Standalone Arduino 3.3V W / Saa ya nje ya 8 MHz Iliyopangwa Kutoka Arduino Uno Kupitia ICSP / ISP (pamoja na Ufuatiliaji wa Siri!): Hatua 4
Video: How to operate Atmega328P (Arduino) IC on 3.3v? 2024, Novemba
Anonim
Standalone Arduino 3.3V W / Saa ya nje ya 8 MHz Iliyopangwa Kutoka Arduino Uno Kupitia ICSP / ISP (pamoja na Ufuatiliaji wa Siri!)
Standalone Arduino 3.3V W / Saa ya nje ya 8 MHz Iliyopangwa Kutoka Arduino Uno Kupitia ICSP / ISP (pamoja na Ufuatiliaji wa Siri!)
Standalone Arduino 3.3V W / Saa ya nje ya 8 MHz Iliyopangwa Kutoka Arduino Uno Kupitia ICSP / ISP (pamoja na Ufuatiliaji wa Siri!)
Standalone Arduino 3.3V W / Saa ya nje ya 8 MHz Iliyopangwa Kutoka Arduino Uno Kupitia ICSP / ISP (pamoja na Ufuatiliaji wa Siri!)

Malengo:

  • Kuunda Arduino iliyosimama ambayo hutumia 3.3V kuzima saa ya nje ya 8 MHz.
  • Ili kuipanga kupitia ISP (pia inajulikana kama ICSP, vipindi vya mzunguko wa mzunguko) kutoka kwa Arduino Uno (inayoendesha saa 5V)

    Kuhariri faili ya bootloader na kuchoma bootloader (kupitia ISP)

  • Ili kuweza kusoma habari ya mfululizo kutoka kwa Arduino ya pekee kupitia kebo ya FTDI

    Ili kuweza kusoma habari mfululizo kutoka kwa standlaone Arduino bila kebo ya FTDI

Utangulizi:

Nilikuwa najaribu kujenga mradi wangu wa kibinafsi lakini sikuona miongozo yoyote ya kina juu ya kuendesha, kupanga programu, na ufuatiliaji wa Standalone Arduino - haswa ile inayotumia saa ya nje ya 8Mhz na 3.3V na iliyowekwa na Arduino UNO. Nimekusanya miongozo kadhaa tofauti na nimejaribu kutaja mahali nilipopata habari kutoka kutoa sifa pale ambapo deni linastahili. Mwongozo huu ni matokeo ya siku nyingi kutafuta suluhisho na kupata sehemu zake wakati nilikuwa naunda mradi wangu mwenyewe. Pia, nimeunganisha bidhaa kadhaa muhimu ambazo zingekuja sio kwa sababu nina uhusiano na yoyote ya kampuni, lakini kwa sababu ni muhimu kujumuisha vitu maalum ninavyorejelea.

Maswali ya kawaida kabla ya kuanza:

Kwa nini unahitaji kuipanga na ISP na ufuatilie kupitia FTDI? Kwa nini huwezi kuipanga tu kupitia FTDI?

Tutalazimika kubadilisha mipangilio ya fuse kwa kuchoma bootloader mpya na huwezi kufanya hivyo kupitia mawasiliano ya serial. Lazima uchome bootloader kupitia ISP. Hii pia ni muhimu kwa wale ambao hawana chip ya ATMEGA328 iliyowekwa tayari.

Kwa nini situmii tu kebo ya ISP na ufuatiliaji wa serial, kama hii?

Labda, kama mimi, unatokea tu kuwa unayo na badala ya kungojea moja kusafirishwa utapenda kutumia kile ulicho nacho! Nina bahati ya kuwa na kebo ya FTDI (ingawa utapata mwishowe hauitaji hata: inafanya maisha yako kuwa rahisi).

Je! Siitaji mabadiliko ya kiwango cha mantiki kutoka Uno hadi Arduino ya kawaida?

Ndio, unafanya, lakini nitakuonyesha jinsi ya kutengeneza mwenyewe. Kama kebo ya ISP, mimi sina moja.

Ninataka kuikomesha kwa nguvu ya nje. Ninawezaje kufanya hivyo?

Kuna miongozo mingi inayoonyesha jinsi ya kutumia Arduino ya kawaida kutoka kwa nguvu ya betri. Nitaandika jinsi nilivyofanya na kuiunganisha hapa [nitaingiza baadaye].

MWONGOZO

Hatua ya 1: Kujenga Standalone Arduino

Kujenga Standalone Arduino
Kujenga Standalone Arduino
Kujenga Standalone Arduino
Kujenga Standalone Arduino

1) Jenga Arduino iliyosimama kutoka kwa kiunga hiki. Sehemu pekee ya mwongozo unaohitaji ni "Misingi ya ATMEGA8 / 168/328".

  • unaweza kuwasha Arduino iliyosimama kutoka 3.3V nje ya Arduino Uno. (Unaweza kuruka sehemu ya kwanza ya mafunzo yenye kichwa "Kuongeza mzunguko kwa usambazaji wa umeme."
  • Badilisha saa 16 MHz na saa 8 Mhz.
  • Ongeza kofia 0.1 za uF kati kati ya: VCC na Gnd (pande zote mbili) VRef na Gnd.

    • Sina hizi zilizojumuishwa kwenye picha lakini ninao katika miradi yangu!
    • Najua ni oscillator ya 16 MHz kwenye picha. Nilichukua picha kabla ya kugundua kila kitu nilichofanya kwenye mwongozo!

Chanzo cha picha cha ATMEGA328p hapa.

Vidokezo vya kawaida vya Utatuzi

  • Hakikisha umeweka upya juu kupitia kontena la 10k kutoka VCC kubandika 1 ya ATMEGA. Ikiwa pini imewekwa chini au inaelea haitafanya kazi.
  • Angalia mara mbili kuwa umeingiza waya na oscillator kwa usahihi.
  • Hakikisha unatumia capacitors 22pF kwa oscillator ya 8 MHz. Haitafanya kazi vinginevyo.
  • Hakikisha kifaa kinatumiwa.

Hatua ya 2: ISP Wiring

Wiring wa ISP
Wiring wa ISP
Wiring wa ISP
Wiring wa ISP

2) Unda sehemu ya ISP

Utafuata mwongozo huu hapa na hatua ndogo lakini muhimu sana.

Sababu huwezi kufuata mwongozo tu kwa sababu unakosa sehemu muhimu: huwezi kupanga kifaa cha 3.3V moja kwa moja kutoka kwa unganisho la 5V. (Angalau, sikuweza: haiwezi kufanya kazi mpaka nitafanya hivi). Unahitaji kuingiza shifter ya kiwango cha mantiki ambayo hubadilisha ishara za 5V kutoka UNO kwenda 3.3Vstandalone Arduino.

Ikiwa huna bodi ya shifter ya kiwango cha mantiki, unaweza kutengeneza moja kwa kutumia vipinga. Shifter ya kiwango cha mantiki ni kweli (maadamu unabadilika chini) ni msuluhishi wa voltage. Utahitaji vipingamizi 6 sawa, hakuna cha juu sana au cha chini sana. Nilitumia vipingao 220 ohm, lakini nina hakika hata vipingaji 10k vitafanya kazi.

Kwa SCK (pini ya dijiti 13) na MOSI (pini ya dijiti 11), tumia mgawanyiko wa voltage kupunguza voltage kwa theluthi moja. Kwa asili utakuwa na Uno SCK moja na MOSI, halafu kipinga (220 ohm), halafu SCK na MOSI imeunganishwa na arduino ya kusimama na 2 vipinga (440 ohm jumla) chini.

Kwa hivyo, soma mwongozo uliounganishwa mwanzoni mwa sehemu hii, lakini ujumuishe mgawanyiko wa voltage kati ya SCK na MOSI. Kumbuka, SCK, MISO, MOSI, na RESET ni pini 13, 12, 11, na 10 kwenye Uno lakini ni pini 19, 18, 17, na 1 kwenye Arduino pekee!

Vidokezo vya kawaida vya Utatuzi

  • ANGALIA Wiring

    • Ikiwa unapata saini ya kifaa ya wote 0 wakati unajaribu kuandika programu, basi wiring yako iko karibu kabisa, au Arduino ya pekee haipati nguvu.
    • Pia, hakikisha kuwa unayo waya ya kuweka upya kutoka 10 kwenye Uno hadi 1 kwenye Arduino ya kawaida
  • ANGALIA WAGAWANISHI WA SAUTI

    Hakikisha una mgawanyiko wa voltage na uwiano wa 1: 2 (upande wa juu: upande wa chini) kwa vipingamizi kwa SCK na MOSI zote mbili. Mfano. kontena 220 upande wa + 5v halafu vipingamizi 2 220 ohm (440 ohm jumla) kuelekea ardhini na ishara kuelekea Arduino iliyosimama katikati

Hatua ya 3: Hariri Faili ya Bootloader, Choma Bootloader, na Pakia Mchoro wako

Hariri Faili ya Bootloader, Choma Bootloader, na Pakia Mchoro wako
Hariri Faili ya Bootloader, Choma Bootloader, na Pakia Mchoro wako
Hariri Faili ya Bootloader, Choma Bootloader, na Pakia Mchoro wako
Hariri Faili ya Bootloader, Choma Bootloader, na Pakia Mchoro wako

3) Hariri faili ya bootloader (board.txt) na uchome bootloader kwa Arduino ya pekee. Pakia mchoro wako

Kuhariri faili ya bootloader

Ili kupata Arduino ya pekee inayoendesha, itabidi uhariri mipangilio ya fuse ya brownout ya bootloader. Vinginevyo, utaweza kuchoma bootloader juu yake lakini hautaweza kutekeleza michoro yoyote.

Unaweza kuondoa utambuzi wa brownout kabisa, lakini sikuipendekeza. Badala yake, tutaipunguza kutoka 2.7V (kile kilichokuja kwenye chip yangu kama chaguo-msingi) na kuibadilisha na 1.8V. Mwishowe, hata hivyo, unaweza kuchagua mipangilio ya kahawia unayotaka kwa kutumia kikokotoo cha fuse hapa.

Faili yangu ya bodi ilikuwa katika eneo lifuatalo:

C: / Program Files (x86) Arduino / vifaa / arduino / avr

Walakini, unaweza kuwa na faili zaidi ya moja ya board.txt kwenye folda yako ya vifaa vingine isipokuwa / arudino /. Utakuwa ukibadilisha faili ya board.txt katika / arduino / eneo kwa sababu utabadilisha sehemu ya ATMEGA328p (3.3V, 8 MHz).

Unaweza kupoteza faili ya bodi.txt iliyohaririwa ikiwa utaweka tena au kusasisha IDE ya Arduino (kulingana na chapisho hili). Hii inamaanisha kuwa ikiwa unasasisha IDE ya Arduino, itabidi ubadilishe mipangilio hii tena ikiwa unataka kuunda nyingine sawa ya Arduino.

Katika faili ya board.txt, songa chini au utafute "Pro Mini". Sehemu hiyo ina jina "pro.name = Arduino Pro au Pro Mini". Nenda chini kwa kifungu kidogo "pro.menu.cpu.8MHzatmega328 = ATmega328P (3.3V, 8 MHz)".

Tafuta laini inayosema "pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _"

Badilisha mipangilio kuwa xFE. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).

Hifadhi na uondoke.

Kuungua Bootloader

Mara tu unapofanya hivi, unaweza kufuata sehemu ya "Maagizo" kwenye mwongozo wa ISP kutoka hatua 1 hadi 5.

Baadhi ya mambo ya kufafanua:

  • Wakati unapakia mchoro wa "Arduino kama ISP", unahitaji kuhakikisha kuwa una bandari sahihi ya COM na processor iliyochaguliwa.

    Katika kesi hii, inamaanisha kuwa umechagua bandari ya COM ya Arduino yako katika Zana-> Bandari: COM X (Arduino Uno) na bodi ni Arduio Uno

  • Chagua programu sahihi: chini ya Zana-> Programu-> Arduino kama ISP.

    SI ArduinoISP au ArduinoISP.org

  • Kabla ya kuchoma bootloder, badilisha ubao "Pro au Pro Mini" na Prosesa kuwa "ATMEGA328p (3.3V, 8 MHz)".

    Hutaona sehemu ya processor mpaka uchague aina sahihi ya bodi

Choma bootloader kwenye Arduino iliyosimama KABLA ya kujaribu kuandika michoro juu yake.

Inapakia mchoro

Hii ni muhimu sana. Sasa unaweza kupanga Arduino: Uno na Standalone. Ikiwa haupaki kwenye kifaa sahihi, lazima urudie sehemu hapo juu na uandike tena Arduino kama mpango wa ISP kwenye Uno.

Unapopakia mchoro wako, hakikisha unabofya Zana -> Pakia ukitumia programu au ubonyeze Ctrl + Shift + U. Unaweza pia kushikilia zamu na bonyeza ikoni ya mshale, lakini usibonyeze ikoni ya mshale bila kushikilia kuhama.

Vidokezo vya kawaida vya Utatuzi

  • Washa pato la kitenzi kwa utatuzi.
  • "Signatuere ya kifaa ni yote ya 0!" [Hili linawezekana kutokea.]

    • angalia sehemu ya ISP Wiring. Labda umeunganisha waya wa pekee Arduino vibaya au haiwashwa.
    • Hakikisha umechagua bandari sahihi ya COM na bodi / processor. Unapochoma bootloader, LAZIMA uhakikishe unaungua Pro Mini 3.3V 8 MHz bootloader juu yake au fuses hazitaweka sawa.
  • "Nimebadilisha faili ya bodi.txt lakini sioni mabadiliko"

    Hakikisha umebadilisha faili sahihi ya bodi.txt. Jaribu kusasisha IDE ya Arduino ikiwa mabadiliko hayafanyi kazi, au ondoa folda zingine kwenye / vifaa / folda yako kwa muda

  • "Siwezi kupata sehemu ndogo ya bodi.txt!"

    Hauangalii faili ya bodi.txt sahihi. Angalia Arduino // vifaa / arduino / folda

Hatua ya 4: Mawasiliano ya serial

4) Fuatilia kifaa kilichosimama kupitia mawasiliano ya serial

Kwa kweli unaweza kufanya hivi kupitia njia 2, kwa hivyo ikiwa huna hata bodi ya waya / kuzuka ya FTDI sio mwisho wa ulimwengu. Na kumbuka, mchoro uliopakia kwenye Arduino ya pekee lazima iwe na taarifa za Serial.print ili usome: ikiwa haukuiandika kwenye programu, hautaona chochote!

Ikiwa hauna kebo ya FTDI

Baada ya kuchoma bootloader na kuandika programu unayotaka, unaweza (kwa uangalifu sana na kukumbuka mwelekeo gani unarudi nyuma) kuondoa chip ya ATMEGA328 DIP kutoka Arduino Uno. Ninapendekeza kutumia flathead kwa hili.

Unaweza kuunganisha RX ya pekee ya Rduino kwa RX ya Uno na TX hadi TX. Ndio, kawaida ni kinyume, lakini unaweza kufikiria Uno kama "kupeleka" habari kwa mfuatiliaji wa mfululizo wa IDE. Ndio sababu hauunganishi RX na TX na TX ro RX katika kesi hii. Unapoendesha programu yako, hakikisha una bandari ya COM ya Arduino Uno iliyochaguliwa na kufungua montor serial. Utaweza kuona pato la serial ya Arduino ya standaone.

(Suluhisho hili linajulikana kwa Robin2 hapa.)

Ikiwa unayo kebo / bodi ya FTDI

(Ninatumia bodi ya FTDI ya Sparkfun ambayo nimebadilisha kuwa 3.3V nikitumia pedi ya solder nyuma)

Unganisha tu GND ya bodi ya kuzuka na ardhi ya Arduino ya kawaida na unganisha RX ya kuzuka kwa TX na Arduino ya TX na RX. (Ikiwa wewe ni Ufuatiliaji wa mfululizo tu na hauandiki chochote nyuma, unaweza tu kuunganisha RX ya ubao wa mkate na Arduino TX).

Kumbuka wakati huu una chaguo la kuwezesha Arduino ya pekee kupitia Uno au Cable ya FTDI. Usiunganishe vyanzo vyote vya nguvu kwa wakati mmoja! Kumbuka kuwa itabidi ubadilishe bandari ya COM kwani itakuwa tofauti na bandari ya Arduino Uno COM.

Vidokezo vya kawaida vya Utatuzi

  • "Sioni chochote!"

    • Angalia ikiwa una bandari sahihi ya COM iliyowezeshwa.
    • Angalia ikiwa una madereva ya hivi karibuni ya FTDI.
    • HAKIKISHA NCHI INAUNGANISHWA.
  • "Ninachokiona ni pato la taka kwenye mfuatiliaji wa serial!"

    • Unapata kitu ambacho ni ishara nzuri.
    • Walakini, angalia voltage ya bodi ya FTDI.
    • Standalone Arduino inatoa 3.3V kwenye TX na bodi ya FTDI haiwezi kuichukua ikiwa inatarajia 5v.
    • Angalia kiwango cha baud.
    • Hakikisha umeunganishwa ardhini na chanzo kimoja tu cha nguvu kimeunganishwa! (Yaani sitoi nguvu Arduino ya pekee kutoka kwa Uno NA bodi yako ya FTDI.

Ilipendekeza: