Мелкие вопросы по МК и ПЛИС.
- Сообщения: 125
- Зарегистрирован: Пт янв 21, 2011 01:08:43
Здравствуйте. Хочу попробовать освоить микроконтроллеры AVR. Купил tiny 2313. При неудачном программировании возможна-ли повторная перепрошивка, прошивка другой программы и сколько раз можно прошивать? Чего не рекомендуется делать с микроконтроллерами начинающему писаки программ. Опыта у меня никакого, поэтому прошу объяснить проще. Спасибо .
- Реклама
До 10000 раз можно перезаписывать. Для начала внимательно изучи биты конфигурации контроллера - они определяют низкоуровневые функции контроллера, и можно случайно отключить интерфейс программирования. Тогда придется брать высоковольтный программатор, и менять биты им.
И я точно не помню касательно TINY2313, но в даташите приводится(если внимательно читать) опасная комбинация битов конфигурации которой можно можно превратить контроллер в однократно программируемый(Вроде отключения вывода сброса и одновременное выключение задержки старта по сбросу - программатор в таких условиях просто не успеет перевести контроллер в режим программирования), но это сильно зависит от контроллера - надо читать даташит на конкретный, и быть внимательным.
И я точно не помню касательно TINY2313, но в даташите приводится(если внимательно читать) опасная комбинация битов конфигурации которой можно можно превратить контроллер в однократно программируемый(Вроде отключения вывода сброса и одновременное выключение задержки старта по сбросу - программатор в таких условиях просто не успеет перевести контроллер в режим программирования), но это сильно зависит от контроллера - надо читать даташит на конкретный, и быть внимательным.
- Сообщения: 125
- Зарегистрирован: Пт янв 21, 2011 01:08:43
На моём компьютере не LPT порта. Программатор хочу сделать по схеме с двунаправленными шинными формирователями, типа К555АПХХ. Его схему видел кажется в обучалке. Где то читал, что существуют переходники USB-LPT но для изготовления программатора не подходят. Нужна для этих целей плата расширения PCI-LPT которая вставляется в материнскую плату компьютера. И от этого уже плясать. Так ли это?
В таком случае тебе одинаково сложно будет собрать USB программатор.
- Сообщения: 125
- Зарегистрирован: Пт янв 21, 2011 01:08:43
Я имею в виду установить плату расширения с LPT разъёмом в слот материнской платы. И мой компьютер будет оснащён параллельным портом для подключения самодельного программатора. Другой вариант, купить переходник USB-LPT и подключать этот программатор к этому переходнику. Вот я и спрашиваю, заменит-ли этот переходник полноценный LPT-порт?
- Реклама
Все это костыли, LPT-порт очень нежный, чуть что - вышибает. Если он нужен только для программатора - не стоит городить костыли, собственно программатор на LPT-порту это костыль времен DOS-а доживший до времен Windows-8. Пора бы избавляться от ненужных костылей. Сейчас даже делать программатор не имеет смысла - навыков на его сборке не получишь, а купить готовый можно за 10$...15$ и съекономить себе кучу времени на что-то более полезное.
- Сообщения: 125
- Зарегистрирован: Пт янв 21, 2011 01:08:43
Какой-же выход? Заказать USB программатор? Где? Какой? Оооххх, надеюсь я не пожалею, что связался с микроконтроллерами. Для меня эта тема дремучий лес. Извиняюсь за не умные вопросы, но это вообще мои первые вопросы по МК.
Можно в местных магазинах, можно на И-бей... выбирай
посмотри на материнке......, у меня он был в виде выведенных штырьков......, я его вынес наружу......, советую самому сделать программатор типа 5 проводков ...., но перед этим вниматьльно посмотреть сие http://www.fanatnauki.ru/index.php?opti ... &Itemid=18тимок писал(а):На моём компьютере не LPT порта.
Tell Me The Truth
- Сообщения: 129
- Зарегистрирован: Ср янв 18, 2012 19:37:10
Здравствуйте, уважаемые коты. Возник у меня вот такой вопрос по EEPROM, прямо мистика какая-то
Делаю я прошивку для atmega32. Другой человек делает ПО верхнего уровня для управления изделием. Сейчас идет стадия отладки. Так вот при записи в ячейку одного из значений, постоянно дохнет эта ячейка памяти. Сдохло 1 раз. Перезаписал в другую ячейку. Опять сдохла. Записал еще в одну - та же картина. Причем другие ячейки спокойно перезаписываются и не выгорают. А с этим параметром постоянно. В чем может быть проблема? А то я, право, не знаю даже в какую сторону копать, чтобы выяснить причину. Спасибо
Что значит "дохнет"? Поподробней, пожалуйста.Prosperous писал(а):постоянно дохнет эта ячейка памяти.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 581
- Зарегистрирован: Ср янв 05, 2011 10:03:18
"с параметром" имеется ввиду значение переменной? Тогда смотреть только в сторону собственной программы и искать собственные косяки. Другие переменные, по вашему утверждению, пишутся. Вот и ищите разницу между ними.Prosperous писал(а):А с этим параметром постоянно. В чем может быть проблема? А то я, право, не знаю даже в какую сторону копать, чтобы выяснить причину. Спасибо
И, действительно, уточните определение термину "выгорают". Есть открытое пламя? Дым? Вы пишете в фиксированные адреса EEPROM?
С уважением,
Виктор.
Виктор.
- Сообщения: 129
- Зарегистрирован: Ср янв 18, 2012 19:37:10
Так пишутся они таким же точно способом. Операции чтения/записи стандартные, взятые из даташита. Под параметром имеется ввиду значение переменной. При записи данных в eeprom через программатор выдается ошибка: значение ячейки такой - то 0x00, а должно быть, к примеру, 0x01. и все. а когда эту переменную записываешь в другую ячейку - все нормально, только через некоторое количество перепрошивок снова выдается такая же ошибка именно для этой переменной, а другие данные ничего, перепрошиваются.
Я вот думаю, может тот товарищ, который ПО верхнего уровня пишет, что - то не так шлет через uart, происходит сбой и ячейка портится? Может такое быть?
Я вот думаю, может тот товарищ, который ПО верхнего уровня пишет, что - то не так шлет через uart, происходит сбой и ячейка портится? Может такое быть?
Адрес ячейки?
Был глюк с записью в первые ячейки EEPROM у AVRок. У каких-то конкретных серий. Лично не натыкался, но народ жаловался.
Был глюк с записью в первые ячейки EEPROM у AVRок. У каких-то конкретных серий. Лично не натыкался, но народ жаловался.
- Сообщения: 129
- Зарегистрирован: Ср янв 18, 2012 19:37:10
Про это я тоже читал, что, вроде, не рекомендуется в 0 и 1 ячейку писать. Так там в 42 записано было
Или первые ячейки это штук 100?
Да не помню точно, но вроде про нулевую говорили.
У вас даже не рядом, так что ищите проблему в алгоритме
У вас даже не рядом, так что ищите проблему в алгоритме
- Сообщения: 581
- Зарегистрирован: Ср янв 05, 2011 10:03:18
Стоп! А при чем тут программатор?!Prosperous писал(а):При записи данных в eeprom через программатор выдается ошибка: значение ячейки такой - то 0x00, а должно быть, к примеру, 0x01. и все. а когда эту переменную записываешь в другую ячейку - все нормально, только через некоторое количество перепрошивок снова выдается такая же ошибка именно для этой переменной, а другие данные ничего, перепрошиваются.
Вы переменные через программатор зашиваете? Или в теле программы они пишутся? Если в программе - с какой частотой у вас модифицируются ячейки EEPROM-а? В случаем не убивалку соорудили?
Могу одно сказать, если в процессе возникновения ваших проблем замешан еще и программатор, от меня советов не будет. Я не знаю вашего программатора.
С уважением,
Виктор.
Виктор.
- Сообщения: 129
- Зарегистрирован: Ср янв 18, 2012 19:37:10
начальные данные (которые по тз) я шью через программатор, они устанавливаются при первом включении устройства, затем в ходе работы устройства данные уже перепрошиваются сами внутри микроконтроллера. Приходит ко мне заказчик и говорит, а давай добавим еще вот такую функцию, я говорю хорошо, дописываю код и перепрошиваю заново микроконтроллер вместе с eeprom, вот тут ячейке и приходит трындец, причем каждый раз отвечающей за один и тот же параметр (этот параметр не константа и тоже перезаписывается в процессе работы устройства). Перепрошивка и перезапись происходит очень не часто, так что ресурс я врятли выработал. А программатор/отладчик JTAGICE mkII.
Перед повторным прошиванием ЕЕПРОМ стирается?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 129
- Зарегистрирован: Ср янв 18, 2012 19:37:10
Да нет, тупо переписываются новые значения. Хотя в остальные ячейки, в которых хранится другая информация, изначально записываются нули. Что, наверное, не есть хорошо?


