Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
Контроллер TFT на FPGA
sherr
Добавлено 19.04.2010 22:12 Сообщение: 21
sherr
0

Пункты: 6512
Регистрация: 02.11.2009
я для SK-AT91SAM9260-S3E слепил вывод на аналоговый ВГА монитор 640х480 2 бита на цвет (64цвета всего и аппаратное мигание) из набортной статики 0.5Мб. вывод в резистивный dac.
пишу в память как на CGA - в момент обратного хода луча, под мою задачку подходит: обновление всего экрана попиксельно проц за 300-400мс делает, а мне весь перерисовывать не надо, в итоге не тормозит.

А проектик посмотреть можно ?
Спуститься к концу Подняться к началу
Персональная информация
alsegor
Добавлено 20.04.2010 13:56 Сообщение: 22
alsegor
0

Пункты: 4761
Регистрация: 11.06.2009
Пол: Мужчина
Цитата
я для SK-AT91SAM9260-S3E слепил вывод на аналоговый ВГА монитор 640х480 2 бита на цвет (64цвета всего и аппаратное мигание) из набортной статики 0.5Мб. вывод в резистивный dac.
пишу в память как на CGA - в момент обратного хода луча, под мою задачку подходит: обновление всего экрана попиксельно проц за 300-400мс делает, а мне весь перерисовывать не надо, в итоге не тормозит.


А как момент обратного хода луча определяете, по какому то регистру от FPGA? Да было бы интересно на проект глянуть. У меня такая же платка, подключить обычый моник, что бы хотябы в коммандере поработать ну или самому чего нить вывести. Может и на 256 цветов сделаем, если разберемся.
Спуститься к концу Подняться к началу
Персональная информация
Geban
Добавлено 20.04.2010 14:08 Сообщение: 23
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
Возникла загвоздка в генерации синхросигналов для панели.
DCLK который 40МГц я сообразил с помощью DCM_SP в ISE. А вот как изобразить вертикальную и горизонтальную синхры(38кГц и 60Гц соответственно) не знаю. Или может быть они вычисляются как нить из потока данных? не подскажите?
Спуститься к концу Подняться к началу
Персональная информация
Vasily_A
Добавлено 20.04.2010 15:09 Редактировалось 20.04.2010 15:18 Сообщение: 24
Vasily_A
0

Пункты: 33
Регистрация: 17.02.2010
проект вывода с фпга на аналоговый вга монитор
вывохы RrGgBbHV соответственно цвета и синнхро
RGB через 500ом
rgb через 1ком
HV через 100ом
выходы у меня инверсные, пущены через буфер с инверсией 74hc240 (что под руки попалось)
в проекте много лишнего - проверка всего ввода-вывода, можно выкинуть
"0" регистр на чтение - состояние, проверяем пуллингом и пишем когда свободно.

так и непонял, прицепился файл или нет...
вот я его загрузил:
forum-Z5R3AB2N50-1046.rar

ПОМОГИТЕ С USB-клавиатурой! дайте пример как с неё ввод делать !!!
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 20.04.2010 15:24 Сообщение: 25
Pavel Ivanchenko
Admin
4.39

Пункты: 91430
Регистрация: 24.03.2009
Пол: Мужчина
Цитата
ПОМОГИТЕ С USB-клавиатурой! дайте пример как с неё ввод делать !!!
Ввод-вывод по умолчанию идет на /dev/tty1 ...
Сейчас подключил SK-WF43...-Plug, тыкаю на кнопки USB беспроводной клавиатуры, вижу реакию на экране ...
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.04.2010 16:07 Редактировалось 20.04.2010 16:34 Сообщение: 26
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
У usb клавы создается 2 устройства на одном из котрых raw ввод текстовый. Например у меня на ноуте после подключения внешней клавы usb:
Код

usb 3-1: new low speed USB device using uhci_hcd and address 3
input: HID 0566:3002 as /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input7
generic-usb 0003:0566:3002.0002: input: USB HID v1.10 Keyboard [HID 0566:3002] on usb-0000:00:1d.2-1/input0
input: HID 0566:3002 as /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.1/input/input8
generic-usb 0003:0566:3002.0003: input,hiddev0: USB HID v1.10 Device [HID 0566:3002] on usb-0000:00:1d.2-1/input1


Проверяем на /dev/input/event7
Код

# cat /dev/input/event7
a&#65533;&#65533;K&#65533;7a&#65533;&#65533;K&#65533;7 a&#65533;&#65533;K&#65533;7da&#65533;&#65533;K<pa&#65533;&#65533;KJp a&#65533;&#65533;KNpd&#65533;&#65533;K7&#65533; d&#65533;&#65533;KH&#65533;!d&#65533;&#65533;KL&#65533;fd&#65533;&#65533;K&#65533;&#65533; d&#65533;&#65533;K!d&#65533;&#65533;K&#65533;&#65533;^C

идет куча информации при нажатии. Проверяем на втором устройстве:
Код

# cat /dev/input/event8
qwertyuiop^C

Хопс - а тут прямо готовые коды символов :)

PS в linux/Documentation/input неожиданно много документации по этому вопросу, надо бы мне тоже почитать, интересная и насущная тема...
Спуститься к концу Подняться к началу
Персональная информация
sherr
Добавлено 20.04.2010 21:40 Сообщение: 27
sherr
0

Пункты: 6512
Регистрация: 02.11.2009
Возникла загвоздка в генерации синхросигналов для панели.
DCLK который 40МГц я сообразил с помощью DCM_SP в ISE. А вот как изобразить вертикальную и горизонтальную синхры(38кГц и 60Гц соответственно) не знаю. Или может быть они вычисляются как нить из потока данных? не подскажите?

Вот простой синхрогенератор из FPGA4FUN.com
(в моем первом проектике "зловещие клеточки"
для SK-M-XC3S50AN)
Спуститься к концу Подняться к началу
Персональная информация
sherr
Добавлено 20.04.2010 21:46 Сообщение: 28
sherr
0

Пункты: 6512
Регистрация: 02.11.2009
Вот простой синхрогенератор из FPGA4FUN.com
(в моем первом проектике "зловещие клеточки"
для SK-M-XC3S50AN)[/quote]
*******************************************
Вот блин файл не прикрепился

hvsg.v----

module hvsg(clk, clk25, vga_h_sync, vga_v_sync, inDisplayArea, CounterX, CounterY);
input clk;
output vga_h_sync, vga_v_sync;
output inDisplayArea;
output [9:0] CounterX;
output [9:0] CounterY;
output clk25;
//////////////////////////////////////////////////
reg clk25;
always @(posedge clk)
clk25 = ~(clk25);
//wire clk25;
//BUFG bufg_inst(clk25, clk25_int);



reg [9:0] CounterX;
reg [9:0] CounterY;
wire CounterXmaxed = (CounterX==799);

always @(posedge clk25) begin
if (CounterXmaxed)
CounterX <= 0;
else
CounterX <= CounterX + 1;
end




always @(posedge clk25) begin
if(CounterXmaxed) begin
if(CounterY == 520)
CounterY <= 0;
else
CounterY <= CounterY + 1;
end
end







reg vga_HS, vga_VS;
always @(posedge clk25)
begin
vga_HS <= ~(CounterX > 664 && CounterX <= 759); // active for 96 clocks
vga_VS <= ~(CounterY == 490 || CounterY == 491); // active for lines 490 and 491
end

reg inDisplayArea;
always @(posedge clk25)

inDisplayArea <= ((CounterX<640) && (CounterY<480));

assign vga_h_sync = vga_HS;
assign vga_v_sync = vga_VS;

endmodule

и к нему - еще pong.v

module pong(clk, vga_h_sync, vga_v_sync, vga_R, vga_G, vga_B, Ledcont);
input clk;
output vga_h_sync, vga_v_sync, vga_R, vga_G, vga_B, Ledcont;


wire inDisplayArea;
wire [9:0] CounterX;
wire [8:0] CounterY;

hvsg syncgen(.clk(clk),.clk25(clk25), .vga_h_sync(vga_h_sync), .vga_v_sync(vga_v_sync),
.inDisplayArea(inDisplayArea), .CounterX(CounterX), .CounterY(CounterY));

/////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////
reg [9:0] Timer1;
wire clk1 = (vga_v_sync == 0);
reg Ledcont;
always @( posedge clk1)
Timer1 <= Timer1 + 1;

reg vga_R,vga_G,vga_B;
always @(posedge clk25 )
begin
case (Timer1[9:7])
3'b000 : vga_G <=(CounterX[0]^CounterY[0])& inDisplayArea ;
3'b001 : vga_G <=(CounterX[1]^CounterY[1])& inDisplayArea ;
3'b010 : vga_G <=(CounterX[2]^CounterY[2])& inDisplayArea ;
3'b011 : vga_G <=(CounterX[3]^CounterY[3])& inDisplayArea ;
3'b100 : vga_G <=(CounterX[4]^CounterY[4])& inDisplayArea ;
3'b101 : vga_G <=(CounterX[5]^CounterY[5])& inDisplayArea ;
3'b110 : vga_G <=(CounterX[6]^CounterY[6])& inDisplayArea ;
3'b111 : vga_G <=(CounterX[7]^CounterY[7])& inDisplayArea ;

endcase
vga_R <= Timer1[6] & inDisplayArea;

vga_B <= Timer1[8]& inDisplayArea;
Ledcont <= Timer1[8];
end

endmodule
Спуститься к концу Подняться к началу
Персональная информация
Geban
Добавлено 20.04.2010 23:46 Сообщение: 29
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
спасибо, щас покурю Ваш пример :)
Спуститься к концу Подняться к началу
Персональная информация
Vasily_A
Добавлено 26.04.2010 11:36 Сообщение: 30
Vasily_A
0

Пункты: 33
Регистрация: 17.02.2010
[quote]У usb клавы создается 2 устройства на одном из котрых raw ввод текстовый. Например у меня на ноуте после подключения внешней клавы usb:
Код

usb 3-1: new low speed USB device using uhci_hcd and address 3
input: HID 0566:3002 as /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input7
generic-usb 0003:0566:3002.0002: input: USB HID v1.10 Keyboard [HID 0566:3002] on usb-0000:00:1d.2-1/input0
input: HID 0566:3002 as /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.1/input/input8
generic-usb 0003:0566:3002.0003: input,hiddev0: USB HID v1.10 Device [HID 0566:3002] on usb-0000:00:1d.2-1/input1

[/quote]

вот что выдает плата при втыкании клавиатуры:
usb 1-1: new low speed USB device using at91_ohci and address 3
usb 1-1: configuration #1 chosen from 1 choice
input: HID 0566:3002 as /class/input/input2
input: USB HID v1.10 Keyboard [HID 0566:3002] on usb-at91-1
input: HID 0566:3002 as /class/input/input3
input: USB HID v1.10 Device [HID 0566:3002] on usb-at91-1

пробую cat /dev/input/event2 или 3 - толка нет...

может именно на том образе, что с платой поставляется чего не хватает?
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux