Перейти к содержанию
    

Клон PicKIT3 и PIC16F690

Здравствуйте все!

Имею чужую железку (чем шилась и когда неизвестно, исходников и зашитых конфигов нет, тактирование от внутреннего генератора).

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

Собственно суть в заголовке. Микросхема определяется, но при попытке перезаписи выдает ошибку. При попытке стереть старая программа точно сохраняется (в MPLAB сообщение, что стирание прошло успешно).

 

Aplly Vpp before Vdd или Vdd before Vpp не меняет дела. Питание и от внешнего источника 3,3В и от программатора - эффект тот же.

 

Куда копать?

 

 

У себя конфиги ставлю такие:

#pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)

#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)

#pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled)

#pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)

#pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled)

#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)

#pragma config BOREN = ON // Brown-out Reset Selection bits (BOR enabled)

#pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode is disabled)

#pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled

Изменено пользователем rav38

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сначала добейтесь стирания.

Скорее всего просто в режим программирования не входит

Проверьте какое напряжение на Vpp выдает Ваш клон. и смотрите все сигналы прямо на выводах, может там у Вас хитрая схема или вообще просто обрыв на плате.

Еще часто- на ногах программирования что-то висит и оно мешает. Проверьте что там на них.

ну и краткая выдержка из даташита, " 14.9. In-Circuit Serial Programming"

The PIC16F631/677/685/687/689/690 microcontrollers

can be serially programmed while in the end application circuit. This is simply done with two lines for clock

and data and three other lines for:

• power

• ground

• programming voltage

This allows customers to manufacture boards with unprogrammed devices and then program the microcontroller just before shipping the product. This also allows the most recent firmware or a custom firmware to be programmed.

 

The device is placed into a Program/Verify mode by holding the RA0/AN0/C1IN+/ICSPDAT/ULPWU and RA1/AN1/C12IN-/VREF/ICSPCLK pins low, while raising the MCLR (VPP) pin from VIL to VIHH. See the ”PIC12F6XX/16F6XX Memory Programming Specification” (DS41204) for more information. RA0 becomes the programming data and RA1 becomes the programming clock. Both RA0 and RA1 are Schmitt Trigger inputs in this mode.

 

After Reset, to place the device into Program/Verify mode, the Program Counter (PC) is at location 00h. A 6-bit command is then supplied to the device.

Depending on the command, 14 bits of program data are then supplied to or from the device, depending on whether the command was a load or a read. For complete details of serial programming, please refer to the ”PIC12F6XX/16F6XX Memory Programming Specification” (DS41204).

 

A typical In-Circuit Serial Programming connection is shown in Figure 14-11.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Висит там всякое, есть такое. Одолжу сейчас тритон, попробую им стереть.

Vpp есть на плате, сигналы доходят. Опять процессор определяется.

Изменено пользователем rav38

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Висит там всякое, есть такое.

C PICkit-3 раньше большой напечатанный плакат поставлялся (не знаю как сейчас) на тему "что можно и что нельзя делать с ногами если нужно сохранить внутрисхемное программирование на плате", наверняка где-то на сайте майкрочипа рядом с описанием программатора лежит этот файл. Правил немного, но они все важные. Если разработчики платы что-то недосмотрели, то запросто может быть проблема из-за этого

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тритон стирает и программирует. Обнулил проц, буду завтра своим пробовать шить

 

 

C PICkit-3 раньше большой напечатанный плакат поставлялся (не знаю как сейчас) на тему "что можно и что нельзя делать с ногами если нужно сохранить внутрисхемное программирование на плате", наверняка где-то на сайте майкрочипа рядом с описанием программатора лежит этот файл. Правил немного, но они все важные. Если разработчики платы что-то недосмотрели, то запросто может быть проблема из-за этого

Оно?

 

ICSP_interface_design.gif

 

Изменено пользователем rav38

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тритон стирает и программирует. Обнулил проц, буду завтра своим пробовать шить

Ага, значит либо программатор не работает, либо он просто не может перетянуть уровни из-за резистивной или емкостной нагрузки на ногах, а Тритон молодец.

 

Оно?

я-я, натюрлих! :)

Только они почему-то запретили емкость на Vdd- это неправильно, в разумных пределах(ну, у меня обычно десятки микрофарад керамики, иногда и больше)- нормально все работает при запитке не от программатора. А вот про запрет емкости на MCLR написали, но не нарисовали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

про конденсатор на vdd странно. стоит танталовый рядом с керамикой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

про конденсатор на vdd странно. стоит танталовый рядом с керамикой.

Ну и пусть себе стоит. Я же говорю, нормально это. Подозреваю, что рисовали перед новым годом, и перепутали Vdd и Vpp на картинке.

А вот конденсатор на Reset - это может быть беда. А еще некоторые напрямую сброс к питанию цепляют, а потом программировать пытаются внутрисхемно. Всякое бывает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем странно все это, но тем не менее. После того как обнулил микросхему Тритоном, проблема ушла.

Накидал тестовую моргалку светодиодом, успешно записал и успешно стер своим программатором. Вот запустить дебагер не смог, но это и не особо нужно, приложение небольшое.

Более чем уверен что старая программа стояла с защитными фьюзами, но мешало ли это стиранию с помощью PicKitа хз. Я озадачен, но в общем-то надеюсь что проблема решена.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стереть фьюзы требуется больше энергии, так, вроде, помнится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем странно все это, но тем не менее. После того как обнулил микросхему Тритоном, проблема ушла.

Накидал тестовую моргалку светодиодом, успешно записал и успешно стер своим программатором. Вот запустить дебагер не смог, но это и не особо нужно, приложение небольшое.

Вариантов много. Но это гадание на кофейной гуще без информации:

1. Схема, в которую ПИК впаян

2. Разница в схемах (а может и в софте) этого клона и оригинального PICkit-3

 

Можно и не исправлять, если не мешает жить. Но вот знать и понимать причину такого странного поведения- обязательно нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем странно все это, но тем не менее.

 

Похоже ножки PGD/PGC использовались в программе как выходы, поэтому как только подавалось питание проц стартовал на внутреннем генераторе (а это довольно быстро) и препятствовал т.о. вход в режим программирования/отладки. В тоже самое время проц видится потому как процедура идентификации не позволяет процу стартовать.

В общем, если вы используете ножки пжд/пжц в схеме, сделайте паузу 10-100 мс перед инициализацией проца и стартом своей программы, проблема уйдёт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...