Pickit3 подключение pic16f884 панель газель

Обновлено: 30.06.2024

Вот по случайности набрёл в интернете на PICkit 3 Debug Express

Вроде так нечего цацка)

Вот в голову стукнула необычная мысля. попробовать замутить самому такой девайс.

В прочем с поиском схемы особо морочиться не пришлось, Microchip не жадные )

За прошивкой для PIC24FJ256GB106 тоже особо далеко ходить не надо. она есть в Microchip\MPLAB IDE\PICkit 3
Только вопрос ребром, что из всего что есть прошивать?) в папке несколько HEX файлов.

Более актуальный вопрос каким макаром прошить сам пик ?) корпус до крутоватый TQFP-64. да и походу мой ExtraPIC прики на 24 ядре не берёт или первоначально прошивку можно залить через USB ? (по моему маловероятно)

И последний вопрос! Стоит ли овчинка вычинки ? или проще не заморачиваться и тупо купить нормальный такой программатор? Ведь даже PIC24FJ256GB106 запаять не так уж просто. интервал 0.5 мм между ножками. не представляю как дорожки такие делать. трассировкой дорожек тоньше 0.6-0.4 мм я не занимался)))
да и принтер падла мазать начал в последнее время. не верим мы обычно производителям лазерных принтеров которые не рекомендуют печатать на глянцевой фотобумаге)))
Как бы ты хорошо не паял, твой девайс на микроконтроллере без прошивки будет просто куском железа.

Пользуюсь pickit2, и вполне все устраивает, так как отладкой 32-х разрядных контроллеров я не занимаюсь, хотя программирование их он поддерживает.

Если в эксперимента, то собрать можно, с заделом на будущее, так как развиваться он будет непременно, и опыт работы при изготовлении тоже неоценим.

А если нужно для повседневной работы, и времени заморачиваться особо нет, то лучше собрать клона pickit2, коих в сети навалом, и вполне демократичных по себестоимости, и радоваться хорошему девайсу.

На сайте указаном выше описывается возможность простой модификации по увелечению встроенной памяти pickit2 в два раза.

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

Эта заметка посвещена прошивке микроконтроллеров (МК) марки PIC. Тем радиолюбителям, которые с этим ранее не сталкивались, может показаться, что это очень сложная задача. На самом деле здесь всё просто. Нам понадобится программатор PicKit3, программа для его управления, микроконтроллер и, собственно, сама прошивка — программа в формате hex.

Программатор лучше приобретать с универсальной панелькой (Адаптером), как показано на первых двух фото. Эта связка будет Вам служить долго и может прошивать практически любые PIC-контроллеры и даже внешнюю память. Для этого программатор и адаптер необходимо соединить так, как показано на Фото 1 и Фото 2. Сам контроллер устанавливается в адаптер так, показано на Фото 3. На этом же фото показана установка перемычек J1, J2 и J3 для 14-ти выводных PIC. Установку же перемычек для МК с другим числом выводов можно посмотреть в работе [1]. Эту конструкцию необходимо подключить к компьютеру через USB-разъём, который идёт в комплекте с PicKit3.

Программа управления PicKit3

Программу для управления PicKit3 лучше всего брать с официального сайта Microchip — она легко скачивается и устанавливается на компьютер. Её внешний вид изображен на фото слева. Все вышеописанные действия нужно выполнить один раз, после чего в Ваших руках появится довольно мощный комплекс для прошивки МК. Дальнейшие действия нужно выполнять при каждой новой прошивке.

Сначала нужно установить контроллер в адаптер и дать программе самостоятельно определить тип МК. Для этого достаточно выбрать в меню Tools - Check Communication. Впрочем, эту проверку можо каждый раз и не делать — только при включении. Далее, необходимо убедиться, что напряжение прошивки установлено 5В. Этот параметр контролируется в окошке VDD PICkit3 (Target Power) и, как правило, устанавливается автоматически.

Для начала процедуры нужно выбрать файл прошивки: File - Import Hex, после чего нажать кнопку Write на панели программы. Эта команда начнёт запись в наш МК, а после её окончания засветит зелёным цветом окошко над этой кнопкой. Обычно это занимает несколько секунд. Всё — контроллер прошит и готов к работе!

Не стоит бояться неправильно установить МК в адаптер. В PICkit3 реализованы все возможные защиты и спалить контроллер не получится :)

© Перепечатка материалов сайта возможна с условием установки ссылки на него и соблюдением авторских прав

В предыдущей части урока мы познакомились с микросхемой памяти EEPROM AT24C32D, настроили наш проект и написали ряд служебных функций.

Прежде чем теперь мы займёмся непосредственно записью и чтением памяти микросхемы, перейдём в файл led.c и немного его поправим, так как он у нас настроен для отображения показаний АЦП, включена точка, отключается 4 разряд в случае 3-значного числа. Мы будем гасить также и 3 разряд в случае 2-значного числа и гасить 2-й в случае однозначного.

Поэтому 4 разряд мы не трогаем, а идём в функцию TIM0_Callback сразу в условие формирования 3 разряда ( else if (n_count== 1 ) ) и первым делом удалим там включение точки

Вместо этого вставим тушение разряда, если у нас число меньше 3 знаков

if (num_gl 100 ) PORTB = 0xFF ;

В условии формирования 2-го разряда также добавим тушение разряда, если число 1-значное

if (num_gl 10 ) PORTB = 0xFF ;

Вернёмся в файл main.c и добавим адрес, с которого мы будем начинать запись в микросхему, а также затем считывать записанное, также массив с заранее заготовленными величинами для записи в микросхему, а также аналогичный массив, забитый нулями, в который мы будем затем считывать записанные значения из микросхемы

unsigned int TIM1_Count= 0 ;

const unsigned char at24c_data_write[]=< 0x14 , 0x13 , 0x12 , 0x11 , 0x10 ,

0x0F , 0x0E , 0x0D , 0x0C , 0x0B ,

0x0A , 0x09 , 0x08 , 0x07 , 0x06 ,

0x05 , 0x04 , 0x03 , 0x02 , 0x01 >;

unsigned char at24c_date[ 20 ];

Перейдём в функцию main() и попробуем записать наш массив в микросхему по заданному адресу

//write

I2C_StartCondition();

AT24C_WriteBytes( 0x000A ,at24c_data_write, 20 );

I2C_StopCondition();

__delay_ms( 5 );

По окончанию записи мы немного подождём. Причём величина этой задержки может зависеть от количества переданных байтов, так что можете поиграть у себя.

Пока давайте проверим только запись. Для этого запустим программу логического анализа, соберём код, прошьём контроллер и посмотрим там результат.

Только сначала настроим программу. Включим 2 канала, на одном из них поставим триггер, срабатывающий на спад сигнала


Шину I2C настроим следующим образом


Запустим анализ, перезагрузим контроллер и посмотрим результат (нажмите на картинку для увеличения размера)


Также посмотрим результат в анализе


Вроде всё отлично.

Теперь попробуем данные прочитать. Для этого продолжим код в main()

//read

SSPIF= 0 ;

I2C_StartCondition();

AT24C_ReadBytes( 0x000A ,at24c_date, 20 );

I2C_StopCondition();

SSPIF= 0 ;

__delay_ms( 1 );

Проведём логический анализ (нажмите на картинку для увеличения размера)


Всё прочиталось. Отлично!

Также мы видим, что последний байт получен без подтверждения


Отобразим по очереди на индикаторе значения считанного участка памяти EEPROM

for (i= 0 ;i 20 ;i++)

ledprint(at24c_date[i]);

__delay_ms( 500 );

Также в бесконечный цикл запишем традиционную задержку

__delay_ms( 5 );

Код, предназначенный для записи ячеек памяти, закомментируем, у нас уже всё записано в энергонезависимую память, тем самым мы проверим, хранятся ли значения.

Соберём код, прошьём контроллер, перед этим отключив программатор от питания и заново подключив его, чтобы убедиться также, что данные хранятся и после потери питания микросхемой. Анализатор от схемы также можно отключить, он нам больше не нужен. После прошивки кода мы должны увидеть наши циферки на индикаторе


Все значения отобразились. Значит они надёжно хранятся во внешней памяти EEPROM.

Таким образом, в данном занятии мы научились работать с шиной I2C в режиме ведущего устройства. Теперь мы с помощью данной шиной можем общаться с внешними ведомыми устройствами. Мы умеем посылать на них данные по шине I2C, а также их принимать от них.

Всем спасибо за внимание!

Купить программатор (неоригинальный) можно здесь: PICKit3

Купить программатор (оригинальный) можно здесь: PICKit3 original

Отладочную плату PIC Open18F4520-16F877A можно приобрести здесь: PIC Open18F4520-16F877A

Индикатор 4-разрядный LED WaveShare можно приобрести здесь: LED WaveShare

Прошу растолковать. Приобрел пару PIC16F1938, потом пришел программатор PICKIT3. Читая и вникая в тему, понял что необходимо используя как программатор PICKIT3 необходимо залить ОС. Всё сделал как надо, ОС залилась, программатор в программе Pickit 3 v3.10 определяется, прописывается ID, из программы программатор управляется. Т.е. вижу индикацию двух св.диодов зел./син. красный моргает при выполнении какой либо операции. Далее подключаю сокетку (шла вместе с программатором). В меню указываю тип PIC, вставляю PIC16F1938, нажимаю "Чистая ли?" пишет что PIC не найден. А раз не видит PIC все остальные операции естественно не доступны. А так как больше ни каких PIC у меня нет, т.е. не с чем сравнить возникает вопрос, PIC16F1938 пластмасса с ножками, или сам программатор "глючный". Подскажите как можно определить каким либо ещё способом работоспособность программатора, или микросхем PIC16F1938. А то уже мозг выносит этот программатор, с Атмегой у меня таких проблем никогда не возникало.

Добрый день!, Вот приобрел пик кит 2, на первой картинке читаю пик16ф628 все норм, а при попытки считывания пик18ф252 выдает вот это, что это значит.И еще подскажите к в этой оболочке убрать CodeProtect (какой бит?)






Vpp error - нехватка напряжения для перехода в режим прошивки. Возможно, надо откалибровать программатор (вроде, в пункте "Tools" калибровка была).
За Code Protect отвечает 13-й бит (как раз тот, который на последнем скрине выделен), нужно поменять его на 1, и защита кода отключится.

18f252 в списке поддерживаемых есть, просто поставь 18F в семействе контроллеров. Возможно, придется выбрать МК в выпадающем списке (сейчас нет винды под рукой, чтоб проверить, как там).
В панельку контроллер вставлен правильно?


Витинари, так же можно подцеплять?;), зиф панель, это программатор К-150, и забыл сказать пикит 2 заказывал с китая за 700р, может еще в нем причина

LED, проблема у тебя - это к-150. Ведь пины ZIF-40 не в воздухе висят, а подключены к управляющему PIC-контроллеру.
Разьем, к которому ты подключил PICKIT2 предназначен для программирования контроллеров, которые подключаются помимо ZIF-40, НО НЕ НАОБОРОТ.

Ведь напряжение питания на программируемый контроллер, поступающее с PICKIT2, подаётся не только на него, НО и на управляющий PIC-контроллер. Который тоже стартует, а что творится на шинах в этот мемент, только Богу известно.
Как правильно подметил Витинари - Vpp error - нехватка напряжения для перехода в режим прошивки . Значит цепь Vpp программатора К-150 подсаживает напряжение Vpp подаваемое с PICKIT2
Такое подключение чревато потерей К-150, PICKIT2, а если "повезёт", +12 вольт попадёт на USB шину, то и компа.
Иногда схему своего устройства посмотреть не мешало бы.
А для прошивки PIC-контроллеров программатором PICKIT2, PICKIT3 существует вот такая приблуда, см. картинку.
,


Кстати,программатор PICKIT2 прекрасно прошивает AVR без смены прошивки управляющего PIC-контроллера. Просто в софте для AVR выбираем "PICKIT2", работаем, радуемся.

fsem, а поподробней про pickit и авр ? Че там куда цеплять я так понимаю Vpp на ресет, clock на sck , data на miso (вход) а выход mosi куды цеплять.


djsanya123,

Читайте также: