реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> PIC16F873 управление пинами через ICD(ICSP)
Ant.
сообщение May 4 2018, 09:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 18-06-06
Пользователь №: 18 144



Здравствуйте.
Проблема в следующем:
Есть устройство на PIC16F873 с внешней EEPROM подключенной по SPI.
Биты конфигурации:
Код
Address Value Field                    Category                                              Setting                          

  2007   0E46 FOSC  Oscillator Selection bits                      HS oscillator                                              
              WDTE  Watchdog Timer Enable bit                      WDT enabled                                                
              PWRTE Power-up Timer Enable bit                      PWRT enabled                                                
              CP    FLASH Program Memory Code Protection bits      0000h to 0FFFh code protected                              
              BOREN Brown-out Reset Enable bit                     BOR enabled                                                
              LVP   Low Voltage In-Circuit Serial Programming Enable bitRB3 is digital I/O, HV on MCLR must be used for programming
              CPD   Data EE Memory Code Protection                 Data EEPROM memory code-protected                          
              WRT   FLASH Program Memory Write Enable              Unprotected program memory may be written to by EECON control

На устройстве присутствует ICD разъем.
Хотелось бы запрограммировать внешнюю EEPROM дергая портами через ICD интерфейс.
Возможно ли это с учетом установленных битов защиты?
В MPLAB IDE v8.89 все Special Function Registers отображаются по нулям. При попытке изменения значения RB в данном окошке оно становится красным, после обновления - черным, но с контроллером похоже ничего не происходит. Это нормально?
Использую MPLAB ICD2, но это не обязательно - можно и другое что приделать. Главное понять, есть ли в принципе возможность...

Сообщение отредактировал Ant. - May 4 2018, 15:06
Go to the top of the page
 
+Quote Post
Baser
сообщение May 4 2018, 11:05
Сообщение #2


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Если вы действительно имеете ввиду "внешнюю EEPROM подключенной по SPI", то возможности программировать ее через ICD никогда и не было.
Внешняя EEPROM к программированию МК отношения не имеет.
Через отладчик/программатор можно прошить только внутреннюю EEPROM, но все биты защиты взведены. Более того, взведен даже бит LVP, так что вы даже очистить ПИК не можете через ICD, только выпаивая и подключая к параллельному программатору.

Но если задача состоит только в изменении внешней EEPROM - то проблем нет никаких.
Выпаиваете её из платы и читаете/пишете во внешнем программаторе sm.gif
Go to the top of the page
 
+Quote Post
Ant.
сообщение May 4 2018, 14:44
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 18-06-06
Пользователь №: 18 144



Цитата(Baser @ May 4 2018, 14:05) *
Если вы действительно имеете ввиду "внешнюю EEPROM подключенной по SPI", то возможности программировать ее через ICD никогда и не было.
Внешняя EEPROM к программированию МК отношения не имеет.

Меня интересует не сколько программирование внешней EEPROM, сколько доступ к периферийным регистрам МК(в частности к GPIO) через интерфейс ICD(вернее ICSP) при установленных битах защиты. По идее они относятся к памяти и если полагаться на цитату из MPLAB "Unprotected program memory may be written to by EECON control", то должен быть доступ к этому регистру и возможно к остальным тоже.
Может быть для этого нужно, чтобы ядро и все клоки периферии не были остановлены?
Не обязательно делать это штатными средствами типа ICD2 или PICKit - можно было бы сделать свое устройство на любом восьминогом МК.

Цитата
Более того, взведен даже бит LVP, так что вы даже очистить ПИК не можете через ICD, только выпаивая и подключая к параллельному программатору.

MPLAB ICD2 вроде умеет подавать HV на MCLR. Этого должно быть достаточно, но перепрошивать сам PIC не требуется.


Цитата
Но если задача состоит только в изменении внешней EEPROM - то проблем нет никаких.
Выпаиваете её из платы и читаете/пишете во внешнем программаторе sm.gif

Проблема в том, что плата установлена в литом герметичном корпусе и залита компаундом, так что доступен лишь разъем внутресхемного программирования. EEPROM находится с обратной стороны и без разрушения конструкции к ней не добраться. Можно лишь подцепиться к контактам PICа(он с доступной стороны платы, но в SOIC), предварительно удалив там компаунд, но это не самое технологичное решение.

Сообщение отредактировал Ant. - May 4 2018, 15:06
Go to the top of the page
 
+Quote Post
Baser
сообщение May 4 2018, 15:18
Сообщение #4


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Ant. @ May 4 2018, 17:44) *
Меня интересует не сколько программирование внешней EEPROM, сколько доступ к периферийным регистрам МК(в частности к GPIO) через интерфейс ICD(вернее ICSP) при установленных битах защиты.

Теперь понял вашу мысль, идея интересная. Возможно и осуществимая.
Нужно поискать у Микрочипа документы по протоколу отладчика (в свободном ли он доступе),
ну и попробовать на реальной тестовой плате.
Я в этом направлении никогда не разбирался.

Единственно, смущает, что у ПИК16 полупрограммный отладчик, который при включении грузит доп. коды во флеш и использует часть общих ресурсов.
Этот бит тоже есть в слове конфигурации, у вас он в распечатке отсутствует.

И если доступ к портам идет через этот доп. отладчик, то ничего не получится.
Go to the top of the page
 
+Quote Post
Smen
сообщение May 8 2018, 06:13
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 196
Регистрация: 18-03-13
Из: Питер
Пользователь №: 76 081



Цитата(Baser @ May 4 2018, 16:05) *
вы даже очистить ПИК не можете через ICD, только выпаивая и подключая к параллельному программатору.

Это Вы с АВР попутали. rolleyes.gif
Сорри за оффтоп.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2018 - 19:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01013 секунд с 7
ELECTRONIX ©2004-2016