Я працюю з мікроконтролерами вже кілька років. Спочатку порушували мікроконтролери через LPT порт. Потім це набридло, і я зібрав програматор "USB Tiny" на мікроконтролері ATtiny2313, і користувався ним протягом трьох років.
Програматор "USB Tiny" всім влаштовував, за винятком деяких недоліків:
- Драйвер на Windows 7 x64 ставилося тільки після перекладу «Вінди» в «Тестовий режим». Інакше - ніяк не виходило змусити його працювати. У зв'язку з чим установка програматора на інший ПК починалася з зайвих непотрібних рухів тіла;
- Потрібна була можливість відключення живлення програматора, щоб програмована схема могла харчуватися від власного джерела живлення;
- Програматор мною був зроблений на швидку руку, і дроти (штекер USB і штекер під МК) просто стирчали з корпусу, і час від часу вони зношувалися (перетиралися при інтенсивному використанні і при перенесенні, або в місці входу в програматор, або в місці поблизу роз'ємів ).
Було вирішено зібрати новий програматор, і врахувати всі дрібниці, які скупчилися на протязі трирічного терміну експлуатації програматора. Подивившись в Інтернеті інформацію по програматорів, я вирішив, що буду збирати USBasp, але зроблю невеликі доопрацювання.
Отже, які моменти я хочу врахувати при складанні нового програматора:
- Перш за все, зробити програматор в форм-факторі «коробочки», без стирчать проводів, все зробити на роз'ємах. У разі зносу проводів, можна буде просто підключити новий провід до гнізда на корпусі програматора;
- Зробити можливість вибору харчування: харчування від програматора, або МК живиться від пристрою, в якому він встановлений;
- Якщо вибрано харчування від програматора, то зробити вибір напруги живлення: 3,3 або 5 вольт (це теж важливо, тому що схемки бувають абсолютно різні ...);
- У програматора USBasp є функція «Slow SCK» яка дозволяє прошивати мікроконтролери, що працюють на зниженій тактовій частоті, тому обов'язково вивести кнопку включення цієї функції;
- Зробити кнопку скидання прошиваного МК, іноді теж буває потрібно, при налагодженні деяких девайсів;
- Вже робити так робити - додати запобіжник з можливістю швидкої заміни.
На цьому, мабуть, вистачить. Це основні недоліки, які я хотів усунути. Починаємо збірку. Друковану плату я виготовив за допомогою ЛУТ технології. Відмочив папір:
Змив тонер ацетоном, і просвердлив отвори
Спаяв і покрив лаком
На торцях корпусу знаходяться роз'єми: USB для підключення до ПК, і DB-9 для підключення до мікроконтролеру. На корпусі наклеєна наклейка з терморегулятори висновків роз'єму DB-9:
На бічній частині корпусу розташовані дві кнопки і гніздо для запобіжника. Червона кнопка виконує перезавантаження підключеного до схеми МК (reset target), синя кнопка знижує тактову частоту (SCK) до 375 КГц, це потрібно для прошивки мікроконтролерів, які працюють на низькій тактовій частоті. Запобіжник потрібен для додаткового захисту USB порту від перевантаження, материнські плати всякі бувають, мені траплялися і без захисту по струму (.).
На другий бічній частині корпусу розташовані два індикаторних світлодіода, і два перемикача для вибору напруги живлення, або для його відключення. Зелений світлодіод свідчить про успішне USB-з'єднання, а червоний світлодіод загоряється в момент читання або запису програми мікроконтролера.
Приклеїв самоклеючі ніжки.
Про процес прошивки і іншу детальну інформацію можна прочитати в цій статті, ну а я приведу лише модифіковану схему програматора:
Зі схеми видно, що доданий LDO-стабілізатор на 3.3 вольта (NCP1117-3.3), стабілітрони в ланцюзі USB-порту (будь-які на напругу 3.6В), а також доданий запобіжник на струм 0,5 ампер. Також нижче можна скачати модифіковану мною друковану плату у форматі SL5. з якої викинуть роз'єм програмування (він тепер знаходиться на корпусі програматора), завдяки чому сильно спростилася «розводка» плати на односторонньому стеклотекстолите. Також в своєму варіанті я застосував smd-резистори типорозміру 1206, під які плата і була перероблена.
список радіоелементів
Захист USB порту + запобіжник ІМХО цілком непогано. А от харчування через резистор, якщо програмований пристрій живиться від програматора, то резистор тільки розжарюватися буде а толку нуль. Мікроконтролер, дисплейчик і т.д. НЕ жеруть більше 500 мА, немає сенсу питальник окремий чіпляти. А ось ваш резистор змушує вас використовувати зовнішнє піталово, інакше з резистора вийде грубка
По-перше налагодження пристрою ЗАВЖДИ починається з настройки харчування. По-друге налагодження йде на дії пристрою. По-третє з резистора грубка ще жодного разу не виходила, тому що мені релігія не забороняє живити пристрій від вбудованого джерела. Який захист USB порту? У 70% випадків вона не рятує і вигорає материнка або запобіжник на ній. А з вашим запобіжником на 0.5А. залишається сподіватися тільки на електроніку материнки. Відразу видно, що вам не доводилося ремонтувати заводську автоматику, коли на плату впендюріть такий запобіжник, що разом з ним в інший світ відправився блок живлення і половина ланцюгів плати (точніше спочатку вони, а потім вже запобіжник).
Дивний ви чоловік. Пишете єресь якусь, ніж вам не догодив запобіжник на струм специфікації USB інтерфейсу? Або більше причепитися ні до чого? Пишаєтеся що ви поставили резистор, а мені ніхто не заважає клацнути тумблер і перейти на харчування від пристрою. Або також клацнути тумблер і вибрати бажане харчування
Та тому, що це максимальний струм який може дати USB, тобто запобіжник повинен бути на МЕНШИЙ струм. Невже так важко це зрозуміти? Або ви не в курсі, що при струмі 0,5 А, запобіжник, розрахований на 0,5 А, спокійно продовжує працювати. А згорить тільки при струмі БІЛЬШЕ, ніж 0,5 А. Тобто захисту НІ. Якби ви намалювали запобіжник на 400-450мА, я б і слова не сказав.
Так, і відкрию ще одну таємницю, існують спеціальні програми для малювання схем, а вже ніяк на Paint.