реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
=SSN=
сообщение Dec 24 2010, 05:11
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 161
Регистрация: 9-09-08
Из: РФ
Пользователь №: 40 076



Цитата(Ivan Kuznetzov @ Dec 20 2010, 08:00) *
Вопрос, что поставить между камерой и диспом, чтобы две 8и битовые посылки преобразовать в 16 бит слово? Может какую-нибудь жесткую логику что-ли...

OMAP3530. rolleyes.gif
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Feb 7 2011, 14:04
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Всем привет! Помогите с проблемой, пожалуйста! Собрал схему "видеоглазка" на базе (STM32) + (ALTERA EPM3032) + (SSD1963 LCD) +(MT9V111)

1) Контроллер: STM32
2) Дисплей на SSD1963, подключен к STM32 через FSMC и работает отлично! (картинки из флеш грузит)
3) По прерыванию от кадрового импульса, STM32 задает "окошко" в LCD и посылает команду на запись, затем переводит шину FSMC контроллера STM32 в Z состояние (конфигурирую как обычные GPIO на INPUT_FLOATING)
4) Выставляю пин OE в высокое состояние, тем самым подключая ПЛИСину к дисплею
5) ПЛИСина начинает прокачивать RGB565 поток с камеры распределяя его на 16 бит шину дисплея и дергая ножкой WR
6) И так до следующего VSYNC

Дак вот, когда ПЛИС не подключена к шине - все идет нормально - на дисплее "окошко" с помехами - типа данных нет.
Подключаю линии [7..0] с ПЛИС к шине диспа - после пары кадров происходит сбой, дисп заливается белым цветом, по-видимому дисп ловит какую-то помеху.
Подключаю линии [15..8] с ПЛИС к общей шине - на диспе появляется картинка с искаженными цветами и геометрией

Проблема в том, что с альтеры по-видимому идет помеха по линиям D[7..0]...

Прилагаю свою чудо-схему и код:

Прерывание по VSYNC:
Код
void EXTI4_IRQHandler(void) // Обработчик прерывания по VSYNC
{    
    
     if(EXTI_GetITStatus(EXTI_Line4) != RESET)
     {
      
        GPIO_ResetBits(GPIOC, GPIO_Pin_0);              // 1) Запрещам ПЛИСину по входу OE
            
        LCD_TO_STM32();                     // 2) GPIO STM32 на FSMC           
        
        LcdSetArea(0,0,479,271);                     //Задаем окно LCD GRAM
        
            WriteCommand(0x2C);                 // разрешение на запись GRAM
      
        LCD_TO_CPLD();                      // 3) GPIO STM32 в Z-состояние
        
            GPIO_SetBits(GPIOC, GPIO_Pin_0);             // 4) Подключаем ПЛИС к LCD входом OE
      
       EXTI_ClearITPendingBit(EXTI_Line4);
     }
  
}


Конфигурация порта STM32 для работы с ПЛИС:
Код
void LCD_TO_CPLD(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  
  /* SRAM Data lines configuration */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9 |
                                GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
                                GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |
                                GPIO_Pin_15;
  GPIO_Init(GPIOE, &GPIO_InitStructure);
  
  /* SRAM Address lines configuration */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
                                GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_12 | GPIO_Pin_13 |
                                GPIO_Pin_14 | GPIO_Pin_15;
  GPIO_Init(GPIOF, &GPIO_InitStructure);
  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
                                GPIO_Pin_4 | GPIO_Pin_5;
  GPIO_Init(GPIOG, &GPIO_InitStructure);
    
  /* NOE and NWE configuration */  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
    
  /* NE3 configuration */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  GPIO_Init(GPIOG, &GPIO_InitStructure);
  
  /* NBL0, NBL1 configuration */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
  GPIO_Init(GPIOE, &GPIO_InitStructure);
  
  //--------------  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_11 | GPIO_Pin_12; // RD# pin to HIGH
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
  
   GPIO_ResetBits(GPIOD,GPIO_Pin_12); //CS low
  
  GPIO_SetBits(GPIOD,GPIO_Pin_4);   //RD high
  GPIO_SetBits(GPIOD,GPIO_Pin_11); //RS to data


Ноги на FSMC STM32:
Код
void LCD_TO_STM32(void)
{
   GPIO_InitTypeDef GPIO_InitStructure;
  /* SRAM Data lines configuration */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9 |
                                GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
                                GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |
                                GPIO_Pin_15;
  GPIO_Init(GPIOE, &GPIO_InitStructure);
  
  /* SRAM Address lines configuration */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
                                GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_12 | GPIO_Pin_13 |
                                GPIO_Pin_14 | GPIO_Pin_15;
  GPIO_Init(GPIOF, &GPIO_InitStructure);
  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
                                GPIO_Pin_4 | GPIO_Pin_5;
  GPIO_Init(GPIOG, &GPIO_InitStructure);
  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
  
  /* NOE and NWE configuration */  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 |GPIO_Pin_5;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
  
  /* NE3 configuration */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  GPIO_Init(GPIOG, &GPIO_InitStructure);
  
  /* NBL0, NBL1 configuration */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
  GPIO_Init(GPIOE, &GPIO_InitStructure);
}


Сообщение отредактировал Ivan Kuznetzov - Feb 7 2011, 14:11
Эскизы прикрепленных изображений
 РЈРјРµРЅСЊС€РµРЅРѕ РґРѕ 89%
Прикрепленное изображение
1533 x 1645 (286.24 килобайт)
 


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Feb 7 2011, 15:33
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



фото всего девайса, может дело в проводах? biggrin.gif
Эскизы прикрепленных изображений
 РЈРјРµРЅСЊС€РµРЅРѕ РґРѕ 90%
Прикрепленное изображение
1600 x 1200 (265.66 килобайт)
 РЈРјРµРЅСЊС€РµРЅРѕ РґРѕ 90%
Прикрепленное изображение
1600 x 1200 (203.23 килобайт)
 


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Feb 8 2011, 15:29
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Может проблема в том что MAX3000 это LVTTL?


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
Alla_student
сообщение Apr 12 2011, 21:29
Сообщение #20


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146



Цитата(Ivan Kuznetzov @ Feb 8 2011, 19:29) *
Может проблема в том что MAX3000 это LVTTL?


Возможно у вас проблема с метастабильностью плисины, т.е. ПЛИС не синхронизирована с тактовой частотой и процессором.
Go to the top of the page
 
+Quote Post
ведущий_специали...
сообщение Apr 17 2011, 17:40
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 24-11-07
Пользователь №: 32 645



stm32f207 и овцы целы и волки сыты. В наличие к примеру в компэле. Сама сложит RGB565 в регистр и по дма отправит куда скажешь. Ядро при этом обращать внимание на это не будет, так как все аппаратно.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 02:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01442 секунд с 7
ELECTRONIX ©2004-2016