034_038.pdf
(
1160 KB
)
Pobierz
PROJEKTY
Tester monitorów VGA
Tester monitorów VGA,
część 2
AVT–979
Blok generatora obrazu kraty
Blok ten, oprócz obrazu kraty
o regulowanej wielkości oczek, wy-
twarza również obraz kropek oraz
umożliwia uzyskanie jednorodnego tła
o trzech kolorach podstawowych oraz
w kolorze białym. Poziom wysoki na
wejściu
BLNAK
powoduje wyzerowa-
nie wyjść
R
,
G
,
B
bloku (wygaszenie
obrazu). Wejście
LP
steruje rodzajem
obrazu wyświetlanego na ekranie:
dla
LP=0
wyświetlana jest krata, dla
LP=1
obraz kropek, pojawiających się
w miejscach skrzyżowania linii obrazu
kraty. Na 10–bitowe wejścia
cntx
,
cnty
podawane są z bloku wytwarzania
impulsów synchronizacji współrzędne
odpowiednio pozioma i pionowa ak-
tualnie wybieranego punktu. Wejście
LSize
określa rozmiar (w punktach)
oczka obrazu kraty lub gęstość kro-
pek, a stan wejścia
PCol
wyznacza
kolor (czerwony, zielony, niebieski lub
biały) punktu na ekranie. Gdy
LSize-
=1
, wówczas uzyskuje się jednorod-
ny obraz o kolorze zależnym od stanu
wejścia
PCol
. Znaczenie wejść
MaxX
oraz
MaxY
jest identyczne jak dla
bloku wytwarzania impulsów synchro-
nizacji. Kod opisujący działanie bloku
generatora obrazu kraty przedstawiono
na
list. 4
.
W dobie powszechnego
korzystania z komputerów PC
równie powszechne stało się
użycie współpracujących z nimi
monitorów VGA. Podczas
wszelkich prac serwisowych
związanych z ich naprawą
i regulacją, zarówno tradycyjnych
CRT, jak i LCD, szczególnie
przydatny może być specjalny
tester. Przedstawiona niżej
konstrukcja takiego przyrządu
zwraca uwagę m.in. ze względu
na wykorzystanie układów
programowalnych i języków opisu
sprzętu.
Rekomendacje:
tester trudno jest polecić
komuś, kto chce jednorazowo
wykonać naprawę monitora
komputerowego, dla serwisantów
robiących to na co dzień będzie
natomiast cennym wyposażeniem
stanowiska pracy.
liczbie aktywnych punktów w linii dla
danego trybu pracy podzielonej przez
8 (czyli całkowitą liczbę wyświetla-
nych pasów;
BCoef=A
H
/8
). Znaczenie
pozostałych wejść jest takie samo jak
dla bloku generatora kraty. Na
list. 5
przedstawiono kod w języku Verilog
opisujący działania bloku generatora
kolorowych pasów.
Blok wyświetlania informacji
na ekranie
Blok ten spełnia dwie zasadnicze
funkcje. Pierwsza z nich to funkcja
multipleksera przełączającego sygna-
ły RGB z bloku generatora kraty (dla
sygnału
gsw=0
) lub bloku generato-
ra pasów kolorowych (
gsw=1
). Druga
funkcja polega na dodaniu do obrazu
tekstowej informacji o bieżącej rozdziel-
czości obrazu i częstotliwości odświe-
żania. Informacja ta jest przechowy-
wana w postaci odpowiednio przygo-
towanej mapy bitowej w pamięci typu
Block RAM
zastosowanego w testerze
układu FPGA. W celu przygotowania
map bitowych, odpowiadających po-
szczególnym wyświetlanym napisom,
posłużono się specjalnie do tego celu
napisanym programem w języku C++,
który przekształca standardową (8–bi-
tową) mapę bitową Windows do po-
staci kodu w języku Verilog zawiera-
jącego sekwencję inicjującą zawartość
bloków pamięci
Block RAM
.
Na
list. 6
pokazano fragment
kodu opisujący moduł o nazwie
vi-
deo_rom
, który implementuje pamięć
obrazu z zawartością mapy bitowej
dla poszczególnych napisów. Wy-
korzystano tu elementy biblioteczne
o nazwie
RAMB16_S1
(dla rodziny
Spartan 3
firmy
Xilinx
) opisujące
bloki synchronicznej pamięci RAM
o organizacji 16384x1 bit. Inicjowanie
zawartości początkowej takiej pamięci
(ustalanej podczas konfiguracji układu
FPGA) polega na zdefiniowaniu sze-
regu atrybutów (dla bloku o nazwie
RAMB16_S1
dokładnie 64) rozpoczy-
nających się od słowa kluczowego
defparam
– tak jak wyróżniono to
na list. 6.
Blok generatora obrazu
kolorowych pasów
Jedynym zadaniem tego bloku
– jak sugeruje jego nazwa – jest wy-
twarzania obrazu kolorowych pasów.
Pasy są wyświetlane w typowym po-
rządku: biały, żółty, niebieskozielony,
zielony, karmazynowy, czerwony, nie-
bieski, czarny. Kolor pierwszego od
lewej pasa wyznacza wartość podana
na wejście
RGBInitColor
. Dla
RGBI-
nitColor=1
kolejność wyświetlanych
pasów jest taka, jak opisano to po-
wyżej, dla
RGBInitColor=2
obraz roz-
poczyna się od pasa o kolorze żółtym,
a kończy na pasie o kolorze białym,
itd. Wartość podana na wejście
BCoef
określa szerokość (w punktach) poje-
dynczego pasa. Wartość ta, zadawa-
na przez blok sterowania, jest równa
PODSTAWOWE PARAMETRY
• Płytka o wymiarach 95x74 mm
• Zasilanie: 6...8 VDC
• Pobór prądu: 118 mA/6 V
• Obrazy testowe: kolorowe pasy (8 kolo-
rów), krata, kropki, tło: czerwone, zielone,
niebieski, białe
• Rozdzielczości obrazu: 640x480, 800x600,
1024x768
• Częstotliwości odświeżania: 60 i 85 Hz
• Wyświetlanie dodatkowych informacji na
ekranie (OSD)
• Możliwość zmiany kolejności kolorów
w obrazie pasów
• Regulowana gęstość węzłów kraty
• Możliwość zmiany koloru obrazu kraty
i kropek (czerwony, zielony, niebieski, biały)
• Automatyczny tryb pracy (sekwencyjna
zmiana poszczególnych obrazów testowych)
34
Elektronika Praktyczna 5/2007
Tester monitorów VGA
Z kolei
list.
7
przedstawia opis sa-
mego modułu wyświetlania informa-
cji na ekranie, który odwołuje się do
wspomnianego powyżej modułu pa-
mięci obrazu.
List. 4. Opis bloku generatora kraty
module cross_hatch(input vga_clk,
input [10:0] cntx,cnty,MaxX,MaxY,LSize,
input BLANK,LP,
input [1:0] PCol,
output R,G,B);
reg [10:0] cx,cy;
reg [2:0] RGB;
wire eq_cx,eq_cy;
reg set_pixel;
reg [2:0] RGBColor;
assign eq_cx=(cntx==cx);
assign eq_cy=(cnty==cy);
//ustalenie koloru punktów
always @(PCol)
case(PCol)
2'b00: RGBColor=3'b111; //biały
2'b01: RGBColor=3'b100; //czerwony
2'b10: RGBColor=3'b010; //zielony
2'b11: RGBColor=3'b001; //niebieski
endcase
Blok sterowania
Zadaniem bloku sterowania jest
obsługa zdarzeń (zmiana trybu pra-
cy, zmiana położenia obrazu, zmiana
typu obrazu testowego, itp.) pocho-
dzących od użytkownika testera VGA,
posługującego się klawiaturą urządze-
nia oraz generowanie na tej podsta-
wie odpowiednich wartości parame-
trów, które następnie są odpowiednio
interpretowane przez pozostałe bloki
testera. Znaczenie poszczególnych
parametrów (sygnałów wyjściowych
bloku sterowania) zostało już wymie-
nione przy okazji omawiania innych
bloków testera.
Listing bloku sterowania, ze wzglę-
du na jego znaczną długość, nie zo-
stał tutaj pokazany, ale jest dostępny
w materiałach dodatkowych (CDEP4/
2007 i CDEP6/2007).
always @(posedge vga_clk)
if(BLANK) RGB<=0; // jeżeli BLANK wygaś obraz
else
if(cntx==0||cntx==MaxX||cnty==0||cnty==MaxY)
begin
RGB<=3'b100; //rysuj obramowanie obrazu
set_pixel<=0;
if(cntx==0) cx<=LSize;
if(cnty==0) cy<=LSize;
end
else
begin
if(eq_cx) cx<=cx+LSize;
if(eq_cy) begin cy<=cy+LSize; set_pixel<=1; end
//aktualizacja współrzędnych węzłów kraty
Układ elektryczny testera
Schemat elektryczny testera po-
kazano na
rys.
4
. W znacznej części
jest to standardowa aplikacja układu
XC3S200 (U1) wraz z pamięcią konfi-
guracji XCF01 (U2).
Do zasilania układu testera wybra-
no trzy stabilizatory LDO z rodziny
SPX1117 (układ FPGA wymaga trzech
napięć zasilających: 1,2 V, 2,5 V oraz
3,3 V). Dioda D1 zabezpiecza układy
testera przed skutkami odwrotnego
włączenia napięcia zasilania. Jako źró-
dło częstotliwości zegara zastosowano
generator kwarcowy (U3) o wartości
40 MHz. Wszystkie porty wejścia–wyj-
ścia układu FPGA zostały skonfiguro-
wane do pracy w standardzie LVTTL.
Diody LED D2...D9 sygnalizujące tryb
pracy testera są połączone poprzez
rezystory ograniczające prąd bezpo-
średnio do końcówek układu FPGA.
W celu dopasowania impedancji
charakterystycznej i amplitudy sygna-
łów wyjściowych RGB do wymogów
standardu VGA, zastosowano proste
dzielniki rezystancyjne złożone z rezy-
storów R1...R6. Alternatywnym sposo-
bem zapewnienia impedancji charak-
terystycznej 75 V dla sygnałów RGB
może być wykorzystanie obwodów
cyfrowego sterowania impedancją bu-
forów wyjściowych (DCI –
Digitally
Controlled Impedance
) zintegrowa-
nych w układzie XC3S200. Jednak ze
względu na trudności z jednoczesnym
if(LP) //jeżeli ma być obraz kropek
begin
if(eq_cx&set_pixel) RGB<=RGBColor;
else RGB<=3'b000;
end else
begin //obraz kraty
if(eq_cx|set_pixel) RGB<=RGBColor;
else RGB<=3'b000;
end
end
assign {R,G,B}=RGB;
endmodule
List. 5. Opis bloku generatora kolorowych pasów
module bars(input vga_clk,BLANK,
input [10:0] cntx,cnty,
input [2:0] RGBInitColor,
input [7:0] BCoef,
output reg R,G,B);
reg [7:0] r_cnt;
reg [2:0] RGB;
always @(posedge vga_clk)
if(BLANK)
begin RGB<=3'b000;r_cnt<=8'd0; end
else
begin
if(cntx==10'd0) RGB<=RGBInitColor;
//jeżeli współrzędna x=0 inicjuj kolor 1–szego pasa
if(r_cnt<BCoef) r_cnt<=r_cnt+1;
else begin r_cnt<=0; RGB<=RGB+1;end
//koniec szerokości pasa, zmiana koloru – następny pas
end
always @(RGB)
case(RGB)
3'b000: {R,G,B}=3'b000;
3'b001: {R,G,B}=3'b111;
3'b010: {R,G,B}=3'b110;
3'b011: {R,G,B}=3'b011;
3'b100: {R,G,B}=3'b010;
3'b101: {R,G,B}=3'b101;
3'b110: {R,G,B}=3'b100;
3'b111: {R,G,B}=3'b001;
endcase
//odwzorowanie kolejności kolorów wyświetlanych pasów
endmodule
Elektronika Praktyczna 5/2007
35
Tester monitorów VGA
zapewnieniem odpowiedniej amplitu-
dy sygnałów, z pomysłu tego zrezy-
gnowano.
Złącze J3 służy do konfiguracji
układu FPGA i programowania pamię-
ci
Falsh
(U2) poprzez interfejs JTAG.
Układ końcówek złącza jest kompaty-
bilny z oferowanym np. przez progra-
mator
UnISProg
opisany w EP1/2004,
który można zastosować do programo-
wania testera. Na złączu J4 dostępne
są dodatkowo 22 sygnały portów wej-
ścia–wyjścia układu FPGA, które mogą
być przydatne np. podczas testowania
i rozbudowy testera.
Rys. 4. Schemat elektryczny testera
36
Elektronika Praktyczna 5/2007
Tester monitorów VGA
List. 6. Fragment opisu modułu pamięci obrazu
module video_rom (input clk,
input [3:0] Mode,
input [13:0] addr,
output reg DO);
wire D1,D2,D3;
reg [13:0] addr_m;
always @(Mode)
case(Mode)
4'b0001: begin addr_m={1'b0,addr[12:0]}; DO=D1; end
4'b1001: begin addr_m={1'b1,addr[12:0]}; DO=D1; end
4'b0010: begin addr_m={1'b0,addr[12:0]}; DO=D2; end
4'b1010: begin addr_m={1'b1,addr[12:0]}; DO=D2; end
4'b0100: begin addr_m={1'b0,addr[12:0]}; DO=D3; end
4'b1100: begin addr_m={1'b0,addr[12:0]}; DO=D3; end
default: begin addr_m={1'b0,addr[12:0]}; DO=D1; end
endcase
//ustalenie adresu dla bloku pamięci oraz wybór wyjścia tego bloku
RAMB16_S1 RAMB1 (.DO(D1),.ADDR(addr_m),.CLK(clk),.DI(1'b0),.EN(1'b1),.SSR(1'b0),.WE(1'b0));
defparam RAMB1.INIT_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000;
defparam RAMB1.INIT_02 = 256'h00000000000000000000000000000000381C3E0780000F81F0700000F83803C0;
defparam RAMB1.INIT_03 = 256'h00000000000000000000000000000000381C7F0FE0001FC3F8780001FC3C07F0;
defparam RAMB1.INIT_04 = 256'h00000000000000000000000000000000381C771EE0001DC71C780001DC3C0F70;
defparam RAMB1.INIT_05 = 256'h00000000000000000000000000000000381CE38C700038E71C7C00038E3E0638;
defparam RAMB1.INIT_06 = 256'h000000000000000000000000000000FF381CE380700038E71C7C1C738E3E0038;
defparam RAMB1.INIT_07 = 256'h000000000000000000000000000000FF381CE387700038E3B8761C738E3B03B8;
defparam RAMB1.INIT_08 = 256'h000000000000000000000000000000E03FFCE38FF00038E1F0730EE38E3987F8;
defparam RAMB1.INIT_09 = 256'h000000000000000000000000000000703FFCE39EF00038E1F07307C38E398F78;
defparam RAMB1.INIT_0A = 256'h000000000000000000000000000000383FFCE39C700038E3B87187C38E38CE38;
defparam RAMB1.INIT_0B = 256'h0000000000000000000000000000003C381CE39C700038E71C70C3838E386E38;
defparam RAMB1.INIT_0C = 256'h0000000000000000000000000000001C381CE39C700038E71DFFC7C38EFFEE38;
defparam RAMB1.INIT_0D = 256'h0000000000000000000000000000000E381CE39C700038E71DFFC7C38EFFEE38;
defparam RAMB1.INIT_0E = 256'h00000000000000000000000000000007381C770EE0071DC7BC700EE1DC380770;
defparam RAMB1.INIT_0F = 256'h000000000000000000000000000000FF381C7F0FE0071FC3F8701C71FC3807F0;
defparam RAMB1.INIT_10 = 256'h000000000000000000000000000000FF381C3E0380070F81F0701C70F83801C0;
//...
//powyżej zapis mapy bitowej dla tekstu: 640x480, 60Hz
RAMB16_S1 RAMB2 (.DO(D2),.ADDR(addr_m),.CLK(clk),.DI(1'b0),.EN(1'b1),.SSR(1'b0),.WE(1'b0));
RAMB16_S1 RAMB3 (.DO(D3),.ADDR(addr_m),.CLK(clk),.DI(1'b0),.EN(1'b1),.SSR(1'b0),.WE(1'b0));
//konkretyzacja pozostałych bloków pamięci Block RAM
Montaż
Schemat montażowy płytki testera
pokazano na
rys.
5
. Elementy SMD
są montowane po obydwu stronach
płytki drukowanej. Na dolnej war-
stwie płytki, w pobliżu miejsca. gdzie
na górnej warstwie znajduje się układ
U1, montowane są kondensatory C11...
C21 z wyjątkiem kondensatora C15.
Z kolei rezystory R9...R13 są monto-
wane w pobliżu mikroprzełączników
S1...S5. Układ U1 można z dość do-
brym skutkiem przylutować do płytki
przy pomocy zwykłej stacji lutowni-
czej, usuwając miedzianą plecionką
(o handlowej nazwie „solder remover”)
nadmiar spoiwa. Plecionka powinna
być zwilżona w płynnym topniku.
List. 7. Opis bloku wyświetlania informacji na ekranie
module osd(input clk, inR1, inG1, inB1, inR2, inG2, inB2, gsw,
output outR, outG, outB,
input [10:0] cntx,cnty,
input [3:0] Mode);
reg [13:0] addr;
reg sw; wire DO;
reg R,G,B;
wire inR,inG,inB;
reg [10:0] osd_maxx;
video_rom b1(.DO(DO),.clk(clk),.addr(addr),.Mode(Mode));
always @(Mode)
case (Mode)
4'b0100: osd_maxx=11'd170;
4'b1100: osd_maxx=11'd170;
default: osd_maxx=11'd160;
endcase
//ustalenie współrzędnej x końca napisu
always @(posedge clk)
begin
if(cnty>11'd10&&cnty<11'd37)
begin //OSD aktywne dla współrzędnej y=11..36
if(cntx>=11'd21&&cntx<11'd277)
begin //OSD aktywne dla 256 kolejnych punktów
if(cntx<osd_maxx) sw=1; else sw=0;
//jeżeli x<osd_maxx wyświetlaj bitmapę
if(cnty>11'd13)
begin
if(DO) {R,G,B}<=3'b111;
//jeżeli odczytano 1 z pamięci – kolor punktu biały
else {R,G,B}<=3'b001; //w przeciwnym razie tło – kolor niebieski
addr<=addr+1; //zwiększ adres komórki pamięci
end
end
end else addr<=14'd0;
end
assign {inR,inG,inB}=gsw?{inR1,inG1,inB1}:{inR2,inG2,inB2};
assign {outR,outG,outB}=sw?{R,G,B}:{inR,inG,inB};
//realizacja multipleksera
endmodule
Obsługa testera
Po załączeniu zasilania tester jest
od razu gotowy do pracy, wytwarza-
jąc obraz kolorowych pasów w roz-
dzielczości VGA 640x480 i częstotli-
wości odświeżania 60 Hz. Na płytce
drukowanej zapalane są diody LED
obok odpowiedniego opisu, sygnali-
zując bieżący tryb pracy (diody D7...
D9 sygnalizują wybraną rozdzielczość
obrazu, diody D5, D6 – częstotliwość
odświeżania) oraz funkcję klawiszy
S1...S4 (diody D2...D4). Tuż po włą-
czeniu zasilania aktywna jest funkcja
Elektronika Praktyczna 5/2007
37
Tester monitorów VGA
a)
b)
Rys. 5. Schemat montażowy testera VGA a) widok górnej warstwy, b) widok dolnej warstwy
centrowania obrazu (zapalona dioda
D4). Kolejne naciskanie klawisza S5
(oznaczonego na płytce drukowanej
napisem „FUN.”) powoduje zmianę
funkcji kolejno na: wybór typu ob-
razu testowego (zapalona dioda D3
powyżej napisu „TYP”), wybór para-
metrów (trybu) pracy (zapalona dioda
D3 powyżej napisu „PAR.”) i ponow-
nie centrowanie obrazu.
Dla aktywnej funkcji centrowania,
uzyskany na ekranie obraz testowy
można przesuwać w górę lub w dół
(klawisze S4 lub S3) oraz w lewo lub
w prawo (klawisze S1 lub S2).
W przypadku funkcji wyboru rodza-
ju obrazu testowego klawisze S1...S4
pełnią funkcje opisane niżej. Klawi-
szem S1 możliwy jest wybór rodzaju
obrazu testowego: krata lub kolorowe
pasy. W przypadku obrazu kolorowych
pasów, klawiszami S4 i S3 można
zmieniać (cyklicznie przesuwać) ko-
lejność pasów. Klawisz S2 jest w tym
trybie nieaktywny. W przypadku ob-
razu kraty, gęstość linii kraty można
zwiększać lub zmniejszać (w stosunku
x2 dla każdego naciśnięcia klawisza)
za pomocą klawiszy S4 lub S3. Wie-
lokrotne naciskanie tych klawiszy spo-
woduje, że w końcu uzyskamy obraz
albo czarnego tła (na ekranie widocz-
na będzie czerwona ramka wyznacza-
jąca granice obrazu oraz w lewym,
górnym rogu ekranu, na niebieskim
tle będzie widniał biały tekst infor-
mujący o bieżącej rozdzielczości obra-
zu i częstotliwości odświeżania), albo
tła białego (maksymalne zagęszczenie
linii kraty). Zarówno kolor tego tła,
jak i kolor linii kraty (lub punktów)
można zmieniać naciskając klawisz
S2. Możliwy jest wybór koloru bia-
łego, czerwonego, zielonego lub nie-
bieskiego. Gdy wyświetlany jest obraz
kraty, jednoczesne naciśnięcie klawiszy
S4 i S2 (co praktycznie można zreali-
zować np. poprzez przytrzymanie kla-
wisza S4 i wciśnięcie S2) spowoduje
wyświetlenie obrazu kropek, których
kolor można zmieniać klawiszem S2.
Ponowne jednoczesne naciśnięcie kla-
wiszy S4 i S2 spowoduje powrót do
wyświetlania obrazu kraty.
Dla funkcji wyboru parametrów
obrazu, klawiszami S4 i S3 odpowied-
nio zwiększa się i zmniejsza rozdziel-
czość obrazu, a klawiszami S1 i S2
możliwa jest zmiana częstotliwości
odświeżania. Dla trybu pracy XGA
1024x768 dostępna jest tylko jedna
częstotliwość odświeżania – 60 Hz.
W przypadku, gdy klawisz funk-
cyjny S5 zostanie przytrzymany dłu-
żej (ok. 2 sekundy), diody D2...D4
będą zapalać się i gasnąć kolejno, aż
do momentu zwolnienia klawisza S5.
Jednocześnie tester przejdzie do auto-
matycznego trybu pracy, w którym są
zmieniane kolejno (w pętli) wszystkie
dostępne parametry obrazu: rozdziel-
czość, częstotliwość odświeżania, ro-
dzaj obrazu testowego, kolorowe pasy
przesuwane są cyklicznie w lewo lub
w prawo, obraz kraty zagęszcza się
lub rozrzedza, następuje przemiesz-
czanie obrazu w górę, w dół, w lewo,
w prawo, itd. W każdej chwili można
powrócić do „normalnego”, manualne-
go trybu pracy poprzez jednokrotne
naciśnięcie klawisza S5.
Podsumowanie
W przedstawionej wersji opisu
w języku Verilog, dla zrównoważonej
strategii optymalizacji pomiędzy mak-
symalizacją szybkości działania i mini-
malizacją powierzchni, implementacja
testera zajmuje 381 bloków logicznych
slice
spośród 1920 (19%) dostępnych
w układzie XC3S200. Pozostaje wiec
jeszcze bardzo dużo wolnych zaso-
bów, które można wykorzystać przy
rozbudowie projektu testera. Dodatko-
wo, zamiast układu XC3S200 można
byłoby zastosować „mniejszy” (tańszy)
układ XC3S50 (architektura wypro-
wadzeń wszystkich układów
Spartan
3
w takich samych obudowach jest
identyczna, dzięki czemu przy zmia-
nie układu nie trzeba zmieniać pro-
jektu płytki ani przypisań numerów
końcówek dla portów wejścia/wyjścia),
jednak układ ten posiada tylko jeden
moduł DCM, w związku z czym do
obsługi więcej niż 2 trybów pracy te-
stera niezbędne byłoby zastosowanie
kilku zewnętrznych generatorów tak-
tujących o odpowiedniej częstotliwości
punktu.
Zbigniew Hajduk
Politechnika Rzeszowska
38
Elektronika Praktyczna 5/2007
Plik z chomika:
abooki
Inne pliki z tego folderu:
001.pdf
(461 KB)
005.pdf
(2275 KB)
006_007.pdf
(8111 KB)
010_015.pdf
(2379 KB)
017_022.pdf
(2078 KB)
Inne foldery tego chomika:
01.07
02.07
03.07
04.07
06.07
Zgłoś jeśli
naruszono regulamin