fk0, легенда (04.06.2014 12:04, просмотров: 72) ответил alho на Модуль, который должен быть slave - маленький и глупый, опрашивает три канала данных по UART и должен быстро скидывать полученные данные в центральный модуль. Монстро-процессор там не нужен. Хотелось что-то маленькое, простое и дешевое применить.
Общая на все МК шина и общая же память? Нужен только какой-то механизм арбитража. В EBI у ARM для того есть сигналы HOLD и HOLDA (механизм аналогичный BUSRQ и BUSAK в Z80). Но в контроллерах любительского уровня (типа STM32 и проч.) такой функционал почему-то не предусмотрен. В лучшем случае есть сигнал (N)WAIT для ожидания готовности памяти. Чем и можно воспользоваться, отвязав шину памяти мультиплексорами и подключая к ней процессора поочерёдно, удерживая до окончания операции чтения-записи WAIT'ом. Представляю как всё это сделать на 555-серии, в программируемой логике разбираюсь мало, но что-то мне подсказывает, что в мелкие CPLD оно никак не влезет, а FPGA сложно и дорого. Плюс нужно уметь с этим всем работать. Может проще подыскать процессоры умеющие арбитраж (но всё равно нужна какая-то логика и для того, хотя тут она простейшая). Или сделать арбитраж вручную (т.е. перед обращением к памяти устанавливаем эту ножку ручками, проверяем эту ножку, и как поднялась -- работаем, потом не забываем сбросить...)
[ZX]