реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Передача данных UART => SDRAM память, Как правильно передать данные между UART и SDRAM контроллером
iosifk
сообщение Nov 7 2016, 09:39
Сообщение #16


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Flip-fl0p @ Nov 7 2016, 08:06) *
На стороне ПЛИС я могу делать всё что смогу, и реализовать почти любой протокол. Лишь бы хватило ресурсов в ПЛИС. А вот со стороны ПК передавать данные по UART через какой-либо протокол... У меня пока недостаточно знаний в области программирования, чтобы сделать такое.

Я могу Вам по скайпу перебросить ксайлинсовский пример... Как будете на связи, вызовите меня...
называется: wave_gen_vhd_v6.zip


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Nov 8 2016, 11:11
Сообщение #17


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Реализовал я передачу данных между UART => ПЛИС следующим образом:
Для увеличения скорости передачи данных я выбрал скорость UART 230400 (8-N-1). Думаю можно и больше, но не тестировал.
Данные с uart приемника подаются в модуль PIXEL_CREATING, который принимает 3 байта, отбрасывает ненужные мене значения байтов и объединяет их в цвет пикселя, который мне нужно записать в память.
Когда модуль PIXEL_CREATING "собрал" пиксель и готов его записывать в память, формируется одиночный сигнал PIXEL_VALID (равный одному периоду синхрочастоты), который разрешает запись данных в FIFO буфер.
В FIFO буфере у меня настроен сигнал rdempty, синхронизированный(внутри FIFO буфера)с частотой работы SDRAM контроллера, которой я этот буфер читаю. Через 22 такта, (почему именно 22 такта я не знаю, есть зависимость от количества стадий синхронизации, настраиваемых в mega wizzard. В datasheet на эту мегафункцию, я не нашел данных про это. Буду благодарен, если услышу пояснения почему так.) после записи, буфер выдаст сигнал rdempty равный лог.0, который говорит о том, что в буфере есть данные. Этот сигнал я подаю на детектор заднего фронта. Детектированным фронтом READ_UART_FIFO_SIG я читаю данные из FIFO буфера. Этот же фронт- сигнал о том, что можно записывать данные в контроллер SDRAM. Таким образом я реализовал передачу данных между клоковомыи доменами. То, что я теряю 22 такта - меня не смущает, поскольку частоты приёма по UART и частоты записи в память очень сильно отличаются, и за время приёма одного байта по UART пройдет гораздо больше времени чем 22 такта...
Данные передаются нормально, сбоев нет. Изображение передано в матрицу без искажений.
Кому интересно, проект приёмника UART c модулем PIXEL_CREATING выложил внизу. Буду рад всем недочётам, обнаруженным в проекте.





Прикрепленные файлы
Прикрепленный файл  PIXEL_RECEIVER.zip ( 2.4 мегабайт ) Кол-во скачиваний: 13
 
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th August 2025 - 19:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016