Någon som har hållit på med DCMI förut?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
DanielM
Inlägg: 2312
Blev medlem: 5 september 2019, 14:19:58

Re: Någon som har hållit på med DCMI förut?

Inlägg av DanielM »

Jag har hittat en bra förklarande manual för OV7670. Jag laddar upp den här så den inte försvinner:
OV7670 Implementation Guide (V1.0).pdf
Den visar bland annat vilka register man ska välja, för att få en viss funktion. Jag har valt QVGA med 30 FPS och RGB för att QVGA har storleken 320x240, precis som min LCD har RGB. Sedan med RGB så kan man få YUV där Y är 8-bit
Skärmklipp.PNG
Formeln för att hitta Y
Skärmklipp.PNG
Okej! Då vet jag detta. Men vad är det mer jag behöver göra för OV7670?
Jag misstänker att jag måste sätta array control.
Skärmklipp.PNG
Och bestämma hur signalerna ska tolkas som.
Skärmklipp.PNG
Men jag kanske behöver bara använda standardinställningar för att få en bild? Eller hur?
Skärmklipp.PNG
Hur mycket data från jag nu från DCMI hos OV7670? Får jag EXAKT 320*240 bytes, eller får jag 320*240*2 bytes?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 917
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

Re: Någon som har hållit på med DCMI förut?

Inlägg av mankan »

Kameran stöder ju https://en.wikipedia.org/wiki/ITU-R_BT.656 aka CCIR-656, vilket är YUV422 så du kan slippa RGB->YUV
DanielM
Inlägg: 2312
Blev medlem: 5 september 2019, 14:19:58

Re: Någon som har hållit på med DCMI förut?

Inlägg av DanielM »

Men jag har en LCD ILI9341 som hanterar RGB färger. Därför måste kameran ge mig RGB. Men det där Y:et ska jag använda för bildigenkänning.
DanielM
Inlägg: 2312
Blev medlem: 5 september 2019, 14:19:58

Re: Någon som har hållit på med DCMI förut?

Inlägg av DanielM »

Här är min mätning på 24 MHz oscillatorn för OV7670. Matningen på oscillatorn är 3.3V.
Volts/Div är på 0.1V. Time/Div är på 0.2 uS.
IMG_20220509_112307_720.jpg
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4714
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Någon som har hållit på med DCMI förut?

Inlägg av Swech »

Det är nog rekord i mest antika oscilloskop... 20MHz
Har du inget bättre?

Swech
DanielM
Inlägg: 2312
Blev medlem: 5 september 2019, 14:19:58

Re: Någon som har hållit på med DCMI förut?

Inlägg av DanielM »

Nej. Jag har inge bättre. Men det viktigaste är att jag få en signal. Om det vore helt dött, ja då hade jag hittat min problemkälla. Men nu vet jag att det är inget problem. Så jag antar att oscillatorn är OK.

Edit:
Jag har uppmätt signalerna på OV7670 med oscilloskopet.

Kod: Markera allt

3.3V = Visar 3.3V
GND = Visar 0V.
SOIC = Ingen signal då jag inte har kopplat in klockan.
SOID = Ingen signal då jag har inte kopplat in data-linjen.
VSYNC = Jag får en signal från skåpet. Mest 0:or och någon 1:a
HREF = Jag får signal från skåpet. Mest 1:or och någon 0:a
PCLK = Hög signal på många MHz. Går knappt att se. Men signal ger den.
XCLK = Hög signal på många MHz. Går knappat att se. Men signal ger den.
D7 = Denna ger PWM signal. Denna påverkas inte av linsskyddet.
D6 = Denna ger PWM signal. Den går bara 0:or när kamerans linsskydd är ditsatt.
D5 = Denna ger PWM signal. Den går bara 0:or när kamerans linsskydd är ditsatt.
D4 = Denna ger PWM signal. Den går bara 0:or när kamerans linsskydd är ditsatt.
D3 = Denna ger PWM signal. Den går bara 0:or när kamerans linsskydd är ditsatt.
D2 = Denna ger PWM signal. Den går bara 0:or när kamerans linsskydd är ditsatt.
D1 = Denna ger PWM signal. Den går bara 0:or när kamerans linsskydd är ditsatt.
D0 = Denna ger PWM signal. Den går bara 0:or när kamerans linsskydd är ditsatt.
RESET = Denna ger 3.3V.  När RESET = 0V så slutar ALLA utom XCLK att ge signal.
PWDN = Denna ger 0V.
Så jag antar att min kamera är OK då.

Då är problemen:

- I2C kommunikationen måste jag jobba vidare på
- Förstå hur jag ska skriva i STM32CubeIDE så jag kan använda DCMI med DMA. Ska man exempelvis ha FIFO aktiverad exempelvis. Vad är det för mystisk sak?

En fråga till er:
Om jag får att VSYNC ger ofta 0:or och någon 1:a och HREF är liksom motsatsen till VSYNC. Borde jag då ha denna inställning Vertical Synchronization = High, Horizontal Synchronization = Low?
Bild
Skriv svar