roboforum.ru

Технический форум по робототехнике.

STM32 и КР580ВВ55 (i8255)

STM32 и КР580ВВ55 (i8255)

wg1973 » 11 янв 2019, 23:55

Контроллеры STM32 могу поддерживать внешнюю SRAM.
Можно ли вместо RAM подключить классическую 8-битную периферию типа КР580ВВ55 (i8255) или AY-3-8910 или Yamaha YM2149F?
Судя по диаграммам взаимодействия с чипами памяти проблем не видно, разве что кроме скорости/частоты доступа, но это решаемо. Так же будем отбрасывать старший байт данных. Декодирование адреса тоже не проблема.
Но не понятно есть ли какой то кеш для внешней памяти при обращении от CPU?

Есть у кого то такой опыт подключения?

Re: STM32 и КР580ВВ55 (i8255)

Angel71 » 13 янв 2019, 05:47

sram и stm32 бывают сильно разные. sram есть как минимум с парралельным интерфейсом и с spi.
если под "поддерживать внешнюю SRAM" подразумевается парралельная память и отражение её в адресное пространство (прозрачно чтение/запись), то это к fsmc (а он не во всех есть + отличается по своим возможностям от чипа к чипу). им же с некоторой внешней переферией работать можно. изучите в общем, что это за блок, есть/нет он в нужном вам чипе и т.д.
sram с spi интерфейсом всё очень просто - spi как spi. 1..n байт записывать/считывать хоть по dma, хоть без.

Re: STM32 и КР580ВВ55 (i8255)

wg1973 » 13 янв 2019, 21:37

Про SPI речь даже не идет, только parllel bus. См. речь идет про i8255
Если взять для примера STM32F4(7) то в "старших" моделях есть Flexible memory controller (FMC). Он поддерживает static RAM. Также есть множество примеров по подключению RAM-map LCD контролеров. И вроде как бы все работает. Но одно дело когда обращаться к памяти (даже когда это video-ram) и другое когда это порты ввода вывода. Не будет ли какого кэширования?
Для примера делаем:
write_ram base+0, const0
write_ram base+2, const2
write_ram base+1, const1
Для памяти и даже для видео-памяти это не критично если будет закешировано и преобразовано в:
write_ram base+0, const0
write_ram base+1, const1
write_ram base+2, const2
а вот для портов I/O это важно.
И становится совсем не ясно что будет с периферией где надо делать последовательную запись по одному адресу нескольких значений.
Вопрос кто то подключал parllel bus периферию как external memory к STM32?

Re: STM32 и КР580ВВ55 (i8255)

Angel71 » 13 янв 2019, 22:21

для настройки и проверки что на пинах происходит, есть такая очень полезная штука как даталоггер. не подходит или не можете разобраться/настроить, смотрите, на сколько подходит работа через дма (параллельнаое синхронное чтени-запись). никто не запрещает с портами работать и без всяких дма и контроллеров памяти.
Последний раз редактировалось Angel71 14 янв 2019, 19:40, всего редактировалось 1 раз.

Re: STM32 и КР580ВВ55 (i8255)

Aseris » 14 янв 2019, 19:41

Кеша через FMC / FSMC нет.
Eсли работать с медленной переферией проще через GPIO делать.
Либо кеш ручками делать.

Добавлено спустя 5 минут 25 секунд:
Обычно то что описано в примере делает оптимизатор в компиляторе при записи в "память", ему нужно популярно обьяснять что область памяти есть _IO/volatile.


cron
Rambler\'s Top100 Mail.ru counter