Здравствуйте уважаемые коты!
Я новичок. И в радиолюбительстве и на форуме. Так сказать, с корабля и сразу на бал..
Трабла вот какая: собрал схему atmega8+sdcard (все вроде правильно, схема вот от седава
http://robozone.su/2008/10/22/modul-dlj ... mjati.html) и решил таки попробовать исходники
pirotehnick-а в образовательных целях.
Малость их поправил. Закоментил инициализацию USART-а (у меня на порту D висит индикатор) и добавил макрос на отображение чисел на индикаторе.
Грубо говоря, каждый этап - цифера или текст на индикаторе. Запустил, а девайс мне "ок!"
Не сразу обнаружил вот какую проблему исходников
pirotehnick-а: в случае если в USART все таки вываливается ответ типа MSG_MMC_FAILED, то прога все равно выполняется дальше
(!). Двое суток голову ломал от чего же, если выдает что все ОК, а на деле - не ок..Сегодня нашел. Подправил текст так, что бы в случае неудачной инициализации происходил reset. Тогда все начинается заново, до тех пор, пока карточка не ответит.
Осцилом щупал ноги, там все ок (правда осцил ОЛМ-3М [У]).
В общем, инициализацию делает. Пытаюсь прочитать. При передаче команды на чтение огрызается что MSG_MMC_READ_FAILED. Т.к. USART возможности за юзать нет, то втыкнул подпрограмму command_mmc_transmit1. В ней реализовал запись ответа в EEPROM, и вот что он мне выдал..
Код: Выделить всё
:10000000FFFFFFFFFFFFFFFF20FFFF08FFFFFFFFD6
:10001000FF20FFFF08FFFFFFFFFF20FFFF08FFFF9C
:10002000FFFFFF20FFFF08FFFFFFFFFF20FFFF088C
:10003000FFFFFFFFFF20000000000000000000FFA6
:10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
:1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
:1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
:1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
:1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
:1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
:10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
:10012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
:10013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
:10014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
:10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF
:10016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F
:10017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F
:10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F
:10019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F
:1001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F
:1001B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F
:1001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F
:1001D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
:1001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F
:1001F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F
:00000001FF
Насколько я понял, тут зашифрованы коды ошибок, а именно: 08 - Ошибка CRC - последняя принятая команда не прошла проверку CRC, и 20 - Ошибка адреса - блок пересекает границу физического сектора. Вот собственно и все.. Куда дальше копать и в чем причина - ума не приложу. Уже 2 флешки спалил (в сомнениях ковырял аппаратную часть).
Исходники прилагаю и надеюсь на вашу помощь.