DC-SWAT Forum

Полная версия: [SOLVED] Различия работы с СД картой в DS 4.0 RC1 и BETA
Вы просматриваете yпpощеннyю веpсию форума. Пеpейти к полной веpсии.
Страниц: 1 2
Привет всем

Такой вот вопрос, давно собрал себе сд-мод для дрима и все время пользовался только дримшелом 4.0 бета. Все работало норм, но вот недавно таки собрал себе еще и биос мод. По сему решил проапдейтить дримшелл и заинтсалить его на флешку. Но только не видит нифига RC1 мою флешку. Видел обсуждение на инглиш разделе, там SWAT говорил что проблема в железе, мол надо проверить правильность и качество монтажа сд адаптера и проч. Но все же, в чем принципиальные различия в работе беты и релиз кандидата, что первая работает с флешкой нормально а последняя нет?

Я б конечно мог оставить себе DS 4.0 beta, но в RC1 уж очень много хороших фиксов и дополнений)
Если "сд-мод" у тебя на проводах, то их надо убрать или сделать их короче! RC1 очень капризна к монтажу "сд-мода".
странно что критично к длине провода, вроде не такие частоты.
по хорошему надо осцилом посмотреть как там диаграмма рисуется. возможно подкорректировать надо спи драйвер , удлинить какойнить цикл.
подробней можно чтото сделать, если есть исходники.
Какие не такие? Smile)) Это же bit-bang, там I/O напрягаются до "красна".
Проблема решается легко - лимитом скорости, но я не хотел обрезать и без того медленный протокол, лучше напрячься и сделать норм адаптер.
(24.09.2012 13:41)SWAT писал(а): [ -> ]... лучше напрячься и сделать норм адаптер.

да уже поздно, адаптер собран, и собран так что уже кабель не укоротить. Может быть попробую сделать экранизацию кабелей и проложить их в более помехоустойчивом месте.
А все же, есть ли возможность перенести модуль работы с сд по спи из беты в рс1 или он жестко вшит в ядро и без пересборки никак?
до какого "красна"? какая там частота прёт по spi_clk? судя по мах скорости 1мб/сек. это не такие частоты чтобы динна была критична.
судить трудно, не щупал осцилом. может там видно сразу станет, и не видел в каком коде написан спи (асм или си?), но решиться может простым затягиванием фронта клока или чего там... не сильно потеряешь в скорости. зато стабильность повыситься в разы!
не помню выкладывали этот спи драйвер или подобный, глянуть глазом.

кстати, об альтерках: тут вообщемто если весь затык в получении скорости на то что нужно аппаратное преоразование
"параллел-в последовательн" делать, то на альтерке это делается легко. тут только к чему тебе удобней цеплять её к г1 или г2. по идее достаточно 8бит данных, cs, wr, rd. и пару адресов a0-a1.
и эта штука легко встраивается в твой код в место spi_read / spi_write. - и не надо никаких переходников ide в sd. весь простокол у тебя уже построен ведь. правда это небольшая альтернатива тому что есть, и тянет все теже недостатки с тему загрузчиками и т.п
отойду в сторону от своей проблемы

слышал где-то про 4х битный режим spi для sd карт, чисто теоретически можно ли его заюзать вместо текущего 1но битного. Есть ли свободные порты в процессоре для подключения 3(4?) дополнительных пинов? Ведь в таком случаем производительность чтения с карты увеличится значительно
наскок я знаю, скорость эмулирования хорошая за счёт того что serial сидит на проце и манипуляция ножками максимальная. так как это работа с регистрами проца. если есть какието доп. ноги у него то возможно...
Serial не расчитан на такую скорость, то что он в проце сидит в общем то проблему не решает, там есть обвязка после проца, которая замедляет его еще. Да и аппаратные ограничения у этих выводов тоже имеются, это ведь не совсем GPIO.
По поводу 4 битности интерфейса, это бы имело смысл, если бы SPI был аппаратным, а он софтварный, там в любом случае чтобы отправить/принять 1 байт приходится 24/25 раз(а) дергать пины и ничего другого здесь не изобрести.
Из проца торчат еще 2 GPIO, они используются для определения кабеля и выведены в порт AV, но судя по всему их трогать не стоит, я думаю проблемы с видео режимом в RC1 именно из за того, что я их перенастраиваю (хотя еще не проверял) для использования как дополнительные CS.
Длинна кабеля не критична была бы, если бы этот порт юзался по назначению. Даже если по назначению его пытаться разогнать до 3 мбит (а это теоретически возможно, используя внешние часики), он будет выдавать кучу ошибок, поэтому там максимум можно его заставить работать на 1.5 мбит/с. Что говорить уж о bit-bang, где чтобы принять 1 байт 25 раз нужно дернуть ногами (это без учета CS).
Проблема тут не в коде SPI, а в компиляторе. Beta 4 была собрана на старых, проблем не было, сейчас на новых и проблема присутствует на некоторых дримах (да да именно дримах, так как у меня работает адаптер и с проводом и даже если я вообще убираю задержку у часов в принципе).
Обвязка портов немного разная, отсюда и проблемы. Решение было только одно - замедлить порт раза в 2, а не чуть чуть как вы тут подумали. К слову загрузчик в биосе (тот что ядро DS загружает с SD) медленный, как раз специально для того чтобы работал всегда и везде, но играть с такой скоростью крайне не приятно.
Решение данной проблемы мне пока не известно, что конкретно меняется при сборке на новых компиляторах я не знаю, я учел все оптимизации и прочие "прелести" компилятора, но видимо уже ничего не поможет.

Кстати, после изучения железа, у меня возникла идея как приспособить DMA для SPI, правда к сожалению его можно использовать только для записи, для чтения не получится Sad поэтому эту идею я отложил, смысла нет, нужно чтение...
а что за "часики"?

cs - по идее нужен если на шине несколько устройств и при инициализации карты. в принципе можно постоянно в минусе держать??


а так остается призрачная альтернатипа подцепится к г2 и на рассыпухе сделать сдвиговые регистр и т.п

ну а дальше.... только эмуляторы пошли)))) ведутьтся разработки - не дремлим)))
Для serial можно цеплять внешние часы (есть спец. пин), т.е. если внутренние часы могут работать максимум на 115200, то с внешними часами теоретически можно добиться скорости 3 Мбита, но вот только ошибок много становится, там тоже нужно провод убирать, даже для 1.5 Мбита провод нужно как можно короче делать.
А про SPI я даже соврал, там же такт часов на каждый бит, т.е. для отправки 1 байта приходится 24 раза дергать ногами, а для приема 25!
CS можно конечно сразу зацепить железно, но тогда смысл теряется, больше 1 девайса так не подключить, а я юзал GPIO из AV специально для того, чтобы подключать несколько устройств, к примеру LAN.
SWAT, дак а что тогда не попробовать зацепить внешние часики?
(26.09.2012 07:30)SWAT писал(а): [ -> ]... CS можно конечно сразу зацепить железно, но тогда смысл теряется, больше 1 девайса так не подключить, ...

А можно тогда как-то сделать чтоб на один сериал подцепить и флешку и датакабель для дебага? Ну и переключаться между ними, т.е. запустил апу с сд, переключился на датакабель, смотришь логи
можно. если сгородить переключатель между spi И rs232 на логике..
(26.09.2012 15:57)cybdyn писал(а): [ -> ]можно. если сгородить переключатель между spi И rs232 на логике..

Ну да, например на 74AC257 заодно и фронта будут лучше засчёт буферирования, что в свою очередь улучшит стабильность работы SD карточки.
(26.09.2012 08:26)shadow писал(а): [ -> ]SWAT, дак а что тогда не попробовать зацепить внешние часики?

Смысл? Скорость все равно маленькая, даже если каким то чудом заставить работать на 3 Мбит, это в 2 раза медленнее soft SPI.
Только что DMA можно использовать - это бонус да, но толку.
ну говорят же, хотят же видитть лог и грузить с сд карты...
Это то тут причем...
Да можно одновременно зацепить SPI и TTL адаптер, я так делал, работает, просто нужно перенастраивать порт после загрузки с SD.
инэт глючит)).. проехали))
В общем, я таки решил проблему. Сперва наткнулся на похожую проблему, где товарищ рекомендует снести резисторную сборку RA601, а вместо нее кинуть перемычки (пруф: http://www.dc-swat.ru/forum/thread-1787-...pid24031), я себе заделал эту модификацию, вот только пользы от нее ровно ноль. А причина банальна, я прошился биосом от 4.0 беты, а запускать с флехи пытался RC1. После прошивки биосом от RC1 все заработало норм.
Страниц: 1 2
URL ссылки