Гуру
Регистрация: 28.06.2012
Сообщений: 4,893
Репутация: 1177
|
А не может быть такого, что занижено напряжение питания -> запись в Flash происходит некорректно ? Или с питанием какие-то проблемы ? Осциллограф-то у вас есть ?
|
||
Оценка
|
Специалист
|
С питанием все хорошо. Но, вы правы, что запись в Flash происходила некорректно, запись вообще не происходила, как выяснилось ))). Осциллограф есть, но в нем уже нет необходимости. Почему, поясню чуть ниже в отдельном сообщении.
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота. |
||
Оценка
|
Специалист
|
Проблема решена.... "Профессор лопух...."
Ребята, всем спасибо за участие и советы. Проблема решена. Рассказываю..
Как оказалось было несколько проблем: одна основная и несколько второстепенных. Второстепенные связаны со старым софтом (прога загрузчика, AVRStudio 4.16, оболочка SinaProg для прогера avrdude) работающим на Win7, правами запуска (от имени администратора) и режимами запуска программ в режиме совместимости... Основная проблема: конфигурационные файлы Fuse- и Lock-битов в оболочке SinaProg для прогера avrdude. Я уверен, что вы уже поняли к чему я веду. Я не помню где я взял этот софт, но пользуюсь я этим программтором уже давно, проблем не было, а не было именно из-за того, что не было необходимости в изменении конфигурации именно мк ATmega328p. Из-за ошибок в конфигурационных файлах (это файлы для встроенного в SinaProg калькулятора Fuse-битов) мк неверно конфигурировался, в частности - размер загрузочного сектора, соответственно стартовый адрес Boot-сектора. Т.е. загрузчик пытался записать данные (обновлять) в запрещенную область (я так думаю), или область, недоступную для записи при такой конфигурации. На эту мысль меня навело сообщение antonydublin и обновленная версия загрузчика. Когда я конфигурировал мк, я пользовался известным онлайн калькулятором Fuse-битов, где выбирал нужные мне параметры работы мк и получал hex-значения High Fuse, Low Fuse, Ext. Fuse. Эти значения я устанавливал в программаторе, но там уже не проверял, какие параметры встали. Ну проверь сразу!.. Нет, это не наш метод... Как я такими действиям еще не залочил мк... В итоге, поправил конфиг. файлы в соответствии рекомендациями, сверил с даташитом. Прошил загрузчик и обновить (залить) основную прошивку с помощью avrubd 5.2 получилось сразу. Думаю, что и предыдущая версия загрузчика (4.5) тоже будет работать, я не проверял, т.к. в 5.2 исправлено много багов. Выкладываю SinaProg + avrdude с исправленными и проверенными файлами калькулятора Fuse-Битов (именно для ATmega328p), может кому-то пригодиться. Еще раз всем спасибо за помощь.
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Последний раз редактировалось Vadzz; 26.12.2019 в 00:54.
|
||
Оценка
|
Новичок
Регистрация: 10.02.2010
Адрес: Луганистан
Сообщений: 11
Репутация: 14
|
Вдогонку - вдруг кому поможет от сбора граблей.
В AVRUBD и прочих глюков хватает. Например: * снятие битов кодом типа TIFR|=... * как отмечено выше - неправильно реализован счётчик пакетов. При получении NAK передатчик должен повторить пакет с предыдущим номером. По факту пакет повторяется, но номер инкрементируется. Впрочем, этот косяк заложен и в приложении, и в исходнике для МК. Поэтому связка работает. * Длина пакета и символ готовности - лишь частично соответствуют стандарту ("C"/NAK и 132/133 байта) Короче, XMODEM там ненастоящий, будет работать только со своей софтиной. С другой стороны - уже много лет его использую, самый стабильный бут из многих опробованных. Благодаря исходникам - менял его как хотел, вплоть до софтового UART на некварцованной ATTINY |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |