Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы программирования PIC
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
SergeyM
Народ привет!
Никто не сталкивался с такой проблемой, когда программируешь МК и он не работает, Программирование ведется на программаторе Стерх и находится на производстве. При конфигурировании внутреннего генератора и RA6 на CLOCKOUT, генерация происходит нормально, а вот на нужных выходах ничего не происходит. МК PIC16F627.
bzx
Цитата(SergeyM @ Aug 25 2005, 14:54)
Народ привет!
Никто не сталкивался с такой проблемой, когда программируешь МК и он не работает, Программирование ведется на программаторе Стерх и находится на производстве. При конфигурировании внутреннего генератора и RA6 на CLOCKOUT, генерация происходит нормально, а вот на нужных выходах ничего не происходит. МК PIC16F627.
*

А Вы в своём коде, который зашиваете в пики, уверенны? Стерх - промышленный программатор, на него только в последнюю очередь можно грешить
SergeyM
Цитата(bzx @ Aug 25 2005, 15:31)
А Вы в своём коде, который зашиваете в пики, уверенны? Стерх - промышленный программатор, на него только в  последнюю очередь можно грешить
*


Вообще код отработан в протеусе, да и к тому же моргать одним светодиодом не так сложно.
Вот код ( MPLAB PICC LITE)
Код
# include <pic.h>
#if defined(_16F627)
    #warning PIC16F627 with internal oscillator selected
__CONFIG (0x03F70);      //Конфигурация PIC16F627:
       //внутренний тактовый генератор,
       //RA6/RA7 используются для ввода/вывода
       //используется внешний сигнал сброса,
       //таймер PWRT включен,
       //сторожевой таймер выключен,
       //защита кода отключена,
       //детектор падения напряжения питания включен.
#else
    #error Unsupported PICmicro MCU selected
#endif

// Глобальные переменные

volatile unsigned int RTC = 0; //Счетчик реального времени
//volatile unsigned char del = 0;
static bit trisLED @ (unsigned) &TRISB*8+4; //биты управления светодиодом
static bit LED @ (unsigned) &PORTB*8+4;
static volatile bit    T0IE    @ (unsigned)&INTCON*8+5;
static volatile bit    T0IF    @ (unsigned)&INTCON*8+2;


const int LEDon = 0; // включить светодиод
const int LEDoff = 1; // выключить

void interrupt tmr0_unt(void)
{
    if (T0IF){
 T0IF = 0;
 RTC++;
 if ((RTC % 512)==0)
     LED = LED^1;
    }
}

void enableLED(int LEDstate)
{
    LED=LEDoff;
    if (LEDstate)
 trisLED = 0;
    else
 trisLED = 1;
}


//Главная программа
void main(void)
{
    TMR0 = 0;
    OPTION = 0x0D1;
    T0IE = 1;
    GIE = 1;
    enableLED(1);    
     
    while (1 == 1)  // Бесконечный цикл
    {
 
    }
}


Причем пробовал даже без слова конфигурации компилировать и заливать никакого результата.
Еще может кто знает как правильно работать с данным программатором, может я что не так делаю.
Делаю так:
Редактирую конфигурацию, зашиваю ее потом зашиваю хекс.
ttron
Цитата
Делаю так:
Редактирую конфигурацию, зашиваю ее потом зашиваю хекс.
*


А я всегда сначала хекс заливаю, а потом конфигурацию. А там, случаем, защита код не включена smile.gif ?
bzx
Цитата(SergeyM @ Aug 25 2005, 16:24)
Причем пробовал даже без слова конфигурации компилировать и заливать никакого результата. Еще может кто знает как правильно работать с данным программатором, может я что не так делаю. Делаю так: Редактирую конфигурацию, зашиваю ее потом зашиваю хекс.
*

Вот тут собакаи порылась smile.gif Проблемы со словом конфигурации.
SergeyM
Цитата(ttron @ Aug 25 2005, 16:30)
А я всегда сначала хекс заливаю, а потом конфигурацию. А там, случаем, защита код не включена  smile.gif  ?
*


Нет Code protected Disable
Вобщем так
генератор intRC RA6 clockout
Watch dog Disable
MCLR MCLR
все биты защиты отключены
SergeyM
Цитата(bzx @ Aug 25 2005, 16:42)
Вот тут собакаи порылась smile.gif Проблемы со словом конфигурации.
*


В чем неправильность слова?
bzx
Цитата(SergeyM @ Aug 25 2005, 16:24)
Код
__CONFIG (0x03F70);      //Конфигурация PIC16F627:
       //внутренний тактовый генератор,
       //RA6/RA7 используются для ввода/вывода
       //используется внешний сигнал сброса,
       //таймер PWRT включен,
       //сторожевой таймер выключен,
       //защита кода отключена,
       //детектор падения напряжения питания включен.
*


Ты по бумажке число 0x03F70 вычислял? smile.gif В будущем попробуй примерно в тако стиле:
Код
__CONFIG(UNPROTECT & HS & WDTDIS); // ... в таком духе

так проще

А из стандартных советов: проверить питание, сигнал сброса. Это для начала
SergeyM
Цитата(bzx @ Aug 25 2005, 16:49)
Ты по бумажке число 0x03F70 вычислял? smile.gif В будущем попробуй примерно в тако стиле:
Код
__CONFIG(UNPROTECT & HS & WDTDIS); // ... в таком духе

так проще
*


А HS это разве внутренний генератор. И потом вообще это слово нужно ли для данного программатора. Был случай шили 84 в программе в слове WDT был отключен, а в программаторе его не редактировали и что вы думаете ничто не работало т.к. постоянно срабатывал сторожевой таймер. Отключив его в программаторе все заработало. С 627 такие фишки не походят.
Да и какие еще команды для слова конфигурации есть, для такого типа описания.
bzx
Цитата(SergeyM @ Aug 25 2005, 16:55)
А HS это разве внутренний генератор.
*

Это было в качестве примера. Если речь зашла о том что должно быть у тебя, то примерно так:
Код
__CONFIG (
INTIO,  //внутренний тактовый генератор,
MCLREN,  //используется внешний сигнал сброса,
PWRTEN,  //таймер PWRT включен,
WDTDIS,  //сторожевой таймер выключен,
UNPROTECT,    //защита кода отключена,
LVPDIS);    //детектор падения напряжения питания включен.
SergeyM
Цитата(bzx @ Aug 25 2005, 17:10)


Значит говоришь все дело только в слове конфигурации. Ладно попробуем, завтра если что опять прийду.smile.gif
katarsis
была похожа я проблема - компилил, все компилилось хорошо, а после заливки (через фитон) процессор откзывался стартовать. в общем после загрузки хекса для программирования (фитон прог), ручками выправлялись биты конфигурации.
SergeyM
Цитата
bzx


Все ништяк работает, спасибо!
Born
Цитата(katarsis @ Aug 26 2005, 06:25)
была похожа я проблема  - компилил, все компилилось хорошо, а после заливки (через фитон) процессор откзывался стартовать. в общем после загрузки хекса для программирования (фитон прог), ручками выправлялись биты конфигурации.
*

У меня такое постоянно с PIC12 и PicProg
Вообще программатор меня уже достал этот. Огромное "спасибо" телесистемам!
Техподдержку вообще закрыли, а рекламка этого самого PicProg гдето здесь в баннере проскакивала...
msgm
Извиняюсь, что вмешиваюсь в чужую тему.Вопрос пустяковый - новый топик заводить не хочется.
Есть PIC16C64A.Можно ли в него зашивать несколько прошивок.То есть, записал прогу туда - стёр - записал новую.Можо так?
upc2
Цитата(msgm @ Oct 1 2005, 15:23)
Извиняюсь, что вмешиваюсь в чужую тему.Вопрос пустяковый - новый топик заводить не хочется.
Есть PIC16C64A.Можно ли в него зашивать несколько прошивок.То есть, записал прогу туда - стёр - записал новую.Можо так?
*


Надо разобраться с годом выпуска контроллера.Если поседних годов, то
буква "С" указывает на одноразовое использование.Но 84 PIC с буквой "С"
был с FLASH памятью , т.е. многократного использования.Из моего опыта
PIC16C64 был одноразового использования.
msgm
upc2, спасибо.Он действительно однопрограммируемый.
А PIC 16F877A одно или много программируемый?
katarsis
С - EPROM
СR - ROM
F - FLASH
upc2
Цитата(msgm @ Oct 3 2005, 21:49)
upc2, спасибо.Он действительно однопрограммируемый.
А PIC 16F877A одно или много программируемый?
*


PIC16F877A многоразового использования.Только у него команды
программирования отличаются от PIC16F877 или PIC16F84.
Если промышленный программатор , то это не страшно.
Garry
Был бы у тебя PIC16F64A такая возможность была бы, хотя такая модель не из дешевых, а так кристал PIC16С64A однократнозаписываемый.
msgm
Всем спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.