Збираємо універсальну тестово-отладочную плату на мікроконтролері

свіжі записи

лазерні проектори

Збираємо універсальну тестово-отладочную плату на мікроконтролері

Почнемо з того, що мені досить часто доводиться розробляти різні пристрої на мікроконтролерах RISC архітектури сімейства AVR компанії Atmel. У них дуже багато переваг перед основними конкурентами (PIC):

  • досить широка система команд
  • більшість команд виконується за 1 такт
  • низька ціна, широка доступність
  • частота цих МК досягає 20 МГц, що відповідає продуктивності в 20 MIPS
  • а так же понти, понти, понти ... перераховувати можна досить довго

Думаю, багатьом набридло тестувати програми на макетке / в емуляторах, і не завжди це зручно / результативно. Вобщем назріла ідея зробити універсальну тестову плату з можливістю використовувати її як для налагодження і тестування ПО, так і в якості контролера для управління різними пристроями по інтерфейсу USB (CNC верстат, розумний будинок, і т.п.), тим більше з'явилася необхідність розібратися з HID обміном даними між комп'ютером і GPS модулем.

Для вирішення поставлених завдань була розроблена схема тестової плати, підібрані деталі, зроблена друкована плата. В результаті вийшов досить непоганий девайс

Збираємо універсальну тестово-отладочную плату на мікроконтролері

Основні характеристики отладочной плати:

  • Розмір пам'яті 8Кб (2кб використовується під USB завантажувач, під програми залишається 6кб. Якщо потрібно більше пам'яті, вихід - або використовувати замість завантажувача звичайний SPI програматор, або використовувати МК з великим об'ємом пам'яті)
  • 18 незалежних ліній введення-виведення
  • Компактні розміри (менше 35 * 35 мм)
  • Низька вартість і доступність компонентів
  • простота виготовлення

Отже, що сьогодні нам потрібно:

  • Приналежності для Лутай (текстоліт, принтер, хлорне залізо, і так далі)
50 руб
  • Мікроконтролер Atmega8-16AU (підійде будь-який Atmega8 без індексу L в корпусі TQFP-32) 80 руб
  • Кварц, бажано SMD, на 12 або 16 МГц (можна випаять з флешки). підійде і звичайний кварц 20 руб
  • Резистори SMD 0603 на 68 ом - 2шт, 1.5k - 1шт, перемичка в такому ж корпусі (0 ом) - 1шт (все це можна випаять зі старих материнських плат)20 руб
  • Конденсатори SMD 0805 на 33пф (підуть і 22пф) - 2шт, 0.1мкф (теж SMD, 0805 типорозмір) - 1шт, 1vra (все той же SMD) - 1шт (їх уже доведеться купувати в магазині радіодеталей, продаються стрічками по 10шт) 30 руб
  • Ну а так само знадобляться коннектори (по-російськи, роз'єм, таких багато на материнських платах, на них ще джампери ставлять, можна купити або отпаять газовим пальником)

    Прімечаеніе: як виявилося пізніше, все ж слід робити плату побільше для зручності експериментів, друковані плати таких варіантів будуть додані трохи пізніше. Також часто буває корисним вивести + 5в з порту USB.

    Збираємо універсальну тестово-отладочную плату на мікроконтролері

    На збірці зупинятися не буду, бо на друкованій платі, зробленої в SL5, все зазначено. Після складання прошиває мікроконтролер (припаюємо проводки GND (земля), VCC (харчування), RESET, MOSI, MISO, SCK програматора до відповідних пінам мікроконтролера на платі (близько RESET'a зроблена маленька площадочка, інші сигнали припаиваются до відповідних доріжках на платі). заливаємо в мікроконтролер прошивку з прикріпленого архіву (.hex файл, дивимося по моделі мікроконтролера і частоті кварцу), потім прошиває фьюз:

    BODLEVEL = 1
    BODEN = 1
    SUT1 = 1
    SUT0 = 0
    CKSEL3 = 1
    CKSEL2 = 1
    CKSEL1 = 1
    CKSEL0 = 1
    RSTDISBL = 1
    WTDON = 1
    SPIEN = 0
    CKOPT = 1
    EESAVE = 1
    BOOTSZ1 = 0
    BOOTSZ0 = 0
    BOOTRST = 0

    (0- запрограмований, 1 - незапрограммирован)

    Топер можна отпаять програматор, якщо все пройшло добре, надіти джампер від 17 ноги (PB5) до землі (на платі відзначено «Jumper-programming») і підключити пристрій по USB до комп'ютера. Пристрій повинен визначитися, дрова повинні поставити самі, тепер можна запускати утиліту HIDBootFlash, натискати кнопку «Find device», потім «Open .hex-File», і нарешті «Flash Device». Тепер можна знімати джампер, буде виконуватися тільки що завантажена програма.

    Замість завантажувача HIDBootFlash можна використовувати USBAsp, гугл легко.

    Отже, що у нас вийшло:

    Збираємо універсальну тестово-отладочную плату на мікроконтролері

    Збираємо універсальну тестово-отладочную плату на мікроконтролері
    П ример використання - як раз хустки з GPS:

    Збираємо універсальну тестово-отладочную плату на мікроконтролері

    Збираємо універсальну тестово-отладочную плату на мікроконтролері

    Всі файли можна знайти тут:

    У старших каталогах вихідні коди USB завантажувача bootloadHID.

    Все одним архівом: