Перейти к содержанию
    

Allwinner T113-s3 уделал HiFi4 DSP. Смеяться или плакать?

Раздобыл камеру OV2640, которая может выдавать кадр в том числе и в JPEG.  Хотел её подключить к плате Lichee Pi Zero, но с ужасом заметил, что CSI перекрывает RGB. Проще говоря, одновременно камеру и дисплей по RGB Не подключишь.  Придётся искать либо другой контроллер, либо дисплей использовать по SPI.

 

А тем временем, видеорегистраторы на V3s есть.   Вопрос - КАК? Ну не могут же камера и RGB-дисплей одновременно использоваться на одних и тех же портах? Неужели дисплей у видеорегистратора на SPI ?

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ov2640 хороша тем, что может отдавать изображения в jpeg-формате. Когда-то баловался с ov5642 (то же самое, только 5MP) - впечатления были самые положительные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, Ozelot said:

ov2640 хороша тем, что может отдавать изображения в jpeg-формате. Когда-то баловался с ov5642 (то же самое, только 5MP) - впечатления были самые положительные.

Всё никак не могу мотивировать себя за неё взяться.

Подскажите идеи, где можно использовать эту камеру?  Какие интересные девайсы можно на ней собрать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

28 minutes ago, repstosw said:

Всё никак не могу мотивировать себя за неё взяться.

Подскажите идеи, где можно использовать эту камеру?  Какие интересные девайсы можно на ней собрать?

У меня был заказ на разработку устройства с этой камерой. Что примечательно, использовал корейскую SOC NX6500 c 8052-ядром :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29 minutes ago, repstosw said:

Какие интересные девайсы можно на ней собрать?

Детям машинки собирал с управлением от смартфона.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подключил простой дисплей от телефона Soni Ericsson T290i по I2C. (контроллер дисплея UC1682 )

К сожалению пока не удалось разобраться с аппаратным I2C, непонятно почему не идёт - за основу брал этот проект: https://github.com/VeiLiang/BoloRTT/blob/master/bsp/f1c/drivers/drv_i2c.c

 

Подскажите сорцы на раздербан для Allwinner на I2C.

 

Пока сделал "ногодрыг" (bitbanging), дисплей заработал.

 

#define RESET1 PB_DATA_REG|=1<<8;
#define RESET0 PB_DATA_REG&=~(1<<8);

#define SDA_OUT PB_CFG0_REG|=0x10000000;
#define SDA_IN  PB_CFG0_REG&=0x0FFFFFFF;

#define SDA1 PB_DATA_REG|=1<<7;
#define SDA0 PB_DATA_REG&=~(1<<7);

#define SCK1 PB_DATA_REG|=1<<6;
#define SCK0 PB_DATA_REG&=~(1<<6);

#define NOP DelayUS(1);

#define pause() DelayUS(10);

void i2c_start(void)
{
 SDA_OUT
 SDA1
 SCK1
 NOP
 NOP
 SDA0
 NOP
 NOP
 SCK0
}

void i2c_stop(void)
{
 SDA_OUT
 SDA0
 SCK1
 NOP
 NOP
 SDA1
 NOP
 NOP
 SCK0
}

void i2c_out(u8 o)
{
 SDA0
 SDA_OUT

 for(u8 t=0;t<8;t++)
 {
  if(o&0x80)SDA1
  else      SDA0
  o<<=1;
  NOP
  SCK1
  NOP
  SCK0
 }

 SDA_IN
 SCK1
 NOP
 SCK0
}

void lcd_com(u8 c)
{
 i2c_start();
 i2c_out(0x78);
 i2c_out(c);
 i2c_stop();
 pause();
}

void lcd_com2(u8 c1,u8 c2)
{
 i2c_start();
 i2c_out(0x78);
 i2c_out(c1);
 i2c_out(c2);
 i2c_stop();
 pause();
}

void lcd_rect(u8 x,u8 y,u8 w,u8 h)
{
 lcd_com2(0xF4,x);
 lcd_com2(0xF5,y);
 lcd_com2(0xF6,x+w-1);
 lcd_com2(0xF7,y+h-1);
}

void lcd_address(u8 x,u8 y)
{
 lcd_com(0x00|(x&0xF));
 lcd_com(0x10|((x>>4)&7));
 lcd_com(0x60|(y&0xF));
 lcd_com(0x70|((y>>4)&7));
}

void lcd_clear(u8 c)
{
 lcd_rect(0,0,101,80);
 lcd_address(0,0);

 i2c_start();
  i2c_out(0x7A);
  u16 n=101*80;
  while(n--)i2c_out(c);
 i2c_stop();
 pause();
}

void lcd_init(void)
{
 lcd_com(0x29); //lcd capacitance
 lcd_com(0xE9); //v bias rate типа контраста 0xE8..0xEB

 lcd_com2(0x81,0xB8); //vbias potentiometr

 lcd_com(0x27); //temp comp
 lcd_com(0x89); //RAM ADDRESS CONTROL: слева направо, сверху-вниз
 lcd_com(0xAF); //ldc enable
 lcd_com(0xD1); //COLOR PATTERN: R,G, then B
 lcd_com(0xD4); //256 colors
 lcd_com(0xA1); //line rate
 lcd_com(0xF9); //WINDOW PROGRAM ENABLE

 lcd_clear(0x00);
}

void lcd_sprite(u8 x,u8 y,u8 w,u8 h, u8 *s)
{
 u16 n=w*h;

 lcd_rect(x,y,w,h);
 lcd_address(x,y);

 i2c_start();
  i2c_out(0x7A);
  while(n--)i2c_out(*s++);
 i2c_stop();
 pause();
}

void main(void)
{
 Peripherals_Init();

 RESET0;
 DelayMS(100);
 RESET1;
 DelayMS(100);

 lcd_init();

 DelayMS(1000);

 lcd_sprite(0,0,101,80,(u8*)BACKGROUND);

 DelayMS(1000);

 Seed=AVS_CNT0_REG;

 for(int i=0;i<3;i++)
 {
  lcd_sprite(Random32()%(104-20),Random32()%(80-20),20,20,(u8*)SMILE);
  DelayMS(1000);
 }

 Loop:
 goto Loop;
}

2.thumb.jpg.129400608ac23e29e877f9acaafda8bb.jpg

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, repstosw сказал:

Подключил простой дисплей от телефона Soni Ericsson T290i по I2C.

Там что, и картинка по i2c выводится? Жуть какая))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, mantech said:

Там что, и картинка по i2c выводится? Жуть какая))))))

 

Стандартные скорости I2C: 100 и 400 кГц.

Ногодрыгом я делаю больше - если все задержки снести, то дисплей также работает.

Кадр 101x80  очень быстро рисуется.

 

lcd.thumb.jpg.bfaa1a6aa3594c3619cb575bceda0960.jpg

 

Основная проблема этого дисплея - плохая цветопередача и инертность матрицы.

Вот я думаю, для списка имён файлов такой идёт или лучше прикрутить другой?

Нужен мини-дисплей.

 

Есть ещё цветной OLED 128x128, но ставить пока его не хочу, так как он жрёт много тока.

 

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

37 минут назад, repstosw сказал:

 

 

А это вы на блекфине игровую приставку делали? Если да, то я поклонник вашего творчества. 

У вас свой сайт есть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, repstosw сказал:

Есть ещё цветной OLED 128x128, но ставить пока его не хочу, так как он жрёт много тока.

У OLED не это главная проблема. А тот факт, что нельзя долго держать одну и ту же картинку. Да и вообще - любую картинку желательно гасить по-таймауту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эт значит в текстовом редакторе или над печатной платой не помедитировать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

40 минут назад, Obam сказал:

Эт значит в текстовом редакторе или над печатной платой не помедитировать?

Это значит, что если любить медитировать над чем-то секретным на OLED, то потом надо будет озаботиться физическим уничтожением оного. Чтоб шпиён не слямзил секреты, просто засветив все пикселы. :hi:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, Lmx2315 said:

А это вы на блекфине игровую приставку делали? Если да, то я поклонник вашего творчества. 

У вас свой сайт есть?

Да, делал.:yes: Спустя несколько лет сделал ещё приставки на DSP TMS320C6745, и я понял, что он лучше чем BF532 (наличием Hard Floating Point, второй параллельный порт, поддержка unaligned access и многое другое).  Ну а с Allwinner получилось всё ещё лучше! :sun_bespectacled:

 

7 hours ago, jcxz said:

У OLED не это главная проблема. А тот факт, что нельзя долго держать одну и ту же картинку. Да и вообще - любую картинку желательно гасить по-таймауту.

И по этой причине тоже.

 

1 hour ago, Obam said:

Эт значит в текстовом редакторе или над печатной платой не помедитировать?

А медитировать и не требуется.  Требуется выбрать файл из списка кнопками вверх/вниз и запустить. После этого дисплей будет не нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...