Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: переход с меги128 на мегу1281
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Арк К
Имеется три одинаковые платы, содержащие следующие компоненты:
DS1307, ADM232, слот под SDC, стабилизатор 5В (LM2940), стабилизатор 3,3В (LM1117)
кварц 14.7456МГц, SD-карта одна и та же 1ГБ "Patriot".
контроллеры разные: mega128, mega1281, mega2561.

Софт: библиотека FatFs от Элма Чана (известная вещь) плюс оболочка для проверки функционирования (его же). Всё портировано под IAR 5.11. Учтены различия между 128-й и 1281-й мегами, а именно в таймере0, который используется для задержек и таймаутов.

Проблема в том, что на 128 меге всё стабильно работает, как и задумано, а на 1281 и 2561 карта не желает инициализироваться, однако было два момента, когда это случилось и даже удалось скопировать файл в 20МБ, но после ресета опять глухо. sad.gif wacko.gif

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

Да, и еще, в протеусе оба варианта работают.

Пожалуйста, ткните носом, что я сделал не так? Бьюсь уже несколько дней sad.gif



Забыл сказать, что согласование уровней сигналов SS, MOSI и SCK между кристаллом и картой сделано на резистивых делителях 3,3 - 2,2 кОм, MISO включен напрямую
Арк К
Ну, раз до сих пор никто не смог ответить, пришлось выкручиваться самому smile.gif
RTFM !!!
Сравнил даташиты 128-й и 1281,2561-х и вот что интересное оттуда узнал: оказывается порог переключения входов у меги 128 ниже, нежели у 1281 (см. даташиты, раздел "Pin Thresholds and Histeresis")
При 5В питании у меги128 порог переключения из 0 в 1 равен примерно 1,9В, обратно: 1,4В.
У меги 1281, соответственно, 2,6В и 2,1В.

Вывод: поскольку сигнал DO с карточки у меня напрямую заведен на вход MISO контроллера, а питание карты составляет 3,3В, похоже на то, что уровня высокого логического уровня с карты недостаточно для переключения входа контроллера.

Короче, включил я внутреннюю подтяжку входа MISO и всё заработало. 08.gif Думаю, карте это не должно повредить, поскольку сопротивление внутреннего подтягивающего резистора составляет не менее 20 кОм.

Само-собой такой способ не по фэн-шуй и, по-хорошему, надо бы ставить преобразователь уровня с 3 на 5В. Вопрос в том, какие лучше подойдут?
ReAl
Цитата(Арк К @ Nov 12 2009, 14:01) *
RTFM !!!
Вот именно.
гарантированный документацией порог и у меги128 такой, что лучше бы преобразователь поставить.

Цитата(Арк К @ Nov 12 2009, 14:01) *
Само-собой такой способ не по фэн-шуй и, по-хорошему, надо бы ставить преобразователь уровня с 3 на 5В. Вопрос в том, какие лучше подойдут?
SN75LVC1T45 карман не порвёт ценой? Тогда его.
Можно и какой-нибудь 2N7002L затвором к 3.3В, истоком к каротчке, стоком на мегу и там подтяжку, скажем 4,7к.
Можно и BC847.
Арк К
Цитата(ReAl @ Nov 12 2009, 15:16) *
Можно и какой-нибудь 2N7002L затвором к 3.3В, истоком к каротчке, стоком на мегу и там подтяжку, скажем 4,7к.
Можно и BC847.

Применял такую схему, но на малых скоростях (< 10 кГц), есть ли опыт применения на больших (10МГц)?
ИМХО, лучше, конечно буфер
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.