Страница 22 из 22

Re: Ошибка ЕЕПРОМ 1887ВЕ7Т

Добавлено: 19 сен 2019, 10:31
avp
MZiK писал(а):
19 авг 2019, 12:48
Отсюда я бы сделал 2 вывода:
1. При включении питания искажается не EEPROM, а вот тот самый буфер страницы, который не обнуляется при самой первой записи в EEPROM.
2. При включении питания происходит не искажение данных в EEPROM, а самопроизвольная запись вот этого необнуленного буфера страницы.
Судя по форуму, инженерам НИИЭТ проблемы с EEPROM при включении контроллера известны давно.
Есть ли какие-нибудь аппаратные или программные способы избежать искажений EEPROM при включении МК?
Здравствуйте!

1. Проблема очистки буфера памяти данных при самой первой записи в EEPROM присутствовала в схемах до 2017 года. Это приводило к искажению данных в приделах страницы, так как при записи нужного байта изменялись и другие из за неочищенного буфера. В этом случаи требуется "холостая запись" одного байта в неиспользуемую область памяти. В последующих схемах данная ошибка исправлена.
2. При включении питания не происходит ни какой самопроизвольной записи буфера страницы! Порчи данных при включении питания не происходит!

Рекомендуем после проведения процедуры стирания кристалла ChipErase снять питание с микроконтроллера.

Re: 1887ВЕ7Т, 1887ВЕ8Т (Аналог Atmega 128)

Добавлено: 19 сен 2019, 14:39
nppsem
Проблема очистки буфера памяти данных при самой первой записи в EEPROM присутствовала в схемах до 2017 года.
В 1887ВЕ4 была аналогичная проблема, там то же исправили?

Re: 1887ВЕ7Т, 1887ВЕ8Т (Аналог Atmega 128)

Добавлено: 20 сен 2019, 12:16
sya
nppsem писал(а):
19 сен 2019, 14:39
Проблема очистки буфера памяти данных при самой первой записи в EEPROM присутствовала в схемах до 2017 года.
В 1887ВЕ4 была аналогичная проблема, там то же исправили?
Да.

Re: 1887ВЕ7Т, 1887ВЕ8Т (Аналог Atmega 128)

Добавлено: 11 ноя 2019, 11:49
Viper17
Вопрос по BootLoader.

Код из Boot секции выполняется?

Запись в Boot секцию выполнялась по следующей методике.

1. установка fuse на минимальный размер bootloader.
2. запись с помощью AS.
3. установка fuse на максимальный размер bootloader.

("дырок" в hex нет. верификация flash - успешно)

По внешним признакам код в boot секции не выполнялся (код в App секции работал).

P.S. неутешительный вывод по поводу "так называемого вранья" о размере page в области NRWW секции и вообще о "качестве" документации.

P.S.S. IMHO - что то с лицензионной чистотой не то, иначе зачем было делать такой размер page (явно искусственно) в NRWW.

Re: 1887ВЕ7Т, 1887ВЕ8Т (Аналог Atmega 128)

Добавлено: 12 ноя 2019, 10:24
avp
Viper17 писал(а):
11 ноя 2019, 11:49
Вопрос по BootLoader.

Код из Boot секции выполняется?
Да.
Viper17 писал(а):
11 ноя 2019, 11:49
Запись в Boot секцию выполнялась по следующей методике.

1. установка fuse на минимальный размер bootloader.
2. запись с помощью AS.
3. установка fuse на максимальный размер bootloader.

("дырок" в hex нет. верификация flash - успешно)

По внешним признакам код в boot секции не выполнялся (код в App секции работал).
Своеобразная методика. :?
Размер буфера страницы области NRWW 32 слова. При успешном программировании проблем с выполнением кода не возникнет.
Viper17 писал(а):
11 ноя 2019, 11:49
P.S. неутешительный вывод по поводу "так называемого вранья" о размере page в области NRWW секции и вообще о "качестве" документации.

P.S.S. IMHO - что то с лицензионной чистотой не то, иначе зачем было делать такой размер page (явно искусственно) в NRWW.
Данный опус нам также интересен, спасибо.
Работа над качеством документации ведётся. В ближайшее время будет выложена новая версия.

Re: 1887ВЕ7Т, 1887ВЕ8Т (Аналог Atmega 128)

Добавлено: 12 ноя 2019, 13:01
Viper17
avp писал(а):
12 ноя 2019, 10:24

Своеобразная методика. :?
Размер буфера страницы области NRWW 32 слова. При успешном программировании проблем с выполнением кода не возникнет.
Основываясь на содержимом flash памяти (или EEPROM, если так удобней) в boot секции и утверждении "Размер буфера страницы области NRWW 32 слова", нужно принять что NRWW перемещаемая?
Я надеюсь, что вы не будете предполагать возможность программатора AS записывать page размером отличным от 256 байт (для ATmega128 естественно).

P.S. опус - в контексте изделия в девичестве "Травка", это определять "неоригинальность" методом chip erase (интересует Serial Downloading only) и анализом содержимого flash на 0х00 или 0хFF.

Re: 1887ВЕ7Т, 1887ВЕ8Т (Аналог Atmega 128)

Добавлено: 12 ноя 2019, 14:50
avp
Viper17 писал(а):
12 ноя 2019, 13:01

Основываясь на содержимом flash памяти (или EEPROM, если так удобней) в boot секции и утверждении "Размер буфера страницы области NRWW 32 слова", нужно принять что NRWW перемещаемая?
Я надеюсь, что вы не будете предполагать возможность программатора AS записывать page размером отличным от 256 байт (для ATmega128 естественно).
Размер секции загрузчика выбирается конфигурационными ячейками BOOTSZ1, BOOTSZ0. Программирование выполнять постранично, размер страницы 32слова (64 байта).
Область NRWW это адресное пространство начиная с адреса $F000. Размер загрузчика может совпадать или быть меньше данной области.

Возможности программатора AS нам не известны.

Для программирования из среды AVR Studio и ATmelStudio 6 необходимо добавать xml-файл описания микроконтроллера 1887ВЕ7Т.xml. Он доступен на сайте.
Программаторы которые нами проверены и корректно работают: STK500, STK600, AVRISP mkII, AVR JtagICE mkII, ATmelICE, КФДЛ.301411.247, КФДЛ.301411.243.
При использовании других необходимо учитывать размер буфера страницы.
Viper17 писал(а):
12 ноя 2019, 13:01
P.S. опус - в контексте изделия в девичестве "Травка", это определять "неоригинальность" методом chip erase (интересует Serial Downloading only) и анализом содержимого flash на 0х00 или 0хFF.
Какую "неоригинальность" травки вы определяете, зачем и как, не понятно. :?

Re: 1887ВЕ7Т, 1887ВЕ8Т (Аналог Atmega 128)

Добавлено: 23 дек 2019, 13:45
Владимир
Столкнулся с такой проблемой, видимо ее уже обсуждали здесь, но так и не понял рецепта решения.
Во фьюзах выставлено Boot Flashsize=2048, заливаю прошивку и проверка не проходит.
Получается, что с адреса 0x1F000 до 0x1F03F нули, далее фрагмент загрузчика и т.д. повторяется, 64 байта нулей, 64 байта кода

Далее интересно, если во фьюзах изменить на Boot Flashsize=512, то код загрузчика будет виден.

В ходе экспериментов выяснилось, что попытки записать в область загрузчика, где вижу нули (данные не записались) проваливается, а где есть данные, там все ок. Т.е. чередующиеся области по 64 байта, т.е. в размер буфера.

Так же не смог найти на вашем сайте файла XML, и инструкции, как его установить.

Подскажите, что я упустил?

Re: 1887ВЕ7Т, 1887ВЕ8Т (Аналог Atmega 128)

Добавлено: 24 янв 2020, 10:57
avp
Здравствуйте, Владимир!
Владимир писал(а):
23 дек 2019, 13:45
Столкнулся с такой проблемой, видимо ее уже обсуждали здесь, но так и не понял рецепта решения.
...
...
Так же не смог найти на вашем сайте файла XML, и инструкции, как его установить.
Подскажите, что я упустил?
Извините за долгое молчание.
Ваша проблема связана с неправильной записью в область загрузчика при программировании микроконтроллера. Так как буфер страницы загрузчика 32 слова. При программировании необходимо указывать 1887ВЕ7Т, для этого нужно добавить xml-файл описания микроконтроллера.
Прикрепил во вложении.
peculiarity_1887BE7T.zip
(347.95 КБ) 5 скачиваний