реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> И всётаки она работает. Нужен совет., Про EEPROM.
Sholkin
сообщение Jul 9 2008, 03:29
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 41
Регистрация: 2-04-07
Пользователь №: 26 711



Здравствуйте участники конференции.
Наверно участники abc , SaSaVitebsk подумают опять этот ….. пишет. Которого отбрили в апреле со своей программой. Да это опять я. И программа моя, заработала , и ошибку я нашёл сам , без кого либо. Я против них ни чего не имею. Но мне тогда обидно стало . я её отложил и забыл. Но как то в июне сел заново . .Нашёл ошибку (как находил и как бился опущу). Переделал немного и теперь её , как бы улучшаю.
Я это написал , чтоб не было разговоров . Типа тебе сказали …, а ты опять здесь …. (Кому нужно тот поймёт)

Извиняюсь за флуд , просто ….

Теперь по существу .
Совет нужен вот в каком плане. У меня данные записываются в память проца в EEPROM.
При зашивании программы , туда записываются FF. Как сделать , что бы данные заносились отдельно от программы? (сначала данные туда , потом прога ) или не как ?
Если вопрос не понятен сформулирую по другому , примером.
Go to the top of the page
 
+Quote Post
prm
сообщение Jul 9 2008, 03:41
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 4-04-07
Пользователь №: 26 760



А в чем сложность сначала прошить EEPROM, а затем FLASH? Чем прошиваете контроллер, какие ключи используете?
Go to the top of the page
 
+Quote Post
Tiny
сообщение Jul 9 2008, 04:04
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 82
Регистрация: 10-07-06
Пользователь №: 18 720



Цитата(Sholkin @ Jul 9 2008, 06:29) *
Как сделать , что бы данные заносились отдельно от программы? (сначала данные туда , потом прога ) или не как ?

В программаторе можно отдельно записать EEPROM, отдельно Flash. Можно записать только EEPROM, можно только Flash. Или я вопроса не понял.
Go to the top of the page
 
+Quote Post
psw
сообщение Jul 9 2008, 04:20
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 8-06-06
Пользователь №: 17 866



Цитата(Tiny @ Jul 9 2008, 09:04) *
В программаторе можно отдельно записать EEPROM, отдельно Flash. Можно записать только EEPROM, можно только Flash. Или я вопроса не понял.

а еще можно что бы программа (которая во Flash) записывала то что нужно в EEPROM. Вариантов много - выбирай
Go to the top of the page
 
+Quote Post
Sholkin
сообщение Jul 9 2008, 05:54
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 41
Регистрация: 2-04-07
Пользователь №: 26 711



Цитата
а еще можно что бы программа (которая во Flash) записывала то что нужно в EEPROM. Вариантов много - выбирай

не так нельзя. Если так сделать . Когда проц зависнет или питание пропадёт, то оно переписываетсь на изначальное, так как уходит на программы настроек всех. Пробовал так . смысл . Если питания снято, или завис , (вачдок на перезагрузку отправил проц) в еепром остались данные те которые последниими туда записал. А при зашытии проги ( когда в устроиство только его вставляем , нак сказать начало работы устройсва) там нули были.
Смысл , нужно эти данные отдельно от проги записать в EEPROM.
Цитата
В программаторе можно отдельно записать EEPROM, отдельно Flash. Можно записать только EEPROM, можно только Flash. Или я вопроса не понял.

Вопрос правильно понял. Сегодня в программаторе по капаюсь . Посмотрю как он это может делать или нет.
Спасибо за ответ

Сообщение отредактировал Sholkin - Jul 9 2008, 06:01
Go to the top of the page
 
+Quote Post
adc
сообщение Jul 9 2008, 06:14
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(Sholkin @ Jul 9 2008, 07:29) *
Здравствуйте участники конференции.
Наверно участники abc , SaSaVitebsk подумают опять этот ….. пишет. Которого отбрили в апреле со

Если Вы меня имели в виду, то ник несколько другой smile.gif adc (это как команда сложения с переносом biggrin.gif )
Теперь по существу .
Цитата(Sholkin @ Jul 9 2008, 07:29) *
Как сделать , что бы данные заносились отдельно от программы? (сначала данные туда , потом прога ) или не как ?

К примеру пони (PonyProg) может прошивать отдельно как flash так и EEPROM.
Но! Зачем прошивать константы в EEPROM? Их можно определить во Flash и инициализировать EEPROM в начале программы.


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
swisst
сообщение Jul 9 2008, 06:17
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Цитата(Sholkin @ Jul 9 2008, 08:54) *
не так нельзя. Если так сделать . Когда проц зависнет или питание пропадёт, то оно переписываетсь на изначальное, так как уходит на программы настроек всех. Пробовал так . смысл . Если питания снято, или завис , (вачдок на перезагрузку отправил проц) в еепром остались данные те которые последниими туда записал. А при зашытии проги ( когда в устроиство только его вставляем , нак сказать начало работы устройсва) там нули были.
Смысл , нужно эти данные отдельно от проги записать в EEPROM.


инициализируете параметры один раз и защищаете контрольной суммой (какой придумаете). При следующем запуске проца - пересчитываете контрольную сумму параметров в EEPROM и сверяете с ее значением, сохраненным в EEPROM. Если параметры не повреждены - загружаете их в RAM и вперед...если контрольная сумма не совпала - параметры настройки повреждены и использовать их нельзя - инициализируете их дэфолтными значениями из памяти программы.

ЗЫ а фьюз EESAVE можно еще запрограммировать...

Сообщение отредактировал swisst - Jul 9 2008, 06:19
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 9 2008, 07:57
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 swisst
на счёт CRC
+1
Очень полезная вещь кстати.
От многих геморов позволяет избавится если дЫвайс работает в стрёмных условиях..
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 9 2008, 11:08
Сообщение #9


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(swisst @ Jul 9 2008, 09:17) *
инициализируете параметры один раз и защищаете контрольной суммой (какой придумаете). При следующем запуске проца - пересчитываете контрольную сумму параметров в EEPROM и сверяете с ее значением, сохраненным в EEPROM.

Хороший совет но боюсь не по адресу.
Цитата
не так нельзя. Если так сделать . Когда проц зависнет или питание пропадёт, то оно переписываетсь на изначальное

Контрольная сумма - это еще года на 2 работы smile.gif
Go to the top of the page
 
+Quote Post
domowoj
сообщение Jul 10 2008, 00:46
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Можно и без контр. суммы.
После первой инициализации в ЕЕпром записать байт-признак и при последующих
инициализациях опрашивать его и если он установлен - иниц. не производить.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
Sholkin
сообщение Jul 10 2008, 02:14
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 41
Регистрация: 2-04-07
Пользователь №: 26 711



Цитата
Если Вы меня имели в виду, то ник несколько другой adc (это как команда сложения с переносом )

Здравствуйте. Именно вас имел введу. Извиняюсь , что ник перепутал.
Но я уже забыл всё проехали.
По существу.
adc у меня какой прогромматор не знаю . Может он это и может. Я его сам паял . Схему дали . Инструкции нет. Человека , который дал тоже нет.
Цитата
Но! Зачем прошивать константы в EEPROM? Их можно определить во Flash и инициализировать EEPROM в начале программы.

Немного не понял как это зделать, подумаю сегодня. У меня там не константы, а данные . Они не должны быть потерены , а изначально , как устроиство запустили (первый пуск ) там должны 0. Потом они только туда записываются , но не переписываються на изначальные , первого пуска.
Цитата
инициализируете параметры один раз и защищаете контрольной суммой (какой придумаете).

Это для меня пока сложно.
Цитата
Контрольная сумма - это еще года на 2 работы

Может быть . Пока учимся. Эту пишу пока не два . С перерывом пол года. Первоя большая прога . Те были маленькие , пипеточные.
Цитата
Можно и без контр. суммы.
После первой инициализации в ЕЕпром записать байт-признак и при последующих
инициализациях опрашивать его и если он установлен - иниц. не производить.

Вот этот вариан немного понял поппробую реализовать.
Спасибо всем кто ответил.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 10 2008, 05:48
Сообщение #12


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Sholkin @ Jul 10 2008, 05:14) *
... у меня какой прогромматор не знаю . Может он это и может. Я его сам паял . Схему дали . Инструкции нет. Человека , который дал тоже нет.

Под словом "программатор" имелась в виду программа на компьютере, а не спаянная железяка.
Кроме этого интересен способ программирования, я подозреваю, что у Вас внутрисхемно последовательно.
Go to the top of the page
 
+Quote Post
adc
сообщение Jul 10 2008, 07:20
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Не сразу понял задачу, по этому с константами несколько не то сказал.
Как уже правильно сказали записать байт признак в EEPROM при инициализации.
Контрольную сумму можно сделать и без использования навороченных алгоритмов и полиномов.
Суммируйте все данные с округлением до байта и записывайте этот байт суммы в одну из ячеек EEPROM.


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
Sholkin
сообщение Jul 23 2008, 08:46
Сообщение #14


Участник
*

Группа: Новичок
Сообщений: 41
Регистрация: 2-04-07
Пользователь №: 26 711



Парни спасибо за ответы.
Не совсем понял про контрольную сумму. Но зделал сначала так. Стал записывать в EEPROM типа флага , что была произведена запись данных и при сбросе или первым включением его проверяю . Если флаг , то читаю с EEPROM если нет , то забиваю нулями.
Потом зделал проще , если записи у меня не было , то в EEPROM (в ячейках куда данные записываю или когда только запрогроммировал) FF . А когда данные записываю, то там значение не превышающее 9 . Вот я зделал проверку старшей ячеики . Если там больше 9 то обнуляем , если меньше, то была запись.
Пока работает 3 дня с таким алгоритмом , сбоя нет.
Позднее хочу зделать запись данных , через ком порт (по ком порту забивать данные. Пока только индификационный номер посылаю).
Тупа пока но . Про баит признак понял так , как делал с флагом. Или имелось что то другое ?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.0146 секунд с 7
ELECTRONIX ©2004-2016