mihlit1 0 3 марта, 2020 Опубликовано 3 марта, 2020 · Жалоба Всем доброго времени суток. Имеется в наличии черный stm32f407ze с IC RAM IS62WV51216BLL, подключена с помощью FSMC. TFT дисплей 3,5 дюйма тоже подключен через FSMC. В IC RAM буфер данных для дисплея размерностью 320х480 16-разрядных слов. (153600х2 = 307200 байт) в памяти микроконтроллера не помещается. И тут засада - FSMC в может работать только с одним внешним устройством (RM0090). А если выбор дисплея посадить на землю, читать данные из IC RAM, т.е. они выставляются на D0...D15 и дергать запись в TFT? Может кто-нить подскажет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 3 марта, 2020 Опубликовано 3 марта, 2020 · Жалоба Где вы прочитали, что только с одним внешним устройством ? Вот цитата из RM0090 Quote Bank 1 used to address up to 4 NOR Flash or PSRAM memory devices. This bank is split into 4 NOR/PSRAM subbanks with 4 dedicated Chip Selects, as follows: – Bank 1 - NOR/PSRAM 1 – Bank 1 - NOR/PSRAM 2 – Bank 1 - NOR/PSRAM 3 – Bank 1 - NOR/PSRAM 4 Вешайте ваш SRAM и TFT на разные CS ( NE[x] - FSMC_NE[x]) и будет вам счастье ;-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mihlit1 0 3 марта, 2020 Опубликовано 3 марта, 2020 · Жалоба FSMC может работать ТОЛЬКО с одним устройством в каждый момент времени, которое выбирается NE[x]. FSMC не может выставить 2 и более сигнала NE[x] одновременно. Как-то так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 3 марта, 2020 Опубликовано 3 марта, 2020 · Жалоба 1 hour ago, mihlit1 said: FSMC может работать ТОЛЬКО с одним устройством в каждый момент времени, которое выбирается NE[x]. FSMC не может выставить 2 и более сигнала NE[x] одновременно. Как-то так. Как разработчики могут предусмотреть, какие внешние по отношению к процессору девайсы Вы пожелаете "подружить" ? Возможно DMA через DMA-узел процессора (2 раза, а может и один) есть то что Вам подойдет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 51 3 марта, 2020 Опубликовано 3 марта, 2020 · Жалоба 1 час назад, mihlit1 сказал: FSMC может работать ТОЛЬКО с одним устройством в каждый момент времени, которое выбирается NE[x]. FSMC не может выставить 2 и более сигнала NE[x] одновременно. Как-то так. Так все правильно. Интересно, как вы себе представляете работу одной шины сразу с двумя разными устройствами?? Испокон веков процессорная шина обращалась с помощью дешифратора адреса, или доп. выходы CS и т.п. И это нисколь не ограничивает использование нескольких устройств на шине, а если это не работает, то тут скорей вопрос к программисту... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mihlit1 0 3 марта, 2020 Опубликовано 3 марта, 2020 · Жалоба Полазил по форумам. Есть другой путь решения проблемы - DMA memory to memory. Прошу снисходительно отнестись к моему нубскому вопросу, как говорится "я еще только учусь". 1 минуту назад, mantech сказал: Так все правильно. Интересно, как вы себе представляете работу одной шины сразу с двумя разными устройствами?? Испокон веков процессорная шина обращалась с помощью дешифратора адреса, или доп. выходы CS и т.п. И это нисколь не ограничивает использование нескольких устройств на шине, а если это не работает, то тут скорей вопрос к программисту... Интерфейс DCMI умельцы используют для подключения внешнего АЦП. Вот я и подумал - а вдруг кто-то исхитрился и FSMC приспособить под свои нужды. Всем удачи! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 3 марта, 2020 Опубликовано 3 марта, 2020 · Жалоба 39 minutes ago, mihlit1 said: Полазил по форумам. Есть другой путь решения проблемы - DMA memory to memory. . . . Я Вам это и рекомендовал выше. В старых микропроцессорных системах с внешней системной шиной (данные, адрес, управление) ставился отдельный видеоконтроллер, отдельная микросхема DMA, +видео-RAM, +система управления всем этим. Если хотите создать нечто подобное, то это сложно и бессмыслено. Все необходимое уже давно впихнуто в качестве периферии в чипы. То что не впихнуто - делают на ПЛИС. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 3 марта, 2020 Опубликовано 3 марта, 2020 · Жалоба Например, ILI9481 может принимать данные по параллельной шине с чатотой не более 12,5 МГц stm32f407 работает на частоте 168 МГц. Разница в больше чем в 10 раз. Так что даже с пересылкой данных через себя из внешнего ОЗУ в дисплей, вполне справится, даже простои будут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mihlit1 0 4 марта, 2020 Опубликовано 4 марта, 2020 · Жалоба 9 часов назад, k155la3 сказал: Я Вам это и рекомендовал выше. Я Вам благодарен за совет. Получилось по времени так, что я сначала написал про DMA, а потом появилось Ваше сообщение. 8 часов назад, dimka76 сказал: stm32f407 работает на частоте 168 МГц. Я его сейчас до 240 разогнал - все работает - и память , и дисплей, и АЦП. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 4 марта, 2020 Опубликовано 4 марта, 2020 · Жалоба On 3/3/2020 at 7:32 PM, mantech said: Интересно, как вы себе представляете работу одной шины сразу с двумя разными устройствами?? Вообще, задачка интересная, если задаться целью размять мозги и хорошенько разобраться с работой контроллера памяти. Сделать такой виртуальный банк, чтобы при чтении из него одновременно выполнялось чтение из SRAM и активизировалась запись в дисплей. Потребуется сколько-то мелкой логики, и, вероятно, какая-то матерь, чтобы реализовать необходимые задержки. Работу с памятью и дисплеем по-отдельности (в обычном режиме) также необходимо поддерживать. В память необходимо писать, а в дисплее, как минимум, устанавливать конфигурацию. При отсутствии цели развлечься поддерживаю стандартное решение с DMA. Соединил по инструкции, и готово. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 51 5 марта, 2020 Опубликовано 5 марта, 2020 · Жалоба 15 часов назад, esaulenka сказал: Вообще, задачка интересная, если задаться целью размять мозги и хорошенько разобраться ...то для этого случая лучше всего ПЛИС Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 5 марта, 2020 Опубликовано 5 марта, 2020 · Жалоба 47 minutes ago, mantech said: ...то для этого случая лучше всего ПЛИС Cypress Psoc - у них программируемая логика внутри есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mihlit1 0 18 марта, 2020 Опубликовано 18 марта, 2020 · Жалоба Уважаемые форумчане! Не откажите в любезности просветить нуба по такому вопросу. Задача осталась прежней - дисплей + SRAM. У меня в наличии 2 дисплея 8- и 16- битный интерфейс. Напрямую (без SRAM) оба дисплея заливаются нормально. Когда заливаю дисплеи через SRAM, то в дисплее с 8-битным интерфейсом почему то портится мл. байт цвета, причем он уже в SRAM неверный. У меня вопрос может к FSMC нельзя подключать 16-битную память и 8-битный дисплей? RM0090 молчит по этому поводу (или я невнимательно смотрел). Просветите, пжлст. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 18 марта, 2020 Опубликовано 18 марта, 2020 · Жалоба 30 minutes ago, mihlit1 said: У меня вопрос может к FSMC нельзя подключать 16-битную память и 8-битный дисплей? Должно работать. Вероятно, у вас какие-то проблемы с целостностью сигналов. Показывайте разводку, может, тут чего насоветуют. Возможно, получится победить увеличением таймингов для памяти. Костыль, конечно, но уж как есть... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mihlit1 0 18 марта, 2020 Опубликовано 18 марта, 2020 · Жалоба Я уже 2 дня тайминги от 0 до мах перебирал, и памяти и дисплея - бестолку. Был бы второй 8 битный попробовал, а вдруг какая то бяка сидит в дисплее. А насчет разводки.. На борде разъем дисплея, к нему проводками сам дисплей присоединен. Но ведь если без памяти, а напрямую заливаю в дисплей то усе в порядке, 8 битный заливается за ~14ms, 16 битный около 8ms. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться