Перейти к содержанию
    

Параллельный порт 8 бит и STM32

Использовать два порта, с одного читать, в другой записывать? Может, так проще?

 

Ну как проще.... Для стм - проще, а для шины данных все равно защелку ставить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извращаясь:

Порт работает постоянно на ввод, по фронту /RD записывает IDR в память через DMA. С инкрементом или без, как надо.

В момент среза /WR в MODE по DMA из переменной в памяти записывается режим Выход. В момент фронта /WR по DMA из другой переменной в памяти записывается режим Вход. По одному из этих фронтов в ODR записываются нужные данные по DMA. С инкрементом или без.

Но гда взять столько каналов DMA?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 Mhz

и 4 такта на цикл - даже аврка справится

 

Использовать два портаывать?

лучше 8 spi

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

лучше 8 spi

Или quad-SPI в Tiva, работающий вроде как до SCLK == 60 МГц.

Или 8 сериализаторов SGPIO в LPC43xx.

Или 8 сериализаторов McASP в TI-шных OMAP и DSP.

Вобщем - использовать что-то готовое и последовательное с полным аппаратным трактом FIFO+DMA.

 

PS: А скорей всего для задачи ТСа есть гораздо более простое решение, но он её не озвучивает, а кругозор его ограничен одним STM32, поэтому и нагромождает колхоз...

Тут мельком прозвучали фразы "8-разрядная шина" и "USB", так может достаточно будет CY7C68013A ? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я бы начал с вопроса а где вообще сегодня взять ису

Наверное, в каких-нибудь промышленных компьютерах. Пусть разъем не тот, что был в персоналках, но реализация та же. Называется "PC/104" ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем любителям DMA повторю (ибо, не раз уже обсуждали): DMA хорош для больших кусков данных, где не важны задержки, а важна средняя скорость.

Для перекидывания одного байта, но часто и с минимальными задержками DMA не подходит, т.к. от момента инициализации DMA-транзакции, до самой пересылки данных может пройти время, порядка 12 тактов.

 

PS. Я тоже очень сильно люблю DMA и очень часто его использую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос встает не тогда, когда нужно кого то там дергать, а когда тебя (микроконтроллер) дергают. А именно, когда пришел сигнал чтения /RD, перевести восемь ног из hi z в output, выдать на них байт и уйти по спаду /RD быстренько опять в hi-z. Желательно за детерминированное время, а не как получится. Потому что пару раз может получится, а третий - нет.

 

Вдруг пригодится. Писал в песочнице, но там благодарности не последовало :)

 

Настройки GPIOx семейства STM32F0xx

Если сконфигурировать ногу как выход open drain и подвесить к + питания, то функционирует и опрос ноги как входа,

например: GPIO_ReadInputDataBit(GPIOC, GPIO_PIN_1)

 

Это может пригодиться тем, кто хочет смастерить, к примеру, шину MicroLAN или i2c

Изменено пользователем =L.A.=

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вдруг пригодится...

Копаюсь сейчас в закромах - нашел МК типа 80C42C.

Идеальное аппаратное решение для 8-битного слейва, правда, далеко не STM32, но какое-то 8-битное ядро содержит (скорее всего семейства MSC-48).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Идеальное аппаратное решение для 8-битного слейва, правда, далеко не STM32, но какое-то 8-битное ядро содержит (скорее всего семейства MSC-48).

Идеальное решение: CY7C68013A

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какая скорость шины параллельной? Делали набор регистров на параллельной шине, а STM32 забирал по ДМА. Можно было даже FIFO-шку 7202 поставить. Все равно 3.3 вольтовую шину STM надо согласовывать с 5 вольтовой параллельной шиной.

Кстати, такое извращение часто случается при модернизации древних приборов. К сожалению 5v-tolerant FPGA не осталось в природе и приходится заниматься мазохизмом. Вот недавно эмулятор Z80 на STM32 ваяли, но там параллеьная шина была ведущей со стороны STM32, так что было проще.

C одной очень скоростной шиной реализовали прием через DCMI- там скорости вообще запредельные для старого харда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чем в итоге закончились поиски варианта стыковки с ISA шиной? Стоит таже задача. Может нашли более подходящий проц чем STM32?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чем в итоге закончились поиски варианта стыковки с ISA шиной? Стоит таже задача. Может нашли более подходящий проц чем STM32?

А чем Вас не устроили рекомендованные варианты?

 

что будет - 200 мгц стм против 2 мгц исы - порвет как тузик грелку

Или грелка тузика порвёт :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...