Цитата(Genadi Zawidowski @ Jan 31 2013, 23:53)

Так, для справки: нормированная ёмкость стабилитрона BZX84C3V3 на 3.3 вольта при нулевом обратном смещении - 450 пикофарад.
И процессор начинает эти 450 пикофарад через 510 ом заряжать... Ёмкость, разумеется, упадёт до сотни пикофарад при полутора вольтах (когда дойдём до порога переключения логики в карте)... Если ещё где-то нормированы скорости нарастания на клоке...
Я даже не хочу предсказывать, как всё это будет работать в "боевом" применении. И не поможет никакое снижение скорости чередования импульсов - уже завалены фронты сигнала.
Не говоря про то, что минимальный уровень логической "1" на входе ATMEGA128 должен быть 0.6 * VCC - что при 5.0 вольтах питания равно 3.0 вольта. Скажем так, запас никакой.
Сделайте нормально всё здесь. Самое простое - снизить питание процессора до 3.3 вольта и выкинуть весь этот "огород".
Если нужны 16 МГц - найти слегка другой процессор или применить трансляторы уровней вроде sn74lvc1t45 или что-ибудь специальное, для карточек.
Спасибо, Геннадий, за Ваш совет! Он оказался верным.
Действительно, убрал стабилитроны и всё заработало. Правда, питание не менял, оставил 5В для Меги и 3.3В для карты.
Инициализация проходит 100% без сбоев, чего раньше на наблюдалось.
Данные пишутся тоже нормально. С чтением, правда, проблемы - с карты 512Мб читается, с карты 2Гб - не читается. Надо разбираться.
А по поводу перехода процессора на 3.3В. Дело в том, что это довольно сложное устройство, уже отлаженное, неизвестно как оно
поведёт себя при пониженном напряжении. Над этим надо ещё подумать. Может действительно проще поставить микросхему-согласовватель уровней и оставить всё как есть.