User Tag List

Страница 25 из 45 ПерваяПервая ... 212223242526272829 ... ПоследняяПоследняя
Показано с 241 по 250 из 444

Тема: "Магнитофон" для Спека

  1. #241

    Регистрация
    17.05.2005
    Адрес
    г. Абакан
    Сообщений
    694
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    DVS, попробуй эту функцию вот в таком виде.
    Код:
    u08 mmcSendCommand(u08 cmd, u32 arg)
    {
    u08 r1;
    
    // release chip select
    SPI_CS = 1;
    spiTransferByte(0xFF);
    // assert chip select
    SPI_CS = 0;
    spiTransferByte(0xFF);
    
    // issue the command
    r1 = mmcCommand(cmd, arg);
    
    return r1;
    }
    В том документе, который у меня, там требуется постоянно перед и после снятия /CS слать синхру по SCK в кол-ве 8 штук при MOSI=1.

  2. #241
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #242

    Регистрация
    11.03.2005
    Адрес
    Екатеринбург
    Сообщений
    311
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хех, интересно про такой метод тактирования я инфы не находил, смотрел только "времянку" (диаграмма с задержками) для MMC.

    Вечером попробую и отпишусь.
    Magic 05/128Кб/AY/kempston mouse/FDD 5.25/ext keyboard/minitower
    "ZX FlashTaper" developer : тут

  4. #243

    Регистрация
    11.03.2005
    Адрес
    Екатеринбург
    Сообщений
    311
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    При посылке синхры после изменения CS, карта стала выходить из idle!!!
    Но "чем дальше в лес-тем болше дров" теперь карта непонятно как выходит из MULTIPLE_BLOCK_READ и MULTIPLE_BLOCK_WRITE, дело в том, что стоит только вогнать её в режим MULTIPLE_BLOCK_READ, затем сбросить контроллер и попытаться провести инициализацию, то в R1 будет 0x3F (стабильно). А когда мне требуется снова режим MULTIPLE_BLOCK_READ, но с другого сектора, то карта вобще в него не входит. Попытался сделать STOP_TRAN ( CMD12 ), эффект есть, но не всегда.
    Короче говоря MULTIPLE_BLOCK_READ с определённого сектора включается только один раз после инициализации. Я попытался прочитать PBRS, всё ок, данные правильные.
    Magic 05/128Кб/AY/kempston mouse/FDD 5.25/ext keyboard/minitower
    "ZX FlashTaper" developer : тут

  5. #244

    Регистрация
    11.03.2005
    Адрес
    Екатеринбург
    Сообщений
    311
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Попытался сделать перед началом MULTIPLE_BLOCK_READ
    mmcReset(), в которую перед CMD0, добавил CMD12 и всё запустилось! Но!!!
    Мне так не нравится :-((( Как то оно жёстко и в лоб, всё равно, что перед запуском другого приложения винду перегружать :-)
    Magic 05/128Кб/AY/kempston mouse/FDD 5.25/ext keyboard/minitower
    "ZX FlashTaper" developer : тут

  6. #245

    Регистрация
    17.05.2005
    Адрес
    г. Абакан
    Сообщений
    694
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А процедуру MULTIPLE_BLOCK_READ (CMD18) можно подсмотреть? А то я пользовался по-секторным... Кстати, CMD12 (STOP_TRAN) обязательна для останова выполнения CMD18 и CMD25, после неё нужно отослать #0FFh (при этом должны получить от карты #0xFh, где х - любое число), далее опять шлем в карту #0FFh, при этом должны получить response = #0FDh, что говорит об успешном завершении обмена.
    Ну, вот вроде бы и всё...

  7. #246

    Регистрация
    11.03.2005
    Адрес
    Екатеринбург
    Сообщений
    311
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jdigreze
    А процедуру MULTIPLE_BLOCK_READ (CMD18) можно подсмотреть?
    В смысле код функции интересует?

    Цитата Сообщение от jdigreze
    после неё нужно отослать #0FFh (при этом должны получить от карты #0xFh, где х - любое число), далее опять шлем в карту #0FFh, при этом должны получить response = #0FDh
    Буду разбираться, а пока с полным сбросом всё работает :-)

    Кстати, что если сразу после инициализации до начала MULTIPLE_BLOCK_READ, послать CMD12 ? Я посмотрел R1=0, но в MULTIPLE_BLOCK_READ не входит, точнее так на команду MULTIPLE_BLOCK_READ R1=0, дальше жду синхробайта в ответ (долго жду) и не дожидаюсь :-)

    И ещё момент (может из предыдущих сообщений не понятно было): если войти в MULTIPLE_BLOCK_READ и счиать определённое кол-во байт, затем не делать STOP_TRAN!!!, то GO_IDLE хоть запосылайся - сброса не будет! Поэтому на всякий случай пришлось перед GO_IDLE сделать STOP_TRAN. Иначе только питание отключать или карту вынимать, а это не хорошо.

    Всё таки в MMC как то оно логичнее что-ли сделано, хотя если бы я группой команд MULTIPLE_... не пользовался, то ничего и не заметил.
    Magic 05/128Кб/AY/kempston mouse/FDD 5.25/ext keyboard/minitower
    "ZX FlashTaper" developer : тут

  8. #247

    Регистрация
    17.05.2005
    Адрес
    г. Абакан
    Сообщений
    694
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DVS
    В смысле код функции интересует?
    Ага. Если не хочешь на всеобщий доступ, пиши на мыло

    Цитата Сообщение от DVS
    Буду разбираться, а пока с полным сбросом всё работает
    Однако, это не правильно...

    Цитата Сообщение от DVS
    Кстати, что если сразу после инициализации до начала MULTIPLE_BLOCK_READ, послать CMD12 ? Я посмотрел R1=0, но в MULTIPLE_BLOCK_READ не входит, точнее так на команду MULTIPLE_BLOCK_READ R1=0, дальше жду синхробайта в ответ (долго жду) и не дожидаюсь
    Хз. Но скорее всего так делать нельзя...
    И еще. Сразу не обратил внимание. Считывать блоки нужно по 512 байт + 1 байт начала блока + 2 байта CRC для каждого сектора. Если произвольно послать CMD12, то данные (512байт) нужно дочитать до конца + CRC, и только после этого придет респонз.

    Цитата Сообщение от DVS
    И ещё момент (может из предыдущих сообщений не понятно было): если войти в MULTIPLE_BLOCK_READ и счиать определённое кол-во байт, затем не делать STOP_TRAN!!!, то GO_IDLE хоть запосылайся - сброса не будет! Поэтому на всякий случай пришлось перед GO_IDLE сделать STOP_TRAN. Иначе только питание отключать или карту вынимать, а это не хорошо.
    После входа в MULTIPLE_BLOCK_... карта реагирует только на CMD12 и питание И это нормально!
    Кстати, GO_IDLE лучше не делать. Нет смысла. У меня хоть и посекторно работает, но постоянное чтение/запись идет в разные области карты, и все нормально.

    Цитата Сообщение от DVS
    Всё таки в MMC как то оно логичнее что-ли сделано, хотя если бы я группой команд MULTIPLE_... не пользовался, то ничего и не заметил.
    Скорее всего MMC карты менее требовательны к полноте реализации протокола. Карты SD сложнее устроены, с ними и работать приходится сложнее.

    ЗЫ: У тебя ящик электропочты 1,5Мб примет? Давай док вышлю, там с диаграммами очень всё наглядно...

  9. #248

    Регистрация
    11.03.2005
    Адрес
    Екатеринбург
    Сообщений
    311
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jdigreze
    Кстати, GO_IDLE лучше не делать. Нет смысла.
    Я не сторонник слишком ветвлённых функций, поэтому предпочитаю, пусть оно будет в одном месте и сгодиться в любом случае, как при смене на новую карту, так и при переинициализации текущей карты.

    То что ты просил лежит у меня на ftp. Туда же можешь положить pdf. Инфу для доступа смотри в привате.
    Magic 05/128Кб/AY/kempston mouse/FDD 5.25/ext keyboard/minitower
    "ZX FlashTaper" developer : тут

  10. #249

    Регистрация
    17.05.2005
    Адрес
    г. Абакан
    Сообщений
    694
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот такой у меня вопрос возник: данные о файлах внутри tzx имеют выравнивание, или же отделяются маркерами?
    Это я к тому, что у тебя при чтении, после посыла STOP_TRANS идет retry на 255 байт, а если, например сектор считан от начала всего на 10 байт, а потом ты шлешь STOP_TRANS, после чего пытаешься дождаться в течении 255 байт респонза, то его не получишь, в результате все остальные команды будут игнорироваться. Попробуй после посыла CMD12 дочитать текущий сектор до конца (+2 байта CRC), и лишь потом войти в цикл ожидания респонза. Респонз должен прийти через 1 байт.

  11. #250

    Регистрация
    11.03.2005
    Адрес
    Екатеринбург
    Сообщений
    311
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jdigreze
    данные о файлах внутри tzx имеют выравнивание, или же отделяются маркерами?
    И не то и не другое.

    Цитата Сообщение от jdigreze
    Это я к тому, что у тебя при чтении, после посыла STOP_TRANS идет retry на 255 байт, а если, например сектор считан от начала всего на 10 байт, а потом ты шлешь STOP_TRANS, после чего пытаешься дождаться в течении 255 байт респонза, то его не получишь, в результате все остальные команды будут игнорироваться. Попробуй после посыла CMD12 дочитать текущий сектор до конца (+2 байта CRC), и лишь потом войти в цикл ожидания респонза. Респонз должен прийти через 1 байт.
    Я про это знаю. За выходные думаю "выйдет каменный цветок" :-)
    Magic 05/128Кб/AY/kempston mouse/FDD 5.25/ext keyboard/minitower
    "ZX FlashTaper" developer : тут

Страница 25 из 45 ПерваяПервая ... 212223242526272829 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 12
    Последнее: 22.05.2006, 14:17
  2. "Забытая Легенда" jrpg
    от Schafft в разделе Игры
    Ответов: 43
    Последнее: 15.03.2006, 20:24
  3. Подписка на "Абзац"
    от CHRV в разделе Пресса
    Ответов: 27
    Последнее: 22.06.2005, 11:54
  4. Ответов: 4
    Последнее: 01.02.2005, 22:37
  5. Выбор "в железе"
    от vitasam в разделе Несортированное железо
    Ответов: 9
    Последнее: 19.01.2005, 01:02

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •