Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Atmega162 не могу прошить


Atmega162 не могу прошить

Сообщений 1 страница 30 из 45

1

Добрый день, форумчане. опять с вопросам к более продвинутым юзерам.

хочу прошить атмегу в готовом пром устройстве.
программатор USBasp
http://sg.uploads.ru/t/4B3dT.png

вопрос в следующем. я смог подключится и считать код с атмеги в буфер, смог стереть, а при программировании
-выдает ошибку-использование программатора значит разрешено фьюзами?

смущает фуз бит "Ext.clok"
http://s5.uploads.ru/t/Vxnub.png

и не получается фьюзы изменить, дело в нем? нужен внешний генератор?
какие еще могут быть пути решения? (параллельного нет)

Отредактировано Evgenij86 (2018-01-10 22:17:44)

0

2

Evgenij86 написал(а):

какие еще могут быть пути решения?

Фьюзедоктор может помочь!

0

3

в чем проблема то? что мешает прошить?

0

4

Evgenij86 написал(а):

в чем проблема то? что мешает прошить?

А строчки Lockbit 54, ...32, ....10 - не смущают ?

+1

5

Здаётся мне , шо шото он знакомое пытается загамить... Ждём попутных вАпросов по граблям...
ТС  -  шо це за дЫвайс таке, шо ты загамить хочешь???

0

6

А строчки Lockbit 54, ...32, ....10 - не смущают ?


смущают,но так же не дает изменить. есть какие то варианты?
эти строчки не дают возможности прошить? дают возможность определить чип, стереть, прошить флеш, но запрограммировать нет возможности? я правильно понимаю?

Отредактировано Evgenij86 (2018-01-11 07:21:31)

0

7

Здаётся мне , шо шото он знакомое пытается загамить... Ждём попутных вАпросов по граблям...


что то похожее уже было?какие пути решения?

0

8

Evgenij86 написал(а):

эти строчки не дают возможности прошить? дают возможность определить чип, стереть, прошить флеш, но запрограммировать нет возможности?

Залоченный чип позволит только определить себя и не больше.
Прочитать его не получится, равно как и очистить, не говоря уже о прошивке.

На скриншотах видны красные "кирпичи" - сигнал о неудачном завершении операции.
То, что до них синие - это шаги операции, но каждый шаг отдельно не контролируется.

В поле данных с большой вероятностью у вас содержимое буфера для новой прошивки, а не то, что было в МК.
Из залоченного было бы считано только FFFFFFF....

Ищите программатор для снятия "залоченности", только имейте в виду - далеко не факт, что содержимое МК останется непобитым. Скорее всего вы получите чистый чип.
По крайней мере, пока ни один чип (на работе, все ATMega8) после снятия залочки не выдал полезной информации...

0

9

Не шиться может только в двух случаях:

1. схемное включение мешает нормальному прохождению сигнала программатора (на линии: конденсаторы, диоды, большая гагрузка, внешние сигналы...), ещё бывают наводки тоже схемные;
2. неисправен сам чип/МК.

Если вы прочитали данные - это не значит, что МК после этого должен легко шиться и вообще, что вы корректно данные прочитали. :D

0

10

RDW написал(а):

1. схемное включение мешает нормальному прохождению сигнала программатора (на линии: конденсаторы, диоды, большая гагрузка, внешние сигналы...), ещё бывают наводки тоже схемные;

Я уже однажды поднимал этот вопрос, но он не получил продолжения Внутрисхемное программирование ...

0

11

Код:
В поле данных с большой вероятностью у вас содержимое буфера для новой прошивки, а не то, что было в МК.
Из залоченного было бы считано только FFFFFFF....
Ищите программатор для снятия "залоченности", только имейте в виду - далеко не факт, что содержимое МК останется непобитым. Скорее всего вы получите чистый чип.
По крайней мере, пока ни один чип (на работе, все ATMega8) после снятия залочки не выдал полезной информации...


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

Отредактировано Evgenij86 (2018-01-11 12:37:51)

0

12

. схемное включение мешает нормальному прохождению сигнала программатора (на линии: конденсаторы, диоды, большая гагрузка, внешние сигналы...), ещё бывают наводки тоже схемные;


самое главное, что на борту уже есть разъем для программатора, с правильным расположением всех выходов (т.е. стандартное расположение USBasp)http://s4.uploads.ru/t/qdx6A.jpg

думаю он используется для целей прошивки и изменения кода на самом заводе, поэтому и решился на столь "дерзкий поступок"=) присвоить себе готовую плату с МК.

0

13

Evgenij86 написал(а):

думаю он используется для целей прошивки и изменения кода на самом заводе

Иногда на этих самых заводах "съедают" количество циклов прошивки.
У нас поляки с одним блоком так делают.
Перепрошить его уже невозможно, только новый заказывать, а он стоит, как самолет... ;)
Бизнес...

А, возможно и просто к МК пришел "белый и пушистый"... ;)

0

14

Хотелось бы ,конечно, конструктива, вроде того что: "этот фьюз в таком состоянии-поэтому та операция проходит, а эта нет"

З.Ы. не сочтите за наглость, я только учусь=)

0

15

Evgenij86 написал(а):

не сочтите за наглость, я только учусь=)

Ну, я - тоже не гуру... ;)

Вот, например, взято отсюда http://avrproject.ru/forum/9-45-1

Здесь описаны не все фьюзы – только основные. Подробнее (и правильнее) о фьюзах нужно смотреть в даташитах на каждый конкретный микроконтроллер.

CKSEL – выбор тактового генератора для микроконтроллера.
Для работы микроконтроллера (как и для любого процессора) нужны тактовые импульсы. Источником тактового сигнала может быть:
– внутренний RC генератор. Никаких дополнительных элементов не нужно. Удобно, но RC генератор имеет небольшую точность работы (вплоть до 10% погрешности) и, кроме того, «плывет» от температуры. Для некритичных по времени приложений вполне годиться.
– внешний кварцевый (или керамический) резонатор. Нужен сам резонатор, плюс два конденсатора на 15-30пФ. Соответственно, будут заняты две ножки микроконтроллера – XLAT1 и XLAT2. Применяется там, где нужны точные замеры времени или частота работы микроконтроллера выше, чем может дать внутренний RC генератор.
– еще можно тактировать микроконтроллер от внешнего источника тактового сигнала. Это может быть другой микроконтроллер (для синхронизации работы) или внешняя схема, дающая нужный сигнал. Тактовый сигнал подается на ножку XLAT1.

Источник тактового сигнала для микроконтроллера задается комбинацией битов CKSEL3…0.
Это может быть (для ATTiny2313, выборочно):
CKSEL3…0 = 0000 – Внешний тактовый сигнал;
CKSEL3…0 = 0010 – Внутренний тактовый генератор – частота 4 МГц;
CKSEL3…0 = 0100 – Внутренний тактовый генератор – частота 8 МГц;
CKSEL3…0 = 1101 – Внешний тактовый генератор – кварц частотой от 3 до 8 МГц;
CKSEL3…0 = 1111 – Внешний тактовый генератор – кварц частотой больше 8 МГц.
CKOUT – разрешает вывод тактовой частоты на ножку CLKO микроконтроллера (для тактирования других устройств).
CKOUT = 1 – ножка микроконтроллера работает как обычный порт ввода-вывода;
CKOUT = 0 – на ножку микроконтроллера выдается сигнал тактового генератора.

CKOPT – задает размах тактового сигнала на внешнем генераторе.
CKOPT = 1 – размах небольшой – генератор работает в экономном режиме. Нормально генератор может работать лишь при небольших частотах и в условиях близким к идеальным. При значительных помехах, большой тактовой частоте, перепадах (скачках) напряжения питания, микроконтроллер может работать нестабильно;
CKOPT = 0 – задающий генератор работает на полную мощность, устойчив к помехам и может работать во всем диапазоне частот. Если нет особых требований к энергосбережению – советую всегда программировать этот бит.

SCKDIV8 – деление тактовой частоты на 8.
Тут все просто:
SCKDIV8= 1 – микроконтроллер работает на частоте задающего генератора;
SCKDIV8= 0 – микроконтроллер работает на частоте в 8 раз меньше частоты задающего генератора;

SUT – задает скорость запуска микроконтроллера.
После снятия «сброса» (или подачи питания) программа, записанная в микроконтроллер, начинает работать не мгновенно. Микроконтроллер выжидает некоторое время, для того, чтобы нормально запустился тактовый генератор, установилось напряжение питания и т.д. Время ожидания до запуска программы и задают биты SUT1…0. Чаще всего нам не критична скорость запуска, поэтому советую ставить на максимум.
SUT1..0 = 11 – максимальное время запуска (чуть больше 65 mS).
На время запуска еще влияет CKSEL0, но это уже детали …

RSTDISBL –разрешает использовать ножку Reset как еще один порт ввода-вывода.
Иногда нужная вещь, но нужно знать -
после программирования RSTDISBL микроконтроллер уже нельзя будет прошить последовательным программатором! Поэтому без особой надобности не трогайте его.
RSTDISBL = 1 – ножка сброса работает как сброс;
RSTDISBL = 0 – ножка сброса работает как еще один порт ввода-вывода, последовательное программирование отключено.

SPIEN – разрешение на последовательное программирование.
По умолчанию запрограммирован (0) – разрешено последовательное программирование.
SPIEN = 0 – разрешено последовательное программирование;
SPIEN = 1 – запрещено последовательное программирование.

WDTON – включает Watch Dog Timer.
Для ответственных приложений, там, где недопустимо зависание программы (будь то ошибка программы или злостная помеха), применяют Watch Dog Timer. Это внутренний таймер микроконтроллера, работающий от своего независимого генератора. При переполнении этого таймера микроконтроллер сбрасывается и начинает выполнять программу с начала. Программист должен в тесте программы (обычно в главном цикле) вставить специальную команду обнуления этого таймера (WDR). Команда периодически выполняется и обнуляет таймер, не давая ему переполнится. Если микроконтроллер «повис» перестают выполняться команды обнуления, таймер переполняется и сбрасывает микроконтроллер.
WDTON = 1 – Watch Dog Timer – отключен (можно включить программно);
WDTON = 0 – Watch Dog Timer – включен (программно выключить нельзя).
В обычных приложениях не нужен.

BODLEVEL и BODEN – контроль напряжения питания микроконтроллера (Brown-out Detector).
Если питание микроконтроллера опуститься к минимально допустимому или чуть ниже, то работа микроконтроллерабудет нестабильной. Возможны ошибочные действия, потеря данных, случайное стирание EEPROM. Микроконтроллер умеет следить за уровнем своего питания (BODEN=0) и когда оно достигает уровня, который задается битами BODLEVEL, сбрасывается и держится в ресете пока уровень не поднимется до рабочего уровня. В некритических приложениях можно не использовать.

JTAGEN – разрешает интерфейс JTAG (внутрисхемный отладчик).
При активации некоторые линии микроконтроллера отдаются под интерфейс. Но зато можно подключать JTAG отладчик и с его помощью легко отладить любую программу прямо в схеме – удобно.
JTAGEN = 1 – запрещен JTAG;
JTAGEN = 0 – разрешен JTAG.

DWEN – бит, разрешающий работу DebugWire
– еще одного отладочного интерфейса. DebugWire однопроводный отладочный интерфейс работающий через ножку сброса, поэтому «не отнимает» у микроконтроллера ножки портов ввода-вывода.
DWEN= 1 – запрещен DebugWire ;
DWEN= 0 – разрешен DebugWire .

AVR микроконтроллеры могут во время своей работы изменять содержимое области программ (программировать сам себя).
SELFPRGEN – бит, разрешающей программе производить запись в память программ.
SELFPRGEN = 1 – изменение области программ запрещено;
SELFPRGEN = 0 – разрешено изменение области программ.

EESAVE – защита EEPROM от стирания.
При подаче команды полного стирания микроконтроллера (обычно осуществляется при каждом программировании кристалла) стирается и EEPROM. Если Вы хотите чтобы EEPROM оставалось нетронутой – активируйте этот фьюз. Это актуально если в EEPROM хранятся важные данные.
EESAVE = 1 – стирать EEPROM вместе с Flash;
EESAVE = 0 – оставлять EEPROM при очистке нетронутым.

AVR микроконтроллеры могут иметь бутлоадер – это область в конце памяти, в которой можно разместить загрузчик, который предназначен для загрузки и запуска основной программы.
BOOTRST – как раз и заставляет микроконтроллер запускаться с области бутлоадера.
BOOTRST = 1 – микроконтроллер запускает программу с нулевого адреса;
BOOTRST = 0 – микроконтроллер запускает программу с бутлоадера.

BOOTSZ0..1 – задает размер бут сектора (области памяти программ для бутлоадера).

Lock Bits – Это отдельный фьюз байт который предназначен для защиты области программ и/или EEPROM от копирования. Полное стирание восстанавливает эти биты в исходное состояние.

Еще раз повторюсь, это не полный перечень фьюз бит, для каждого конкретного микроконтроллера смотрите даташит.

0

16

Nord написал(а):

Я уже однажды поднимал этот вопрос, но он не получил продолжения Внутрисхемное программирование ...

Ну тему не помню (куда там путь направлял), а так да, от части можно попробовать решить проблему понижением скорости  программирования, у меня за всё время эта проблема решалась только 1 раз и то, потому, что кабель от программатора был очень длинный (ибо на другом конце был тупо крокодил на соик 8).
Понижение скорости по факту не решит глобально проблему, тут уже надо учитывать схемотехнику для "внутрисхемного программирования", но это не всегда оправдано, например, если мы берём мелкую тиньку на 8 ног, то мы предполагаем минимум обвеса (ради экономии и минимализма) и следовательно вешать доп резисторы/диоды уже никто не будет.
В общем - это не решабельно.

0

17

Evgenij86 написал(а):

что то похожее уже было?какие пути решения?

Как у Саши - только молоток и зубило.  :D

0

18

Nord написал(а):

Залоченный чип позволит только определить себя и не больше.
Прочитать его не получится, равно как и очистить, не говоря уже о прошивке.

Отт тута ты ошибаешси.
Залоченный чип как раз-таки и даст себя прочитать, только это будет нечто другое а не прошивка. Попробуй сам, дамп интересный увидишь.
Если не трогать галку SpiEn то залоченый прекрасно "даст" себя стереть и записать.
Если стоит галка SafeEEp то после стирания еепром останется на месте.

0

19

Лоченый чип элементарно разлочивается опцией стирания чипа, далее он девственно готов выполнять любые функции.
Блокировка только ограничивает доступ к чтению данных флеша и эпрома (в зависимости от модели МК и настроек фюзов).

0

20

Nord написал(а):

В поле данных с большой вероятностью у вас содержимое буфера для новой прошивки, а не то, что было в МК.
Из залоченного было бы считано только FFFFFFF....

В атмеге 8, залоченной, у меня считывался в хексе 11 22 33 44....и т.д. по кругу.
А вот вопрос, что бы не плодить тем. А можно залочить мегу 8, так, чтоб она вообще не читалась, не писалась, и не стиралась ?. Ес-но через ISP. ну т.е. стереть залоченую прошивку, и записать свою.
Упс. Уже вроде есть ответ.
Я так понял в общем не важно какие галки стоят на локбитах, Если стереть чип, то будет как новый?

Отредактировано kip (2018-01-11 17:35:36)

0

21

kip написал(а):

Если стереть чип, то будет как новый?

Да.

зы: про товарищей, которые умышлено запиливают флеш МК чтобы он исчерпал свой ресурс - это какая-то фантастика. Ибо те цифры, что предоставлены в офф датащите не являются правдой, там число значительно больше. Даже если представить, что они закупили партию и ставили эксперимент на каком цикле она перестанет корректно стираться (убиваться), то там скорее всего будет не 100% результат на партию - это число будет сильно плавать даже на партии (не говоря уже о её смене).

зы2: если надо защитить чип от использования, то проще фюзом прошить бит ресета (чтобы его не было), тогда последовательного программирования не будет, а параллельный программатор мало у кого есть и требуется полностью выпаять чип из схемы.

0

22

про товарищей, которые умышлено запиливают флеш МК чтобы он исчерпал свой ресурс

Не понял, можно поподробнее...

0

23

kip написал(а):

Я так понял в общем не важно какие галки стоят на локбитах, Если стереть чип, то будет как новый?

SpiEn убери и всё, аллес капут.  :D

0

24

RDW написал(а):

про товарищей, которые умышлено запиливают флеш МК чтобы он исчерпал свой ресурс - это какая-то фантастика. Ибо те цифры, что предоставлены в офф датащите не являются правдой, там число значительно больше.

Это не фантастика, а факт... ;)
Возможно, они не этим путем идут, но чип после стирания можно только выбрасывать - не пишется ни Flash, ни  EEPROM...

0

25

Вот реально "нифсосал" о чём вы?

0

26

-NMi- написал(а):

Вот реально "нифсосал" о чём вы?

Мой пост 13

0

27

Погодь погодь... Т.е. я пишу соФтО шоб ано командой SPM делало UP 9999 раз и потом пишу проц якобы в последний раз, так чтоле???

0

28

Якобы да.

Скорее всего там чип "подделка"(брак) китайская изначально или они реально отлаживали на этой плате в живую процесс.

0

29

RDW написал(а):

Якобы да.
            Скорее всего там чип "подделка"(брак) китайская изначально или они реально отлаживали на этой плате в живую процесс.

Каким путем они доводят чип до такого состояния, нам неведомо, но мы для "оправдания" остановились на этом варианте. ;)

28 кр - стоимость этого блока, притом как остальные - не дороже 1,8 кр... ;)

0

30

Ну а ты чо хотел... Софт то тоже денег стоит, прально? Или ты за "сухарики" софты пишешь???  :rofl:

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Atmega162 не могу прошить