Цитата(Alex11 @ Jul 14 2016, 14:20)

Ее нет и быть не может, т.к. вся низкоуровневость закрыта в контроллере считывателя
1. хм, я предположил про возможность, из-за того что в регистре CSD есть пару бит на запись для идентификации FILE_FORMAT.
Но как понял, запись однократная и формируется у изготовителя
А онлайн-парсеров нет ? А то вот накропал на MSVC, если народу требуется то могу онлайн-конвертилк выложить
2. разобрался, все примеры исходников в инете содержат одну и ту же ошибку - включают WIDEBUS не по анализу битов SCR:BUS_WIDTHS
а по ответу OCR ( где вообще только диапазон питающих напряжений и статус работы )
доказательства:
исходник чана для LPC23xx ( странно что результат получается что ACMD6 проходит успешно, в выходные поразбираюсь детальнее )
Код
{
...
}
while (!send_cmd(ACMD41, 0x40FF8000, 1, resp) || !(resp[0] & 0x80000000));
ty = (resp[0] & 0x40000000) ? CT_SD2|CT_BLOCK : CT_SD2;
if (ty & CT_SDC) { /* Set wide bus mode (for SDCs) */
if (!send_cmd(ACMD6, 2, 1, resp) /* Set wide bus mode of SDC */
|| (resp[0] & 0xFDF90000))
goto di_fail;
MCI_CLOCK |= 0x800; // Set wide bus mode of MCI
Nemuisan LPC1788_EA_BareMetal_FatFs_20160331
Код
if (pCardInfo->card_type & CARD_TYPE_SD) {
Chip_SDC_ClockControl(pSDC, SDC_CLOCK_WIDEBUS_MODE, ENABLE);
Ret = setBusWidth(pSDC, pCardInfo->rca, ACMD6_BUS_WIDTH_4);
if (Ret != SDC_RET_OK) {
даже в стандарте пишут:
Note that Low-Speed SDIO cards support 4-bit transfer as an option. When communicating with a Low-Speed
SDIO card, the host shall first determine if the card supports 4-bit transfer prior to attempting to select that mode.осталось разобраться, почему ACMD6 успешно проходит, если в принципе не поддерживается режим.
p.s. Кстати, в исходниках тоже не видел такого, что пишут в стандарте
If a Combo card supports the lock/unlock operation, it cannot change bus width of a locked card and returns an illegal command error to a bus width switch command.
The host needs to unlock the card by CMD42 before changing bus width