-
Alucard
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 208
-
Спасибо получено: 20
-
-
-
-
|
Если вы про зеленую, то это плата с МК :) Она сделана как отладочная плата, пока неокончательный вариант.
Причем МК работает на частоте 2.5MHz (специально сделал по-меньше), а абсолютный максимум был 64MHz.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Alucard.
|
-
Alucard
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 208
-
Спасибо получено: 20
-
-
-
-
|
Прикрутил новую плату ЦП к старому видеопроцессору. :)
(Плата Марсоход там только в качестве генератора на 100MHz)
Подключил SAM4C без резисторов к плате процессора напрямую, посчитал, что длина проводников небольшая. На удивление, все работает гораздо лучше, чем с предыдущим контроллером! :)
Помех при передаче вообще нет. Ну совсем. :) Только скорость передачи не радует - 25Мбайт/сек, по документации должна быть в 3раза больше. Нужно использовать DMA...
Видеопроцессор планирую немного переделать, добавив текстовый режим работы 80х60 символов по UART или по основной шине, как только разберусь с МК.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Alucard
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 208
-
Спасибо получено: 20
-
-
-
-
|
Новая плата видеопроцессора :) :
EPM570, 30bit DAC, SRAM 128k.
Все пассивные компоненты взял со старых плат CD-проводов, видеокарт.
Без микроконтроллера все хорошо работает, отображаются все 1073741823 цветов. Подключил к ней новый МК - обнаружились проблемы с передающими линиями, тк. не пропаял выводы как следует. :(
Два дня я с ними пыхтел, вот результат:
Белые места - не помехи. Либо я не пропаял шину адреса (те линии, на которые палитра отходит), либо перепутал линии данных. Тестировал все, но, увы...
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Alucard.
|
-
wowa
-
-
Не в сети
-
Давно я тут
-
-
Сообщений: 157
-
Спасибо получено: 37
-
-
-
-
|
Как на меня - я бы припаял под ЦПЛД побольше конденсаторы.. А то их там и невидно :) А они очень важны.. СПЛД при переключении делает много помех по питанию.. Ну и когда пяяеш - не желей канифоли или глицерина.. будет красивей пайка :)
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от wowa.
|
-
Alucard
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 208
-
Спасибо получено: 20
-
-
-
-
|
Как я и думал, я спутал data[0] с data[1] вот и все. Еще были очень страшные помехи по питанию ~15кГц во всех цепях; оказалось, отвалился провод gnd от разъема vga. :) Насчет конденсаторов, да же и не знаю куда их поставить, везде защитный лак...
Обнаружил, что у моего МК (SAM4C) нету DMA контроллера :(, а есть только периферийный на UART, SPI и TWI. Жаль, но ничего... оптимизированный программый метод memcpy() дает скорость передачи ~81Мбайт/сек при 120MHz. :)
Вывод ч/б изображения:
Вывод цветного изображения:
Пока есть легкий шум, но это, думаю, исправимо. (еще какая-то синяя "аура")
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
wowa
-
-
Не в сети
-
Давно я тут
-
-
Сообщений: 157
-
Спасибо получено: 37
-
-
-
-
|
Насчёт помех и ауры - надо посмотреть готовый видеосигнал на осцилографе.. Боюсь что это будет просто уровнями напряжения.. Уровень сигнала не должна превышать уровень белого.. Ну и не должно быть больше синхросигнала..
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Alucard
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 208
-
Спасибо получено: 20
-
-
-
-
|
wowa пишет: Насчёт помех и ауры - надо посмотреть готовый видеосигнал на осцилографе.. Боюсь что это будет просто уровнями напряжения.. Уровень сигнала не должна превышать уровень белого.. Ну и не должно быть больше синхросигнала..
На осциле с сигналами все в порядке, они не превышают 820мВ. Единственная странная вещь - синий канал на этой картинке доходит только до 580мВ. У меня подозрения на модуль работы с палитрой, тк. ОЗУ не может работать на 100MHz, поэтому я пропускаю некоторые такты чтения, иначе "старые" данные заплывают на новые.
Кстати, я починил модуль синхронизации для стабильной работы 320x480@60Гц (вертикальное разрешение уже делю после), уменьшив все значения горизонтальной координаты :) ///////////////////////////////////////////////////////////////
//module which generates video sync impulses
///////////////////////////////////////////////////////////////
module hvsync (
// inputs:
input wire clock,
// outputs:
output reg line,
output reg frame,
output reg hsync,
output reg vsync
);
//variables
reg [9:0]char_count;
reg [10:0]line_count;
reg end_of_line;
reg [1:0]pixel_st;
reg [1:0]line_st;
reg end_of_frame;
//permanent comb computations:
always @*
begin
//horizontal processing
if(char_count < 320)
pixel_st = 0; //active video
else
if(char_count < 328)
pixel_st = 1; //front porch
else
if(char_count < 376)
pixel_st = 2; //hsync impuls
else
pixel_st = 3; //back porch
if(char_count < 400)
end_of_line = 0;
else
end_of_line = 1;
//vert processing
if(line_count < 480)
line_st = 0; //active video lines
else
if(line_count < 490)
line_st = 1; //front porch
else
if(line_count < 492)
line_st = 2; //vsync impuls
else
line_st = 3; //front porch
if(line_count < 525)
end_of_frame = 0;
else
end_of_frame = 1;
end
//synchronous process
always @(posedge clock)
begin
hsync <= (pixel_st==2'b10);
vsync <= (line_st==2'b10);
line <= (pixel_st==2'b0);
frame <= (line_st==2'b0);
if(end_of_line)
begin
char_count <= 0;
if(end_of_frame)
line_count <= 0;
else
line_count <= line_count + 1'b1;
end
else
begin
char_count <= char_count + 1'b1;
end
end
endmodule Также изменив его тактирование:
Теперь hvsync и счетчики адресов ОЗУ работают от одного клока. :)
Это еще и позволило реализовать правильный scanline эффект: затемнение всех четных строк, вместо простой черной линии. Выглядит гораздо лучше, но камера это не так хорошо передает:
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
wowa
-
-
Не в сети
-
Давно я тут
-
-
Сообщений: 157
-
Спасибо получено: 37
-
-
-
-
|
А что если попробовать немного поднять напряжение питания для памяти? Может и заведётся на 100 Мгц ? Я вот использую СДРАМ на 200 и нормально пашет.. А на ней написано было всего 166 Мгц :)
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Alucard
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 208
-
Спасибо получено: 20
-
-
-
-
|
wowa пишет: А что если попробовать немного поднять напряжение питания для памяти? Может и заведётся на 100 Мгц ? Я вот использую СДРАМ на 200 и нормально пашет.. А на ней написано было всего 166 Мгц :)
Напряжение на SRAM 2.8в. Если повышать, то отдельно на SRAM или на всех микросхемах? :)
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
wowa
-
-
Не в сети
-
Давно я тут
-
-
Сообщений: 157
-
Спасибо получено: 37
-
-
-
-
|
А сколько у неё абсолютный максимум по питанию? А например ЦПЛД живёт аж до 4 вольт.. Так что можно попробовать.. поднять до 3 или даже до 3.2...
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
Время создания страницы: 0.146 секунд