|
ATMega->SPI->AT45DB, Сбои при программировании МК |
|
|
|
Aug 13 2007, 14:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008

|
Были похожие проблемы в проекте с мега16 и ат45, схемы подключения была очень похожа, если не идентична, приведенной, и программатор был тоже STK200 на HC244, может проблема в самом программаторе? Может помехи какие? Программатор у меня дох по линии MISO причем хитро это проявлялось, линия просаживалась до первой операции прошивки программатором и проявлялось в том что не работали операции записи-чтения в ат45 пока к схеме был подключен программатор и до того момента пока я не перешивел мегу - после этого все работало нормально... Еще мое устройство при отладке питалось от импульсного источника питания и мне припоминается, что у моего соседа тоже были проблемы с прошивкой пока работал этот источник...т.е. на лицо влияние помех. P.S. А куда же делся крутейший программатор AVR910-USB?  P.P.S Тогда я этот вопрос не решил, просто тихо матерился и перешивал по 3 раза  Но при производстве прошивку производили программатором AVR910-COM с довольно коротким шлейфом и проблем, насколько я помню не было...
--------------------
|
|
|
|
|
Aug 14 2007, 07:08
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(GDI @ Aug 13 2007, 22:03)  P.S. А куда же делся крутейший программатор AVR910-USB?  Вы не внимательно читаете посты. Было написано - "...Пробовал другими программаторами - такая же картина..." Цитата(oll @ Aug 14 2007, 00:13)  Попробуйте "прицепить" электролит 33мкФ на питание AT45 А смысл? И почему именно 33мкФ а не, допустим 47 или 20??? Цитата(_Sam_ @ Aug 14 2007, 01:49)  У меня такая память в двух проектах используется с mega48 и mega128. Программирую ByteBlaster + avreal. Проблем нет. Схема вроде такая же. Можно попробовать 100pF на sck повесить. не хотелось бы навешивать всякие не стабильные элементы на SCK. По идее должно все и так программироваться нормально... Память, кстати, AT45DB081RI, используется в обоих случаях. Я все же склоняюсь к мысли, что виноват не SCK, а RESET. Заливаю прошивку в МК я не слишком часто, по этому сигналы не анализировал...
--------------------
|
|
|
|
|
Aug 15 2007, 11:48
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(Сергей Борщ @ Aug 15 2007, 16:19)  Правильно ли я понял, что у вас на вход reset процессора подается сигнал RESET_M, т.е. в случае программирования сигнал reset программатора, "обработанный" ADM1232? Если да, то наверное правильнее будет поставить резистор 1-10К между RESET_M и 6 ножкой ADM + R18, а RESET с разъема ISP завести на RESET_M. Да - RESET_M (RESET, активный нулем) заведен на вывод RESET МК. Можно сделать и так, как Вы предлагаете, ибо вывод RST# ADM1232 - типа ОК (открытый коллектор). Но тогда на время программирования на линии RESET_P будут импульсы от WDT ADM1232, что не приятно мне  К тому же я не вижу принципиальных отличий, ибо схема работает без DatаFlash отлично, и мне не понятно, от чего она не хочет работать нормально с DataFlash. К слову, до осциллографа руки пока так и не доходят  - дела, черт бы их побрал
--------------------
|
|
|
|
|
Aug 15 2007, 13:37
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(prottoss @ Aug 15 2007, 14:48)  Но тогда на время программирования на линии RESET_P будут импульсы от WDT ADM1232, что не приятно мне  Да, засада. Но так они и сейчас там должны быть, ибо при программировании программатор лишь кратковременно "прижимает" Reset. А поскольку программатор обычно имеет пуш-пульный выход на reset, при его подключении в предложенном мной варианте (на RESET_M) срабатывание собаки в ADM будут отсекаться. Цитата(prottoss @ Aug 15 2007, 14:48)  К тому же я не вижу принципиальных отличий, ибо схема работает без DatаFlash отлично, и мне не понятно, от чего она не хочет работать нормально с DataFlash. Действительно чуднО. В приложенной схеме программируется и с DataFlash и без. В ней Reset формируется подтягивающим резистором к +3.3В
Прикрепленные файлы
sch.pdf ( 77.24 килобайт )
Кол-во скачиваний: 282
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Aug 15 2007, 16:42
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(prottoss @ Aug 15 2007, 17:00)  Неа. Точно, ступил. Программатор зажимает reset на все время программирования. Цитата(prottoss @ Aug 15 2007, 17:00)  Еще выяснился один интересный ньюанс - если в прошивке заливаемой МК убрать блок активирования SPI-модуля и работы с DataFlash - сбои при программировании прекращаются! Чудесатые чудеса. Даже если предположить, что после включения питания проц успевает начать обмен с флешкой, то сброс от программатора должен а) сбросить саму флешку аппаратно и б) перевести ногу, управляющующую CS флешки в третье состояние и за счет резистора подтяжки вторично деактивировать флешку. А если выпаять микросхему флешки или обрезать DB_CS?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Aug 16 2007, 06:45
|
Местный
  
Группа: Свой
Сообщений: 278
Регистрация: 18-01-05
Из: Санкт-Петербург
Пользователь №: 2 031

|
Цитата Еще выяснился один интересный ньюанс - если в прошивке заливаемой МК убрать блок активирования SPI-модуля и работы с DataFlash - сбои при программировании прекращаются! Может сбои прекращаются, потому что уменьшается программа? Цитата цепляю туда же AT25256 Может у неё ёмкости входов другие? Потребление наверное другое. Да и резета у неё вроде нет. Можно кстати порпобовать резет at45 на VCC бросить. А сколько ошибок при неудачной прошивке и в каком месте в начале, в конце или ещё как?
|
|
|
|
|
Aug 16 2007, 10:52
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(_Sam_ @ Aug 16 2007, 14:45)  Может сбои прекращаются, потому что уменьшается программа? Не вижу связи Цитата(_Sam_ @ Aug 16 2007, 14:45)  Может у неё ёмкости входов другие? Потребление наверное другое. Да и резета у неё вроде нет. Можно кстати порпобовать резет at45 на VCC бросить. Если в чипе предусмотрен RESET я бы хотел его использовать. Цитата(_Sam_ @ Aug 16 2007, 14:45)  А сколько ошибок при неудачной прошивке и в каком месте в начале, в конце или ещё как? Две-три ошибки при входе в режим программирования. Затем все заливается как по маслу. Таки некогда пока добраться до платы и посмотреть осциллом, что там творится. Как только доберусь - обязательно отпишусь. Цитата(Сергей Борщ @ Aug 16 2007, 00:42)  А если выпаять микросхему флешки или обрезать DB_CS? В том то и дело, что без Флэш все пучком, и даже если прицепить вместо Флэш ЕЕПром, все работает...
--------------------
|
|
|
|
|
Dec 10 2009, 20:30
|
Участник

Группа: Участник
Сообщений: 69
Регистрация: 27-06-06
Пользователь №: 18 383

|
У меня возникла проблема со связью Atmega8L и at45db161D-SU Проблема заключается в том что не могу прочитать не один регистр с at45 В аттаче лежит тестовый исходник который читает с AT45 и передает по UART. C UART приходит постоянно строка SR=00 Для убеждения что все с SPI пробывал соединить MISO=MOSI и передавать a++ то все нормально передается Пробывал на разных скоростях читать и разные режимы толку нету  Питание схемы от LL1187-3.3V Выводы CS WP Res повесил PD7 PD6 PD5 соответсвенно. т.к. выводы порта PB заняты для шим. В чем может быть проблема Горит курсач
|
|
|
|
|
Dec 11 2009, 16:47
|
Участник

Группа: Участник
Сообщений: 69
Регистрация: 27-06-06
Пользователь №: 18 383

|
Всем спасиб, проблема была в прорайке...
|
|
|
|
|
Dec 14 2009, 02:37
|
Местный
  
Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017

|
Только предположение. Раздел даташита меги128, SPI Serial Programming Algorithm, вход в режим программирования. [quote] 1. Power-up sequence: Apply power between VCC and GND while RESET and SCK are set to ”0”. In some systems, the programmer can not guarantee that SCK is held low during power-up. In this case, RESET must be given a positive pulse of at least two CPU clock cycles duration after SCK has been set to ”0”. [quote] Так как в даташите не нашел отдельного описания последовательности входа в последоветельный режим программирования, то смею предположить, что для этого ресет и SCK садятся на ноль, потом на ресет подается импульс длиной более чем в 2 такта CPU. (Уточнить можно ) Супервизор "съедает" часть этого импульса (его ResetActiveTime = 250..1000ms) и вполне возможно, что он не доходит до меги. Также его может "съедать" и watchdog. Хотя это никак не связано с наличием/отсутствием АТ45.
P.S. Пересмотрел исходники AVR910. Оказывается, последовательность немного другая. (хотя я выражение из даташита "positive pulse" понимаю как переход 0->1->0) Сначала программатор садит SCK на "0". Потом ждет (~50 мс) дальше ресет на 0 и после паузы ~50 мс выдает на mosi "Programming Enable". То есть фаза входа в режим программирования начинается немного раньше подачи ресета. Ресет в момент выдачи программатором "0" НЕ активен, поэтому программатор и контроллер работают "навстечу". Из-за этого уровень на этой ноге при фронте на ресете может отличаться от "0". Отсюда и ошибка входа в режим программирования. Так что попробуйте sck подключить к ат45 через резистор
|
|
|
|
|
Feb 10 2011, 19:34
|
Группа: Новичок
Сообщений: 4
Регистрация: 10-08-09
Пользователь №: 51 815

|
Извиняюсь, что со своим вопросом в чужую тему. Но маленький вопрос. Использовал в устройстве память AT45DB011B-SU, а сейчас есть возможность купить только AT45DB011D-SH-B-ND. Полностью ли они взаимозаменяемые? Есть ли разница в коде при обращении к В и к D? Спасибо!
|
|
|
|
|
Feb 11 2011, 13:10
|
Группа: Новичок
Сообщений: 4
Регистрация: 10-08-09
Пользователь №: 51 815

|
Цитата(rezident @ Feb 10 2011, 23:57)  Производитель (фирма Atmel) специально для вас написал документ Migrating from the B to the New D DataFlash Family, Спасибо большое!!!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|