Узнать, допустимо ли считывать блоки меньше, чем READ_BL_LEN размера можно из Card Specific Data (CSD) Register. Там есть бит №79; если он равен 1, то можно задать блок чтения меньше 512 байт, т.е использовать команду CMD16. Командой CMD17 блоки считываются.