Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 02.03.2020, 02:27  
stubiflex
Прописка
 
Регистрация: 17.07.2006
Сообщений: 129
Сказал спасибо: 23
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
stubiflex на пути к лучшему
По умолчанию Запись конфигурационных слов в PIC16F18456

Уважаемые коллеги, решил написать свой загрузчик для семейства PIC16. Подскажите пожалуйста, что не правильно делаю и как сделать правильно, что бы загрузчик смог записывать конфигурационные слова в микроконтроллере.

Инфо на скриншоте.
Миниатюры:
Нажмите на изображение для увеличения
Название: Failure.png
Просмотров: 0
Размер:	144.6 Кб
ID:	150833  
Реклама:
stubiflex вне форума  
Непрочитано 02.03.2020, 09:15  
Eddy71
Почётный гражданин KAZUS.RU
 
Аватар для Eddy71
 
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,534
Сказал спасибо: 5,378
Сказали Спасибо 24,620 раз(а) в 5,542 сообщении(ях)
Eddy71 на пути к лучшему
По умолчанию Re: Запись конфигурационных слов в PIC16F18456

Насколько я помню, слово конфигурации можно только программатором снаружи писать
__________________
«Совершенство — это не тогда, когда уже нечего больше добавить, а тогда, когда уже нечего отнять.»
/Эйнштейн/

моя домашняя страничка: http://www.eddy.com.ua/
Eddy71 вне форума  
Непрочитано 02.03.2020, 11:02  
vsch8
Прописка
 
Регистрация: 26.01.2007
Сообщений: 106
Сказал спасибо: 4
Сказали Спасибо 37 раз(а) в 25 сообщении(ях)
vsch8 на пути к лучшему
По умолчанию Re: Запись конфигурационных слов в PIC16F18456

Я давно для 16f877A писал:

list p=16f877A
include‹p16F877A.inc›
__CONFIG 03F76H ;Бит защиты выкл,WDT вкл,ВЧ HS-генератор RB6,7-порты
vsch8 вне форума  
Непрочитано 02.03.2020, 14:10  
stubiflex
Прописка
 
Регистрация: 17.07.2006
Сообщений: 129
Сказал спасибо: 23
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
stubiflex на пути к лучшему
По умолчанию Re: Запись конфигурационных слов в PIC16F18456

Сообщение от Eddy71 Посмотреть сообщение
Насколько я помню, слово конфигурации можно только программатором снаружи писать
Это относится только к семействе PIC16? Потому что в PIC18, конфигурационные слова пишутся загрузчиком.
stubiflex вне форума  
Непрочитано 02.03.2020, 14:27  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 664
Сказал спасибо: 360
Сказали Спасибо 743 раз(а) в 353 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Запись конфигурационных слов в PIC16F18456

Этот пик умеет писать "изнутре" биты конфигурации (раздел даташита "NVM - Nonvolatile Memory Control").
В кишках МПЛАБХ-а (вернее, компилятора ХС8 ) есть файл "eeprom.c" который, возможно, окажется полезным для подсмотреть.
j-Roger вне форума  
Сказали "Спасибо" j-Roger
stubiflex (03.03.2020)
Непрочитано 02.03.2020, 14:47  
stubiflex
Прописка
 
Регистрация: 17.07.2006
Сообщений: 129
Сказал спасибо: 23
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
stubiflex на пути к лучшему
По умолчанию Re: Запись конфигурационных слов в PIC16F18456

Сообщение от vsch8 Посмотреть сообщение
Я давно для 16f877A писал:

list p=16f877A
include‹p16F877A.inc›
__CONFIG 03F76H ;Бит защиты выкл,WDT вкл,ВЧ HS-генератор RB6,7-порты
Вы в какой среде писали?
stubiflex вне форума  
Непрочитано 02.03.2020, 14:51  
stubiflex
Прописка
 
Регистрация: 17.07.2006
Сообщений: 129
Сказал спасибо: 23
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
stubiflex на пути к лучшему
По умолчанию Re: Запись конфигурационных слов в PIC16F18456

Сообщение от j-Roger Посмотреть сообщение
Этот пик умеет писать "изнутре" биты конфигурации (раздел даташита "NVM - Nonvolatile Memory Control").
В кишках МПЛАБХ-а (вернее, компилятора ХС8 ) есть файл "eeprom.c" который, возможно, окажется полезным для подсмотреть.
Более того, я смотрел код загрузчика, сгенерированную МСС. Там есть фрагмент кода, на ассемблере, который именно отвечает за запись. Сейчас поищу и выставлю сюда.

Вот фрагменты, которые отвечают за запись конфигурационных слов в загрузчике, которую генерирует МСС.

Код:
#include "xc.h"       // Standard include

#define _str(x)  #x
#define str(x)  _str(x)

// Force variables into Unbanked for 1-cycle accessibility 
    uint8_t EE_Key_1    __at(0x70) = 0;
    uint8_t EE_Key_2    __at(0x71) = 0;

// Write Config Words
uint8_t Write_Config ()
{
    NVMADRL = frame.address_L;
    NVMADRH = frame.address_H;
    NVMCON1 = 0xC4;       // Setup writes
    for (uint8_t  i = 0; i ‹ frame.data_length; i += 2)
    {
        NVMDATL = frame.data[i];
        NVMDATH = frame.data[i+1];

        StartWrite();
        if ((++ NVMADRL) == 0x00)
        {
            ++ NVMADRH;
        }
    }
    frame.data[0] = COMMAND_SUCCESS;
    EE_Key_1 = 0x00;  // erase EE Keys
    EE_Key_2 = 0x00;
    return (10);
}

// Unlock and start the write or erase sequence.

void StartWrite()
{
    CLRWDT();
//    NVMCON2 = EE_Key_1;
//    NVMCON2 = EE_Key_2;
//    NVMCON1bits.WR = 1;  // Start the write

// had to switch to assembly - 
// compiler doesn't comprehend no need
// for bank switch

    asm ("movf " str(_EE_Key_1) ",w");
    asm ("movwf " str(BANKMASK(NVMCON2)));
    asm ("movf  " str(_EE_Key_2) ",w");
    asm ("movwf " str(BANKMASK(NVMCON2)));
    asm ("bsf  "  str(BANKMASK(NVMCON1)) ",1");       // Start the write

    NOP();
    NOP();
    return;
}
Может суть зарыта в комменте, которую выделил жирным текстом и подчеркнул?

Последний раз редактировалось stubiflex; 02.03.2020 в 17:01.
stubiflex вне форума  
Непрочитано 02.03.2020, 17:31  
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,628
Сказал спасибо: 72
Сказали Спасибо 1,790 раз(а) в 644 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Запись конфигурационных слов в PIC16F18456

Сообщение от stubiflex Посмотреть сообщение
Более того, я смотрел код загрузчика, сгенерированную МСС. Там есть фрагмент кода, на ассемблере, который именно отвечает за запись.
Что-то я не пойму, чего вы хотите...
Вы хотите из своей программы переписать биты конфигурации? Так, что ли?
А на первом скриншоте у вас - сообщение программатора, который не может записать данные по указанному адресу...
То есть, до выполнения программы дело даже не дошло - оно застряло ещё на этапе программирования МК...
..

Последний раз редактировалось RECTO; 02.03.2020 в 17:40.
RECTO вне форума  
Непрочитано 02.03.2020, 19:00  
stubiflex
Прописка
 
Регистрация: 17.07.2006
Сообщений: 129
Сказал спасибо: 23
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
stubiflex на пути к лучшему
По умолчанию Re: Запись конфигурационных слов в PIC16F18456

"Что-то я не пойму, чего вы хотите...
Вы хотите из своей программы переписать биты конфигурации? Так, что ли?"

Да.


"А на первом скриншоте у вас - сообщение программатора, который не может записать данные по указанному адресу...
То есть, до выполнения программы дело даже не дошло - оно застряло ещё на этапе программирования МК..."

Совершенно верно.

Вопрос в том, почему?
stubiflex вне форума  
Непрочитано 02.03.2020, 19:14  
RECTO
Супер-модератор
 
Регистрация: 09.06.2011
Сообщений: 2,628
Сказал спасибо: 72
Сказали Спасибо 1,790 раз(а) в 644 сообщении(ях)
RECTO на пути к лучшему
По умолчанию Re: Запись конфигурационных слов в PIC16F18456

Сообщение от stubiflex Посмотреть сообщение
Совершенно верно.
Вопрос в том, почему?
Судя по всему, адреса 8007h физически не существует: программатор пытается записать туда значение "2914", при проверке получает "63" (=3FFh).

Скорее всего, в проекте неправильно указан тип МК...

Последний раз редактировалось RECTO; 02.03.2020 в 19:35.
RECTO вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто-нибудь работал с RF модулями nRF2401A? Easyrider83 Автоматика и аппаратура связи 1481 04.09.2021 23:24
Анекдот, анекдот ... (часть 1) DK Отвлекитесь, эмбеддеры! 8148 05.06.2013 23:14
Запись EEPROM Megi88 FedorChek Микроконтроллеры, АЦП, память и т.д 3 23.03.2009 18:42
Помогите Не получается запись в EEPROM ST_Senya Микроконтроллеры, АЦП, память и т.д 8 01.12.2008 19:16
Запись в EEPROM pic16f628a J-t Микроконтроллеры, АЦП, память и т.д 6 22.01.2008 16:10


Часовой пояс GMT +4, время: 22:25.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot