Не удалось получить идентификатор устройства — PICkit 3, PIC16F684-ICD и AC16205.

Как уже упоминалось в заголовке, у меня есть вопрос относительно этого стека разработки:

Есть изображение того, как вещи связаны (я не думаю, что есть проблема):

введите описание изображения здесь

Параметры питания:введите описание изображения здесь

Есть простая программа, которую я использую для тестирования:

/*
 * File:   main.c
 * Author: Primoz
 * 
 * PIC16F684
 *
 * Simple test program.
 */

#include <xc.h>

// CONFIG
#pragma config MCLRE = OFF      // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to V
#pragma config FOSC = INTOSCIO  // 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)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#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 = OFF      // Brown Out Detect (BOR disabled)
#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)

void main()
{
    TRISA = 0b111101;

    PORTA = 0b000010;

    for (;;)
    {
        ;
    }
}

Я успешно запрограммировал устройство всего несколько раз. В большинстве случаев я получаю этот вывод:

Connecting to MPLAB PICkit 3...
Firmware Suite Version.....01.28.72
Firmware type..............Midrange

Target detected
Failed to get Device ID

Итак, мой вопрос: что может быть причиной такого странного поведения? Как я могу заставить его работать?

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать...

Предположительно, вы питаете его от программатора; напряжение правильное?
Это сказано в техническом описании Wide operating voltage range (2.0V-5.5V), поэтому я думаю, что 5V в порядке, верно?
Выглядит хорошо. Может у тебя связь слабая?
Я так не думаю.. Но было бы неплохо проверить.. Сделаю это, но не прямо сейчас, так как у меня нет мультиметра под рукой... Сообщу вам, что я узнал.. .

Ответы (6)

Я проверил, есть ли какие-либо ослабленные соединения, подобные предложенным @pjc50, - не нашел.

Я даже заказал новый заголовок, и, к моему удивлению, проблема все еще не исчезла.

После многих проб и ошибок я понял, что это работает, если я установил Voltage Level( 4,875вместо 5V):

введите описание изображения здесь

Точно такая же проблема с 16F883. Никогда бы не подумал изменить напряжение, спасибо!

Никаких обещаний, но я лично сталкивался с таким же поведением более ста раз.

Каждый из них был исправлен путем выбрасывания моего соединительного кабеля и подключения нового.

Это означает

  • Штекер на PICkit3
  • Физический разъем на самой стороне PIC
  • Физические провода между этими двумя штекерами

Ваши текущие наблюдения могут полностью сбить вас с толку; поскольку мой меня неоднократно смущал, когда это происходило здесь. Когда вы рассматриваете оборванные провода, которые «иногда есть», картина становится немного более ясной.

Кстати, если...

  • Проблема началась недавно
  • У вас есть только один набор этих соединительных проводов, предназначенных для вашего использования.
  • Раньше они работали идеально
  • В настоящее время вы видите результаты "иногда" (возможно, "случайный успех")

.. тогда мое подозрение возрастает.

Опять же, никаких обещаний, но это то, что случилось со мной на моей схеме PIC24 с ICD-3 и иногда с PICkit. То, что вы описываете, это именно то, что я наблюдал.

У меня аналогичная проблема с прошивкой 28.01.72. Когда я вернулся к 1.12.01, он снова заработал.

У меня была та же проблема, получая сообщения об ошибках, такие как «Не удалось получить идентификатор устройства». Моя конфигурация представляет собой 44-контактную демонстрационную плату с PIC16F887, Pickit 3 (версия прошивки 1.28.18) и MPLAB 8.88. Я последовал совету PrimosK, приведенному выше, и это было правильно: уменьшил напряжение с 5,0 В по умолчанию до 4,875 В, и все заработало. Но также заметил, что MPLAB не сохраняет настройки, и мне пришлось установить их снова при следующем запуске MPLAB. Удачи.

У меня была та же проблема, когда я работал с Pic16F883 и PicKitt3. И теперь это исправить, я питаю целевую карту от внешнего источника (5Vcd) и в параметрах проекта -> Programmer я снимаю флажок с опции «POWER TARGET CIRCUIT FROM PICKKIT3», надеюсь, эта информация вам поможет.

С подобной проблемой столкнулся и я. У меня есть плата контроллера на базе 24FJ128GA308 с дисплеем COD 128 * 64, подключенным к интерфейсу, и плата питается от внешнего источника. Для устройства с только что изготовленным (незапрограммированным контроллером) при вызове опции «Программировать» выдается ошибка «Ошибка программирования — в PICkit 3 отсутствует объект памяти». Пробовал с заменой - при включенной плате контроллера от PICKit 3, все равно не работало Затем в опции Programmer я нажимал Hold in Reset на 2-3 секунды, отпускал обратно, затем 24F запрограммировался и плата начала работать .Кстати, у меня правильная схема сброса.-Чандрашекхар Джоши