Перейти к содержанию
    

PIC16F886 запись во Flash

Понадобилось тут для старого чипа PIC16F886 соорудить ПП перезаписи программного флэша.
Даташит вот.
Смотрю раздел 10 (стр. 110).
На стр. 117 нарисована красивая картинка (а ранее про это говорится в тексте).
В принципе, всё вроде бы понятно: грузим страницу по 8 слов в буфер, при последнем из восьми происходит автоматическая запись.
Т.е. стандартный алгоритм страничной записи.
Но везде говорят, что при этом стирается блок из 16 слов.
Если бы говорили про 16 байт, я бы понял, а так что-то недоумеваю, как записывать-то?
Приведённые экзамплы что-то тоже никакой ясности не внесли. Там на выбор и 8 слов и 16.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там четко написано:

Если  стираем -  то  сразу блок  16 слов

Если  пишем то  по  8  слов 

Они не  обязаны быть равны. 

Если  стерли - пишем два раза. 

И это не  только  в этом PIC  ,  в остальных еще запутанней..

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 19.06.2019 в 22:23, Driver_GV сказал:

Там четко написано

Если бы было чётко, никто вопросов не задавал. :yes3:

В 19.06.2019 в 22:23, Driver_GV сказал:

Если  стерли - пишем два раза

Этот вывод, конечно, напрашивается, но всё же, это Ваше предположение, или практика?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/19/2019 at 10:23 PM, Driver_GV said:

Там четко написано:

Если  стираем -  то  сразу блок  16 слов

Если  пишем то  по  8  слов 

Они не  обязаны быть равны. 

Проблема в том, что в этом МК НЕТ РЕЖИМА СТИРАНИЯ. Стирание происходит автоматически после загрузки 8-го слова флеша. 

И вот тут и возникает вопрос о том, как совместить стирание в 16-ти слов с записью 8-ми.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Писал  на нем код  лет  10 назад .  Тоже долго  разбирался. 

По  памяти :

1 - Пишем блок  8  байт .  Стираем блок  16 байт . Адрес начала блока должен  быть  выровнен  (4 последних бита = 0 )

2 - Пишем старший  блок  8  байт . Адрес начала блока должен  быть  выровнен  (3 последних бита = 0 )

Дополнительно  https://www.microchip.com/forums/m332715.aspx

И прочтите  раздел  PROGRAM FLASH MEMORY WRITE в этом документе  http://ww1.microchip.com/downloads/en/DeviceDoc/40001305B.pdf

 

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну я ему так и написал в ЛС на Радиокоте. Это следует из здравого смысла. )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 21.06.2019 в 10:52, Driver_GV сказал:

И прочтите  раздел  PROGRAM FLASH MEMORY WRITE в этом документе

О, гран мерси! Это и требовалось. :good2:

Но это же надо, куда запихнули. Почему бы в даташите было не указать... :unknw:

В 22.06.2019 в 10:13, my504 сказал:

я ему так и написал

Марк, не лукавьте.

Не совсем так. :this:

А здравый смысл, не всегда соответствует документации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/24/2019 at 7:20 PM, Dmitry Dubrovenko said:

Не совсем так. :this:

Совершенно так:

Quote

...Скорее всего, стирание происходит только при прошивке первой половины блока стирания...

Сравним с документом:

Quote

The first block written to a row erases the entire row. Consecutive block writes to the same row will not cause an additional  row erase.

Есть расхождения? Ну разве только в том, что последовательность записи половинок может быть любой. Для использования в бутлоадере совершенно не принципиально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...