Безкоштовна технічна бібліотека ЕНЦИКЛОПЕДІЯ РАДІОЕЛЕКТРОНІКИ ТА ЕЛЕКТРОТЕХНІКИ Програмування сучасних PIC16, PIC12 на PonyProg. Енциклопедія радіоелектроніки та електротехніки Енциклопедія радіоелектроніки та електротехніки / Мікроконтролери Як відомо, програматор PonyProg призначений для програмування обмеженого числа типів мікроконтролерів PIC micro фірми Microchip (PIC12C50x PIC16F8x, PIC16F87x). Однак з його допомогою можна запрограмувати й інші, у тому числі нові мікроконтролери серій PIC12, PIC16. Про те, як це зробити, розповідається у статті. Багато радіоаматорів будують свої конструкції на базі популярного PIC-контролера PIC16F84 (PIC16F84A). Однак час не стоїть на місці, і номенклатура мікроконтролерів, що випускаються (МК) PICmicro постійно розширюється. З'явилися нові, досконаліші МК серій PIC16F і PIC12F (наприклад, PIC12F629, PIC12F675, PIC16F628, PIC16F630, PIC16F676). Вони містять компаратор, здатний працювати з вхідною напругою, близькою до нуля, що при однополярному харчуванні дуже привабливо. Включений до їх складу 10-бітний АЦП має точність не гірше, ніж спеціалізовані мікросхеми, що поряд з великими можливостями з обробки та відображення інформації дозволяє створювати унікальні пристрої з мінімальним числом зовнішніх елементів. Нові МК мають пам'ять більшого обсягу, додаткові таймери, універсальний порт зв'язку та інші удосконалення. При цьому їх вартість значно нижча, ніж PIC16F84, а FLASH PIC16F630 дешевше за PIC16C505 (обидва в 14-вивідних корпусах). Організація пам'яті PIC12Fx така сама, як у PIC16F84 (одна сторінка), що дозволяє легко адаптувати програми, що не вимагають застосування МК у багатовивідних корпусах. Якщо ви наважилися використовувати у своїх конструкціях нові МК, то перш ніж їх вивчати та писати програми, подумайте, на чому їх програмувати. Придбання фірмового програматора за його вартості, порівнянної із вартістю системного блоку комп'ютера, для радіоаматорів майже неможливо. Однак багато хто з них зібрав програматор PONYPROG [1]. Розберемося, як можна використовувати його для програмування нових МК. Усі МК програмують по трипровідній шині. Для програмування необхідні сигнали Upp (переведення в режим програмування), CLK (синхронізація) та DAT (дані). Любителі, які мають програматора, можуть скористатися найпростішим пристроєм, зібраним за схемою на рис. 1. Його підключають до СОМ порту ПК, для живлення МК використовують окреме джерело з вихідною напругою 5 Ст. У "Налаштуванні обладнання" вказують тип програматора - JDM API. Висновки підключають відповідно до таблиці. Програмування можна зробити у готовому пристрої, використовуючи його джерело живлення (необхідно лише усунути шунтування висновків програмування МК елементами вироби). Напруга живлення при програмуванні має бути в межах 4,5...5,5 (при необхідності підбирають стабілітрон VD1). З таблиці видно, що призначення використовуваних під час програмування висновків PIC16F84 і PIC16F628 однаково, тому їх можна програмувати в одній розетці програматора. Для інших мікросхем доведеться встановити додаткові розетки, підключені до адаптера відповідно до таблиці. Докладнішу інформацію про PIC-контролерів можна знайти на сайті [2]. Подальші пояснення наведено на прикладі PIC16F628, оскільки він не вимагає апаратного доопрацювання програматора PonyProg і більше інших доступний у магазинах. Як зазначалося, всі МК PICmicro програмуються за трьома проводами (точніше з двох). Протокол (команди) програмування також однаковий. Пам'ять програм починається з адреси 0000, а закінчується залежно від обсягу в конкретному типі мікросхеми. Це означає, що вибравши зі списку PonyProg відповідний за цим параметром МК, можна записати потрібну програму. У нашому випадку підходить PIC16F871. Слід враховувати, що у нижньому рядку вікна PonyProg вказаний обсяг пам'яті в байтах, а технічних характеристиках МК зазвичай наводиться кількість слів (14 біт). Іншими словами, програматор показує більший обсяг. У PIC16F871 та PIC16F628 обсяг пам'яті – 2048 слів. Додатково це можна перевірити у файлі .Ikr відповідного МК (перебуває у папці установки MPLAB), прочитавши його з допомогою стандартної програми " Блокнот " . Адреса пам'яті програм зазначена так: CODEPAGE NAME=vectors START=0x0 END=0x4 PROTECTED (переноси умовні) CODEPAGE NAME=page START=0x5 END=0x7FF(перенос умовний) На цьому етапі вже можна спробувати записати інформацію на згадку про програми. Для цього підійде будь-який файл НЕХ розміром не більше 2048 слів. Запустивши програму обслуговування, приєднайте пристрій до порту комп'ютера, вставте МК у відповідну розетку, а потім увімкніть живлення програматора. Виберіть у меню PIC16F871, завантажте вибраний НЕХ-файл та натисніть кнопку "Записати пам'ять програм (FLASH)". З'явиться повідомлення про помилку, що сповіщає про проблеми з МК і містить три кнопки (рис. 2): Abort (перервати), Retry (повторити), Ignore (ігнорувати). Натисніть останню ("Ignore"), і розпочнеться процес програмування. Після його завершення з'явиться повідомлення про успішний запис. Якщо програматор видав "Помилка запису", перевірте вміст пам'яті програм, вважаючи його за відповідну команду. Наявність помилок свідчить про те, що, можливо, програматор працює занадто швидко (таке трапляється, якщо на комп'ютері встановлена ОС WINDOWS ХР; з WINDOWS 98 програма працює повільніше і пише надійніше). Причиною можуть бути також перешкоди (при надто довгих з'єднувальних проводах), а в окремих випадках - і антивірусні та інші фонові програми. Якщо запис відсутній повністю, то несправна апаратна частина програматора або неправильно налаштована програма (в меню). Наступний найважливіший етап - запис слова конфігурації. Його адресу також можна переглянути у файлі .Ikr відповідного МК. Рядок у файлі виглядає так: CODEPAGE NAME=.config START=0x2007 END=0x2007 PROTECTED (переноси умовні). Слово конфігурації знаходиться за адресою 0x2007. У нашому випадку PIC16F871 і PIC16F628 мають адреси 2007, тобто підходять для заміни (слід зазначити, що слово конфігурації у всіх PIC16 і PIC12F розташоване саме за цією адресою). Встановлювати біти конфігурації безпосередньо в програматорі небажано, тому що їх позначення на панелі програматора для PIC16F628 та PIC16F871 різне і можливі помилки, а деякі біти затінені і не можуть бути встановлені безпосередньо. Записати конфігурацію МК краще при складанні програми. Для MPLAB ці рядки можуть виглядати приблизно так: in lude p16f628.inc> list p=16f628 _config H'0242" Значення '0242' складається відповідно до призначення кожного біта у слові конфігурації та у вашому конкретному випадку може бути іншим. Детальний опис всіх бітів можна знайти на сайті [2]. Скорочені позначення біт конфігурації містяться у файлі .INC відповідного МК у папці установки MPLAB. Зразковий вигляд: BODEN ON EQU H'3FFF' BODEN OFF EQU H'3FBF' CP ALL EQU H'03FF' CP 75 EQU H'17FF' CP 50 EQU H'2BFF' CP OFF EQU H'3FFF' DATA CP ON EQU H'3EFF' DATA CP OFF EQU H'3FFF' PWRTE OFF EQU H'3FFF' PWRTE ON EQU H'3FF7' WDT ON EQU H'3FFF' WDT OFF EQU H'3FFB' LVP ON EQU H'3FFF' LVP OFF EQU H'3F7F' MCLRE ON EQU H'3FFF' MCLRE OFF EQU H'3FDF' ER OSC CLKOUT EQU H'3FFF' ER OSC NOCLKOUT EQU H'3FFE' INTRC OSC CLKOUT EQU H'3FFD' INTRC OSC NOCLKOUT EQU H'3FFC EXTCLK OSC EQU H'3FEF' LP OSC EQU H'3FEC XT OSC EQU H'3FED' HS OSC EQU H'3FEE' З використанням цих позначень рядок запису може виглядати так: __config CP_ALL & WDT OFF & BODEN ON & _PWRTE_ON & _HSJ3SC &_LVP OFF ; (переноси умовні). Таким чином ви зможете написати слово конфігурації для будь-якого МК, використовуючи його .INC. Це зручно при адаптації готової програми, наприклад, у разі заміни PIC16F627 дешевшим PIC16F627A. При включенні конфігурації до тексту програми вона увійде в НЕХ-файл, встановляться і затінені біти. Після того як ви ввели в програматор слово конфігурації, вважаючи НЕХ-файл програми, що містить його, запис виконується звичайним чином, введенням відповідної команди. Аналогічно його можна вважати з МК. Переконайтеся, що конфігурація записана, можна або очистивши після запису панель програмування конфігурації програматора, а потім рахувавши конфігурацію з МК, або вважаючи пам'ять програм із захищеної від зчитування мікросхеми: до запису конфігурації вона читається, а після запису - ні (якщо встановлений захист), у своїй конфігурація читається й у захищеної мікросхемі. Встановлювати біти захисту без особливої потреби не рекомендується. Справа в тому, що деякі МК мають різні команди стирання, і ви не зможете їх перепрограмувати, тому що на PonyProg біти захисту не зітруться. Однак при записі в незахищену мікросхему поверх наявної в ній "прошивки" код, що записується, зітре попередню інформацію і необхідності в стиранні не виникне. Втім, це не стосується PIC16F627, PIC16F628, інформацію в них можна захищати без побоювань. Запис даних в EEPROM проводиться звичайним способом, оскільки дані в МК PIC16F та PIC12F розміщуються з адреси 2100п. Подивитися це можна також у файлі .Ikr. Зразковий вигляд рядка: CODEPAGE NAME=eedata START=0x2100 END=0x217F PROTECTED (переноси умовні). Різне у PIC-контролерів - лише закінчення області даних (через різного об'єму): у PIC16F628 - 128, у PIC16F871 - 64 байт, але якщо необхідний для роботи об'єм не перевищує обсягу EEPROM обраної мікросхеми підміни (у PIC16F871 - 64 байт) , можна програмувати, не перемикаючи типу МК в меню: надмірна пам'ять PIC16F628 просто не буде використана. Якщо необхідно записати більший обсяг, то слід в меню програматора замінити тип МК, що має аналогічний з PIC16F628 обсяг пам'яті (у нашому випадку - це PIC16F874 з EEPROM 128 байт) і зробити запис звичайним способом. Замінювати тип МК у меню можна будь-якому етапі програмування. Слід зазначити, що хоча PIC16F874 має пам'ять програм вдвічі більший, ніж PIC16F628, записати інформацію в неї можна, встановивши в меню PIC16F874 і навіть PIC16F877 (16К), проте при перевірці запису програматор видасть повідомлення про помилку. Річ у тім, що з зчитуванні нереалізованої у PIC16F628 частини пам'яті МК видасть інформацію, записану у нижніх адресах (старші біти адреси ігноруються), т. е. пам'ять програм буде двічі (у PIC16F877 - чотири рази). Інакше кажучи, це помилка у програмі, а повторне зчитування пам'яті, програма записується нормально. література
Автор: А.Сізов, м.Іванове Дивіться інші статті розділу Мікроконтролери. Читайте та пишіть корисні коментарі до цієї статті. Останні новини науки та техніки, новинки електроніки: Новий спосіб управління та маніпулювання оптичними сигналами
05.05.2024 Приміальна клавіатура Seneca
05.05.2024 Запрацювала найвища у світі астрономічна обсерваторія
04.05.2024
Інші цікаві новини: ▪ Поліпшення широкосмугового підключення ▪ Екстремальний смартфон Ulefone Armor 12 5G ▪ Портативний накопичувач 4 ТБ від Seagate Стрічка новин науки та техніки, новинок електроніки
Цікаві матеріали Безкоштовної технічної бібліотеки: ▪ розділ сайту Блискавкозахист. Добірка статей ▪ стаття Гамак на дачі. Поради домашньому майстру ▪ стаття Що таке лавина? Детальна відповідь ▪ стаття Робота з водяним насосом. Типова інструкція з охорони праці ▪ стаття УКХ ЧС тюнер. Енциклопедія радіоелектроніки та електротехніки ▪ стаття Вгадування однієї з 15 карт. Секрет фокусу
Залишіть свій коментар до цієї статті: All languages of this page Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт www.diagram.com.ua |