• Характеристики
  • Програмування PIC-ів
  • Програмування AVR-ів
  • Структура конфігураційних файлів
  • Файл програми (Zip архів 446 KB)

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

У даному випадку була зроблена спроба розробити програмну оболонку в рамках якої легко було б нарощувати можливості з програмування різних чіпів хоча б для зумовлених сімейств.

Програматор характеризується тим, що:

  • Випробувано під Windows 98, Windows Me, Windows 2000 c процесорами Celeron, AMD Duron, AMD Athlon T, Pentium III до частоти 1000 МГц
  • Програмування ведеться через порт RS232
  • Програма не вимагає інсталяції і додаткових драйверів.
  • Програмує мікроконтролери сімейства PIC (налагодження проводилася на PIC16F84 і PIC16F877) з послідовного протоколу та мікроконтролери сімейства AVR (налагодження проводилася на AT90S8535)
  • Надаємо можливість самостійно додавати нові чіпи із зазначених родин з ідентичним протоколом програмування за допомогою конфігураційних файлів.
  • Дозволяє довільно змінювати структуру та зміст меню програмованих чіпів і інформаційних полів пов'язаних з програмованим чіпом.
  • Дозволяє завантажувати та редагувати бінарні і HEX файли, виконувати блокові операції з даними, розрахунок CRC за кількома алгоритмам
  • Дозволяє індивідуально програмувати різні області чіпа (пам'ять програм, пам'ять даних, біти опцій, біти захисту)

Вікно програмної оболонки

Рис.1. Вікно програмної оболонки Програмування PIC-ів Схема програматора PIC-ів Рис.1. Схема програматора PIC-ів

Особливою оригінальністю не відрізняється оскільки в основному повторює схему з відомого програматора PonyProg. Слід приділяти увагу рівню сигналу на виведення CLOCK чіпа, він не повинен бути менше 4 У при високому рівні, що може трапитися при неправильному підборі стабілітрон

Програмування AVR-ів

Схема програмування AVR-ів

Рис.2. Схема програмування AVR-ів

Тут показаний спосіб як організувати програмування AT90S8535 прямо на платі за допомогою RS232 і невеликого апаратного доповнення. Мікросхема DD1 служить для ізоляції сигналів програмування від чіпа в режимі роботи. Розведення мікросхеми показана в колодці c розташуванням контактів типу PGA44. Випробування показали, що більшість мікросхем AT90S8535 і AT90S8515 можна програмувати при частоті кварцу 11,0592 МГц.

Структура конфігураційних файлів

Конфігураційні файли мають розширення chp і повинні знаходитися в директорії програми. Програма при запуску проводить пошук у своїй директорії всіх конфігураційних файлів і їх об'єднання у внутрішньому буфері. Ідея таких файлів взята з програматора ComPic і трохи змінена. Кожному чіпу відповідає своя секція. Можливість успадкування властивостей не передбачена, оскільки це погіршує прозорість опису.

Приклад структури конфігураційного файлу для PIC16F84

[Chip PIC16F84_ICP] Секція чіпа c унікальним назвою чіпа
Level1=MicroChip Назва пункту меню верхнього рівня
Level2=PIC Назва пункту меню 2-го рівня вкладення
ItemCaption=PIC16F84 Назва кінцевого пункту меню
InitClass=TfrmMICROCHIP_PIC_ICP Назва класу вікна-фрейма програмуючих даний сімейство чіпів
за певним протоколу
Назви класів зумовлені в програмі: TfrmMICROCHIP_PIC_ICP і TfrmATMEL_AVR_ICP
Тут йде визначення програмованих областей, в пунктах Content різні параметри відокремлюються символом "|"
Area_1_Content= Code | 0..3FFh (1KW) Назва та опис області програмування
Area_1_data=CODE, 0, $3FF, 14 Дані пов'язані з областю програмування – унікальний ідентифікатор, початкова адреса, кінцевий адресу, розмір слова даних у бітах
Area_2_Content=EEPROM | 0..3Fh (64B)
Area_2_Data=EEPROM,0,$3F,8
Area_3_Content = Configuration word | CP, PWRTE, WDTE, FOSC
Area_3_Data=CONFIG,$2007,$2007,14
Area_4_Content=ID Locations | 2000H-2003H
Area_4_Data=ID,$2000,$2003,8
і т. д. для інших областей
Тут йде визначення установок для деяких областей програмування, визначених вище
Param_1_Content=CP | CP | CONFIG Визначення установки з назвою CP, з унікальним ідентифікатором CP з області CONFIG. За замовчуванням установка приймає значення з номером 1 в суфіксі ідентифікатора
  Опис можливих значень установки
Param_1_Choice1=1 – Code protection OFF Назва 1-го значення установки CP
Param_1_Choice1_icon=4 Номер у внутрішньому списку відображається ікони для 1-го значення
Param_1_Choice1_data=1111111111xxxx маска 1-го значення
Param_1_Choice2=0 – Code protection ON
Param_1_Choice2_icon=3
Param_1_Choice2_data=0000000000xxxx
Опис 2-го значення установки
Param_2_Content=PWRTE | PWRTE | CONFIG
Param_2_Choice1=1 – Power up timer disabled
Param_2_Choice1_icon=2
Param_2_Choice1_data=xxxxxxxxxx1xxx
Param_2_Choice2=0 – Power up timer enabled
Param_2_Choice2_icon=1
Param_2_Choice2_data=xxxxxxxxxx0xxx
Опис наступної установки і її значень
Param_3_Content=WDTE | WDTE | CONFIG
Param_3_Choice1=1 – WDT enabled
Param_3_Choice1_icon=1
Param_3_Choice1_data=xxxxxxxxxxx1xx
Param_3_Choice2=0 – WDT disabled
Param_3_Choice2_icon=2
Param_3_Choice2_data=xxxxxxxxxxx0xx

Param_4_Content=Oscilator | FOSC | CONFIG
Param_4_Choice1=RC oscillator (11)
Param_4_Choice1_icon=8
Param_4_Choice1_data=xxxxxxxxxxxx11
Param_4_Choice2=HS oscillator (10)
Param_4_Choice2_icon=8
Param_4_Choice2_data=xxxxxxxxxxxx10
Param_4_Choice3=XT oscillator (01)
Param_4_Choice3_icon=8
Param_4_Choice3_data=xxxxxxxxxxxx01
Param_4_Choice4=LP oscillator (00)
Param_4_Choice4_icon=8
Param_4_Choice4_data=xxxxxxxxxxxx00

Param_5_Content=ID | ID | ID
Param_5_Choice1=0000

і т.д. для всіх необхідних установок

Автор: Олександр Єлісєєв