|
AT91SAM7S64 и SAA7113H, Реально ли и как? |
|
|
|
Jun 12 2007, 12:24
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
Объясните, пожалуйста, как работает SAA7113H. Не могу разобраться в доке. http://www.nxp.com/pip/SAA7113H_V2.htmlКаким образом кадр можно отцифровать и передать в проц? На выходе есть 8-ми битный интерфейс, но как это всё работает? Задача стоит такая: получить монохромную картинку 320x240 (2 цвета, один кадр - 9600 байт), найти центр масс того белого пятна, что на ней будет и передать координаты (X, Y) по COM порту. Памяти контроллера хватает, вычисления тоже вроде очень простые, real time не требуется (т.е. можно хоть 2 кадра в секунду тока обрабатывать). Как это всё можно сделать?
|
|
|
|
|
 |
Ответов
|
Nov 19 2007, 12:38
|
Группа: Новичок
Сообщений: 8
Регистрация: 2-08-07
Пользователь №: 29 524

|
Цитата(aaarrr @ Nov 19 2007, 16:22)  Странно: из регистра 0x0F читается 0x0F, а с остальными все в порядке. Похоже на программный глюк. После сброса там точно 0x2a должно быть. Код LPC2294CEClear(); //Ресет САА for(long i=1;i<1000000;i++) {} LPC2294CESet(); for(long i=1;i<10000000;i++) {} printf( "Tr1 \n\r" );
for(char i=1;i<=23;i++) { saa7113WSub(i, Saa7113InitMass[i]); //Запись байта Saa7113InitMass[i] в регистр i for(long j=1;j<10000000;j++) {} printf("%d = %d\n\r", Saa7113InitMass[i], saa7113RSub(i));
while(saa7113RSub(i)!=Saa7113InitMass[i]) //Чтение байта из регистра i { printf("Error #%d\n\r", i); saa7113WSub(i, Saa7113InitMass[i]); for(long j=1;j<1000000;j++) {} } printf("%d\n\r",i); }
//Функция чтения байта
unsigned char saa7113RSub(unsigned char Sub) { I2CSub = Sub; // задать функцию wr_rd = 1; //установить признак чтения end_rd = 0; //сбросить признак окончания чтения I2CONCLR = 0xFF; // сбросить все флаги I2C I2CONSET = 0x40; // разрешение I2C I2CONSET = 0x20; // передать условие START I2C
while (end_rd == 0); // ожидать окончания чтения return I2DAT; //возврат прочитанного байта }
//Функция записи байта
void saa7113WSub(unsigned char Sub, unsigned char data_I2C) { I2CSub = Sub; // задать функцию I2Cwr_byte = data_I2C; // задать байт данных для записи wr_rd = 0; //установить признак записи I2CONCLR = 0xFF; // сбросить все флаги I2C I2CONSET = 0x40; // разрешение I2C I2CONSET = 0x20; // передать условие START I2C }
//функция-обработчик прерывания от I2C -------------------------------------------- static void I2CInterrupt() { switch(I2STAT) { case (0x08): // было передано условие START I2CONCLR = 0x20; //сброс флага START I2C I2DAT=72; //передача адреса устр на шине и признака записи (W) break; case (0x10): // было передано условие повторный START I2CONCLR = 0x20; //сброс флага START I2C I2DAT=73; //передача адреса устр на шине и признака чтения (R) break; case (0x18): // был передан адрес ведомого + W, получен ACK //передача адреса I2DAT=I2CSub; break; case (0x28): // был передан байт данных, получен ACK switch(wr_rd) { case (0): //передача байта данных I2DAT=I2Cwr_byte; break; case (1): // передать условие START I2C I2CONSET = 0x20; // повторный START break; default: break; }
break; case (0x40): // был передан адрес ведомого + R, получен ACK I2CONCLR = 0x04; //сброс флага ACC I2C, чтобы возвратить NOT ACK break; case (0x58): // был получен байт данных, возвращен ACK I2CONSET = 0x10; // передать условие STOP I2C end_rd = 1; //установить признак окончания чтения break; default: break; } I2CONCLR = 0x08; // сброс прерывания от I2C } Вродебы всё идёт так как и должно итти, я имею в виду чтение там, запись...
|
|
|
|
Сообщений в этой теме
Pasha 111 AT91SAM7S64 и SAA7113H Jun 12 2007, 12:24 AlexandrY На этом чипе никак.
См. ссылку http://electronix.r... Jun 12 2007, 12:45 Pasha 111 Прочёл всю ветку, но большую частью не понял, так ... Jun 12 2007, 14:05 AlexandrY У этого видео-АЦП выход сделан по стандарту ITU-R ... Jun 12 2007, 15:10 Pasha 111 Вот нашел кое-что:
http://www.cmucam.org/wiki/Hard... Jun 12 2007, 21:45 rat Цитата(Pasha 111 @ Jun 12 2007, 19:24) Об... Jun 13 2007, 06:38 bzx 2 Pasha 111
Рекомендую AVR32. Мотивация в этой вет... Jun 13 2007, 06:51 Pasha 111 Спасибо за ответы.
2 rat:
Решение должно быть мак... Jun 13 2007, 12:01 a3r3 Возьмите лучше ADSP-BF53x с внешней SDRAM - на так... Jun 13 2007, 20:14 Saratan Люди, поможите, у меня не записывается по I2C в ре... Nov 14 2007, 08:46 KAlex Цитата(Saratan @ Nov 14 2007, 11:46) Люди... Nov 14 2007, 10:03  Saratan Цитата(KAlex @ Nov 14 2007, 14:03) Старши... Nov 19 2007, 08:05   Saratan Ещё такой вопрос, я правильно понимаю, этот АЦП по... Nov 19 2007, 10:01 aaarrr Правильно. Будет гнать поток постоянно, даже без с... Nov 19 2007, 10:15 Saratan Цитата(aaarrr @ Nov 19 2007, 14:15) Прави... Nov 19 2007, 12:05   Saratan Цитата(Сергей Борщ @ Nov 19 2007, 17:25) ... Nov 20 2007, 06:56    Сергей Борщ Цитата(Saratan @ Nov 20 2007, 08:56) Да в... Nov 20 2007, 08:03     Saratan Цитата(Сергей Борщ @ Nov 20 2007, 12:03) ... Nov 20 2007, 08:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|