Перейти к содержанию
    

проблема стирания кристалла

У них адреса регистров и портов совпадают
Обратите внимание на адреса обработчиков прерываний.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там все эти ноги выведены на внешние выводы. Так что в этом "повезло". Проблема как раз в том, что через них ничего не программируется и даже не стирается полностью. Иначе, я бы и на форум с вопросами не выходил.

 

И я не понимаю, почему у меня не стирается весь кристалл.

Так у Вас он вообще не стирается, так как, похоже, что отсутствует полноценный процесс обмена между PonyProg-ом и мегой.

Критерием этого является процесс чтения, результатом которого были установленные лок-биты и содержимое "FF только в первых двух строчках, а дальше какая-то информация". При корректном чтении этого не может быть в принципе: либо установленные лок-биты и содержимое "1, 2, 3, 4, 5, 6, ...." - номер считываемого байта,

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

А так как, Вы успешно перепрошиваете 16-ю, то корень зла скорее всего находится или на самой плате (к примеру некачественный пропой или кз дорожек) или в самой меге в виде подгоревшего порта или дефектного кристалла.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может светодиод D3, подключенный к SCK, мешает общению программатору.

 

Схема - www.arduino.cc/en/uploads/Main/Arduino-Pro-Mini-schematic.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Жесть!, 10 лет и работать только в паралельном режиме.

Скорее всего там только сборкой занимаются.

Не представляю себе такую отладку на Mega в QFP32-100 с плотным обвесом.

 

Программатор через COM + стабилитроны (конипрог) на удачу.

У меня STK500 USB By Petka иногда чудеса творит на длинном шлейфе :biggrin:

 

В плане протекта мое мнение.

Кто-то может сказать, что в паралельном режиме они ставят максимум защиты, RSTDSBL; SPIEN; но хочу Вас успокоить, все это бесполезно и никак на защиту не влияет.

В итоге + 1 нога RST (очень хорошо только для ATtiny13) и куча головняка для ATmega.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Жесть!, 10 лет и работать только в паралельном режиме.

Жесть! Из контекста понятно, что там простая опечятка.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может светодиод D3, подключенный к SCK, мешает общению программатору.

 

Схема - www.arduino.cc/en/uploads/Main/Arduino-Pro-Mini-schematic.pdf

Светодиод я отключал. Не помогало.

 

Обратите внимание на адреса обработчиков прерываний.

 

Да, про вектора я не подумал. Они разные. Поэтому на меге 16 может и не работать.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А по жизни вполне хватает и последовательного программатора. Параллельный программатор - он как сурок: его никто не видел, но он есть.

С "не видел" могу помочь - в приложении параллельный программатор и макроме из проводов для подключения. Делалось с проклятиями лет 15 назад для стирания залоченной прошивки одного промышленного изделия.

Проклятия были столь сильны, что это изделие все эти годы хранится :)

post-1244-1480005429_thumb.jpg

post-1244-1480005620_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так у Вас он вообще не стирается, так как, похоже, что отсутствует полноценный процесс обмена между PonyProg-ом и мегой.

Критерием этого является процесс чтения, результатом которого были установленные лок-биты и содержимое "FF только в первых двух строчках, а дальше какая-то информация". При корректном чтении этого не может быть в принципе: либо установленные лок-биты и содержимое "1, 2, 3, 4, 5, 6, ...." - номер считываемого байта,

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

А так как, Вы успешно перепрошиваете 16-ю, то корень зла скорее всего находится или на самой плате (к примеру некачественный пропой или кз дорожек) или в самой меге в виде подгоревшего порта или дефектного кристалла.

Вы правы. Я сразу заметил, что обмен какой-то странный. С первого раза операции, как правило, не выполняются, только со второго или с третьего. Дефектный кристалл или плата - маловероятно. У меня несколько таких плат. Они же не могут быть с одинаковыми дефектами у разных производителей. Пони Прог их хотя бы видит. Алгоритм Билдер и CVAVR пишут сразу, что кристалл не доступен. Т.к. раньше в моей практике такого не было, я тоже сразу подумал, что кристалл дефектный. Взял другую плату, она другого производителя. С ней произошло то же самое. В общем обе испортились.

Интересно то, что те платы, которые я не обрабатывал ПониПрогом, удалось запрограммировать средствами Ардуино через его загрузчик. Те, которые я пытался стирать ПониПогом теперь не обрабатываются и с помощью Ардуино. Если бы я раньше знал.... Тогда и прошивал бы через Ардуино. Но там же было написано, что можно и через SPI. Ардуино еще надо было найти и подготовить, а SPI всегда под рукой, поэтому я воспользовался им.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дефектный кристалл или плата - маловероятно.

Цепочка прошивки состоит из 4 звеньев:

1). управляющей прошивкой программы - PonyProg или другая, сидящая на СОМ-порту, например 1С-бухгалтерия.

2). кабеля "serial hardware interface" или, в просторечьи, последовательного программатора СОМ - разъем на плате.

3). дрожки от разъема на плате к кристаллу.

4). сам кристалл.

 

И так как Вы написали, что 16-тая мега неоднократно и успешно перепрошивается, то первые два звена можно считать вне подозрений.

Остаются дорожки или сам кристалл.

 

И то, что операции проходят, пусть со второго или третьего раза, как бы говорит о том, что со фьюзами не так плачвно, иначе бы Пони вообще не распознавало устройство.

Не помню точно, но в Пони должна быть возможность понижения частоты обмена - попробуйте снизить.

И проверьте на всякий случай не разделяет ли ПониПрог компорт с какой-нибудь сервисной программой.

 

Взял другую плату, она другого производителя. С ней произошло то же самое. В общем обе испортились.

Не факт что испортились.

Возникает вопрос как в этом случае успешно прошивается мега16.

 

Но там же было написано, что можно и через SPI.

Все правильно написано, можно и через SPI.

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отвлекаясь от темы:

Если разглядывать установленный IDE Arduino, то можно найти загрузчик в <путь к ардуино>/hardware/arduino/bootloadres/Atmega/ ATmegaBOOT_168.c Там же варианты готовых HEX-файлов .

Загрузчик сидит в функции main.c и скорее всего каждый раз переписывается при программирования камня.

 

 

P.S В <ардуино>/hardware/cores/arduino исходники для USB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...