User Tag List

Страница 16 из 29 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя
Показано с 151 по 160 из 328

Тема: Контроллер дисковода для УКНЦ, работающий с образами на micro-SD карте.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот и я про то, есть с разъемом, есть без.

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

  3. #2

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MacBuster Посмотреть сообщение
    Кстати, у меня есть платы СА с запаянным разъемом ОНП-КГ-56-40.
    А УКНЦовины с таким разъемом для СА нет? И, главное, есть ли дока, в смысле цоколевка этого разъема?

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Вот и я про то, есть с разъемом, есть без.
    Мне кажется, что большинство машинок, все-таки, с ОНП-КГ-57-60 (который краевой). В общем-то,главная беда этих разъемов, ИМХО, это то, что задняя пластина (давлением на которую и прорезают ленту в разъем) у них никак не крепится. То, что на заводе их пытались заплавить паяльником, не в счет. Если бы их прикручивали на металлическую панель, они бы держались и нормально работали, а так получилась ерунда. Надо бы (у кого есть такое) попробовать правильно его обжать (в тисках) и прикрутить к нему сзади П-образный профиль (типа швеллера) шириной порядка 10 мм и с полочками 5 мм, подложив под пластину картонку, чтобы зажималось плотно. Скорее всего после такой доработки оно будет контачить нормально.

    А что касается конечной боевой платы (если я не ошибся с количеством машинок), то ее стоит делать с разъемом IDC-60. Те, у кого машинка с ОНП-КГ-57-60, спокойно прорежут ленточку от него в IDC-60, а у кого ОНП-КГ-56-40 (которых меньшинство), прорежут в него 40-проводную ленточку, распустят ее на отдельные провода и прорежут эти провода в IDC-60, по одному, в нужном порядке .

    Ну, и осталось решить, будем мы связываться с DMA или нет. С одной стороны очень хочется - теоретически, доступна очень высокая скорость обмена, если захватить шину на все время передачи блока, то блок прилетит за 128-256 мкс, с другой - это заметное усложнение всего, особенно в перспективе переноса этого дела на ДВК - с PIO добавить к УКНЦ-шной схеме шинные драйверы, и все, а с DMA придется воевать с дополнительными шестью разрядами адреса, то есть для ДВК это будет совсем отдельный проект, а не хочется...

    В принципе, учитывая, что быстродействие этого Cypress существенно выше, чем у наших ВМ1-ВМ2-ВМ3, можно первоначально убедиться, что все в порядке, затем считать данные циклом из двух команд, вроде
    Код:
    1$:   mov   @R5,(R4)+
          bct   R3,1$
    и уже потом проконтролировать не было ли ошибки, то есть не прочитала ли наша УКНЦ регистр данных в то время, когда их туда еще не выставили.

    Аналогично и для записи.

    Так вот, не знаю точных времянок исполнения команд на УКНЦ, но уверен, что такая передача тоже будет достаточно быстрой. Так, что, ИМХО, можно обойтись и без DMA. При этом вполне хватит регистров СА. Первоначально, для имитации загрузки из сети, надо будет разобрать сетевой загрузчик УКНЦ и отработать необходимую передачу начального загрузчика, работающего с новым адаптером, имитируя регистры СА, затем можно переключиться в нормальный рабочий режим и вперед!
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  4. #3

    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не уверен, что быстродействия PSoC4 хватит, ведь ЦП побыстрее ПП будет. Надо экспериментировать.

  5. #4

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Не уверен, что быстродействия PSoC4 хватит, ведь ЦП побыстрее ПП будет.
    Так ведь по-любому не более 1 млн регистровых команд в секунду. И команда пересылки из регистра контроллера в память требует трех циклов шины: достать саму команду, достать данные из регистра контроллера, поместить данные в память. Плюс bct, итого 4 цикла шины.

    Тут некоторые опасения вызывает "добыча" данных из u-SD, ну и запись в нее. Эти действия "на лету" могут и не прокатить, а буфер, как я понимаю, можно выделить, разве что, на блок...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  6. #5

    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Самый рациональный вариант это работать с шиной МПИ по прерываниям (прерывания внутри PSoC, если что), а общение с u-SD в основном потоке, и вот тут я не уверен что хватит 64 мкС, или сколько там нужно, чтобы отреагировать и выставить СИП. На шине ПП едва справляется. Повторюсь, нужно экспериментировать.

  7. #6

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Самый рациональный вариант это работать с шиной МПИ по прерываниям (прерывания внутри PSoC, если что),
    Скорее всего, именно так.

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    и вот тут я не уверен что хватит 64 мкС, или сколько там нужно, чтобы отреагировать и выставить СИП.
    Так ты генеришь его из программы? ИМХО, его надо генерить аппаратно, ПЛИСкой.

    Я, конечно, ничего не знаю про ПЛИС, кроме общетеоретических представлений, типа того, что в нее можно "прошить" какую-то логическую схему. Поэтому я изложу свое вИдение решения, а ты посмотри, реализуемо это средствами PSoC, или нет.

    Для блока из четырех слов в адресном пространстве ВМ2 нужно иметь 3 аппаратных D-триггера, на вход первому из них надо отдать результат сравнения ВУ Н и АД 12-АД03 со старшими разрядами адреса этого блока (176560, триггер выборки), а второму и третьему - АД02 и АД01. Данные в них следует защелкнуть низким уровнем на СИА. Если триггер выборки включился, а на СИА низкий уровень, можно считать, что к нам обратились. Далее следует приготовиться к подключению какого-то набора портов ввода-вывода встроенного Кортекса к линиям АД15-00, в зависимости от адреса во втором и третьем триггерах, в идеале - 4 шт, причем по сигналу ВВОД, выдать содержимое порта на шину, а по сигналу ВЫВОД, защелкнуть состояние шины АД в этом порту. И, по любому из них (естественно, при активном триггере выборки и низком уровне на СИА), что по ВВОДу, что по ВЫВОДу, выдать сигнал СИП. Все это надо делать аппаратно, ПЛИСкой, и все это займет 0.5-1.5 мкс.

    Если это можно сделать, то это будет идеальным решением, далее надо будет только манипулировать битами в портах Кортекса, если нет, то надо думать и экспериментировать...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  8. #7

    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В PSoC я аппаратно сделал так, что при поступлении СИА и ВВОД/ВЫВОД происходит сравнение адреса (на лог. элементах) и если адрес принадлежит нужному диапозону - генерируется прерывание. Параллельно с этим происходит запоминание адреса в регистре. В обработчике прерывания происходит чтение или вывод данных и установка СИП. Все-таки PSoC не ПЛИС.

    Кстати, в контроллере дисковода я не использовал прерывания, там поллингом проверялось состояние регистра.
    Последний раз редактировалось Jarik65535; 22.06.2017 в 10:52. Причина: дополнение

  9. #8

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А может быть можно выделить регистр аппаратных триггеров? Чтобы туда что-то записалось (или прочиталось) самой ПЛИСкой, без процессора? И сразу же ответить СИПом, тоже ПЛИСкой. А потом прочитать или записать этот регистр Кортексом. Нужно два таких регистра, один - 8 или (лучше) 16 бит, по адресу 176562, второй - несколько бит (3-5), с раздельным управлением, по адресу 176560 - один бит (Д7) устанавливаем процессором, а сбрасываем аппаратно, при чтении со стороны УКНЦ 8-/16-битного регистра или по сигналу сброса, второй (Д6) пишем/читаем со стороны УКНЦ, по сигналу сброса тоже сбрасываем. Может и еще потребуется пара-тройка битов.

    Тогда все просто (со стороны Кортекса). Получили команду чтения, пока неважно, каким образом. Выставляем в наш 8/16-битный регистр очередное слово (или байт) данных и взводим триггер Д7. УКНЦовина, обнаружив там единицу, читает 177562, ПЛИСка аппаратно сбрасывает триггер Д7, мы это видим и толкаем новое слово данных, и снова взводим Д7.

    В принципе, для чтения данных с псевдодиска, аппаратный регистр триггеров даже и не нужен, можно просто воспользоваться портом Кортекса. А вот для записи на псевдодиск аппаратный регистр необходим, ПЛИСка должна быстро принять в него очередное слово/байт данных, а наш Кортекс прочитает его, когда сможет.

    Так как, реализуема подобная схема на PSoc?
    Последний раз редактировалось AFZ; 23.06.2017 в 16:50.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  10. #9

    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А можно выставлять СИП до завершения операции? Тогда нужен будет промежуточные регистры, а у псока очень мало UDB(универсальных цифровых блоков). Можно взять PSoC5, у него и памяти больше и блоков и быстродействие.

  11. #10

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я плохо представляю потроха этой радости, поэтому и спрашиваю. В этих UDB триггеры есть? Может есть 16-битовый регистр? Если найдется один такой, а также насколько отдельных триггеров с раздельным управлением (хотя бы два), то все должно быть ОК. У Кортекса ведь есть простые порты ввода-вывода? Чтобы в режиме ввода высокий уровень на нем показал единицу в соответствующем бите прочитанного порта, а низкий - ноль, как это выглядит у обычны контроллеров. И, соответственно, "подрыгать ножкой"? Это с одной стороны. С другой стороны есть массив ножек, который, в общем-то как-то отделен от этих портов. Так вот, хотелось бы порулить этим делом со стороны ПЛИС. Это возможно?

    Ты не переводил доки от PSoC?

    - - - Добавлено - - -

    Качнул документ PSoC® 4: PSoC 4200M Family Datasheet и поразглядывал в нем PSoC 4200M Block Diagram (Page 4 of 42). Массив выводов подключен к потрохам как Кортекса, так и UDB через High Speed I/O Matrix. Вопрос: кто рулит этой матрицей? Есть ли возможность порулить ей из UDB, или только с ЦП Кортекса? Если с UDB не порулишь, то, скорее всего, облом, и так просто наша задача не решается...
    Последний раз редактировалось AFZ; 23.06.2017 в 18:05.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

Страница 16 из 29 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Контроллер дисковода
    от andrew76 в разделе Внешние накопители
    Ответов: 55
    Последнее: 12.04.2024, 16:33
  2. Контроллер дисковода +3 DOS
    от Tim в разделе Внешние накопители
    Ответов: 8
    Последнее: 17.04.2012, 16:32
  3. [Украина]Продам контроллер дисковода УКНЦ,аукцион.
    от Mad Killer/PG в разделе Барахолка (архив)
    Ответов: 5
    Последнее: 25.12.2011, 00:09
  4. Куплю контроллер дисковода
    от djvini в разделе Барахолка (архив)
    Ответов: 10
    Последнее: 21.04.2011, 01:19
  5. Куплю контроллер дисковода для УКНЦ
    от tnt23 в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 27.02.2009, 08:51

Ваши права

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