|
Tiny13, проблема с чтением EEPROM |
|
|
|
May 13 2008, 06:44
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 5-12-07
Пользователь №: 32 986

|
Есть электронный ключ на базе МК Tiny13. Данные ключа хранятся в EEPROM. Проблема такая: после некоторого времени использования ключа EEPROM-ка периодически не читается, либо при чтении обнаруживаются изменённые данные! можно ли решить эту проблему? Как защитить контроллер от статики,которая может наводиться на корпус ключа?
|
|
|
|
|
May 13 2008, 07:28
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 5-12-07
Пользователь №: 32 986

|
по питанию всё нормально, пробовала на корпус давать +5!После этого и начинаются проблемы с чтением и данные изменяются.
|
|
|
|
|
May 13 2008, 07:38
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 5-12-07
Пользователь №: 32 986

|
как можно избавится от этого?
|
|
|
|
|
May 13 2008, 07:44
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541

|
Цитата(Палыч @ May 13 2008, 10:39)  Взять хороший блок питания Какой такой БП, если это электронный ключ ? Ноги свободные есть незадействованные ? Ничего не оставлять - все подтянуть к хемле и питанию. Кондеры на питание - электролит и керамика. Ну и самый главный враг - превышение напряжения питания.
|
|
|
|
|
May 13 2008, 07:51
|

Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 19-12-07
Из: Житоимр
Пользователь №: 33 457

|
Цитата(Len_OK @ May 13 2008, 10:44)  либо при чтении обнаруживаются изменённые данные! Вот с этим я знаком, у меня тоже наблюдалось изменение данных в EEPROM контроллера Mega8. Проблема заключалась в следующем : в моменты включения - выключения устройства, были подключены линии программирования (SPI), вследсвтии переходных процессов наводились помехи, которые переводили контроллер в режим программирования, результатом служило изменение данных в EEPROM. Проблема была решена, после запрета на режим последовательного программиров. установкой бита SPIEN в 1.
|
|
|
|
|
May 13 2008, 08:04
|
Группа: Новичок
Сообщений: 12
Регистрация: 4-05-08
Из: Pskov
Пользователь №: 37 266

|
Цитата(Len_OK @ May 13 2008, 11:38)  как можно избавится от этого? если кратковременный - защитный диод поставить на 5-6В
|
|
|
|
|
May 13 2008, 08:12
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(Клим @ May 13 2008, 10:44)  Какой такой БП, если это электронный ключ ? Питание на него (+5В) откуда-то подаётся... Цитата(Kalina @ May 13 2008, 10:51)  Проблема заключалась в следующем : в моменты включения - выключения устройства, были подключены линии программирования (SPI), вследсвтии переходных процессов наводились помехи, которые переводили контроллер в режим программирования, результатом служило изменение данных в EEPROM. Проблема была решена, после запрета на режим последовательного программиров. установкой бита SPIEN в 1. Легче - подтянуть линии SPI, чем потом пользоваться высоковольтным программатором
|
|
|
|
|
May 13 2008, 08:40
|

Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 19-12-07
Из: Житоимр
Пользователь №: 33 457

|
Цитата(Палыч @ May 13 2008, 12:12)  Легче - подтянуть линии SPI, чем потом пользоваться высоковольтным программатором Ну если утройство серийно выпускается, лично для меня было бы спокойней запретить SPI. Конечно, для отладки такой способ неприемлен.
|
|
|
|
|
May 13 2008, 09:16
|

Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 19-12-07
Из: Житоимр
Пользователь №: 33 457

|
Цитата(sseett @ May 13 2008, 12:48)  EEPROM портится, когда питашка падает до уровня слишком низкого для нормальной работы ядра. Если я не ошибаюсь, так EEPROM это энергонезависимая память, какая может быть зависимость от напряжения питания? Разве что сам контроллер при понижении питания производит её хаотическую перезапись.
|
|
|
|
|
May 13 2008, 09:26
|
Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541

|
Цитата(Палыч @ May 13 2008, 11:12)  Питание на него (+5В) откуда-то подаётся... Если я правильно понимаю, о каком ключе идет речь - то оттуда откуда подается питание выбросов быть не должно. Цитата(sseett @ May 13 2008, 11:48)  EEPROM портится, когда питашка падает до уровня слишком низкого для нормальной работы ядра. Не допускайте подобной ситуации, и не будет проблем. Удачи! В такой ситуации он портится, только если питание падает в сам процесс записи. Кстати, содержимое часто перезаписывается? или 1 раз записали, а потом только чтение ? Если второй вариант - то проще будет код зашить во flash.
|
|
|
|
|
May 13 2008, 09:37
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 5-12-07
Пользователь №: 32 986

|
в том то и дело, что данные портятся во время чтения, запись обычно производится нормально. И есть ещё такая ситуация, что одна ячейка читается, постоянно, а другая иногда не читается
|
|
|
|
|
May 13 2008, 09:52
|

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

|
Цитата(Kalina @ May 13 2008, 10:51)  Проблема заключалась в следующем : в моменты включения - выключения устройства, были подключены линии программирования (SPI), вследсвтии переходных процессов наводились помехи, которые переводили контроллер в режим программирования, результатом служило изменение данных в EEPROM. Проблема была решена, после запрета на режим последовательного программиров. установкой бита SPIEN в 1. Да ну бросте городить чушь. BOD надо включать, а не SPIEN смыкать, чтобы МК сбрасывался до того как питание упадет ниже критической отметки, после которой может изменяться содержимое RAM (регистр PC относится к RAM). А вот изменение содержимого RAM как раз может повлечь за собой прыжек на любой участок кода, в том числе и на участок где производится запись в eeprom. От того он у вас и слетал. Цитата(Kalina @ May 13 2008, 11:40)  Ну если утройство серийно выпускается, лично для меня было бы спокойней запретить SPI. Конечно, для отладки такой способ неприемлен. Для отладки Tiny13 вообще-то есть debugWire интерфейс, при включение которого ISP отключается автоматически. Цитата(Len_OK @ May 13 2008, 12:37)  в том то и дело, что данные портятся во время чтения, запись обычно производится нормально. И есть ещё такая ситуация, что одна ячейка читается, постоянно, а другая иногда не читается 1. Включить BOD. 2. Сделать запись помехозащищенной - разбить eeprom на два блока по 32 байта. Данные сохранять сразу в два блока, блоки защищать хотя бы CRC8. При слете данных в одном из блоков - брать данные из второго, и восстанавливать "сбойнувший" блок.
|
|
|
|
|
May 13 2008, 10:17
|

Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 19-12-07
Из: Житоимр
Пользователь №: 33 457

|
Цитата(defunct @ May 13 2008, 13:52)  Да ну бросте городить чушь. BOD надо включать, а не SPIEN смыкать А почему вы решили, что я говорю чушь? Я сейчас вам всё объясню и вам станет понятно. 1. Изменение данных EEPROM производилась и после того, как я убрал часть кода, отвечающего за её изменение. 2. BOD у меня включен в обязательном порядке на порог 2,7В 3. Случалось это только в моменты коммутации шлейфа программирования при РАБОТАЮЩЕМ контроллере, причём непредсказуемо. В моём случае (на мой взгляд) следующая ситуация : в определённые моменты времени уровень на линии RESЕT достигал низкого уровня, при этом по линиям MOSI, SCK могли проходить помехи которые и преводили МК в режим программирования. 4. После того как я отключил SPI, проблема сналась, это факт!
|
|
|
|
|
May 13 2008, 10:40
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 5-12-07
Пользователь №: 32 986

|
Цитата(Палыч @ May 13 2008, 13:06)  Если с питанием - всё нормально, то ячейка может не читаться только если в этот момент происходит запись в EУPROM. Записываются данные в EEPROM этой же программой? Или программатором? Если программой, то, может быть после записи перезалить программу, отключив (закоментировав) кусок с записью данных в память, и проверить чтение и слёт памяти. Данные пишутся этой же программой, но для произведения записи, должен прийти запрос от ком-порта
Сообщение отредактировал Len_OK - May 13 2008, 11:08
|
|
|
|
|
May 13 2008, 12:17
|

Участник

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

|
Цитата(defunct @ May 13 2008, 14:36)  Да ну бросте городить чушь. BOD надо включать, а не SPIEN смыкать, чтобы МК сбрасывался до того как питание упадет ниже критической отметки, после которой может изменяться содержимое RAM (регистр PC относится к RAM). А вот изменение содержимого RAM как раз может повлечь за собой прыжек на любой участок кода, в том числе и на участок где производится запись в eeprom. От того он у вас и слетал.
Для отладки Tiny13 вообще-то есть debugWire интерфейс, при включение которого ISP отключается автоматически.
1. Включить BOD. 2. Сделать запись помехозащищенной - разбить eeprom на два блока по 32 байта. Данные сохранять сразу в два блока, блоки защищать хотя бы CRC8. При слете данных в одном из блоков - брать данные из второго, и восстанавливать "сбойнувший" блок.
Все это очень смущает. Почему тогда у вас не слетал Flash? Помеха была такой умной, что генерила только команду записи eeprom? Звучит абсурдно. И не проще ли отключить reset в таком случае? Для восьминогой Tiny13 дополнительная ножка куда более актуальна чем вкл/откл ISP. На сколько я понимаю, даный форум был создан для того, чтобы люди смогли получить ответы на свои вопросы и поделиться опытом, а не слышать в свою сторону "несешь чушь"... Хотя Вы, уважаемый defunct и "Гуру", но с вашей стороны это мягко говоря неуважение к нам форумчанам. Ну включили вы свой БОД, ну есть цитата в даташите: EEPROM data corruption can easily be avoided by following this design recommendation: Keep the AVR RESET active (low) during periods of insufficient power supply voltage. This can be done by enabling the internal Brown-out Detector (BOD). If the detection level of the internal BOD does not match the needed detection level, an external low VCC Reset Protection circuit can be used. If a reset occurs while a write operation is in progress, the write operation will be completed provided that the power supply voltage is sufficient. Да в этом Вы правы, но, судя из моего опыта - это не всегда срабатывает... В моем случае порча ЕЕПРОМ часто происходила в тех же случаях, что и у Kalina, и у Len_OK, создавшего эту тему, а именно в момент присутствия каких либо напряжений на Vcc и линиях SPI, при этом на Reset было 0В. Один мой знакомый даже отправлял письмо компании Atmel (которая, кстати изначально занималась только ЕЕПРОМ) с подобным вопросом, и получил ответ, который полностью совпадает с опытом Kalina - проблемы с SPI, конечно же при условии соблюдения всех остальных замечаний по поводу ЕЕПРОМ АВР-ов. И во-первых: !!!Внимательно!!! читая данную тему я заметил, что Kalina работал с Мега8, а там вообще нету debugWire... Во-вторых:на сколько я знаю для debugWire надобно заиметь не совсем простой программатор... В-третьих:если Вы отключите Reset, то не сможете программировать по SPI и Вам снова придется заиметь не совсем простой программатор... В-четвертых:может быть Вы посоветуете еще и кодировать сами записываемые данные кодами Хеминга, Грея и т. п. Что же у Вас за ключ такой получится??? В-пятых:сама компания Атмел гарантирует правильную работу при соблюдении всех правил использования ЕЕПРОМ, как аппаратных так и программных. ИМХО, люди здесь должны делиться своими знаниями и опытом, а не указывать кому и что как делать... Цитата(defunct @ May 13 2008, 14:36)  Все это очень смущает. Почему тогда у вас не слетал Flash? Помеха была такой умной, что генерила только команду записи eeprom? Звучит абсурдно. И не проще ли отключить reset в таком случае? Для восьминогой Tiny13 дополнительная ножка куда более актуальна чем вкл/откл ISP. Кстати, уважаемый defunct, вот нашел в этом же форуме тему, связаную со стиранием памяти контроллера в результате влияния помех на SPI - - - http://electronix.ru/forum/index.php?showtopic=47174
|
|
|
|
|
May 13 2008, 12:17
|

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

|
Цитата(mart-13 @ May 13 2008, 14:53)  На сколько я понимаю, даный форум был создан для того, чтобы люди смогли получить ответы на свои вопросы и поделиться опытом, а не слышать в свою сторону "несешь чушь"... Хотя Вы, уважаемый defunct и "Гуру", но с вашей стороны это мягко говоря неуважение к нам форумчанам. это просто метки которые форум сам расставляет от количества постов. Никакого отношения к квалификации эти метки не имеют. Я бы был непротив если бы вместо "гуру" у меня там было написано "кекс". Цитата Ну включили вы свой БОД, ну есть цитата в даташите: ... Да в этом Вы правы, но, судя из моего опыта - это не всегда срабатывает... Хорошая попытка... Цитата В моем случае порча ЕЕПРОМ часто происходила в тех же случаях, что и у Kalina, и у Len_OK, создавшего эту тему, а именно в момент присутствия каких либо напряжений на Vcc и линиях SPI, при этом на Reset было 0В. А у меня порчи eeprom от этого не происходило. Что я делаю не так? Цитата И во-первых: !!!Внимательно!!! читая данную тему я заметил, что Kalina работал с Мега8, а там вообще нету debugWire... "Внимательно" читая данную тему Вы бы заметили, что тема называется "Tiny13". Какое отношение к этой теме могут иметь способы применимые на mega8? В m8 можно разместить бутлоадер и с легкостью перешивать чип через любой доступный интефейс. С t13 такой фокус не пройдет, но есть debugWire. Я как раз стараюсь быть в русле темы не переключаться на другие чипы. Цитата Во-вторых:на сколько я знаю для debugWire надобно заиметь не совсем простой программатор... А разве это не обязательное условие для нормальной работы? Или Вас больше устраивает верить в то что SPI интефейс (которого кстати в Tiny13 нет) каким-то образом может стирать EEPROM? Цитата В-третьих:если Вы отключите Reset, то не сможете программировать по SPI и Вам снова придется заиметь не совсем простой программатор... Да разумеется, но в свете откровенно станного совета - отключить ISP - отключение Reset'a для Tiny13 смотрится куда более разумным выходом, т.к. хотя бы добавится драгоценный для этого чипа пин. Цитата В-четвертых:может быть Вы посоветуете еще и кодировать сами записываемые данные кодами Хеминга, Грея и т. п. Что же у Вас за ключ такой получится??? Может быть, зависит от задачи. Для задачи этой ветки я считаю, что два блока защищенных CRC8 будет достаточно для того чтобы навсегда избавиться от проблем искажения EEPROM. Цитата В-пятых:сама компания Атмел гарантирует правильную работу при соблюдении всех правил использования ЕЕПРОМ, как аппаратных так и программных. Мы не застрахованы от пропадания питания и/или подачи сигнала Reset во время записи ячейки EEPROM, следовательно никаких гарантий нет и быть не может. Гарантии достигаются дублированием важной информации. Цитата ИМХО, люди здесь должны делиться своими знаниями и опытом, а не указывать кому и что как делать... Разумеется я вам и не указ. И мне все равно как те или иные задачи будут решены. Я просто высказываю свое мнение, а оно у меня таково - взаимосвязи между стиранием EEPROM и отключением ISP нет. Цитата вот нашел в этом же форуме тему, связаную со стиранием памяти контроллера в результате влияния помех на SPI Я ее читал - там нет ни одного серьезного факта подтверждающего стирание памяти. Только "друг сказал", "где-то слышал", "кто-то жаловался" и т.п, это можно расценивать как реальные факты?.
|
|
|
|
|
May 13 2008, 12:28
|

Участник

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

|
Цитата(defunct @ May 13 2008, 16:17)  Или Вас больше устраивает верить в то что SPI интефейс (которого кстати в Tiny13 нет) каким-то образом может стирать EEPROM? Уважаемый defunct, во-первых вот вам скриншот из даташита АТтини13. Во-вторых: http://electronix.ru/forum/index.php?showtopic=47174
Эскизы прикрепленных изображений
|
|
|
|
|
May 13 2008, 12:38
|

Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 19-12-07
Из: Житоимр
Пользователь №: 33 457

|
Цитата(defunct @ May 13 2008, 16:17)  Или Вас больше устраивает верить в то что SPI интефейс (которого кстати в Tiny13 нет) каким-то образом может стирать EEPROM? Интересненько, а как же без SPI этот контроллер вообще можна прошить? Может вам удавалась его прошить по debugWire?
|
|
|
|
|
May 13 2008, 12:47
|

Участник

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

|
Цитата(defunct @ May 13 2008, 16:17)  Или Вас больше устраивает верить в то что SPI интефейс (которого кстати в Tiny13 нет) каким-то образом может стирать EEPROM?
Ну и что Вы хотите показать этим скриншотом? Ну, может я слепой, но на скриншоте четко видно, что в АТтини13 есть SPI, которого по Вашему утверждению там нету... Цитата(defunct @ May 13 2008, 16:32)  Насчет приведенной ссылки - потрудитесь ее просмотреть, я в ней принимал участие. Ссылку я просмотрел, извините, что не уточнил, но ее я скинул для уважаемого Len_OK, о котором мы с вами к сожалению забыли...
|
|
|
|
|
May 13 2008, 12:52
|

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

|
Цитата(Kalina @ May 13 2008, 15:38)  Интересненько, а как же без SPI этот контроллер вообще можна прошить? Может вам удавалась его прошить по debugWire? периферийного устройства "SPI" такого как в m8 в t13 нет. SPI который используется только для ISP программирования, в нормальном режиме отключен. Надо всего лишь подтянуть Reset к питанию и включить BOD. T13 можно шить LVSP, HVSP и dW программаторами. Через dW конечно удавалось его шить иначе было бы очень неудобно отлаживать.
|
|
|
|
|
May 13 2008, 13:08
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 5-05-08
Пользователь №: 37 279

|
Цитата(Len_OK @ May 13 2008, 11:28)  по питанию всё нормально, пробовала на корпус давать +5!После этого и начинаются проблемы с чтением и данные изменяются. Включите BOD на 4.5v . Если BOD нет - ставьте внешний супервайзер на ресет.
|
|
|
|
|
May 13 2008, 13:23
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(Kalina @ May 13 2008, 13:17)  ...в определённые моменты времени уровень на линии RESЕT достигал низкого уровня, при этом по линиям MOSI, SCK могли проходить помехи которые и преводили МК в режим программирования. После того как я отключил SPI, проблема сналась, это факт! Хотя теория вероятности и говорит, что существует вероятность того, что помехи могут сложится в соответствующие команды программирования, но, я в данном вопросе я солидарен с defunct. То, что отключение SPI помогло, может быть объяснено и по-другому: например, помеха была довольно мощной и по цепям SPI в МК проникало напряжение >6V, которое губительно для памяти; отключили SPI - помехе стало труднее проникать...
|
|
|
|
|
May 13 2008, 13:36
|

Участник

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

|
Цитата(defunct @ May 13 2008, 16:52)  периферийного устройства "SPI" такого как в m8 в t13 нет.
SPI который используется только для ISP программирования, в нормальном режиме отключен. Надо всего лишь подтянуть Reset к питанию и включить BOD.
T13 можно шить LVSP, HVSP и dW программаторами. Через dW конечно удавалось его шить иначе было бы очень неудобно отлаживать. Что значит "SPI который используется только для ISP программирования, в нормальном режиме отключен"??? Что такое нормальный режим??? (Что, есть еще и ненормальный???) В каком режиме продается данный МК в магазинах(в нормальном или ненормальном)??? Чем же его прошить первый раз после покупки??? Приведите, пожалуйста, хоть один факт, или документ, который что-то из этого подтверждал... Может у меня мало опыта в работе с АВР... Может Вы говорите на каком-то другом языке: причем тут периферийное устройство SPI и протокол по которому прошивается память контроллера SPI. SPI - это, на сколько я знаю, Serial Peripheral Interface. У большинства 8-битных МК фирмы Атмел этот интерфейс используется для загрузки программы в память МК. А у некоторых МК той же фирмы на борту есть еще и встроенный аппаратный SPI интерфейс (периферийное устройство), который исползуется для связи МК с другими устройствами (память, ЖКИ, другой МК,...), и который может работать в режиме Мастер или Слейв, но он не принимает участия в программировании МК без дополнительных программных вмешательств (типа бутлоадера). Вот SPI, как периферийное устройство в тини13 отсутствуей, а SPI как интерфейс программирования там есть (что видно из скриншота)... Не ругайте сильно, что отвлекся от темы, просто мне не понятно почему в оригинальной документации написано одно, а Ваш опыт говорит о другом.
Сообщение отредактировал mart-13 - May 13 2008, 13:47
|
|
|
|
|
May 13 2008, 13:47
|

Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 19-12-07
Из: Житоимр
Пользователь №: 33 457

|
Цитата(defunct @ May 13 2008, 16:52)  Через dW конечно удавалось его шить иначе было бы очень неудобно отлаживать. Интерфейс debugWIRE позволяет выполнять отладку прямо на кристалле, что раннее было доступно на микроконтроллерах более высокого класса. Это позволит инженерам-проектировщикам усилить желание вывести продукцию на рынок за более короткий промежуток времени, т.к. имеется возможность начать выпуск продукции раньше, чем закончится отладка программного обеспечения. Встроенная отладка дает возможность проектировщикам выполнять отладку прямо на готовом устройстве. Именно для этого Atmel внедрила модуль debugWIRE в свои устройства. debugWIRE использует линию сброса для электрического соединения, благодаря чему проектировщики не столкнуться с проблемой потери линий ввода-вывода при использовании системы встроенной отладки. debugWIRE и пользовательский интерфейс AVR Studio ® дают проектировщикам полное управление ресурсами микроконтроллера, помогая уменьшить время проектирования за счет более простого процесса отладки. DebugWIRE позволяет выполнять отладку 8-разрядных микроконтроллеров, которые имеют малое число выводов. Как например 8-выводной. tiny 13 и 20-выводной tiny 2313 не имеют достаточного числа выводов для поддержки JTAG –интерфейса, которому требуется 4 линии ввода-вывода. Чесно говоря, первый раз слышу про такую возможность шить по dW, если вас не затруднит, не могли бы вы поделиться на конкретном прирмере, в даташите на tiny13 я ничего такого не нашёл. Поиск в гугле dW программатора также дал 0 результат  , неужели это засекречено? Цитата(Палыч @ May 13 2008, 17:23)  отключили SPI - помехе стало труднее проникать... При отключении SPI помехи никуда не делись, это понятно. Способность проникновения от этого вряд ли стала меньше. А вот возможность чего-то натворить в МК сразу отпала, проще говоря ей просто закрыли двери!
|
|
|
|
|
May 13 2008, 13:55
|

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

|
Цитата(mart-13 @ May 13 2008, 16:36)  Что значит "SPI который используется только для ISP программирования, в нормальном режиме отключен"??? Значит что в пользовательской программе его использовать нельзя. Цитата Что такое нормальный режим??? (Что, есть еще и ненормальный???) Когда выполняется пользовательская программа. Есть и другие режимы работы МК - сброшенное, отключенное состояние, режим программирования... Цитата В каком режиме продается данный МК в магазинах(в нормальном или ненормальном)??? в отключенном. Цитата Чем же его прошить первый раз после покупки??? Программатором, но вначале так или иначе надо будет куда-то запаять. А уж потом шить. Цитата а SPI как интерфейс программирования там есть (что видно из скриншота)... Да есть, но он отключен когда выполняется программа пользователя. Цитата Чесно говоря, первый раз слышу про такую возможность шить по dW, если вас не затруднит, не могли бы вы поделиться на конкретном прирмере, в даташите на tiny13 я ничего такого не нашёл. Поиск в гугле dW программатора также дал 0 результат , неужели это засекречено? Ну а что через JTAG можно программировать слышали? Точно также программу можно зашить и через dW. При отладке AVR-Studio сама заливает программу в чип через dW, т.е. Вам не нужно отключать dW, зашивать программу и включать dW обратно, для того чтобы отладить программу. Единственное ограничение в работе через debugWire - нельзя программировать Fuses и Locks.
|
|
|
|
|
May 13 2008, 14:04
|

Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 19-12-07
Из: Житоимр
Пользователь №: 33 457

|
Цитата(defunct @ May 13 2008, 17:55)  Ну а что через JTAG можно программировать слышали? Точно также программу можно зашить и через dW. Единственное ограничение - нельзя программировать Fuses и Locks. Про возможность JTAG программирования я не только слышал, но и читал в даташите на мегу16. А вот про программирование тини13 по dW всего лишь слышал от вас, приведите хоть сылочку что ли...
|
|
|
|
|
May 13 2008, 14:17
|

Участник

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

|
Цитата(defunct @ May 13 2008, 17:55)  Значит что в пользовательской программе его использовать нельзя. Когда выполняется пользовательская программа. Есть и другие режимы работы МК - сброшенное, отключенное состояние, режим программирования... в отключенном. Программатором, но вначале так или иначе надо будет куда-то запаять. А уж потом шить. Да есть, но он отключен когда выполняется программа пользователя. Ну а что через JTAG можно программировать слышали? Точно также программу можно зашить и через dW. Единственное ограничение - нельзя программировать Fuses и Locks. Ну на счет режимов Вы наконец что-то конкретное сказали, и начали называть все своими именами... (кстати, а почему бы не назвать отключенный режим нормальным)... ИМХО, так и надо было написать, что в режиме выполнения пользовательской программы SPI, который используется для программирования отключен, сразу всем бы ясно было, ато Вы пишите, что в тини13 его вообще нету. Я, например, и не всегда впаиваю контроллеры сразу в плату, а пользуюсь панельками программатора (у меня СТК-500). И еще вопрос, изначально эта тема подразумевала использование МК в "ненормальном" для Вас режиме, тоесть в режиме переходных процессов при вкл/выкл питания, и возможность при этом порчи ЕЕПРОМ (по причине нахождения МК в режиме программирования, или превышения напряжения питания, или помех, и т.д.) так вот, какое отношение к данному вопросу имеют Ваши хваленые dW и JTAG???
|
|
|
|
|
May 13 2008, 14:45
|

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

|
Цитата(Kalina @ May 13 2008, 17:04)  Про возможность JTAG программирования я не только слышал, но и читал в даташите на мегу16. А вот про программирование тини13 по dW всего лишь слышал от вас, приведите хоть сылочку что ли... Запустите AVR-Studio. Откройте Help->AVR Tools Users Guide->JTAGICE MKII. Перейдите в раздел On-Chip Debugger Options в нем подраздел Debug Dialog -> debugWire. Там будет скриншот, где видно что для debugWire можно настроить Program Download опции. цитата: Цитата The Debug Dialog Box when using debugWIRE is shown below. ... The Program Download section allows different settings for how often the target device should be reprogrammed. Цитата(mart-13 @ May 13 2008, 17:17)  И еще вопрос, изначально эта тема подразумевала использование МК в "ненормальном" для Вас режиме, тоесть в режиме переходных процессов при вкл/выкл питания, и возможность при этом порчи ЕЕПРОМ (по причине нахождения МК в режиме программирования, или превышения напряжения питания, или помех, и т.д.) так вот, какое отношение к данному вопросу имеют Ваши хваленые dW и JTAG??? Естессно никакого, точнее ровно такое же как и рекомендация отключить ISP. Бороться с переходным процессом надо другим способом - BOD / внешний супервизор питания, подключать пины через низкоомные резисторы вблизи выводов МК, шунтирующие конденсаторы по питанию... Программные средства защиты - дублирование записей в eeprom, код защиты.
|
|
|
|
|
May 13 2008, 21:21
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(defunct @ May 13 2008, 16:17)  это просто метки которые форум сам расставляет от количества постов. Никакого отношения к квалификации эти метки не имеют. Я бы был непротив если бы вместо "гуру" у меня там было написано "кекс". OFF defunct дык поставте себе "кекс" в профиле Цитата(mart-13 @ May 13 2008, 18:17)  Ну на счет режимов Вы наконец что-то конкретное сказали, и начали называть все своими именами... (кстати, а почему бы не назвать отключенный режим нормальным)...
ИМХО, так и надо было написать, что в режиме выполнения пользовательской программы SPI, который используется для программирования отключен, сразу всем бы ясно было, ато Вы пишите, что в тини13 его вообще нету. Следите за движением буковок ISP != SPI и расшифровываются они совсем по-разному, а для подтверждения моих слов, идем ВНИМАТЕЛЬНО читать раздел SPI Serial Programming в даташите на mega128
|
|
|
|
|
May 16 2008, 08:52
|
Частый гость
 
Группа: Участник
Сообщений: 165
Регистрация: 14-01-05
Из: РФ Приморский край (рег.25)
Пользователь №: 1 939

|
Цитата(Kalina @ May 13 2008, 18:16)  Если я не ошибаюсь, так EEPROM это энергонезависимая память, какая может быть зависимость от напряжения питания? Разве что сам контроллер при понижении питания производит её хаотическую перезапись. Правильное предположение. Есть еще способы испортить EEPROM, но они маловероятны в обсуждаемом случае.
Сообщение отредактировал sseett - May 16 2008, 09:08
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|