D[7:0] är 8 bits!
Någon som har hållit på med DCMI förut?
Re: Någon som har hållit på med DCMI förut?
Det verkar som att det INTE går att ha I2C på denna kamera.
Edit:
Nej du. Jag får ingen I2C anslutning att fungera med den. Jag skannar om det finns någon I2C address på bussen. Variabeln addr förblir 0x00 och errors blir 128.
Edit:
Nej du. Jag får ingen I2C anslutning att fungera med den. Jag skannar om det finns någon I2C address på bussen. Variabeln addr förblir 0x00 och errors blir 128.
Kod: Markera allt
uint8_t addr = 0;
uint8_t errors = 0;
uint8_t busys = 0;
uint8_t timeouts = 0;
for(uint8_t i = 0; i < 128; i++){
HAL_StatusTypeDef status = HAL_I2C_IsDeviceReady(&hi2c1, i, 5, 100);
if(status == HAL_ERROR){
errors++;
}else if(status == HAL_BUSY){
busys++;
}else if(status == HAL_TIMEOUT){
timeouts++;
}else if(status == HAL_OK){
addr = i;
break;
}
}
Senast redigerad av DanielM 15 april 2022, 21:27:18, redigerad totalt 1 gång.
- JimmyAndersson
- Inlägg: 26308
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
Re: Någon som har hållit på med DCMI förut?
Kanske du kan hitta någon ledtråd här:
https://e2e.ti.com/support/processors-g ... ccb-vs-i2c
Jag har kollat mer i databladet och tror att jag förstår hur den skickar bild-datan. Kan försöka skriva ned lite när jag inte står med mobilen och steker köttbullar.
Rvl & ffredrik:
Vem som helst kan göra en miss.
Jag tänkte inte på det igår. (Och då programmerar jag ändå assembler varje dag. )
https://e2e.ti.com/support/processors-g ... ccb-vs-i2c
Jag har kollat mer i databladet och tror att jag förstår hur den skickar bild-datan. Kan försöka skriva ned lite när jag inte står med mobilen och steker köttbullar.
Rvl & ffredrik:
Vem som helst kan göra en miss.
Jag tänkte inte på det igår. (Och då programmerar jag ändå assembler varje dag. )
Re: Någon som har hållit på med DCMI förut?
Jag har verkligen granskat noggrant nu och I2C enheten får tydligen inget svar från min kamera. Troligtvis så är det HAL_ERROR som retuneras tillbaka då.
Däremot så har kameran fysisk anslutning då jag kan skicka ut 3.3V på pinnarna utan problem.
Så då är det helt enkelt att I2C ej fungerar med OV7670.
Jag har nämligen renskrivit denna kod till min STM32-C kod för att passa med CubeMX.
https://github.com/ctc8631/ov7670/blob/ ... c/OV7670.c
Men jag får den ändå inte att fungera.
Vi kan börja med tidsdiagrammet. För att skicka data:
Enligt min kod så finns det en funktion som heter.
Där ST-standarden
1. Koden först startar SCCB igenom att sätta D hög, sedan C hög. När dom båda är höga, så börjar D falla och sedan faller C. Då har vi börjat.
2. Då anropas denna kod
Där denna kod gör om INPUT till OUTPUT eller OUTPUT till INPUT för D signalen.
Denna kod fungerar som att om sista bitten på 7:e elementet (MSB) är en 1:a så skickar vi en HÖG signal på D. Annars låg signal.
Samtidigt som klockan C tickar på.
3. Nu kommer ett problemet. Jag får ibland ERROR här när jag ska läsa av mitt ACK.
Det är tydligen denna lilla puls.
Här är hela min kod. Det är väldigt svårt att tolka detta tidsdiagram.
Däremot så har kameran fysisk anslutning då jag kan skicka ut 3.3V på pinnarna utan problem.
Så då är det helt enkelt att I2C ej fungerar med OV7670.
Jag har nämligen renskrivit denna kod till min STM32-C kod för att passa med CubeMX.
https://github.com/ctc8631/ov7670/blob/ ... c/OV7670.c
Men jag får den ändå inte att fungera.
Vi kan börja med tidsdiagrammet. För att skicka data:
Enligt min kod så finns det en funktion som heter
Kod: Markera allt
ErrorStatus camera_write_register(uint8_t address, uint8_t value){
// Create start condition on SCCB/I2C interface
SCCB_start();
// Write data (Address of slave device for Write) on SCCB/I2C interface
if(SCCB_write(WriteAddress) == ERROR){
SCCB_stop(); // Create stop condition on SCCB/I2C interface
return ERROR;
}
// Write data (Address of register in Camera Module)on SCCB/I2C interface
HAL_Delay(1);
if(SCCB_write(address) == ERROR){
SCCB_stop(); // Create stop condition on SCCB/I2C interface
return ERROR;
}
// Write data (Data to write into register in Camera Module)on SCCB/I2C interface
if(SCCB_write(value) == ERROR){
SCCB_stop(); // Create stop condition on SCCB/I2C interface
return ERROR;
}
// Create stop condition on SCCB/I2C interface
SCCB_stop();
return SUCCESS;
}
Där ST-standarden
Kod: Markera allt
typedef enum{
SUCCESS = 0U,
ERROR = !SUCCESS
} ErrorStatus;
Kod: Markera allt
static void SCCB_start(){
// Configure SCCB_D of SCCB/I2C interface as output for write
SCCB_D_dir(OUT);
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
}
Kod: Markera allt
static ErrorStatus SCCB_write(uint8_t data){
uint8_t status;
// Configure SCCB_D of SCCB/I2C interface as output for write
SCCB_D_dir(OUT);
// Write data bit by bit on SCCB/I2C
for(uint8_t i = 0; i < 8; i++) {
if((data & 0x80) == 0x80) // If bit in Data is high, write high on SCCB/I2C
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_SET);
else // If bit in Data is low, write low on SCCB/I2C
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_RESET);
data <<= 1; // Rotate Data for write next bit
// Create clock pulse on SCCB/I2C
// ___ On SIO_C pin (SCCB clock)
// \___
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
}
// Read acknowladge from Camera Module to confirm received data
HAL_Delay(1);
// Configure SCCB_D of SCCB/I2C interface as input for read
SCCB_D_dir(IN);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_SET);
HAL_Delay(1);
// If acknowladge is OK return SUCCESS else if is incorrect return ERROR
if(!HAL_GPIO_ReadPin(SCCB_D_GPIO_Port, SCCB_D_Pin))
status = ERROR;
else
status = SUCCESS;
// Pulse on SCCB/I2C fall down from high
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
// Configure SCCB_D of SCCB/I2C interface back to output for write
SCCB_D_dir(OUT);
return status;
}
Kod: Markera allt
static void SCCB_D_dir(Direction Dir){
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.Pin = SCCB_D_Pin;
GPIO_InitStructure.Pull = GPIO_NOPULL;
GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
GPIO_InitStructure.Mode = Dir == IN ? GPIO_MODE_INPUT : GPIO_MODE_OUTPUT_PP;
HAL_GPIO_Init(SCCB_D_GPIO_Port, &GPIO_InitStructure);
}
Samtidigt som klockan C tickar på.
Kod: Markera allt
if((data & 0x80) == 0x80) // If bit in Data is high, write high on SCCB/I2C
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_SET);
else // If bit in Data is low, write low on SCCB/I2C
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_RESET);
data <<= 1; // Rotate Data for write next bit
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
Kod: Markera allt
SCCB_D_dir(IN);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_SET);
HAL_Delay(1);
// If acknowladge is OK return SUCCESS else if is incorrect return ERROR
if(!HAL_GPIO_ReadPin(SCCB_D_GPIO_Port, SCCB_D_Pin))
status = ERROR;
else
status = SUCCESS;
// Pulse on SCCB/I2C fall down from high
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
// Configure SCCB_D of SCCB/I2C interface back to output for write
SCCB_D_dir(OUT);
Kod: Markera allt
/**
* @brief Change configuration I/O pin SCCB_D as OUT/IN
* @param Configure SCCB_D pin as IN/OUT
* @arg IN = 1, OUT = 0
* @retval None
*/
static void SCCB_D_dir(Direction Dir){
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.Pin = SCCB_D_Pin;
GPIO_InitStructure.Pull = GPIO_NOPULL;
GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
GPIO_InitStructure.Mode = Dir == IN ? GPIO_MODE_INPUT : GPIO_MODE_OUTPUT_PP;
HAL_GPIO_Init(SCCB_D_GPIO_Port, &GPIO_InitStructure);
}
/**
* @brief Read data form SCCB/I2C interface
* @param None
* @retval Data: received data from SCCB/I2C interface
*/
static uint8_t SCCB_read(){
// Write to Data zero for correct return data
uint8_t data = 0;
// Configure SCCB_D of SCCB/I2C interface as input for read
SCCB_D_dir(IN);
// Delay for SCCB/I2C interface
HAL_Delay(1);
// Read data from SCCBI/I2C interface
for(uint8_t i = 8; i > 0; i--) {
// Delay for SCCB/I2C
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_SET);
HAL_Delay(1);
// Shift data << 1
data = data << 1;
// Read SCCB_D pin value
if(HAL_GPIO_ReadPin(SCCB_D_GPIO_Port, SCCB_D_Pin))
data = data + 1;
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
}
// Return received data from SCCBI/I2C interface
return data;
}
/**
* @brief Write data on SCCB/I2C interface
* @param Data: data for write on SCCBI/I2C interface
* @retval status
*/
static ErrorStatus SCCB_write(uint8_t data){
uint8_t status;
// Configure SCCB_D of SCCB/I2C interface as output for write
SCCB_D_dir(OUT);
// Write data bit by bit on SCCB/I2C
for(uint8_t i = 0; i < 8; i++) {
if((data & 0x80) == 0x80) // If bit in Data is high, write high on SCCB/I2C
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_SET);
else // If bit in Data is low, write low on SCCB/I2C
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_RESET);
data <<= 1; // Rotate Data for write next bit
// Create clock pulse on SCCB/I2C
// ___ ___ __On SIO_C pin (SCCB clock)
// \___/ \__/ \__
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
}
// Read acknowladge from Camera Module to confirm received data
HAL_Delay(1);
// Configure SCCB_D of SCCB/I2C interface as input for read
SCCB_D_dir(IN);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_SET);
HAL_Delay(1);
// If acknowladge is OK return SUCCESS else if is incorrect return ERROR
if(!HAL_GPIO_ReadPin(SCCB_D_GPIO_Port, SCCB_D_Pin))
status = ERROR;
else
status = SUCCESS;
// Pulse on SCCB/I2C fall down from high
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
// Configure SCCB_D of SCCB/I2C interface back to output for write
SCCB_D_dir(OUT);
return status;
}
/**
* @brief Create on SCCB/I2C interface "START" condition of transmission
* |-> Start
* ___|
* SCCB_D \______
* ______
* SIO_C \___
* @param None
* @retval None
*/
static void SCCB_start(){
// Configure SCCB_D of SCCB/I2C interface as output for write
SCCB_D_dir(OUT);
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
}
/**
* @brief Create on SCCB/I2C interface "STOP" condition of transmission
* |-> Stop
* | __
* SCCB_D ______/ \__
* ________
* SIO_C ___/
* @param None
* @retval None
*/
static void SCCB_stop(){
// Configure SCCB_D of SCCB/I2C interface as output for write
SCCB_D_dir(OUT);
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_SET);
HAL_Delay(1);
}
/**
* @brief Create on SCCB/I2C interface "NoACK"
* _____
* SCCB_D \___
* ___
* SIO_C \_____
* @param None
* @retval None
*/
static void no_ack(){
// Configure SCCB_D of SCCB/I2C interface as output for write
SCCB_D_dir(OUT);
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_C_GPIO_Port, SCCB_C_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
HAL_GPIO_WritePin(SCCB_D_GPIO_Port, SCCB_D_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
}
void camera_reset(){
camera_write_register(OV7670_COM7, 0x80);
}
ErrorStatus camera_write_register(uint8_t address, uint8_t value){
// Create start condition on SCCB/I2C interface
SCCB_start();
// Write data (Address of slave device for Write) on SCCB/I2C interface
if(SCCB_write(WriteAddress) == ERROR){
SCCB_stop(); // Create stop condition on SCCB/I2C interface
return ERROR;
}
// Write data (Address of register in Camera Module)on SCCB/I2C interface
HAL_Delay(1);
if(SCCB_write(address) == ERROR){
SCCB_stop(); // Create stop condition on SCCB/I2C interface
return ERROR;
}
// Write data (Data to write into register in Camera Module)on SCCB/I2C interface
if(SCCB_write(value) == ERROR){
SCCB_stop(); // Create stop condition on SCCB/I2C interface
return ERROR;
}
// Create stop condition on SCCB/I2C interface
SCCB_stop();
return SUCCESS;
}
ErrorStatus camera_read_register(uint8_t address, uint8_t *data){
// Create start condition on SCCB/I2C interface
SCCB_start();
// Write data (Address of slave device for Write) on SCCB/I2C interface
if(SCCB_write(WriteAddress) == ERROR){
SCCB_stop(); // Create stop condition on SCCB/I2C interface
return ERROR;
}
// Write data (Address of register in Camera Module)on SCCB/I2C interface
HAL_Delay(1);
if(SCCB_write(address) == ERROR){
SCCB_stop(); // Create stop condition on SCCB/I2C interface
return ERROR;
}
// Create stop condition on SCCB/I2C interface
SCCB_stop();
// Delay for SCCB/I2C
HAL_Delay(1);
// Create start condition on SCCB/I2C interface
SCCB_start();
// Write data (Address of slave device for Read) on SCCB/I2C interface
if(SCCB_write(ReadAddress) == ERROR){
SCCB_stop(); // Create stop condition on SCCB/I2C interface
return ERROR;
}
HAL_Delay(1);
// Received data from Camera Module (SCCB/I2C)
*data = SCCB_read();
// No acknowlage on SCCB/I2C interface
no_ack();
// Create stop condition on SCCB/I2C interface
SCCB_stop();
// Return data
return SUCCESS;
}
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Någon som har hållit på med DCMI förut?
Nu har jag en Nucelo F446RE på bordet mitt, tillsammans med OV7670 kamera.
Jag har laddat ned detta projekt
https://github.com/erikandre/stm32-ov7670
Men hur importerar jag projektet?
Det är alltså inget CubeMX projekt då den saknar .ioc fil.
Om jag skapar nytt "empty" projekt så saknar projektet massa filer.
Så hur gör man här för att importera ett manuellt skrivet STM32 HAL-projekt?
Jag har laddat ned detta projekt
https://github.com/erikandre/stm32-ov7670
Men hur importerar jag projektet?
Det är alltså inget CubeMX projekt då den saknar .ioc fil.
Om jag skapar nytt "empty" projekt så saknar projektet massa filer.
Så hur gör man här för att importera ett manuellt skrivet STM32 HAL-projekt?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Någon som har hållit på med DCMI förut?
Måste väl gå att importera källkoden fil för fil om inte annat. Själv har jag aldrig pillat med CubeMX IDE utan kör allt i PlatformIO så man har lite bättre kontroll på vad som händer. Kan varmt rekommendera det.
Re: Någon som har hållit på med DCMI förut?
Jag har aldrig kört det. Jag anser att mycket ska vara plug 'n' play och register ska man bara hålla på med vid felsökning.
Hur som helst så tror jag att denna kamera jag har, är sönder. Jag testar alla typer av bibliotek. INGA fungerar.
Hur som helst så tror jag att denna kamera jag har, är sönder. Jag testar alla typer av bibliotek. INGA fungerar.
Re: Någon som har hållit på med DCMI förut?
Kan man ha I2C och SCCB på samma bus?
Någon som vet en DCMI kamera med I2C?
Någon som vet en DCMI kamera med I2C?
- JimmyAndersson
- Inlägg: 26308
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
Re: Någon som har hållit på med DCMI förut?
Första frågan:
De är till stor del kompatibla, men skiljer sig också både när det gäller mjukvara och hårdvara, så mitt svar är nog:
Njäe, helst inte. (Även om det går att lösa med en massa krångel.)
Kort sagt så kan man helt enkelt inte lita på att SCCB är exakt samma sak som som i2c. Tyvärr.
Edit: Kamera med i2c: Jag har inte stött på någon tyvärr.
De är till stor del kompatibla, men skiljer sig också både när det gäller mjukvara och hårdvara, så mitt svar är nog:
Njäe, helst inte. (Även om det går att lösa med en massa krångel.)
Kort sagt så kan man helt enkelt inte lita på att SCCB är exakt samma sak som som i2c. Tyvärr.
Edit: Kamera med i2c: Jag har inte stött på någon tyvärr.
Re: Någon som har hållit på med DCMI förut?
Okej. Det var otur. Jag gjorde nämligen ett PCB som har en DAC (I2C) som sitter ihop med OV7670 (SCCB). Jag får inte kameran att fungera. Ingen kontakt med den. Jag vet dock inte varför.
Så jag tänkte köpa in en annan kamera. Helst någon som har DCMI och I2C. Vore helt perfekt! Men hittar inga. Skapade ST DCMI bara för att anpassa sig mot kina-kameror eller?
Eller en UART kamera går också fint!
Jag har möjlighet till:
- I2C
- Bitbanga SPI
- DCMI
- UART
Behöver en billig kamera som ger en dålig upplösning = Lite minne.
Så jag tänkte köpa in en annan kamera. Helst någon som har DCMI och I2C. Vore helt perfekt! Men hittar inga. Skapade ST DCMI bara för att anpassa sig mot kina-kameror eller?
Eller en UART kamera går också fint!
Jag har möjlighet till:
- I2C
- Bitbanga SPI
- DCMI
- UART
Behöver en billig kamera som ger en dålig upplösning = Lite minne.
Re: Någon som har hållit på med DCMI förut?
Varför anses det vara ovanligt?JimmyAndersson skrev: ↑6 maj 2022, 00:04:00 Edit: Kamera med i2c: Jag har inte stött på någon tyvärr.
Hur som jag göra här?
Att bara slänga med OV7670 känns ändå bortkastat. Jag menar, jag har inte hittat felet, dvs inte lärt mig. Jag anser att kameran är sönder. Men jag har MAX utsatt den för högst 3.3V. Inge mer. Så den kan inte egentligen ha gått sönder.
Egentligen så skulle jag kunna avdeklarera I2C och endast bitbanga SCCB när jag vill deklarera kamerans register. Det skall bara ske vid start av processorn en gång.
- JimmyAndersson
- Inlägg: 26308
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
Re: Någon som har hållit på med DCMI förut?
Stopp en sekund nu…
Ovanligt? Det har jag inte skrivit.
Kolla konversationen:
Daniel: Någon som vet en DCMI kamera med I2C?
Jimmy: Jag har inte stött på någon tyvärr.
Daniel: Varför anses det vara ovanligt?
Hur gick det där till?
(Sen ser jag att du har fastnat lite vid ordet ”bitbanga”. )
Hmm… Det finns ju kameror med ethernet. Axis (svenskt jättetrevligt företag) kameror brukar ha utmärkt dokumentation dessutom. Men då är det kompletta kameror, typ övervakning/konsert.
Men personligen hade jag tyckt det var kuligast med DCMI.
Gillar det formatet av någon anledning. Men å andra sidan.. vad vet jag.. Jag gillar ju även assembler.
Ovanligt? Det har jag inte skrivit.
Kolla konversationen:
Daniel: Någon som vet en DCMI kamera med I2C?
Jimmy: Jag har inte stött på någon tyvärr.
Daniel: Varför anses det vara ovanligt?
Hur gick det där till?
(Sen ser jag att du har fastnat lite vid ordet ”bitbanga”. )
Hmm… Det finns ju kameror med ethernet. Axis (svenskt jättetrevligt företag) kameror brukar ha utmärkt dokumentation dessutom. Men då är det kompletta kameror, typ övervakning/konsert.
Men personligen hade jag tyckt det var kuligast med DCMI.
Gillar det formatet av någon anledning. Men å andra sidan.. vad vet jag.. Jag gillar ju även assembler.
- JimmyAndersson
- Inlägg: 26308
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
Re: Någon som har hållit på med DCMI förut?
Jag läste önskemålen igen.
”Lite minne”… Då hade jag nog tittat efter vad Arduino-modulerna använder. Dvs vilka kameror som sitter på deras kamera-moduler. Vem vet, det kanske är i2c.
(Att jag kom att tänka på Arduino när det gällde minne, har inget att göra med Arduinos minne. Jag funderade bara på vad andra använder för kameror. That’s it! )
Och man får väl gnälla på Arduino om man blir gladare av det, men ju mer man diskvalificerar andra, desto ensammare blir man…..
”Lite minne”… Då hade jag nog tittat efter vad Arduino-modulerna använder. Dvs vilka kameror som sitter på deras kamera-moduler. Vem vet, det kanske är i2c.
(Att jag kom att tänka på Arduino när det gällde minne, har inget att göra med Arduinos minne. Jag funderade bara på vad andra använder för kameror. That’s it! )
Och man får väl gnälla på Arduino om man blir gladare av det, men ju mer man diskvalificerar andra, desto ensammare blir man…..
Re: Någon som har hållit på med DCMI förut?
JimmyAndersson skrev: ↑6 maj 2022, 23:47:53 Stopp en sekund nu…
Ovanligt? Det har jag inte skrivit.
Kolla konversationen:
Daniel: Någon som vet en DCMI kamera med I2C?
Jimmy: Jag har inte stött på någon tyvärr.
Daniel: Varför anses det vara ovanligt?
Hur gick det där till?
(Sen ser jag att du har fastnat lite vid ordet ”bitbanga”. )
Hmm… Det finns ju kameror med ethernet. Axis (svenskt jättetrevligt företag) kameror brukar ha utmärkt dokumentation dessutom. Men då är det kompletta kameror, typ övervakning/konsert.
Men personligen hade jag tyckt det var kuligast med DCMI.
Gillar det formatet av någon anledning. Men å andra sidan.. vad vet jag.. Jag gillar ju även assembler.
Okej. Vi antar att I2C med kamera ej existerar.
TomasL skrev Bitbanga. Men jag vill skriva Bitlanga för det låter mer olagligt och något som man ej bör göra om det finns andra propra alternativ.
Jag tror att jag ska göra ett försök till på DCMI med min OV7670. Det känns som jag bör klara av den också.
Men jag vet inte om jag kan använda OV7670(SCCB) + MCP4728(I2C) på samma bus...
Enligt detta forum från Texas så kan man använda I2C med OV7670.
https://e2e.ti.com/support/processors-g ... ccb-vs-i2c