AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
06.08.2009, 11:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Сообщение от begun
|
Если так ,то имеет смысл подтянуть внещними резисторами все свободные ножки и особенно MOSI, MISO,и sck и спокойно можно RESET- ится в любое время.
|
Вы посмотрите всё-таки на протокол программирования и вообще SPI. Подтяжки на только SCK вполне достаточно, хотя и это по разряду паранойи.
А на ресете есть внутренний пулл-ап 30-60 КОм.
|
|
|
|
06.08.2009, 11:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
|
Сообщение от niXto
|
Поэтому химичить с прерываниями не нужно.
|
Не знаю. У Евстифеева написано:
Процедура записи состоит из шагов:
1) Дождаться готовности EEPROM к записи (ждать, пока не сбросится флаг EEWE регистра EECR)
2) Загрузить байт данных в EEDR, а адрес - в EEAR
3) Установить в 1 флаг EEMWE регистра EECR
4) В течении 4-х тактов после установки флага EEMWE записать в бит EEWE регистра EECR логическую 1.
Если цепочка прервётся (в особенности пункт 3) - запись сорвётся. Конечно, уже существующие данные в EEPROM не повредятся, но и корректными их потом не назовёшь (хотя можно записывать пачку байтов с дублированием и контрольной суммой).
|
|
|
|
06.08.2009, 12:09
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Сообщение от makakus
|
Подтяжки на только SCK вполне достаточно, хотя и это по разряду паранойи.
|
Ну не совсем паранойя.
Как-то использовали связку между двумя АВРками по RS232 по радиоканалу. Так вот при выключенном (или удаленном) передатчике - приемник изредка, раз в десятки минут, ловил осмысленную, с его точки зрения, посылку из эфирного шума. А посылка была - маркер, инфо, контрсумма, то есть все "по правильному".
Вопрос был решен анализом сигнала достоверности сигнала с приемного радиоблока.
Вероятность приема по SPI еще выше - там нет стартстопа, и времянки по барабану.
Так что SCK лучше притянуть.
|
|
|
|
06.08.2009, 12:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Сообщение от Godzilla82
|
... уже существующие данные в EEPROM не повредятся, но и корректными их потом не назовёшь
|
Товарищ! это что за дихотомия такая, прости, что скажешь? Назовёшь их корректными, почему нет? Это защита такая: EEMWE через 4 такта сброчится и уже хоть бы и EEWE а записи не будет. "кто не успел... "
|
|
|
|
06.08.2009, 13:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Сообщение от nml
|
Ну не совсем паранойя.
...
Вероятность приема по SPI еще выше - там нет стартстопа, и времянки по барабану.
Так что SCK лучше притянуть.
|
Да нет, подтянуть - я не против. Дёшево. Я бы не стал применять саму идею - "часами висит в состоянии ресета", а если не в ресете, то вполне хватит внутреннего пуллапа, ну и т.д. в духе рекомендаций к неиспользуемым выводам.
Кстати, (или это мне так кажется?) многие считают SPI интерфейсом только для программирования и не используют эти ножки. А он же обычный порт, ну, не надо разве что низкоомную нагрузку вешать, если будем потом программировать.
|
|
|
|
06.08.2009, 18:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
|
Сообщение от makakus
|
Назовёшь их корректными, почему нет? Это защита такая: EEMWE через 4 такта сброчится и уже хоть бы и EEWE а записи не будет. "кто не успел... "
|
Потому, что мне надо записать 4 байта. 2 байта успели записаться, а 2 - остались без изменений. В сумме 4 байта уже несут недостоверную информацию.
Чтобы этого избежать, нужно дублировать данные и вводить контрольную сумму.
|
|
|
|
06.08.2009, 18:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Сообщение от Godzilla82
|
Сообщение от makakus
|
Назовёшь их корректными, почему нет? Это защита такая: EEMWE через 4 такта сброчится и уже хоть бы и EEWE а записи не будет. "кто не успел... "
|
Потому, что мне надо записать 4 байта. 2 байта успели записаться, а 2 - остались без изменений. В сумме 4 байта уже несут недостоверную информацию.
Чтобы этого избежать, нужно дублировать данные и вводить контрольную сумму.
|
Сурово... Что ж Вы такое пишете в епром... Ну если так жёстко, то можно ещё контролировать питание ДО стабилизатора напряжения, в смысле пока кондёр фильтра разрядится, можно и дописать Вашу пачку байтов.
|
|
|
|
06.08.2009, 18:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,443
Сказал спасибо: 99
Сказали Спасибо 315 раз(а) в 231 сообщении(ях)
|
Сообщение от makakus
|
Сурово... Что ж Вы такое пишете в епром... Ну если так жёстко, то можно ещё контролировать питание ДО стабилизатора напряжения, в смысле пока кондёр фильтра разрядится, можно и дописать Вашу пачку байтов.
|
Да нет, я всего лишь ответил на вопрос, заданный в первом посте.
Если у человека в EEPROM что-то пишется и периодически делается аппаратный ресет, то возможна потеря данных, чтобы её избежать, нужно принять соответствующие меры.
Если ничего не пишется, то данным в EEPROM и, тем более, во Flash это не угрожает.
Если аппаратный ресет делается гарантированно не во время записи, то и дополнительных мер можно не предпринимать.
|
|
|
|
06.08.2009, 22:02
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 866
Сказал спасибо: 230
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
в обшем Я подключил резисторы по 1.5к между питанием и входами MOSI,MISO ,SCK и коммутирую питане и RESET. Информацию записываю в ЕЕПРОМ при налтчии непрерывного питания ,потом опять коммутирую и читаю. результаты сообшу по мере накопления часов работы
|
|
|
|
06.08.2009, 22:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
begun
А зачем вам вообще нужно постоянно ресетить контроллер? Есть же прерывания, программные способы, вачтчдог в конце концов. может проще бедет решить проблему программно? Тем более что в РЕСЕТе контроллер кушает тока примерно столько же сколько в АКТИВНОМ режиме - а ведь есть энергосберегающие режимы которые доступны только программно
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:16.
|
|