Jump to content

    

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

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

 

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

Share this post


Link to post
Share on other sites

Извращаясь:

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

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

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

Share this post


Link to post
Share on other sites
8 Mhz

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

 

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

лучше 8 spi

Share this post


Link to post
Share on other sites
лучше 8 spi

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

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

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

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

 

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

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

Share this post


Link to post
Share on other sites
я бы начал с вопроса а где вообще сегодня взять ису

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


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

 

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

 

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

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

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

 

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

Edited by =L.A.=

Share this post


Link to post
Share on other sites
Вдруг пригодится...

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

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

Share this post


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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


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

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

 

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this