Я використовую борту хліба Boarduino і 30 рядів для програмування своєї ATtiny. Я завантажую не надто складний ескіз під назвою ArduinoISP (включений за замовчуванням зараз у ID Arduino IDE), і раптом у мене працює робочий програміст. Atmel продає приємного програміста на суму від 30 до 40 доларів, і є безліч наборів для виготовлення дешевших.
Я був дуже щасливий, як тільки я взяв свого робочого програміста і змусив крихітне моргати. Однак зараз мій бідний боардуїно застряг у програмуванні.
Наскільки я можу сказати, цей програміст утримує кнопку скидання, а потім передає та приймає на шпильки MOSI та MISO. Я думаю, що СКК є невикористаним або принаймні непотрібним. (SCK потрібен згідно з таблицею даних ATtiny, мій програміст не працює без нього, і я не можу знайти місце, яке я вважав, що прочитав, що воно не потрібне.)
Навіщо мені потрібен апаратний програміст, щоб просто передавати серійні? Я маю на увазі, припустимо, я готовий натиснути кнопку скидання пальцем замість використання ІМС. Залишилося послідовно надсилати та отримувати, тому мені потрібно лише три дроти GND, RXD і TXD. Чорт, якщо у мене є лінія "DTR" або будь-що інше, можна навіть натиснути кнопку скидання за допомогою послідовного кабелю.
Чому існують усі ці апаратні рішення, які також потребують вигадливого програмного забезпечення (наприклад, AVRdude, або AVR studio чи інше)?
Я маю на увазі, що я міг зрозуміти невеликий USB-кабель, який представляв мікроконтролер як пристрій масового зберігання і дозволив перетягувати бінарні файли для програмування (як ця плата ARM Dev ). Тільки обладнання, використовуючи стандартні драйвери програмного забезпечення.
Я також міг зрозуміти лише програмне рішення (модульне підключення проводів від USB до мікросхеми, використовуючи щось на зразок мікросхеми FTDI для спрощення того, що йде по дротах). Весь протокол вигадливого програмування оброблятиметься програмним забезпеченням на комп’ютері, а апаратне забезпечення - це лише деякі дроти.
Чому ми задіяні як (складне) програмне забезпечення, так і апаратне забезпечення? Я маю на увазі, наскільки я можу сказати, програмування мікроконтролерів досить легко, але коли я тільки займався цим, я дуже переживав, як я коли-небудь купуватиму мікросхему у mouser або digikey, не платячи якомусь гуру, щоб програмувати завантажувач. для мене.
Я впевнений, що є вагомі причини (це не так, як я написав програмне забезпечення або почав виготовляти USB-програміст перетягування n-drop), але як новачок я не маю поняття, що це таке.