Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как реализовать ICSP для PIC18CXXX?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Fledgling
Приветствую!

Опишите плз алгоритм перепрограммирования микроконтроллера PIC с использованием ICSP (In-Circuit Serial Programming).

Есть ли какой нибудь готовый Си-шный код (ANSI, ну или для люой платформы) который реализует алгоритм программирования?
То есть необходим сам "переход" из данных в HEX файле в подачу сигналов ("Дерганье"))) ножек CLOCK и DATA PIC'a?

Приветствуются любые сведения, русскоязычные мануалы, примеры кода и ссылки по темеsmile.gif
Заранее спасибо
volodya
Цитата(Fledgling @ Dec 1 2008, 15:11) *
Приветствую!

Опишите плз алгоритм перепрограммирования микроконтроллера PIC с использованием ICSP (In-Circuit Serial Programming).


Вообще то на сайте MICROCHIP есть подробная спецификация программирования, три линии (MCLR, PGD, PGC + питание).
http://www.microchip.com/stellent/idcplg?I...amp;nodeId=1407

Посредством доступного программатора (MPLAB ICD2/ICD3/REAL-ICE или клона, или других программаторов сдесь в форуме ссылки были) - уже готовые рещения.
Или Вы хотите велосипед поизобретать - тогда удачи.
Fledgling
Цитата(volodya @ Dec 2 2008, 10:54) *
Посредством доступного программатора (MPLAB ICD2/ICD3/REAL-ICE или клона, или других программаторов сдесь в форуме ссылки были) - уже готовые рещения.
Или Вы хотите велосипед поизобретать - тогда удачи.

К сожалению, есть необходимость изобрести велосипедsmile.gif
Программатор должен быть встроен в устройство, так как у PIC'a нет выходов на внешние разьемы, есть выход через интерфейс CAN у другого процессора, который и должен программировать PIC данными, поступившими ему по CAN.
_Pasha
Цитата(Fledgling @ Dec 2 2008, 10:01) *
у другого процессора, который и должен программировать PIC данными, поступившими ему по CAN.

Boot loader не катит ?
Fledgling
Цитата(_Pasha @ Dec 2 2008, 12:18) *
Boot loader не катит ?

Ммм... а что это?smile.gif
_Pasha
Цитата(Fledgling @ Dec 2 2008, 12:23) *
Ммм... а что это?smile.gif

В том смысле, что написАть загрузчик, который будет получать команды с описанного Вами МК и менять прошивку самостоятельно.
гугл: pic18 self-programming boot loader
и я не думаю, что Вы ничего не поймете. smile.gif
Fledgling
Цитата(_Pasha @ Dec 2 2008, 14:03) *
В том смысле, что написАть загрузчик, который будет получать команды с описанного Вами МК и менять прошивку самостоятельно.
гугл: pic18 self-programming boot loader
и я не думаю, что Вы ничего не поймете. smile.gif


Такой подход будет проще программирования через ICPS?
Идея состояла в том, чтобы вообще не пришлось изучать программирование PIC'a, а просто подавать с микроконтроллера (с изученными системами команд) сигналы через последовательный интерфейс.

Или я что то неправильно понял?smile.gif
Судя по описанию можно загрузить стандартный бутлоадер который будет также принимать данные по последовательному порту?
_Pasha
Цитата(Fledgling @ Dec 2 2008, 14:55) *
Или я что то неправильно понял?smile.gif
Судя по описанию можно загрузить стандартный бутлоадер который будет также принимать данные по последовательному порту?

Дык, или я не понял...
1. Данные он может принимать откуда угодно породившему его программеру.
2. Т.к. это программа, то она жрет флеш-память. Это минус.

В общем, читайте ICSP. Выбирайте.Нажмите для просмотра прикрепленного файла
Fledgling
Цитата(_Pasha @ Dec 2 2008, 16:38) *
Дык, или я не понял...
1. Данные он может принимать откуда угодно породившему его программеру.
2. Т.к. это программа, то она жрет флеш-память. Это минус.

В общем, читайте ICSP. Выбирайте.Нажмите для просмотра прикрепленного файла


Спасибо!:)

Но все таки по Вашей оценке - который метод более трудоемок при минимальном знании PIC'a?

И еще: мануалы по ICSP я изучил, прочитал про 4х битные команды и прочее но общий алгоритм перепрошивки не понял. Нельзя ли обьяснить наиболее "чайницким" языком?smile.gif
_Pasha
Цитата(Fledgling @ Dec 2 2008, 16:01) *
Но все таки по Вашей оценке - который метод более трудоемок при минимальном знании PIC'a?

Наверное, таки ICSP будет проще и надежнее, потому что может ведь слететь флеш, вместе с бутом.
Цитата
Нельзя ли обьяснить наиболее "чайницким" языком?smile.gif

Ну, программаторы не конструировал, поэтому могу оказаться ламером. Лучше пусть кто-нить другой попробует smile.gif
VDLab
Думаю все же бутлодеру в данном случае самое место, иначе придется ставить еще один МК + повышающий преобразователь напряжения+флешь-память для временного хранения прошивки+всю необходимую обвязку для этого хозяйства. Лучше взять сразу один МК, с обьемом памяти побольше(мало ли какие функции захочется добавить в будущем), и не придумывать такие жуткие извраты. У вас же не Evaluation board какой нибудь, а целевое устройство, зачем же себе лишних проблем добавлять?
Если все же хочется сделать таким заковыристым способом, то схему программатора и реализацию алгоритмов программ можно подсмотреть в исходниках Микрочиповского Pickit2.
_Pasha
Цитата(VDLab @ Dec 2 2008, 19:53) *
Думаю все же бутлодеру в данном случае самое место, иначе придется ставить еще один МК + повышающий преобразователь напряжения+флешь-память для временного хранения прошивки+всю необходимую обвязку для этого хозяйства.

Совершенно не того!
МК у человека уже ЭСТЬ, а городить 12 вольт вовсе не обязательно, если имеется функция LVip, то есть фьюз предварительно прошит.
VDLab
Все равно не пойму смысла применения ICSP в этом случае. Простенький бутлодер (а навороченного в данном случае и не требуется) занимает не так уж и много места в памяти, что бы такой огород городить. Вот пусть второй МК и принимает данные, проверяет их правильность (а это нужно делать обязательно в обоих случаях) и отдает их ПИКу. Хошь по ЮАРТу, а хошь по любому другому интерфейсу, какой удобнее, Дешево и сердито. Не тратится лишних выводов (выводы LVP, PGC, PGD), не требуется другая обвязка (Пр.Напр.), да и алгоритм бутлодера попроще алгоритма ICSP. Так что выбирайте...
volodya
Цитата(Fledgling @ Dec 2 2008, 12:55) *
Такой подход будет проще программирования через ICPS?
Идея состояла в том, чтобы вообще не пришлось изучать программирование PIC'a, а просто подавать с микроконтроллера (с изученными системами команд) сигналы через последовательный интерфейс.


Можнл согласиться с VDLab bootloader потребует минимума аппаратных затрат, хотя без знаний программирование PIC не обойтись.
A FLASH Bootloader for PIC16 and PIC18 Devices - Name: AN851 - пример
на http://www.microchip.com/stellent/idcplg?I...ppnote=en012031
там вреде пример кода был.
А программатор будет гемороистее городить, - хотя может зависить от устройства.
Fledgling
Цитата(volodya @ Dec 3 2008, 11:49) *
Можнл согласиться с VDLab bootloader потребует минимума аппаратных затрат, хотя без знаний программирование PIC не обойтись.
A FLASH Bootloader for PIC16 and PIC18 Devices - Name: AN851 - пример
на http://www.microchip.com/stellent/idcplg?I...ppnote=en012031
там вреде пример кода был.
А программатор будет гемороистее городить, - хотя может зависить от устройства.


Аппаратная часть уже готова, в нем обвязка для ICSP была выполнена "на будущее", ранее PIC программировался вскрытием корпуса и прямым подсоединением таблетки-программатора. Возникла необходимость программировать PIC не вскрывая блока, а аппаратную часть менять уже поздноsmile.gif

Поэтому видимо придется использовать "чистый" ICSP
Fledgling
По ICSP вопрос - там CLOCK обязан защелкивать данные по определенному периоду (синхронно) или я могу управлять им как хочу (по готовности, асинхронно)?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.