Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: atmega128a и необъяснимые глюки
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
rat12
Существует вполне рабочий проект на связке atmega128L и at45db161d по аппаратному spi. Всё бы ничего, но 128-е и 128L снимают с производства и взамен предлагают atmega128a. Миграции практически никакой в даташите не приведено, пишут про полную программную совместимость.
А на деле следующее:
atmega128a и at45db161d соединены проводниками по аппаратному spi (других spi устройств на шине нет), запитаны от одного источника напряжением 2, 97 В. Связи нет. При замене на той же плате процесора на atmega128L с тем же кодом на борту- всё работает. Что бы это могло быть?
prottoss
Цитата(rat12 @ Sep 23 2010, 23:20) *
Связи нет.
Большинство экстрасенсов сейчас в отпускеsmile.gif Можно подробнее? В смысле на какие нибудь команды DataFlash(smile.gif) отвечает или вообще молчит. Или тупо заменили и не работает и только "чеделатьчедалеть crying.gif "
rat12
Извините за малость фактов.
Есть 20 одинаковых плат. На нах стоят 20 процов 128А smile.gif
Все команды с памятью выполняют только 2 из 20. Т.е. на лицо некая статистика. Как я уже говорил, при замене на неработающей плате процессора с 128a на 128L всё волшебным образом начинает работать. Выполняются команды очистки, записи и чтения.
Напротив, до замены все эти команды выполняются как-то странно. Очистка - работает. Запись не работает либо работает недолгое время (несколько секунд от начала алгоритма) и чтение - почти не работает (удалось поймать 1 раз за сим процессом).
Частота spi довольна низка - 250 кГц.
Даже задержки в 12 мкс вводил после активации пина выбора кристалла памяти - думал, фронт не успевает. Не помогло.
prottoss
Цитата(rat12 @ Sep 24 2010, 00:12) *
Даташиты сравнивали?
rat12
Да. Разницы не увидел.
Есть разница по напряжениям логического 0 на портах, увеличился на 0,1 В, копаю в эту сторону. Возможно, не хватает для включения кристалла памяти. Хотя врядли, в плече делителя на ноге CS памяти стоит резистор 10к на питание.
prottoss
Цитата(rat12 @ Sep 24 2010, 01:04) *
Да. Разницы не увидел. Есть разница по напряжениям логического 0 на портах, увеличился на 0,1 В, копаю в эту сторону. Возможно, не хватает для включения кристалла памяти. Хотя врядли, в плече делителя на ноге CS памяти стоит резистор 10к на питание.
Копаете правильноsmile.gif Только вот не понятно с последним Вашим предложением. Чтобы кристалл включился, нужно ноль на CS подать, а Вы чего то про подтяжку к питанию говорите... Кстати, на входе MISO МК внутренний пулл-ап включен? А то может быть флэшка и отвечает, а МК понять не может. Вообще, для вылавливания таких глюков нуна осциллоскоп иметь.
rat12
Цитата
Только вот не понятно с последним Вашим предложением. Чтобы кристалл включился, нужно ноль на CS подать, а Вы чего то про подтяжку к питанию говорите...
А я это делал по аналогии с аппноутом AVR335, там CS подтянули к питанию, а выбор кристалла осуществляют переводом ноги МК, также подключенного к CS, в 0... В принципе, резистор и не нужен, но для души спокойнее, что в случае перезагрузки МК кристалл памяти не активизируется и мусора не понабирает.

Цитата
Кстати, на входе MISO МК внутренний пулл-ап включен?
Да.

Цитата
Вообще, для вылавливания таких глюков нуна осциллоскоп иметь.
Работаем в этом направлении smile.gif
Вообще бесит, что кристаллы "де юре" заменяемы, а "де факто" нет blink.gif
DS
А дно заземлили ? У "А", наскольо я помню, требуется дно землить.
rat12
Корпус TQFP -пластиковый. Нечего заземлять на данном типе smile.gif

Сегодня выкинул резистор, о котором шла речь ранее - ничего не изменилось sad.gif
prottoss
Цитата(rat12 @ Sep 24 2010, 15:33) *
Сегодня выкинул резистор, о котором шла речь ранее - ничего не изменилось sad.gif
Ну а осциллографом то смотрели? Что приходит на флэшку, что от нее уходит? Если нет осциллографа rolleyes.gif , попробуйте простым светодиодом. Определитесь хотя бы, в какой стороне проблема.
=GM=
Цитата(rat12 @ Sep 23 2010, 16:12) *
до замены все эти команды выполняются как-то странно. Очистка - работает. Запись не работает либо работает недолгое время (несколько секунд от начала алгоритма) и чтение - почти не работает (удалось поймать 1 раз за сим процессом)

Ну, раз работает, но недолго, то значит, вы находились на границе допусков и после прогрева кристалла, когда параметры уплывают, вы выходите за границу. В SPI установках обратите внимание на фазу клока и полярность по отношению к данным, должно помочь.
rat12
Благодарю всех за помощь. Проблема решилась.
Всё было банальнее - логическая ошибка в алгоритме на более высоком уровне, нежели уровень записи во флеш sad.gif

Все работает! smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.