rav38 0 15 декабря, 2016 Опубликовано 15 декабря, 2016 (изменено) · Жалоба Здравствуйте все! Имею чужую железку (чем шилась и когда неизвестно, исходников и зашитых конфигов нет, тактирование от внутреннего генератора). Потребовалось переделать. В качестве программатора используется клон 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 Изменено 15 декабря, 2016 пользователем rav38 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 15 декабря, 2016 Опубликовано 15 декабря, 2016 · Жалоба Сначала добейтесь стирания. Скорее всего просто в режим программирования не входит Проверьте какое напряжение на 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rav38 0 15 декабря, 2016 Опубликовано 15 декабря, 2016 (изменено) · Жалоба Висит там всякое, есть такое. Одолжу сейчас тритон, попробую им стереть. Vpp есть на плате, сигналы доходят. Опять процессор определяется. Изменено 15 декабря, 2016 пользователем rav38 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 15 декабря, 2016 Опубликовано 15 декабря, 2016 · Жалоба Висит там всякое, есть такое. C PICkit-3 раньше большой напечатанный плакат поставлялся (не знаю как сейчас) на тему "что можно и что нельзя делать с ногами если нужно сохранить внутрисхемное программирование на плате", наверняка где-то на сайте майкрочипа рядом с описанием программатора лежит этот файл. Правил немного, но они все важные. Если разработчики платы что-то недосмотрели, то запросто может быть проблема из-за этого Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rav38 0 15 декабря, 2016 Опубликовано 15 декабря, 2016 (изменено) · Жалоба Тритон стирает и программирует. Обнулил проц, буду завтра своим пробовать шить C PICkit-3 раньше большой напечатанный плакат поставлялся (не знаю как сейчас) на тему "что можно и что нельзя делать с ногами если нужно сохранить внутрисхемное программирование на плате", наверняка где-то на сайте майкрочипа рядом с описанием программатора лежит этот файл. Правил немного, но они все важные. Если разработчики платы что-то недосмотрели, то запросто может быть проблема из-за этого Оно? Изменено 15 декабря, 2016 пользователем rav38 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 15 декабря, 2016 Опубликовано 15 декабря, 2016 · Жалоба Тритон стирает и программирует. Обнулил проц, буду завтра своим пробовать шить Ага, значит либо программатор не работает, либо он просто не может перетянуть уровни из-за резистивной или емкостной нагрузки на ногах, а Тритон молодец. Оно? я-я, натюрлих! :) Только они почему-то запретили емкость на Vdd- это неправильно, в разумных пределах(ну, у меня обычно десятки микрофарад керамики, иногда и больше)- нормально все работает при запитке не от программатора. А вот про запрет емкости на MCLR написали, но не нарисовали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rav38 0 15 декабря, 2016 Опубликовано 15 декабря, 2016 · Жалоба про конденсатор на vdd странно. стоит танталовый рядом с керамикой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 15 декабря, 2016 Опубликовано 15 декабря, 2016 · Жалоба про конденсатор на vdd странно. стоит танталовый рядом с керамикой. Ну и пусть себе стоит. Я же говорю, нормально это. Подозреваю, что рисовали перед новым годом, и перепутали Vdd и Vpp на картинке. А вот конденсатор на Reset - это может быть беда. А еще некоторые напрямую сброс к питанию цепляют, а потом программировать пытаются внутрисхемно. Всякое бывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rav38 0 16 декабря, 2016 Опубликовано 16 декабря, 2016 · Жалоба В общем странно все это, но тем не менее. После того как обнулил микросхему Тритоном, проблема ушла. Накидал тестовую моргалку светодиодом, успешно записал и успешно стер своим программатором. Вот запустить дебагер не смог, но это и не особо нужно, приложение небольшое. Более чем уверен что старая программа стояла с защитными фьюзами, но мешало ли это стиранию с помощью PicKitа хз. Я озадачен, но в общем-то надеюсь что проблема решена. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 16 декабря, 2016 Опубликовано 16 декабря, 2016 · Жалоба Стереть фьюзы требуется больше энергии, так, вроде, помнится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 16 декабря, 2016 Опубликовано 16 декабря, 2016 · Жалоба В общем странно все это, но тем не менее. После того как обнулил микросхему Тритоном, проблема ушла. Накидал тестовую моргалку светодиодом, успешно записал и успешно стер своим программатором. Вот запустить дебагер не смог, но это и не особо нужно, приложение небольшое. Вариантов много. Но это гадание на кофейной гуще без информации: 1. Схема, в которую ПИК впаян 2. Разница в схемах (а может и в софте) этого клона и оригинального PICkit-3 Можно и не исправлять, если не мешает жить. Но вот знать и понимать причину такого странного поведения- обязательно нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ANV 0 18 декабря, 2016 Опубликовано 18 декабря, 2016 · Жалоба В общем странно все это, но тем не менее. Похоже ножки PGD/PGC использовались в программе как выходы, поэтому как только подавалось питание проц стартовал на внутреннем генераторе (а это довольно быстро) и препятствовал т.о. вход в режим программирования/отладки. В тоже самое время проц видится потому как процедура идентификации не позволяет процу стартовать. В общем, если вы используете ножки пжд/пжц в схеме, сделайте паузу 10-100 мс перед инициализацией проца и стартом своей программы, проблема уйдёт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rav38 0 20 декабря, 2016 Опубликовано 20 декабря, 2016 · Жалоба Внутренний генератор используется, верно. Ножки тоже чет там делают как выходы в схеме, сейчас их не использую в своем коде. А то что было зашито -там вполне могло использоваться. Почти написал требуемое приложение, проблемы вроде не возникало. Посмотрим как дальше. Тем более что пока работаю с одной платой, а их несколько десятков спаяно. Если буду перерабатывать железку всерьез, учту замечания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться