Програмуйте ATMega328P та використовуйте його без плати Arduino


13

Я хотів би використати ATMega328P для свого проекту, сподіваюсь це зробити без дошки Arduino.

Я знаю, що за допомогою програми ID ID Arduino та плати Arduino я можу запрограмувати мікроконтролер. Однак чи можливо, коли я запрограмував і налагодив програму за допомогою Arduino IDE + Arduino плати, забрати мікроконтролер з плати Arduino та використовувати окремо ATMega328P, без плати?

Якщо так, то які додаткові конфігурації я повинен зробити для ATMega328P, щоб правильно працювати на дошці?


Використовуйте ATMEGA328 P-PU з завантажувачем Arduino UNO .... ви можете знайти його в магазинах хобі та в Інтернеті та інше ☺
Артур

Використовувати голий чіп - це абсолютно можливо і без проблем.
dannyf

Це не той самий питання, як ваше, але ви можете отримати від нього трохи інформації. arduino.stackexchange.com/questions/32970/…
Code Gorilla

Ви можете слідкувати за відповідями на це запитання
Rashedul Islam

Відповіді:


7

Ви можете вийняти ATMEGA з Arduino і використовувати його на власній дошці, однак при використанні на типовій платі Arduino мікросхема буде злита для зовнішнього кристала як джерела годинника, а не для (більш простого, але менш точного) внутрішнього годинника.

Ви не можете змінити джерело тактового режиму через ISP, якщо джерело тактової частоти, на який зараз очікується чіп, не працює, тому, якщо ви хочете змінити вибір годинника, ви захочете зробити це перед тим, як видалити мікросхему з Arduino.

Однак ви також можете забезпечити годинниковий кристал та два його конденсатори (або резонатор, що замінює, який часто вбудований) на зовнішній платі.

Зазвичай мікросхеми (навіть ті, які попередньо спалахнули завантажувачем, як зручність) дешевші, ніж дошки, тому незрозуміло, чому ви хочете перемістити той самий чіп з Arduino на відміну від використання іншого. Ви все одно захочете послідовний адаптер USB-логічного рівня, і, як тільки ви це зробите, ви зможете зробити розробку на голому мікросхемі на вашій платі, навіть якщо ви зробите початкове тестування на Arduino. Якщо у вас немає USB-перетворювача, ви можете витягнути мікросхему з плати Arduino і запустити провід від своїх D1 і D0, або утримувати встроенний чіп в режимі скидання, щоб ви могли запозичити ці послідовні лінії без втручання.


1
Моя ідея - використовувати лише мікроконтролер без плати. Оскільки легко запрограмувати Arduino, я подумав, що, можливо, я обрав ATMega. Отже, у мене є Arduino uno, моя ідея - придбати лише один ATMega і запрограмувати його та налагодити його за допомогою дошки uno. Однак я щойно переконався, що якщо я відокремлюю ATMega від Arduino, мені потрібно буде додати компоненти (кристал, підтягування). Чи можете ви пояснити, що ви маєте на увазі в останньому абзаці своєї публікації? Чи є простий спосіб запрограмувати безпосередньо ATMega (або будь-який інший мікроконтролер) без використання IDE arduino? Спасибі.
Джордж

Хоча ви можете пропустити IDE, використовуючи його чи ні, це по суті не має значення для складності вашої схеми, оскільки ви можете використовувати IDE або не з ланцюгом, який має або не має зовнішнього годинника, або використовує USB- серіал на вашій цільовій дошці, на кабелі або програмуючи свій ескіз програмістом ISP. Янкі чіп з дошки не дає вам нічого порівняно з тим, що купувати чіп або з завантажувачем, або без, і завантажувати його самостійно, потенційно використовуючи свій неушкоджений Arduino як програміста провайдера, або використовуючи провайдер, щоб безпосередньо завантажити ваш ескіз без завантажувача.
Кріс Страттон

7

Так, ви можете використовувати ATMega328Pбез ардуїно дошки. Я завжди використовую ІС без ардуїно. Є два способи зробити це.

  1. Ви можете використовувати ардуїно дошку з ІС. Програмуйте ІМС, а потім вийміть його та використовуйте у своїй схемі. Вам доведеться використовувати 16MHZ Oscillatorконденсатори.
  2. Якщо у вас немає плати arduino, ви можете використовувати інших програмістів, як USBaspпрограмувати свої Atmega328p. У цьому випадку не використовуйте кнопку прямого завантаження, а скористайтеся функцією завантаження, використовуючи параметри програміста з меню файлів. Не забудьте вибрати дошку як Arduino Pro or Pro Mini (5v, 16mhz) With ATmega328і програміста як USBasp.

ПРИМІТКА : Див. Atmega328p Pin Mapping та програмуйте свій пристрій відповідно. Насолоджуйтесь!


2

Шукайте "Побудуйте ардуїно" - ви знайдете безліч статей про практичні дії. Вам потрібно буде мати змогу паяти з'єднання на друкованій платі (і навіть не це, якщо ви хочете використовувати без пайки), але це справді просто. Ви навіть можете спочатку побудувати його та запрограмувати MCU на друкованій платі за допомогою кабелю FTDI. Я використовую дошку Arduino та дошку без пайки, щоб експериментувати з незнайомими деталями, але, як правило, негайно переходжу на дошку, побудовану вручну, коли я ознайомлюся з усіма компонентами, які буду використовувати.

Прототипізація дошки Arduino дозволяє зібрати купу частин і швидко працювати, і якщо Arduino більш здатний, ніж ваша кінцева мета - f / ex, Mega 2650 - ви можете тимчасово ігнорувати пам'ять та обмеження вводу / виводу. меншого пристрою.


0

Використовувати окремий чіп Arduino досить просто. Єдина складна річ, що стосується мікросхеми, яка використовується для офіційних плат - це те, що вони сплавлені для використання швидшого (і точнішого) зовнішнього осцилятора, встановленого на платі. Це застосовується навіть при придбанні сипучих чіпів, оскільки більшість перепродаються з наміром встановити на платі Arduino для заміни згорілого, за винятком, можливо, тих, що з Digikey.

Застереження: Ардуїно розроблений як дошка для складання прототипів, і деякі речі справляються краще, ніж це робиться в цьому завданні. Можливо, ви захочете залишити мікросхему на платі Arduino, поки не закінчите розробку та тестування схеми. Тільки тоді ви підключаєте його безпосередньо. Її можна використовувати на місці, якщо у вас є тактова схема, або ви можете змінити запобіжники (див. Пізніше) і перепрограмувати Arduino за допомогою адаптера провайдера і тактовою частотою 8 МГц (PlatformIO дозволяє це робити ( і дозволяє прямо імпорт ескізу Arduino) - перегляньте їхню сторінку документа на наявність плагіна Atmel AVR, але ви також можете знайти ряд посібників про те, як додати файл Arduino до бортового файлу, щоб сказати йому, щоб використовувати опцію 8 МГц для чистого чіпа)

Якщо ви виймете мікросхема для використання в іншому ланцюзі, йому або потрібна ціна годинникового ланцюга, або його плавкі запобіжники (я перейду до цього за хвилину). Програмувати також буде важко з кількох причин, тому вам захочеться придбати трохи досить дешеве обладнання:

Програмування окремої мікросхеми: процесор Arduino не призначений для розмови з комп'ютером. Вам потрібен посередник. У Uno це робиться за допомогою другого мікросхема Atmel, який має можливість USB, та завантажувача на головному мікросхемі. Це означає, що він використовує UART для завантаження програми, в той час як USB-чіп перетворює повідомлення ПК на сигнали UART. Оскільки завантажувач дещо болить, коли чіп самостійно (оскільки UART є вибагливим і встановленням він встановлює мікросхем для використання зовнішнього годинника в результаті), ви захочете придбати програміста ISP для Arduino (або дотримуйтесь ескізу Arduino-as-ISP та інструкцій, щоб зробити власні, для чого потрібен Arduino з чіпом, тому вам буде потрібно секунда, щоб запрограмуватися).

Вони можуть програмувати ATMega 328 безпосередньо через SPI, без завантажувача (в Інтернеті є багато інструкцій; наприклад, пошук "програма гола ATMega 328P з USBAsp"). Це значно полегшує зміну та налагодження програми поза вискакуванням мікросхеми та назад на оригінальну плату Arduino. Також вам потрібен такий, щоб змінити настройки годинника, якщо ви не хочете використовувати зовнішній кристал.

Якщо ви хочете налагодити чіп, корисно також придбати адаптер FTDI або інший перетворювач USB-UART. Зверніть увагу, що без схеми скидання частини плати (або знову ж таки, додавши власну), це все одно не дозволить вам запрограмувати ATMega навіть із завантажувачем. Для цього підключіть штифти заземлення, RX та TX до адаптера. Ви можете або не хочете підключати лінію VCC, але радимо цього не робити, якщо до мікросхеми підключено багато речей і / або він має власне джерело живлення. Зверніть увагу, що RX і TX потрібно міняти під час їх підключення; тобто RX до TX і TX до RX - ви хочете, щоб мікросхем RX (отримував) те, що адаптер TX (передає), і навпаки.

Тактову схему побудувати не важко, але для цього потрібно кілька компонентів, яких у вас може не бути. Отже, щоб змінити джерело годинника , перейдіть на сторінку http://www.engbedded.com/fusecalc/ і виберіть ATMega 328P. Значення за замовчуванням є хорошими, але ви, можливо, захочете ввімкнути режим EEPROM у режимі тривалого стирання та відключити годинник поділом на 8 або налаштувати параметри коричневого відключення. Не торкайтеся нічого іншого (відключення скидання або SPI або включення DebugWire призводить до "розваги", що вимагає виправлення програміста HV). Закінчивши, вставте команду, яку вона надає, до команди AVRDude. Вам потрібно буде змінити параметри -c (-p вже встановлено на ATMega 328P, але вийде з ладу для не-P 328s - не купуйте їх) і, можливо, додайте параметр -P (для порту). Не опустіть нижній регістр -u варіант, інакше він відмовиться оновлювати запобіжники.

avrdude -p m328p -v -c usbasp -B 100 -u [add extras here: (-P <PORT>) <fuse set command here>]

Зауважте, що якщо ви придбаєте USBASP (переконайтеся, що він має три набори перемичок!), Незважаючи на те, що вони є моїм улюбленим програмістом, вони можуть не мати оновленої мікропрограми, яка підтримує опцію -B (яка, можливо, вам знадобиться). Це означає, що вам потрібно приєднати його до Arduino через шестиконтактний порт програмування точно так само, як і для програмування завантажувача Arduino, але потім використовувати ескіз Arduino-as-ISP для програмування нового Прошивка програмісту (пошук "оновити прошивку usbasp через arduino-as-isp")! Для довідки, це зазвичай означає, що кабель відводиться від корпусу дошки, і вам, ймовірно, доведеться запрограмувати ескіз ранішепідключення кабелю. Також увімкніть перемикач програмування на USBASP (5V) та "самопрограмування". (див. https://forum.arduino.cc/index.php?topic=560719.0 про місце розташування перемикачів живлення та програми (JP2)).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.