Попробовал. На картах 256 МБ и 1 ГБ вроде работает. Пока пару программ запустил просто на воспроизведение. А вот на карте 32 МБ по-прежнему глючит. Папку 48k наконец-то увидел, но не заходит в нее вообще. В папке 128k файлы воспроизводит без заголовка. Причем выйти с папки не может уже после запуска на воспроизведение любого файла в этой папке. Еще там в корневом каталоге лежит файл nebulus.tap, так он его только заголовок и воспроизводит. После этого при нажатии кнопок ВВЕРХ ВНИЗ на экране мусор из непонятных символов и эмулятор зависает. В папках тоже толком файлы не воспроизводит.
da-nie писал(а):
Обнаружилась ещё проблема - не хочет выходить из папки после проигрыша всего файла.
Пока такой проблемы не выловил. В данный момент тестирую с картой 256 МБ. На 32 МБ такой глюк есть
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Последний раз редактировалось serg_svd Сб май 02, 2020 14:27:48, всего редактировалось 1 раз.
Вы образ же с 32 МБ давали? Он полностью работает у меня.
Кажется, понял, в чём беда. Памяти не хватило. 512 берёт карта на буфер+структуры FAT+25 строка. Вот стек и весь. Уменьшил уровни вложенности директорий с 20 до 5 и всё заработало.
Добавлено after 22 minutes 49 seconds: Немного оптимизировал память (переделал ряд констант обратно на #define, уменьшил уровень запоминания позиции в каталогах с 20 до 5).
Вот, возьмите вот эту прошивку и измените макросы дисплея и кнопок под себя. У меня работает без проблем.
Потом кнопку вниз и опять два круга насчитает. При этом
Код:
[00:00012] Файл / NEBULUS.TAP
Но стоит только зажать кнопку ВНИЗ при перелистывании и все, дойдя до конца зависает и этот файл NEBULUS.TAP уже не воспроизводится. Такое ощущение, что на кнопки отреагировало, какие-то значения изменила, но при этом улетело за таблицу файлов
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Попробуйте контроллер заменить. Может, в нём дело? И в настройках Fuse уберите размер загрузчика в 128 слов (уж не знаю, на что он влияет, может и ни на что).
А с остальными картами корректно работает?
Добавлено after 28 minutes 27 seconds: Чисто для опыта уменьшил буфер карты до 256 байт (читаю половинками). Попробуйте вот эту версию. Тут точно должно памяти на всё хватать.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Это было сложно, но нашел еще один с подписью "битый" Где убил не помню. В общем он как ни странно прошился, и работает точно также, как предыдущий. То есть с картой на 32 МБ дружить и не собирается. И совсем не убитый оказался... Странно С картами 256 МБ и 1 ГБ вроде оба дружат. Я уж на полное воспроизведения файлы не ставлю. Наслушался уже звуков
da-nie писал(а):
уж не знаю, на что он влияет, может и ни на что
Убрал, но и сам не думаю, что это влияет. Работает также.
da-nie писал(а):
Чисто для опыта уменьшил буфер карты до 256 байт
С этим сложнее. Для карты 32 МБ написал, что FAT не найден. С остальными работает.
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Пишет то же самое: "FAT не найдена " для карты 32 МБ... и для карты 256 МБ. Я понимаю, что в 64 раза скорость понизил в сравнении с последней прошивкой. Но при этом даже карта 256 МБ отвалилась
Добавлено after 13 minutes 12 seconds: попробовал скорость SPI clk/16, clk/32 тоже не работает карта 32 МБ Вернулся к прошивке с буфером карты 512 байт и той же скоростью SPI clk/32. Прошивка FAT находит. Но глюки прежние не ушли. А скажите, в этом всем процессе DRAM память не участвует? Может это из-за нее? (я поставил KM44C256BJ-8)
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
А если осциллографом посмотреть, что там бегает по линиям?
Осциллографом я так и не обжился....
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
А там ничего никуда притягивать к земле не надо на уровне входы/выходы? Может, там открытый сток/коллектор? А тока хватает этой микросхемы?
А вы HEF4050 только от МК к карте поставили? В обратную сторону от карты к МК не ставили (этого делать точно не надо)? Да, осциллограф бы был очень кстати... Выход у HEF4050 не открытый и она должна успевать, судя по даташиту. Странно, откуда же потери данных?
Для 4050 подтяжки не нужны. Схему нашел в интернете. Если ставить вместо 4050 74HC125, то там вроде подтяжка сигнала CS со стороны микроконтроллера нужна. На ардуиновском модуле TF карты стоит 74LVC125, но у меня такого модуля в наличии пока нет. Где-то едет тернистыми тропками.... R1R2 на схеме - это подтяжка контакта наличия SD карты в слоте.
А вы HEF4050 только от МК к карте поставили? В обратную сторону от карты к МК не ставили (этого делать точно не надо)?
Как указано в статье, в обратную сторону ставить не надо для согласования уровней. У Вас ведь в схеме точно также на вход MISO подключено напрямую
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
serg_svd, а интересно, я правильно понимаю, что с версией с блоком 256 байт карта на 256 МБ работает на полном SPI, но отваливается на самой низкой частоте? В принципе, у SPI есть несколько способов чтения по фронтам. Какой конкретно нужен SD-карте я не знаю - у меня работало всегда со штатным из коробки. Вообще говоря, можно попробовать программный SPI сделать.
Вот, попробуйте вот с таким модулем, там программный SPI для версии с 256 байтным блоком.
от, попробуйте вот с таким модулем, там программный SPI для версии с 256 байтным блоком.
Карта 256 МБ работает. Карта 32 МБ не работает. Та же ошибка о не найденном FAT.
Ser1961 писал(а):
и это железо.
Да кто б спорил? Только и пытаюсь выяснить, карта это все же или прошивка? Просто эта карта на 32 МБ отлично определяется Windows. Тесты ячеек битых не дают. Эта же карта отлично пашет с divMMC. Вот только с эмулятором дружить не хочет. В защиту 4050 скажу, что схема буфера стандартная. Да и опять же! Если бы эта микросхема резала бы фронты или еще как искажала сигнал, то карты на 256 МБ и 1 ГБ с ней бы тоже не работали. Но с этими картами проблем то нет!
PS. единственную проблему вижу в том, что найденная у меня микросхема HEF4050 является TTL логикой. Попробую поискать CMOS 74HC4050
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Последний раз редактировалось serg_svd Вс май 03, 2020 12:57:25, всего редактировалось 1 раз.
Как я понимаю, у разных производителей есть разные реализации этих самых SD-карт. Пишут, например, что кому-то нужно притягивать к +3.3В, а кому-то нет. Возможно, есть и другие отклонения. А может, надо карте дать больше времени на инициализацию в SD_Init. А кстати, размер карты-то пишет? Если SPI совсем не работает, тогда размер не покажет вовсе (для SDHC тоже не покажет - там я не понял пока, как объём вычислить).
А если вывести на экран 0, 510 и 511 байты считанные?
eb 0 ef В WinHex проверил, там значения нормальные. Для остальных тестируемых карт как и положено, eb 55 aa
da-nie писал(а):
А кстати, размер карты-то пишет?
Размер пишет без проблем. И всегда одинаковый при любых экспериментах. 29 МБ
Добавлено after 11 minutes 3 seconds: Нашел в сети пример инициализации карты SD, но он не очень с Вашим совпадает http://s-engineer.ru/mikrokontroller-ra ... -sistemoj/ Здесь сказано: 4. Далее, нужно подать команду CMD0 с пустым аргументом и соответствующим CRC равным 0x95 для программного сброса, SD карта должна вернуть байт ответа с значением 0x01. Это означает, что карта перешла в режим SPI, она находится в состояние покоя и готова к процессу инициализации. Я не вижу где CRC 0х95? Совпадает ли инициализация с примером?
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения