Hallo, guten Tag. In der Beschreibung finde ich je Farbe 4 Pins also insgesamt 14 Pins mit Vert. und Hor. Daneben in der Abbildunf sind nur 5 Verschaltungssymbole : R/G/G und V/H. Wofür sind bitte die 4 Pins für einen Farbwert? Danke. Gruss
Damit du mehr als 8 Farben hast. Mit jeweils 4 Pins hat du 16x16x16 Farben zur Verfügung. Die vier Pins kannst über geeignet abgestufte Widerstände als simplen DAC zusammenführen, wie es z.B. hier gemacht wurde: http://retroramblings.net/?p=190
Jup danke. Habe für mein Board eine Pin-Zuweisung gemacht. Wurde fehlerfrei comnpiliert. Der Bildschirm schaltet auf 640x480 um, bleibt aber dunkel. Ist das richtig, wenn ja, wie bekomme ich jetzt einfach mal einen Querbalken? Danke. GRuss
@ Peter Bierbach (funkheld) >Der Bildschirm schaltet auf 640x480 um, bleibt aber dunkel. Wenn man kein Signal ausgibt ist das nur logisch. >Ist das richtig, wenn ja, wie bekomme ich jetzt einfach mal einen >Querbalken? Dann musst du auf deinen Zeilenzähler "schauen" und während Zeile X-Y an den RGB Daten ein Signal anlegen.
Hallo, guten Tag.
Das müßte doch der X-Y-Zähler sein , oder:
-------------------------
process (clk25)
begin
if clk25'event and clk25 = '1' then
if hcounter<640 then
if vcounter < 240 then
blue_out<='1';
else
blue_out<='0';
end if;
if vcounter > 120 and vcounter < 360 then
green_out<='1';
else
green_out<='0';
end if;
else
blue_out<='0';
green_out<='0';
end if;
end if;
end process;
-------------------------------
Danke.
Gruss
Hallo, müßte der Counter hier nicht bis 639 bzw 479 gehen ? Dieses steht dort drin: --------------------- signal hcounter : unsigned (9 downto 0):=to_unsigned(0,10); signal vcounter : unsigned (9 downto 0):=to_unsigned(0,10); --------------------- Danke. Gruss
War falsch da oben, hat nur "0" bis "10".
Aber es kommt kein Bild mit dem Balken.
Habe die Pins vom DE1 zugewiesen und funktioniert nicht:
set_location_assignment PIN_A9 -to blue_out
set_location_assignment PIN_L1 -to clk50_in
set_location_assignment PIN_B8 -to green_out
set_location_assignment PIN_A11 -to hs_out
set_location_assignment PIN_D9 -to red_out
set_location_assignment PIN_B11 -to vs_out
-------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.ALL;
entity vga_timing is
port(
clk50_in : in std_logic;
red_out : out std_logic;
green_out : out std_logic;
blue_out : out std_logic;
hs_out : out std_logic;
vs_out : out std_logic);
end vga_timing;
architecture behavioral of vga_timing is
signal clk25 : std_logic:='0';
signal hcounter : unsigned (9 downto 0):=to_unsigned(0,10);
signal vcounter : unsigned (9 downto 0):=to_unsigned(0,10);
begin
-- generate a 25Mhz clock
process (clk50_in)
begin
if clk50_in'event and clk50_in='1' then
clk25 <= not clk25;
end if;
end process;
process (clk25)
begin
if clk25'event and clk25 = '1' then
if vcounter<480 then
if hcounter < 320 then
red_out<='1';
else
red_out<='0';
end if;
else
red_out<='0';
end if;
end if;
end process;
process (clk25)
begin
if clk25'event and clk25 = '1' then
if hcounter<640 then
if vcounter < 240 then
blue_out<='1';
else
blue_out<='0';
end if;
if vcounter > 120 and vcounter < 360 then
green_out<='1';
else
green_out<='0';
end if;
else
blue_out<='0';
green_out<='0';
end if;
end if;
end process;
process (clk25)
begin
if clk25'event and clk25 = '1' then
if hcounter >= (639+16) and hcounter <= (639+16+96) then
hs_out <= '0';
else
hs_out <= '1';
end if;
if vcounter >= (479+10) and vcounter <= (479+10+2) then
vs_out <= '0';
else
vs_out <= '1';
end if;
-- horizontal counts from 0 to 799
hcounter <= hcounter+1;
if hcounter = 799 then
vcounter <= vcounter+1;
hcounter <= to_unsigned(0,10);
end if;
-- vertical counts from 0 to 524
if vcounter = 524 then
vcounter <= to_unsigned(0,10);
end if;
end if;
end process;
end behavioral;
------------------------------
Danke.
Gruss
Das DE1 hat einen simplen 4 bit DAC in Form einen Widerstandnetzwerkes für die Farben am VGA Port. Wenn du nur ein Bit und obendrein das niederwertigste ansteuerst wird das Bild einfach zu dunkel sein, als dass du etwas sehen kannst.
Hmmm..., mit den Farbvectoren läuft jetzt dieses VGA-Programm.
Habe jetzt die Farbwerte je Farbe in 4 Vectoren gepackt für das DE1.
Das Programm, welches nach Pinbelegung funktioniert :
-----------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.ALL;
entity vga_timing is
port(
clk50_in : in std_logic;
hs_out : out std_logic;
vs_out : out std_logic;
red_out : OUT STD_LOGIC_VECTOR(3 downto 0);
green_out : OUT STD_LOGIC_VECTOR(3 downto 0);
blue_out : OUT STD_LOGIC_VECTOR(3 downto 0)
);
end vga_timing;
architecture behavioral of vga_timing is
signal clk25 : std_logic:='0';
signal hcounter : unsigned (9 downto 0):=to_unsigned(0,10);
signal vcounter : unsigned (9 downto 0):=to_unsigned(0,10);
begin
-- generate a 25Mhz clock
process (clk50_in)
begin
if clk50_in'event and clk50_in='1' then
clk25 <= not clk25;
end if;
end process;
process (clk25)
begin
if clk25'event and clk25 = '1' then
if vcounter<480 then
if hcounter < 320 then
red_out<="1000";
else
red_out<="0000";
end if;
end if;
end if;
end process;
process (clk25)
begin
if clk25'event and clk25 = '1' then
if vcounter<480 then
if (hcounter > 320 and hcounter < 640) then
green_out<="1000";
else
green_out<="0000";
end if;
end if;
end if;
end process;
process (clk25)
begin
if clk25'event and clk25 = '1' then
if hcounter >= (639+16) and hcounter <= (639+16+96) then
hs_out <= '0';
else
hs_out <= '1';
end if;
if vcounter >= (479+10) and vcounter <= (479+10+2) then
vs_out <= '0';
else
vs_out <= '1';
end if;
-- horizontal counts from 0 to 799
hcounter <= hcounter+1;
if hcounter = 799 then
vcounter <= vcounter+1;
hcounter <= to_unsigned(0,10);
end if;
-- vertical counts from 0 to 524
if vcounter = 524 then
vcounter <= to_unsigned(0,10);
end if;
end if;
end process;
end behavioral;
---------------------------------------
Hier die Pinbelegung gemäß Programm:
---------------------------------------
set_location_assignment PIN_L1 -to clk50_in
set_location_assignment PIN_A11 -to hs_out
set_location_assignment PIN_B11 -to vs_out
set_location_assignment PIN_A9 -to blue_out[0]
set_location_assignment PIN_D9 -to red_out[0]
set_location_assignment PIN_B8 -to green_out[0]
set_location_assignment PIN_B10 -to blue_out[3]
set_location_assignment PIN_A10 -to blue_out[2]
set_location_assignment PIN_A8 -to green_out[3]
set_location_assignment PIN_B9 -to green_out[2]
set_location_assignment PIN_C10 -to green_out[1]
set_location_assignment PIN_B7 -to red_out[3]
set_location_assignment PIN_A7 -to red_out[2]
set_location_assignment PIN_C9 -to red_out[1]
set_location_assignment PIN_D11 -to blue_out[1]
--------------------------------------------
Gruss
Peter Bierbach schrieb: > Das Programm Verwendest du VHPL? Liest du eigentlich die Antworten auf deine Posts?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.