Мазмуну:

Өз алдынча Arduino 3.3V W / Тышкы 8 МГц сааты Arduino Uno аркылуу ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!): 4 кадам
Өз алдынча Arduino 3.3V W / Тышкы 8 МГц сааты Arduino Uno аркылуу ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!): 4 кадам

Video: Өз алдынча Arduino 3.3V W / Тышкы 8 МГц сааты Arduino Uno аркылуу ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!): 4 кадам

Video: Өз алдынча Arduino 3.3V W / Тышкы 8 МГц сааты Arduino Uno аркылуу ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!): 4 кадам
Video: Как получить дополнительные 5 В (или 3,3 В для плат 3,3 В) и вывод GND от Arduino 2024, Июль
Anonim
Өз алдынча Arduino 3.3V W / Тышкы 8 МГц сааты Arduino Uno тарабынан ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!)
Өз алдынча Arduino 3.3V W / Тышкы 8 МГц сааты Arduino Uno тарабынан ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!)
Өз алдынча Arduino 3.3V W / Тышкы 8 МГц сааты Arduino Uno аркылуу ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!)
Өз алдынча Arduino 3.3V W / Тышкы 8 МГц сааты Arduino Uno аркылуу ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!)

Максаттар:

  • 8 МГц тышкы сааттан 3.3V менен иштеген өз алдынча Arduino куруу үчүн.
  • Аны ISP аркылуу программалоо үчүн (ICSP катары да белгилүү), Arduino Uno (5Vде иштеген)

    Жүктөөчү файлды түзөтүү жана жүктөгүчтү өрттөө үчүн (ISP аркылуу)

  • FTDI кабели аркылуу өз алдынча Arduinoдон сериялык маалыматты окуй алуу

    FTDI кабели жок туруп Arduino -дан сериялык маалыматты окуй алуу

Кириш сөз:

Мен өзүмдүн жеке долбоорумду курууга аракет кылып жаткам, бирок Ардуинонун чуркоо, программалоо жана байкоо боюнча эч кандай комплекстүү көрсөтмөлөрдү көргөн жокмун - айрыкча 8Mhz тышкы сааты менен 3.3V иштеп, Arduino UNO тарабынан программаланган. Мен бир нече өзүнчө гиддерди бириктирдим жана кредит төлөнө турган жерге кредит берүү үчүн маалыматты кайдан алгандыгымды айтууга аракет кылдым. Бул колдонмо көптөгөн күндөрдүн жыйынтыгы болуп саналат, мен өз долбоорумду куруп жатканда, анын бөлүктөрүн бир убакта издеп таптым. компаниялар, бирок мен айтып жаткан конкреттүү нерселерди кошуу актуалдуу болгондуктан.

Баштоодон мурун жалпы суроолор:

Эмне үчүн аны ISTD менен программалоо жана FTDI аркылуу көзөмөлдөө керек? Эмне үчүн аны FTDI аркылуу программалай албайсыз?

Биз жаңы жүктөгүчтү күйгүзүп, сактандыруучу жөндөөлөрдү өзгөртүүгө туура келет жана муну сериялык байланыш аркылуу кыла албайсыз. Сиз провайдер аркылуу жүктөгүчтү өрттөшүңүз керек. Бул ATMEGA328 чипи алдын ала жүктөлбөгөндөр үчүн дагы пайдалуу.

Эмнеге ушул сыяктуу сериялык мониторинги бар ISP кабелин колдонбойм?

Балким, мага окшоп, сизде бирөө жок болуп калат жана анын жөнөтүлүшүн күтпөстөн, сизде бар нерсени колдонууну каалайсыз! Менде FTDI кабели бар (бирок акыры сизге кереги жок болот, бирок бул сиздин жашооңузду жеңилдетет).

Мага Unoдон өз алдынча Arduinoго логикалык деңгээлди алмаштыргычтын кереги жокпу?

Ооба, сиз жасайсыз, бирок мен сизге аны кантип жасоону көрсөтөм. ISP кабели сыяктуу эле, менде жок.

Мен аны тышкы кубаттан ажыраткым келет. Мен муну кантип кылам?

Батарея кубатынан өзүнчө Arduino кантип иштөө керек экенин көрсөткөн көптөгөн колдонмолор бар. Мен муну кантип кылганымды жазып, бул жерге шилтеме кылам [кийинчерээк киргизем].

ГИД

1 -кадам: Өз алдынча Arduino куруу

Автономдуу Arduino куруу
Автономдуу Arduino куруу
Автономдуу Arduino куруу
Автономдуу Arduino куруу

1) Бул шилтемеден өз алдынча Arduino куруңуз. Колдонмонун бир гана бөлүгү сизге керек "ATMEGA8/168/328 Негиздери".

  • сиз Arduino Uno ичинен 3.3Vдан көз карандысыз Arduino кубаттай аласыз. (Сиз үйрөткүчтүн "Энергия менен камсыздоо үчүн циркуляцияны кошуу" деп аталган биринчи бөлүмүн өткөрүп жибере аласыз.
  • 16 МГц саатты 8 МГц саат менен алмаштырыңыз.
  • Арасына 0.1 uF капкактарын кошуңуз: VCC жана Gnd (эки жагы) VRef жана Gnd.

    • Менде булар сүрөттө жок, бирок менин долбоорлорумда бар!
    • Мен билем, бул сүрөттөгү 16 МГц осциллятор. Колдонмодо эмне кылганымдын баарын түшүнгөнгө чейин мен сүрөткө түштүм!

ATMEGA328p pinout сүрөт булагы бул жерде.

Кыйынчылыктарды оңдоонун жалпы кеңештери

  • ATMEGAнын 1 пинине VCCден 10k каршылыгы аркылуу жогорку орнотууну орнотканыңызга ишениңиз. Эгерде пин жерге коюлса же калкып турса, ал иштебейт.
  • Зымдарды жана осцилляторду туура киргизгениңизди эки жолу текшериңиз.
  • 8 МГц осциллятору үчүн 22pF конденсаторлорун колдонгонуңузга ишениңиз. Башкача иштебейт.
  • Түзмөктүн кубатталганын текшериңиз.

2 -кадам: ISP зымдары

ISP Wiring
ISP Wiring
ISP Wiring
ISP Wiring

2) ISP бөлүгүн түзүү

Сиз бул колдонмону бул жерде кичинекей, бирок абдан маанилүү кадам менен ээрчип жүрөсүз.

Жетекчиликти ээрчий албагандыгыңыздын себеби, сиз маанилүү бөлүктү жоготуп жатасыз: сиз 3.3V түзмөгүн 5В туташууларынан түз программалай албайсыз. (Жок дегенде, мен кыла алган жокмун: муну кылмайынча иштебейт). Сиз 5V сигналдарын БУУдан 3.3Vstandalone Arduinoго которгон логикалык деңгээлди алмаштыргычты киргизишиңиз керек.

Эгерде сизде логикалык деңгээлди алмаштыруучу такта жок болсо, аны резисторлорду колдонуп жасай аласыз. Бардык логикалык деңгээлди алмаштыруучу чындыгында (сиз ылдый жылып жатканча) чыңалуу бөлүштүргүч. Сизге 6 эле резистор керек, өтө бийик же өтө төмөн. Мен 220 омдук резисторлорду колдондум, бирок 10k каршылыгы да иштээрине ишенем.

SCK (санарип пин 13) жана MOSI (санарип пин 11) үчүн чыңалууну үчтөн бир бөлүккө кыскартуу үчүн чыңалуу бөлүштүргүчтү колдонуңуз. Негизи сизде бир Uno SCK жана MOSI, андан кийин резистор (220 ом), андан кийин SCK жана MOSI өз алдынча Arduino менен туташкан жана 2 резистор (бардыгы 440 ом) жерге ээ болот.

Ошентип, бул бөлүмдүн башында шилтемени окуңуз, бирок SCK менен MOSIдин ортосундагы чыңалуу бөлүштүргүчтөрүн эске алыңыз., 18, 17 жана 1 автономдуу Arduino!

Кыйынчылыктарды оңдоонун жалпы кеңештери

  • ЗАМАНДЫ ТЕКШЕРҮҮ

    • Эгерде сиз программаны жазууга аракет кылып жатып, баарынын 0 белгисине ээ болгон түзмөктүн колтамгасын алсаңыз, анда сиздин зымыңыз дээрлик өчүп калган же өзүнчө Arduino кубат албай жатат.
    • Ошондой эле, баштапкы абалга келтирүү зымынын Uno боюнча 10дон 1 Arduino -го чейин болгонун текшериңиз
  • Чыңалуу бөлгүчтөрүн текшериңиз

    SCK жана MOSI үчүн резисторлор үчүн 1: 2 (жогорку жагы: төмөнкү жагы) катышы бар чыңалуу бөлгүчтөрүңүз бар экенине ишениңиз. Мисалы +5v тарабында 220 каршылыгы, андан кийин 2 220 омдук резистор (бардыгы 440 ом) жерге карай сигнал менен ортодо өзүнчө Arduino

3 -кадам: Жүктөөчү файлды түзөтүңүз, Жүктөгүчтү күйгүзүңүз жана Эскизиңизди жүктөңүз

Жүктөөчү файлды түзөтүңүз, жүктөгүчтү күйгүзүңүз жана эскизиңизди жүктөңүз
Жүктөөчү файлды түзөтүңүз, жүктөгүчтү күйгүзүңүз жана эскизиңизди жүктөңүз
Жүктөөчү файлды түзөтүңүз, жүктөгүчтү күйгүзүңүз жана эскизиңизди жүктөңүз
Жүктөөчү файлды түзөтүңүз, жүктөгүчтү күйгүзүңүз жана эскизиңизди жүктөңүз

3) Жүктөгүч (board.txt) файлын түзөтүп, жүктөгүчтү өз алдынча Arduinoго күйгүзүңүз. Эскизиңизди жүктөңүз

Жүктөөчү файлды түзөтүү

Өз алдынча Arduino иштеши үчүн, жүктөгүчтүн браузердик сактандыруучу жөндөөлөрүн түзөтүшүңүз керек. Болбосо, сиз жүктөгүчтү күйгүзө аласыз, бирок эч кандай эскиздерди иштете албайсыз.

Сиз караңгы аныктоону толугу менен алып салсаңыз болот, бирок мен аны сунуштабайт элем. Анын ордуна, биз аны 2.7Vдан түшүрөбүз (менин чипимде демейки нерсе) жана аны 1.8V менен алмаштырабыз. Акыр -аягы, бирок, бул жерде сактандыруучу эсептегичти колдонуу менен, сиз каалаган brownout орнотууларын тандай аласыз.

Менин тактайлар файлым төмөнкү жерде болгон:

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

Бирок, сиздин аппараттык папкаңызда /arudino /файлынан башка бир нече board.txt файлы болушу мүмкүн. Сиз ATMEGA328p (3.3V, 8 МГц) бөлүмүн өзгөртүп жаткандыктан, / arduino / жеринде board.txt файлын түзөтөсүз.

Эгерде сиз Arduino IDEди кайра орнотуп же жаңыртсаңыз, түзөтүлгөн board.txt файлын жоготуп алышыңыз мүмкүн (бул билдирүүгө ылайык). Бул эгер сиз Arduino IDEди жаңыртсаңыз, анда ушул эле башка Arduino түзүүнү кааласаңыз, бул орнотууларды кайра өзгөртүүгө туура келет.

Board.txt файлында ылдый жылдырып же "Pro Mini" издеңиз. Бөлүм "pro.name = Arduino Pro же Pro Mini" деп аталат. "Pro.menu.cpu.8MHzatmega328 = ATmega328P (3.3V, 8 MHz)" бөлүмүнө ылдый жылдырыңыз.

"Pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _" деген сапты издеңиз.

Орнотууларды xFE кылып өзгөртүңүз. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).

Сактоо жана чыгуу.

Жүктөгүчтү күйгүзүү

Муну аткаргандан кийин, 1ден 5ке чейин ISP колдонмосундагы "Нускамалар" бөлүмүн аткарсаңыз болот.

Түшүндүрүү үчүн кээ бир нерселер:

  • "Arduino провайдер катары" эскизин жүктөп жатканда, сизде туура COM порту жана процессор тандалган болушу керек.

    Бул учурда, бул сиздин Ардуинонун COM портун Tools-> Port: COM X (Arduino Uno) ичинен тандап алдыңыз дегенди билдирет жана такта Arduio Uno

  • Туура программистти тандаңыз: Tools-> Programmer-> Arduino катары ISP катары.

    ЭМЕС ArduinoISP же ArduinoISP.org

  • Жүктөөчү терезени күйгүзүүдөн мурун, "Pro or Pro Mini" тактасын жана процессорун "ATMEGA328p (3.3V, 8 MHz)" кылып өзгөртүңүз.

    Такта түрүн туура тандамайынча, процессор бөлүмүн көрбөйсүз

Жүктөгүчтү эскиздерди жазуудан мурун өзүнчө Arduinoго күйгүзүңүз.

Эскиз жүктөлүүдө

Бул абдан маанилүү. Эми сиз Arduino: Uno жана Standalone программаларын жасай аласыз. Эгерде сиз туура түзмөккө жүктөбөсөңүз, анда жогорудагы бөлүмдү кайталап, Unduдо ISP программасы катары Arduino деп кайра жазышыңыз керек.

Эскизди жүктөп жатканда, Tools -> Программистти колдонуп жүктөө ЖЕ Ctrl+Shift+U баскычтарын чыкылдатыңыз. Сиз ошондой эле сменаны кармап, жебенин сүрөтчөсүн чыкылдата аласыз, бирок сменаны кармабастан жебе сүрөтчөсүн чыкылдатпаңыз.

Кыйынчылыктарды оңдоонун жалпы кеңештери

  • Мүчүлүштүктөрдү оңдоо үчүн кеңири чыгууну күйгүзүңүз.
  • "Түзмөктүн кол тамгасы бардыгы 0!" [Бул болушу мүмкүн.]

    • ISP Wiring бөлүмүн караңыз. Же сиз өз алдынча Arduino -ны туура эмес туташтырдыңыз же ал күйгүзүлгөн жок.
    • Туура COM портун жана тактаны / процессорду тандаганыңызды текшериңиз. Жүктөгүчтү күйгүзүп жатканда, сиз Pro Mini 3.3V 8 MHz жүктөгүчүн күйгүзүп жатканыңызды камсыз кылышыңыз керек же сактандыргычтар туура эмес орнотулган.
  • "Мен board.txt файлын түзөттүм, бирок түзөтүүлөрдү көрбөйм"

    Туура board.txt файлын түзөткөнүңүздү текшериңиз. Эгерде түзөтүүлөр иштебесе, Arduino IDEди жаңыртып көрүңүз же / жабдыктарыңыздагы / папкаңыздагы башка папкаларды убактылуу алып салыңыз

  • "Мен board.txtтин про мини бөлүмүн таба албайм!"

    Сиз туура board.txt файлын издеп жаткан жоксуз. Arduino // аппараттык/arduino/папканы текшериңиз

4 -кадам: Сериялык байланыш

4) Сериялык байланыш аркылуу өз алдынча түзмөктү көзөмөлдөө

Сиз муну 2 ыкма аркылуу жасай аласыз, андыктан сизде FTDI кабели жок болсо, анда бул дүйнөнүн акыры эмес. Эсиңизде болсун, сиз жалгыз Arduinoго жүктөгөн эскизде Serial.print билдирүүлөрү болушу керек: эгер сиз аны программада жазбасаңыз, анда эч нерсе көрбөйсүз!

Эгерде сизде FTDI кабели жок болсо

Жүктөгүчтү күйгүзүп, каалаган программаңызды жазгандан кийин, сиз (абдан кылдаттык менен жана кайсы багытта экенин эстеп) ATMEGA328 DIP чипин Arduino Unoдон алып салсаңыз болот. Бул үчүн жалпак башты колдонууну сунуштайм.

Сиз standaloneArduino RXти Uno RXке жана TXке TXке туташтыра аласыз. Ооба, бул, тескерисинче, тескерисинче, бирок сиз Uno маалыматты IDEнин сериялык мониторуна "жөнөтүү" деп ойлосоңуз болот. Ошондуктан сиз бул учурда RXти TX жана TX ro RXке туташтырбайсыз. Программаңызды иштетип жатканда, Arduino Uno COM портун тандап алыңыз жана сериялык монторду ачыңыз. Сиз Ардуинонун сериялык чыгарылышын көрө аласыз.

(Бул чечим бул жерде Robin2ге жүктөлгөн.)

Эгерде сизде FTDI кабели / такта болсо

(Мен Sparkfunдун FTDI тактасын колдонуп жатам, аны 3.3Vга айландыргам)

Жөн эле үзгүлтүксүз тактанын GNDсин Ардуинонун өз алдынча жерине туташтырыңыз жана RX менен Arduino TX жана TXке RX туташтырыңыз. (Эгерде сиз жөн гана сериялык байкоо жүргүзүп, эч нерсе жазбай жатсаңыз, анда RU -ды Arduino TXке туташтырсаңыз болот).

Бул жерде Uno OR FTDI кабели аркылуу өз алдынча Arduino иштетүү мүмкүнчүлүгүңүз бар экенин унутпаңыз. Эки булакты бир убакта туташтырбаңыз! Көңүл буруңуз, COM портун өзгөртүүгө туура келет, анткени ал Arduino Uno COM портунан айырмаланат.

Кыйынчылыктарды оңдоонун жалпы кеңештери

  • "Мен эч нерсе көргөн жокмун!"

    • Туура COM портуңуз иштетилгенин текшериңиз.
    • Акыркы FTDI драйверлериңиз бар -жогун текшериңиз.
    • КАМСЫЗДАНДЫРУУ ТОГУ БАЙЛАНЫШТЫ.
  • "Мен көргөндөрдүн баары - сериялык монитордо таштанды чыгаруу!"

    • Сиз жакшы белги болгон нерсени алып жатасыз.
    • Бирок, FTDI тактасынын чыңалуусун текшериңиз.
    • Өз алдынча Arduino TX боюнча 3.3V чыгарат жана FTDI тактасы 5v күтсө аны албай калышы мүмкүн.
    • Байдын ылдамдыгын текшериңиз.
    • Жерге туташканыңызды жана бир гана электр булагы туташканын текшериңиз! (Башкача айтканда, Uno ЖАНА FTDI тактаңыздан өз алдынча Arduino иштетпеңиз.

Сунушталууда: