data_stack
Feb 24 2016, 15:31
Читаю блок с карты памяти sdhc через sdio, с помощью либы из примеров standart periph library. Когда читаю с помощью polling mode, тогда все работает нормально. Когда этой же функцией читаю при помощи DMA, то у меня теряются первые 3 байта. Не понимаю куда рыть...
kolobok0
Feb 24 2016, 21:24
Цитата(data_stack @ Feb 24 2016, 18:31)

...Не понимаю куда рыть...
давно уже было дело. возможно скажу глупость. выравнивание в дма?
data_stack
Feb 25 2016, 09:14
Цитата(kolobok0 @ Feb 24 2016, 21:24)

давно уже было дело. возможно скажу глупость. выравнивание в дма?
Никогда бы не догадался. Не могу подобрать слов, чтобы выразить благодарность. Огромнейшее спасибо! Заработало!
data_stack
Mar 15 2016, 16:00
Появились новые вопросы, по той же теме.
1. Записываю один блок на карту SD HC, после этого долго ничего не делаю, чтобы экономить энергию. Наблюдаю следующую ситуацию на осциллографе, сектор записывается 3-4мс, после этого ничего не делаю, но карта все еще жрет ток в течение 150мс и только после этого потребление прекращается. Получается потребление слишком жирное. Тестил много карт, результат одинаковый. Смотрел Simplified Specifications и даташиты разных производителей, явно ничего подобного не указано. Пробовал переводить в standby руками посылая CMD7, не помогает. Рубить питалово не вариант, нужно быстро выходить из сна. Затестил карты SD(которые не HC) у них похожая ситуация только таймаут 50мс. Вопрос, можно ли это время уменьшить или где это в документации описано?
2. Еще одна проблема из той же серии. Юзаю либу ST стираю сектор - стирается, статусы правильные все ок. После выполнения команды карта продолжает жрать ток 20мА, потыкал осциллом такты идут постоянно, пока либо не прочитаешь, либо не запишешь какой нибудь другой сектор. В standby сама не переходит. Собственно юзаю функцию как в примерах SPL, вопрос как выключить тактирование?