 |
nedoPC.orgElectronics hobbyists community established in 2002 |
 |
Еще один "Специалист" в Proteus
Author |
Message |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 461
|
касательно работы SD карт и SPI есть такой момент - ввод бита и вывод бита идет на разных фронтах CLK, при реализации ввода и вывода на двух мс это решается инвертированием CLK у одной из них, а вот как быть с одной мс(ИР24, в частности) это вопрос.
|
14 Feb 2017 22:16 |
|
 |
Error404
Maniac
Joined: 05 Oct 2006 04:45 Posts: 269 Location: Moscow
|

Я так себе представляю. Чтение хостом из нашего регистра ИР24 в отдельной команде, поэтому корректность тактирования от SCK интересна только в контексте корректного сдвига ИР24 <=> SPI-устройство в момент прохождения пакета импульсов сдвига, ограниченного счетчиком ИЕ7 и запускаемого отдельно. Защелкивание (т.е. актуальное состояние "0"/"1") MISO и MOSI имеют в один и тот же момент, и перенос со вход на выход (как экивалентный регистр сдвига) тоже в один момент (если верить диаграмме ниже - для дефолтного режима CPHA=0 чтение/хранение состояния битов SPI-устройств актуально по фронту такта, а сдвиг в следующий разряд идет по спаду такта). Т.е. SPI-устройство можно рассматривать как обычный сдвиговый регистр со входом (= значению младшего разряда) и выходом (=значению старшего разряда). Верно же? Регистр ИР24 нашего адаптера всего лишь такой же сдвиговый регистр, и в эквивалентной схеме получаем два встречно включенных регистра (чтобы образовать "кольцо" из двух регистров) где оба регистра (адаптера и устройства) должны сдвигаться синхронно (в том смысле, что SPI на один бит, и ИР24 на один бит - перезаписываясь один в другого).  ИР24 осуществляет все действия по фронту тактового импульса, то для режима CPHA=0, где сдвиг идет спадом, ее как мне кажется можно оставить как есть - в противофазе SPI устройству, чтобы в момент сдвига (вывода) в SPI-устройство, ИР24 держала выход неизменным, и сама писала вход со SPI-устройства в момент, когда SPI-устройство находится в режиме вывода - её стабильного состояния (а не в процессе сдвига). Как то так я рассуждал. Но вообще, диаграмма как-то не очень сочетается с текстом той же статьи о "For CPHA=0, data are captured on the clock's rising edge (low→high transition) and data is output on a falling edge (high→low clock transition)." Тут какие-то разночтения. Относится ли это к тому, что эффективное время (активность сигнала) MISO и MOSI должны быть сдвинуты относительно друг друга? По диаграмме это не так (и по логике не так - иначе нельзя бы было устройства последовательно включать - при трех и более элементов в цепочке у них "уедет" общее тактирование от мастера), но текст можно интерпретировать что это так. Вот тогда, все может усложниться, т.к. писать в ИР24 младший разряд и выводить из нее старший придется в разное время, что учитывая что это просто сдвиговый регистр (как и SPI-устройства), где все разряды модифицируются при сдвиге от общего импульса, выглядит бредом. Скорее всего сдвиг в SPI-устройсте происходит единомоментно, и разница MISO и MOSI упоминается только в контексте чтобы пропускать недетерминированный период когда триггеры внутри SPI-устройства последовательно перезапишутся и выставится последний разряд (выход). И достаточно будет только понять картинке верить или тексту по моменту защелкивания входного бита в SPI-устройстве, и моменту сдвига, и поймать "противофазу" для ИР24. Тут я сомневаюсь - прямым или инверсным импульсом относительно SCK надо тактировать ИР24. Но вариантов всего два: тактировать ИР24 инверсным SCK или сойдет и так как уже нарисовано (с тактированием ИР24 прямым SCK). Статью смотрел в Wiki: https://en.wikipedia.org/wiki/Serial_Pe ... erface_Bus
_________________ Всем добра!
|
15 Feb 2017 01:29 |
|
 |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 461
|

вот здесь есть неплохое описание как работать с SD картой, и есть диаграммка: и по ней видно как именно карта 'хочет' видеть биты и как их выдает. получается для карты SCK CPOL=0, CPHA=0, но для ИР24 SCK надо проинвертировать(те CPOL=1), что бы получились правильные биты на выдачу, однако принимаемый бит будет в этот момент уже упущен, значит надо поставить однобитную защелку(ТМ2) на входе ИР24, тактируемую от SCK карты(те не инвертированный!), что бы задержать на пол такта принимаемые от карты данные, вот в этом случае все будет работать верно. У меня тут мысль возникла - а почему бы не применить такую мс как 561ГГ1(CD4046, 74HC4046-TTL вариант) в качестве управляемого генератора тактовой карты, можно выбрать и высокую скорость тактирования и низкую, а управлять одной ножкой... глядишь и две мс ЛЛ1(7402) получится выкинуть из схемы... для КМОП версии при питании 5В в разных источниках разные данные приводятся для максимально генерируемой частоты, но если 2Мгц получится с нее получить, то это самое то! TTL версия вообще до 18Мгц, тут и вопросов нет, но только импорт  .
|
15 Feb 2017 12:42 |
|
 |
Error404
Maniac
Joined: 05 Oct 2006 04:45 Posts: 269 Location: Moscow
|
Хм, пожалуй что красивее всего так получится - и половинка ТМ2 есть свободная. Только не надо ли будет в пакете выдавать при чтении на один импульс больше? Чтобы все разряды сдвинулись в ИР24 чтобы прочитать ее по тем же D0..D7 откуда и пишем? Может что и не надо - разведутся по фронту и спаду. Плохо не знать Протеус.  С другой стороны и под Протеусом устройство надо чем-то загрузить, т.е. весь хост эмулировать (Специалист в данном контексте, и плюс софт для него). Тоже интересная мысль! Можно тогда обойтись без кварцевых источников, которые еще поделить надо чтобы получить 2 частоты. А использовать можно, к примеру, и кондовые кр1533АГ3 в качестве генератора (там как раз 2 раздельных управляемых одновибратора, работают до 50 МГц) - нам же не надо точные частоты, лишь бы примерно по времени укладывалось в ожидаемые рамки.
_________________ Всем добра!
|
15 Feb 2017 23:20 |
|
 |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 461
|
Вот до чего можно 'ужаться' при использовании ИР24, отказом от считывания состояния передачи по SPI ( сигнал busy), переключением скорости и собственного тактового генератора CLK. Нужен внешний меандр CLK с частотой от 2Мгц: 8 корпусов мс
|
16 Feb 2017 11:49 |
|
 |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 461
|

Проверил работу SD интерфейса, согласно схеме выложенной ранее, с учетом 'ненужности' U38 с дополнительной ТМ2. Все заработало, как и предполагалось, затем переделал схему на базе решения, найденного для РК-86, все работает четко и однозначно. В процессе вспомнил, зачем ставил ТМ7 на цепь MSC - устранение программной ошибки(о которой я на тот момент не знал) Loader_а МХ2 аппаратным способом...  , суть в том, что в момент инициализации SD карты на малой скорости тактирования идет проверка сигнала busy после каждого выданного байта, как и положенно, но на выдаче последнего байта этой проверки нет, и тут приходит активация чип селекта карты, когда еще идут импульсы тактирования... у карты 'сносит крышу' - в результате SD интерфейс не работает(это все актуально и для реализации SD интерфейса на ПЛИС)... если эту ошибку исправить, то ТМ7 оказывается не нужной, соотв из схемы я ее исключил. Вот результат полученный в итоге, 11 корпусов, полностью самостоятельная схема, не требующая дополнительных сигналов, все необходимые сигналы приведены к активным уровням ППА К580ВВ55, и эту схему можно собрать как 'вставку' в замен ВВ55 на плате ПК или как подключаемую в разъем расширения внешней ВВ55(порта программатора): и версия sd_dos_v5c с небольшими исправлениями и доработками, которая сейчас у меня работает с этим SD интерфейсом
|
13 Mar 2017 03:24 |
|
 |
Error404
Maniac
Joined: 05 Oct 2006 04:45 Posts: 269 Location: Moscow
|
А я начал было собирать для своего Ориона на макетке+МГТФ схему на ИР24, и вдруг осознал, что уже 8 корпусов для меня паять проводочками - мУка мучительная. Бросил пока что недопаянную, задолбался. Думаю - не проще ли было протравить печатку. А ты как делаешь согласование с SD-картой, на резисторах или с использованием 74LVC125 (как то так: http://obrazki.elektroda.pl/8066786300_1334332113.jpg) ?
_________________ Всем добра!
|
14 Mar 2017 05:06 |
|
 |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 461
|
Я собирал на своей макетной плате по схеме один в один из предыдущего поста, те согласование на выход к карте через ОК инверторов ЛН2 (хотя fifan делает через резисторные делители, и соотв не инверсные сигналы надо давать), а выход карты сразу на вход ИР8 без преобразования уровней.
|
14 Mar 2017 05:20 |
|
 |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А насколько сложно выйдет удержать в одной модели 'Специалист МХ' сразу оба режима развертки - TV и VGA, сделав их переключаемыми?
_________________ iLavr
|
18 Jan 2023 06:55 |
|
|
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|