Ant. 0 4 мая, 2018 Опубликовано 4 мая, 2018 (изменено) · Жалоба Здравствуйте. Проблема в следующем: Есть устройство на 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, но это не обязательно - можно и другое что приделать. Главное понять, есть ли в принципе возможность... Изменено 4 мая, 2018 пользователем Ant. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 5 4 мая, 2018 Опубликовано 4 мая, 2018 · Жалоба Если вы действительно имеете ввиду "внешнюю EEPROM подключенной по SPI", то возможности программировать ее через ICD никогда и не было. Внешняя EEPROM к программированию МК отношения не имеет. Через отладчик/программатор можно прошить только внутреннюю EEPROM, но все биты защиты взведены. Более того, взведен даже бит LVP, так что вы даже очистить ПИК не можете через ICD, только выпаивая и подключая к параллельному программатору. Но если задача состоит только в изменении внешней EEPROM - то проблем нет никаких. Выпаиваете её из платы и читаете/пишете во внешнем программаторе :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ant. 0 4 мая, 2018 Опубликовано 4 мая, 2018 (изменено) · Жалоба Если вы действительно имеете ввиду "внешнюю 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 - то проблем нет никаких. Выпаиваете её из платы и читаете/пишете во внешнем программаторе :) Проблема в том, что плата установлена в литом герметичном корпусе и залита компаундом, так что доступен лишь разъем внутресхемного программирования. EEPROM находится с обратной стороны и без разрушения конструкции к ней не добраться. Можно лишь подцепиться к контактам PICа(он с доступной стороны платы, но в SOIC), предварительно удалив там компаунд, но это не самое технологичное решение. Изменено 4 мая, 2018 пользователем Ant. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 5 4 мая, 2018 Опубликовано 4 мая, 2018 · Жалоба Меня интересует не сколько программирование внешней EEPROM, сколько доступ к периферийным регистрам МК(в частности к GPIO) через интерфейс ICD(вернее ICSP) при установленных битах защиты. Теперь понял вашу мысль, идея интересная. Возможно и осуществимая. Нужно поискать у Микрочипа документы по протоколу отладчика (в свободном ли он доступе), ну и попробовать на реальной тестовой плате. Я в этом направлении никогда не разбирался. Единственно, смущает, что у ПИК16 полупрограммный отладчик, который при включении грузит доп. коды во флеш и использует часть общих ресурсов. Этот бит тоже есть в слове конфигурации, у вас он в распечатке отсутствует. И если доступ к портам идет через этот доп. отладчик, то ничего не получится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Smen 1 8 мая, 2018 Опубликовано 8 мая, 2018 · Жалоба вы даже очистить ПИК не можете через ICD, только выпаивая и подключая к параллельному программатору. Это Вы с АВР попутали. :rolleyes: Сорри за оффтоп. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться