|
|
  |
atmega128a и необъяснимые глюки, при работе с at45db161d |
|
|
|
Sep 23 2010, 16:20
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 9-09-10
Из: Симферополь
Пользователь №: 59 396

|
Существует вполне рабочий проект на связке atmega128L и at45db161d по аппаратному spi. Всё бы ничего, но 128-е и 128L снимают с производства и взамен предлагают atmega128a. Миграции практически никакой в даташите не приведено, пишут про полную программную совместимость. А на деле следующее: atmega128a и at45db161d соединены проводниками по аппаратному spi (других spi устройств на шине нет), запитаны от одного источника напряжением 2, 97 В. Связи нет. При замене на той же плате процесора на atmega128L с тем же кодом на борту- всё работает. Что бы это могло быть?
Сообщение отредактировал rat12 - Sep 23 2010, 16:21
|
|
|
|
|
Sep 23 2010, 17:12
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 9-09-10
Из: Симферополь
Пользователь №: 59 396

|
Извините за малость фактов. Есть 20 одинаковых плат. На нах стоят 20 процов 128А Все команды с памятью выполняют только 2 из 20. Т.е. на лицо некая статистика. Как я уже говорил, при замене на неработающей плате процессора с 128a на 128L всё волшебным образом начинает работать. Выполняются команды очистки, записи и чтения. Напротив, до замены все эти команды выполняются как-то странно. Очистка - работает. Запись не работает либо работает недолгое время (несколько секунд от начала алгоритма) и чтение - почти не работает (удалось поймать 1 раз за сим процессом). Частота spi довольна низка - 250 кГц. Даже задержки в 12 мкс вводил после активации пина выбора кристалла памяти - думал, фронт не успевает. Не помогло.
|
|
|
|
|
Sep 23 2010, 18:04
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 9-09-10
Из: Симферополь
Пользователь №: 59 396

|
Да. Разницы не увидел. Есть разница по напряжениям логического 0 на портах, увеличился на 0,1 В, копаю в эту сторону. Возможно, не хватает для включения кристалла памяти. Хотя врядли, в плече делителя на ноге CS памяти стоит резистор 10к на питание.
|
|
|
|
|
Sep 23 2010, 20:13
|

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

|
Цитата(rat12 @ Sep 24 2010, 01:04)  Да. Разницы не увидел. Есть разница по напряжениям логического 0 на портах, увеличился на 0,1 В, копаю в эту сторону. Возможно, не хватает для включения кристалла памяти. Хотя врядли, в плече делителя на ноге CS памяти стоит резистор 10к на питание. Копаете правильно  Только вот не понятно с последним Вашим предложением. Чтобы кристалл включился, нужно ноль на CS подать, а Вы чего то про подтяжку к питанию говорите... Кстати, на входе MISO МК внутренний пулл-ап включен? А то может быть флэшка и отвечает, а МК понять не может. Вообще, для вылавливания таких глюков нуна осциллоскоп иметь.
--------------------
|
|
|
|
|
Sep 23 2010, 20:35
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 9-09-10
Из: Симферополь
Пользователь №: 59 396

|
Цитата Только вот не понятно с последним Вашим предложением. Чтобы кристалл включился, нужно ноль на CS подать, а Вы чего то про подтяжку к питанию говорите... А я это делал по аналогии с аппноутом AVR335, там CS подтянули к питанию, а выбор кристалла осуществляют переводом ноги МК, также подключенного к CS, в 0... В принципе, резистор и не нужен, но для души спокойнее, что в случае перезагрузки МК кристалл памяти не активизируется и мусора не понабирает. Цитата Кстати, на входе MISO МК внутренний пулл-ап включен? Да. Цитата Вообще, для вылавливания таких глюков нуна осциллоскоп иметь. Работаем в этом направлении Вообще бесит, что кристаллы "де юре" заменяемы, а "де факто" нет
|
|
|
|
|
Sep 24 2010, 11:30
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(rat12 @ Sep 23 2010, 16:12)  до замены все эти команды выполняются как-то странно. Очистка - работает. Запись не работает либо работает недолгое время (несколько секунд от начала алгоритма) и чтение - почти не работает (удалось поймать 1 раз за сим процессом) Ну, раз работает, но недолго, то значит, вы находились на границе допусков и после прогрева кристалла, когда параметры уплывают, вы выходите за границу. В SPI установках обратите внимание на фазу клока и полярность по отношению к данным, должно помочь.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Sep 24 2010, 19:56
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 9-09-10
Из: Симферополь
Пользователь №: 59 396

|
Благодарю всех за помощь. Проблема решилась. Всё было банальнее - логическая ошибка в алгоритме на более высоком уровне, нежели уровень записи во флеш  Все работает!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|