Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

gen4ik

Doppel-As

Dabei seit: 08.09.2010

Beiträge: 126

 

1 Zum Seitenanfang

Mittwoch, 15. Juni 2011, 21:02

videokamera marke eigenbau

Will main neues Projekt vorstellen "videokamera marke eigenbau" :)

Kleine beschreibung
128x64
16bit Farbe
~1 fps

zu zeit keine flashkarte vorhanden

Display Siemens S65
176x132
16bit farbe

Kamera modul :
TCM8230MD von Toshiba
640x480
16 bit Farbe
30 fps max

MCU
AT32UC3A
66 Mhz leuft mit 84 mhz
PBA und PBB auch mit 84 Mhz
64 kb Ram

Zu den Problemmen
Kameramodul Braucht 11 bis 24 Mhz , bei 20 Mhz kommt 30 fps raus . Bei mir leuft Kameramodul unter 1 Mhz .
~1 Mhz wird per PWM erzeugt
Takt von der kamera wird per NMI Interrupt abgefangen.Horizontaltakt wird won GPIO Interrupt abgefangen, So wie Vertikaltakt





Quelcode:
kamera.tar.bz2
В нас часто проявляется плебейство.Ну, что ж, один - атлет, другой - Атлант.Несовместимы Гений и Злодейство,Но совместимы зависть и талант.
 

J-W

König

Dabei seit: 29.11.2009

Beiträge: 771

 

2 Zum Seitenanfang

Mittwoch, 15. Juni 2011, 21:48

Aber bitte nicht wieder jede Änderungen in einen neuen Post packen...editieren reicht völlig.
Vor allem weil wir uns hier primär in einem Webmaster-Forum befinden und nicht in einem Elektronik-Forum.
 

Dabei seit: 31.01.2010

Beiträge: 930

 

3 Zum Seitenanfang

Mittwoch, 15. Juni 2011, 21:55

Webmaster-Forum hin oder her, hier dreht sich ja nur noch ein Bruchteil um's WWW. Meiner Meinung nach passt das sogar noch viel eher zu einen Webmaster als Spiele der Call of Duty oder Battlefield Serie hier im Forum.
Zurück zu deinen Projekt, gen4ik. Auch wenn ich mich nicht viel mit Kameras befasst habe und wenig Erfahrung in den Bereich besitze, kann ich dir aber anvertrauen, dass deine Eigenbau-Webcam sehr interessant ist. Es ist zwar kein neuer Meilenstein, aber immerhin ein kleiner Beweis deiner Geschicklichkeit, dass du das Zeug dazu hast.
Ich kann nur sagen, weiter so! ;)
UbuntuSource - Aktuelle News und Howto's rund um Ubuntu!
 

gen4ik

Doppel-As

Dabei seit: 08.09.2010

Beiträge: 126

 

4 Zum Seitenanfang

Mittwoch, 15. Juni 2011, 22:26

danke danke
Zu den webmasterforum und sonstige programmiersprachen
Ich habe das alles durch foren und Internet gelernt und ich weiß aus erfahrung um interessanter aufgabe ist um so besser steiget man sich rein.
und in Mikrokontroller.net komt das auch rein wenn das Programm besser aussiet jezt ist das noch in entwiklung

Webcam passt doch zu webmaster forum. Usb hat das ding auch :)
В нас часто проявляется плебейство.Ну, что ж, один - атлет, другой - Атлант.Несовместимы Гений и Злодейство,Но совместимы зависть и талант.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »gen4ik« (15. Juni 2011, 22:26)

 

Dabei seit: 31.01.2010

Beiträge: 930

 

5 Zum Seitenanfang

Donnerstag, 16. Juni 2011, 21:48

Jau, halt mich mal auf den neusten Stand. ;)
UbuntuSource - Aktuelle News und Howto's rund um Ubuntu!
 

gen4ik

Doppel-As

Dabei seit: 08.09.2010

Beiträge: 126

 

6 Zum Seitenanfang

Donnerstag, 16. Juni 2011, 23:15

Kleine Beschreibung von der Kamera
TCM8230 hat ein 8 bit Daten bus und 3 Clock signelae HD Horizontal,VD Vertikal ,DClock sehe bild, Farbe besteht aus 16 bit 5:6:5 RGB also braucht die 2 Takte um ein Pixel aus zu geben.
Laut Datenblat barucht die von 11.8 Mhz bis 27 Mhz takt Typ. 24,54 Mhz , bei mir leuft die knap unter 1 Mhz also 84/2/50 820000 Hz



Warum Das so langsam ist
1:Interrupt ist zu langsam besser gesagt es vergehen viele takte bis er registriert wird sehe bild


2:Flash ist auch nicht das schnellste Mainclock/2 also 41 Mhz
Mann kann Programm ins Ram laden und von da ausführen ,nur ich kann das zur zeit nicht und so viel ram habe ich nicht zu verfügung
3:GPIO controller braucht auch zwei takte bis er die Daten auslesen kann"so weit ich das verstanden habe" .Man kann Pins direct mit CPU auslesen aber nocht nicht dazu gekommen.
Beim Pins ausgang ist definitiv daß 2 Clocks vergehen bis es auf High ode Low steht

4:Um vollen Auflösung zu erreichen braucht man 640x480x2 byte also 600 kb UC3A hat nur 64 kb Ram


Jetzt zu den Ideen
1.LPC2138 hat schnelleres Flash aber weniger Ram nur 32 kb. Ich versuche externes Ram anzuschlissen und die Daten von der Kamera ins Ram direkt zu speichern ohne dabei cpu zu belasten
und aus den zweiten Ram chip wird dann gelesen .Ob das klapt weiß ich noch nicht

2:Es giebt schnellere MCU´s AVR32AP7000, AT91SAM9 und so weiter. Die besizen Ram controller, sind natürlich viel schwireger zu programmieren
AT32AP7000 Kann man mit 150 Mhz takten bei SAM9 180 Mhz bis 533 Mhz .Bei manche SAM´s giebs extra Kamera interface die für sowas gedacht ist .

Jetzt bin ich dabei Toolchain fur AP7000 zu konfigurieren hat auch alles geklapt so weit ,grade auch avr32Program zum laufen gebracht.
Erste aufgabe ist die Led an den Board blinkenzu lassen, Interrupts ,PWM gehört auch dazu .
В нас часто проявляется плебейство.Ну, что ж, один - атлет, другой - Атлант.Несовместимы Гений и Злодейство,Но совместимы зависть и талант.
 

gen4ik

Doppel-As

Dabei seit: 08.09.2010

Beiträge: 126

 

7 Zum Seitenanfang

Freitag, 17. Juni 2011, 09:14

einfach so von freak zu freak
verrate dir das es blinkt
ich bin so froh wie kleines kind
ob das hier was besonders ist
Ich weiß wohl das nur lampe ist.

led.tar.bz2
В нас часто проявляется плебейство.Ну, что ж, один - атлет, другой - Атлант.Несовместимы Гений и Злодейство,Но совместимы зависть и талант.
 

gen4ik

Doppel-As

Dabei seit: 08.09.2010

Beiträge: 126

 

8 Zum Seitenanfang

Sonntag, 19. Juni 2011, 21:28

Mit AP klapt das leider nicht weil am Board keine Interrupts pins ausgeführt sind, schade aber so schnell gebe ich nicht auf:)

hier ist programm wie weit ich kamm bis ich gesehen habe das die pins fehlen
led.tar.bz2

hier das neue program von UC3A
kamera.tar.bz2

Leider mit UC3A komme ich nicht über 1 Mhz Takt . Ich habe die Interrupt Routine ins Ram geladen aber viel schneller ist nicht geworden.
Denke das ich schon an der Grenze von dem Chip bin kann aber falsh liegen.

Ah so AP hat auch Kamera interface aber die ist auch nicht ausgeführt :S
В нас часто проявляется плебейство.Ну, что ж, один - атлет, другой - Атлант.Несовместимы Гений и Злодейство,Но совместимы зависть и талант.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »gen4ik« (19. Juni 2011, 21:28)

 

gen4ik

Doppel-As

Dabei seit: 08.09.2010

Beiträge: 126

 

9 Zum Seitenanfang

Montag, 27. Juni 2011, 10:45

Bugs :
Bei der Kamera in Register 1E

D_MASK 7:6 bits auf 0
CODESW 5 bit auf 0
CODESEL 4 bit auf 0
HSYNCSEL 3 bit auf 1
TESTPIC 2 bit auf 0
PICSEL 1:0 bits auf 0

C/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ant=i2c_send(0x3C,0x2,0x0);
	if(ant!=0)
	{
		print_char(ant,10,"I2C cmd1 Error");
		led_blink();
	}
	ant=i2c_send(0x3C,0x3,0x2);
	if(ant!=0)
	{
		print_char(ant,10,"I2C cmd2 Error");
		led_blink();
	}
	if(i2c_send(0x3C,0x1E,0b00001000)!=0)//0x8
	{
		lcd_print(5,10,lcd_rgb(0xFF,0,0),0xFFFF,(unsigned char *)"Error Send i2c");
		led_blink();
	}


Bei I2C.c sind start und End sequenzen falsch
Hier die neue Version, Timing kann bis 10 us runter

C/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#define I2C_DELAY 1000
#define I2C_DELAY_ON 20

void i2c_gpio_install(void)
{
	volatile avr32_pio_t *pioa = &AVR32_PIOA;
	
	//I2C***************************************************************
	pioa->per = I2C_PIN_MASK;//PIO Enable Register
	pioa->sodr = I2C_PIN_MASK;//I2C Data & Clk ON
	pioa->oer = I2C_PIN_MASK;//Output enable Register ODR
	
	//******************************************************************
	
}

char i2c_send(unsigned char device_adresse,unsigned char device_reg,unsigned char data)
{
	unsigned char i=0,dd=0x40;
	volatile avr32_pio_t *pioa = &AVR32_PIOA;
	char ret=0;
	
	
	
	
	
	pioa->codr = I2C_SDA_MASK;//Data Off
	udelay(I2C_DELAY_ON);
	pioa->codr = I2C_SCL_MASK;//Clock Off
	udelay(I2C_DELAY);

	//Send addresse
	dd=0x40;
	for (i=0;i<7;i++)
	{
		if(dd & device_adresse)
			pioa->sodr = I2C_SDA_MASK;// Set Output Data Register
		else
			pioa->codr = I2C_SDA_MASK;// Set Output Data Register

		pioa->sodr = I2C_SCL_MASK;// Clock On
		udelay(I2C_DELAY);//tHIGH
		pioa->codr = I2C_SCL_MASK;// Clock Off
		udelay(I2C_DELAY);//tLOW
		dd=(dd>>1);
	}
	//Bit Read/Write Read=>1 Write=>0
	pioa->codr = I2C_SDA_MASK;//Write SDA=1
	pioa->sodr = I2C_SCL_MASK;//Clock On
	udelay(I2C_DELAY);
	pioa->codr = I2C_SCL_MASK;//Clock Off
	udelay(I2C_DELAY);

	//ACK ->
	//Acknowledge: SDA line is low while the SCL line is high at the 9 th clock cycle
	pioa->sodr = I2C_SDA_MASK;//Data on
	pioa->odr = I2C_SDA_MASK;//Output disdable Register ODR
	pioa->sodr = I2C_SCL_MASK;//Colck On
	udelay(I2C_DELAY);
	if(pioa->pdsr & I2C_SDA_MASK)
	{
		pioa->oer=I2C_SDA_MASK;//Output enable DATA
		pioa->sodr = I2C_SCL_MASK;//Colck On
		udelay(I2C_DELAY_ON);
		pioa->sodr = I2C_SDA_MASK;//Data on
		return 1;
	}
	pioa->codr = I2C_SCL_MASK;//Clock Off
	pioa->oer=I2C_SDA_MASK;//Output enable DATA
	udelay(I2C_DELAY);


	//send Register auf dem Chip
	dd=0x80;
	for (i=0;i<8;i++)
	{
		if(dd & device_reg)
			pioa->sodr = I2C_SDA_MASK;//Data On
		else
			pioa->codr = I2C_SDA_MASK;//Data Off
		pioa->sodr = I2C_SCL_MASK;//Clock On
		udelay(I2C_DELAY);
		pioa->codr = I2C_SCL_MASK;//Clock Off
		udelay(I2C_DELAY);
		dd=(dd>>1);
	}
	
	//ACK ->i2c_send
	//Acknowledge: SDA line is low while the SCL line is high at the 9 th clock cycle
	pioa->sodr = I2C_SDA_MASK;//Data on
	pioa->odr = I2C_SDA_MASK;//Output disdable Register ODR
	pioa->sodr = I2C_SCL_MASK;//Colck On
	udelay(I2C_DELAY);
	if(pioa->pdsr & I2C_SDA_MASK)
	{
		pioa->oer=I2C_SDA_MASK;//Output enable DATA
		pioa->sodr = I2C_SCL_MASK;//Colck On
		udelay(I2C_DELAY_ON);
		pioa->sodr = I2C_SDA_MASK;//Data on
		return 2;
	}
	pioa->codr = I2C_SCL_MASK;//Clock Off
	pioa->oer=I2C_SDA_MASK;//Output enable DATA
	udelay(I2C_DELAY);

	//Daten senden
	dd=0x80;
	for (i=0;i<8;i++)
	{
		if(dd & data)
			pioa->sodr = I2C_SDA_MASK;//Data On
		else
			pioa->codr = I2C_SDA_MASK;//Data Off
		pioa->sodr = I2C_SCL_MASK;//Clock On
		udelay(I2C_DELAY);
		pioa->codr = I2C_SCL_MASK;//Clock Off
		udelay(I2C_DELAY);
		dd=(dd>>1);
	}

	
	//ACK ->
	//Acknowledge: SDA line is low while the SCL line is high at the 9 th clock cycle
	pioa->sodr = I2C_SDA_MASK;//Data on
	pioa->odr = I2C_SDA_MASK;//Output disdable Register ODR
	pioa->sodr = I2C_SCL_MASK;//Colck On
	udelay(I2C_DELAY);
	if(pioa->pdsr & I2C_SDA_MASK)
	{
		pioa->oer=I2C_SDA_MASK;//Output enable DATA
		pioa->sodr = I2C_SCL_MASK;//Colck On
		udelay(I2C_DELAY_ON);
		pioa->sodr = I2C_SDA_MASK;//Data on
		return 3;
	}
	pioa->codr = I2C_SCL_MASK;//Clock Off
	pioa->oer=I2C_SDA_MASK;//Output enable DATA
	udelay(I2C_DELAY);



ENDE:
	pioa->sodr = I2C_SCL_MASK;//Colck On
	udelay(I2C_DELAY_ON);
	pioa->sodr = I2C_SDA_MASK;//Data on
	return ret;

}







void i2c_scann_devices(void)
{
	unsigned char i=0,ii=0;
	char buffer[40];

	for (i=0;i<128;i++)
	{
		if(i2c_send(i,0,0)==0)
		{
			sprintf(buffer,"Device Found: 0x%x",i);
			lcd_print(5,120-(ii*10),lcd_rgb(0,0xFF,0),0xFFFF,(unsigned char *)buffer);
			ii++;
		}
	}
}



edit:
und bei ACK muss SDL auf low und nicht auf hight wie bei mir
В нас часто проявляется плебейство.Ну, что ж, один - атлет, другой - Атлант.Несовместимы Гений и Злодейство,Но совместимы зависть и талант.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »gen4ik« (27. Juni 2011, 10:45)

 

gen4ik

Doppel-As

Dabei seit: 08.09.2010

Beiträge: 126

 

10 Zum Seitenanfang

Mittwoch, 27. Juli 2011, 20:15

mit LPC2138 ist die eingang frequenz auf 3mhz gestiegen und man kann es als video bezeichnen
hier board :
LPC_2138_v031.pdf

hier quelcode:
kamera.tar.bz2

in makefile sind volgende einstellungsmöglichkeiten:

THUMB = -mthumb oder -marm
thumb oder arm befehlsatz .

##VECTOR_LOCATION=VECTORS_IN_ROM
## - Exception vectors in RAM:
VECTOR_LOCATION=VECTORS_IN_RAM

IRQ tabelle in rom oder ram.

in extint.c ist function FIQ_Handler
void __attribute__ ((interrupt("FIQ"),long_call, section (".fastrun")))FIQ_Handler (void)
ist als .fastrun also befindet sich in ram
durch den eintrag in rom.lds datei und in start.s wird die function aus rom ins ram kopiert
.data : AT (_etext)
{
_data = .;
KEEP(*(.vectmapped)) /* mthomas: when code in ROM and vectors remapped */
. = ALIGN(4);
*(.fastrun) /* mthomas: for "RAMFUNC"<---- hier */
. = ALIGN(4);
SORT(CONSTRUCTORS) /* mt 4/2005 */
. = ALIGN(4);
*(.data)
*(.data.*)
*(.gnu.linkonce.d*)
. = ALIGN(4);
} > RAM

und ist in Start.s ist die sprungaddresse
__Vectors: LDR PC,Reset_Addr
LDR PC,Undef_Addr
LDR PC,SWI_Addr
LDR PC,PAbt_Addr
LDR PC,DAbt_Addr
NOP /* Reserved Vector */
LDR PC,IRQ_Wrapper_Addr
LDR PC,FIQ_Addr //<--- hier

was noch nicht leuft ist die anderen irqs
aber duch
if(FIOPIN0 & 32768)
und
if(!(FIOPIN0 & 1048576))
kann man auf irq verzichten
В нас часто проявляется плебейство.Ну, что ж, один - атлет, другой - Атлант.Несовместимы Гений и Злодейство,Но совместимы зависть и талант.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »gen4ik« (27. Juli 2011, 20:15)

 

Ähnliche Themen