Как уже упоминалось в заголовке, у меня есть вопрос относительно этого стека разработки:
Есть изображение того, как вещи связаны (я не думаю, что есть проблема):
Параметры питания:
Есть простая программа, которую я использую для тестирования:
/*
* 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
Итак, мой вопрос: что может быть причиной такого странного поведения? Как я могу заставить его работать?
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать...
Я проверил, есть ли какие-либо ослабленные соединения, подобные предложенным @pjc50, - не нашел.
Я даже заказал новый заголовок, и, к моему удивлению, проблема все еще не исчезла.
После многих проб и ошибок я понял, что это работает, если я установил Voltage Level
( 4,875
вместо 5V
):
Никаких обещаний, но я лично сталкивался с таким же поведением более ста раз.
Каждый из них был исправлен путем выбрасывания моего соединительного кабеля и подключения нового.
Это означает
Ваши текущие наблюдения могут полностью сбить вас с толку; поскольку мой меня неоднократно смущал, когда это происходило здесь. Когда вы рассматриваете оборванные провода, которые «иногда есть», картина становится немного более ясной.
Кстати, если...
.. тогда мое подозрение возрастает.
Опять же, никаких обещаний, но это то, что случилось со мной на моей схеме 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 запрограммировался и плата начала работать .Кстати, у меня правильная схема сброса.-Чандрашекхар Джоши
pjc50
ПримосК
Wide operating voltage range (2.0V-5.5V)
, поэтому я думаю, что 5V в порядке, верно?pjc50
ПримосК