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

3.2" Tft Hy32D И Stm32F407


Yevgeniy_F

Рекомендуемые сообщения

Добрый вечер! Запустил 3.2 TFT с помощью STM32F407ZGT6 на Development Board.Вроде кое-что получилось. Но что-то закрашивается только часть экрана зеленым цветом. Остальная часть закрашена цветной рассыпухой. Всё перепробовал, не получается закрасить весь экран. Может кто в курсе в чём проблема?

Закрашивание в главном цикле:

int main()
{				
FSMC_Init();
LCD_Init();

for (i = 0; i < 6000000; i++){} // Задержка

LCD_WriteReg(34, 0x0000); // Установка режима записи

while(1)
{			
LCD_WriteData(0x07E0); // Закрашивание
}	
}

Инициализация SSD1289:

LCD_WriteReg(0x0007,0x0021);
// set R00h at 0001h (OSCEN=1)
LCD_WriteReg(0x0000,0x0001);
// set R07h at 0023h (GON=1,DTE=0,D[1:0]=11)
LCD_WriteReg(0x0007,0x0023);
// set R10h at 0000h (Exit sleep mode)
LCD_WriteReg(0x0010,0x0000);

for (i = 0; i < 1000000; i++){} // Задержка

// set R07h at 0033h (GON=1,DTE=1,D[1:0]=11)
LCD_WriteReg(0x0007,0x0033);
// Entry mode setting (R11h)
// R11H Entry mode
// vsmode DFM1 DFM0 TRANS OEDef WMode DMode1 DMode0 TY1 TY0 ID1 ID0 AM LG2 LG2 LG0
// 0	 1 1	 0	 0	 0	 0	 0	 0 1 1 1 * 0 0 0
LCD_WriteReg(0x0011,0x6058);//Entry Mode
// LCD driver AC setting (R02h)
LCD_WriteReg(0x0002,0x0600);
// power control 1
// DCT3 DCT2 DCT1 DCT0 BT2 BT1 BT0 0 DC3 DC2 DC1 DC0 AP2 AP1 AP0 0
// 1	 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0
// DCT[3:0] fosc/4 BT[2:0] DC{3:0] fosc/4
LCD_WriteReg(0x0003,0x0804);// power control 1
LCD_WriteReg(0x000C,0x0000);// power control 2
LCD_WriteReg(0x000D,0x0808);// power control 3
// power control 4
// 0 0 VCOMG VDV4 VDV3 VDV2 VDV1 VDV0 0 0 0 0 0 0 0 0
// 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0
LCD_WriteReg(0x000E,0x2900); // power control 4
LCD_WriteReg(0x001E,0x00B8); // power control 5
LCD_WriteReg(0x0001,0x2B3F); // Driver output control
LCD_WriteReg(0x0010,0x0000);
LCD_WriteReg(0x0005,0x0000);
LCD_WriteReg(0x0006,0x0000);
LCD_WriteReg(0x0016,0xEF1C);
LCD_WriteReg(0x0017,0x0003);
LCD_WriteReg(0x0007,0x0233);
LCD_WriteReg(0x000B,0x0000|(3<<6));
LCD_WriteReg(0x000F,0x0000);
LCD_WriteReg(0x0041,0x0000); //Vertical scroll control (1)
LCD_WriteReg(0x0042,0x0000); //Vertical scroll control (2)
LCD_WriteReg(0x0048,0x0000); //First window start
LCD_WriteReg(0x0049,0x013F); //First window end
LCD_WriteReg(0x004A,0x0000); //Second window start
LCD_WriteReg(0x004B,0x0000); //Second window end
//---------------------------------------------
// initial and final address horizontal
LCD_WriteReg(0x0044,0xEF00);// 0-239
// initial and final address vertical
LCD_WriteReg(0x0045,0x0000);// 0
LCD_WriteReg(0x0046,0x013F);// 319
//---------------------------------------------
for (i = 0; i < 1000000; i++){}
//-------- GAMMA CONTROL ----------------------
LCD_WriteReg(0x0030,0x0707);
LCD_WriteReg(0x0031,0x0704);
LCD_WriteReg(0x0032,0x0204);
LCD_WriteReg(0x0033,0x0201);
LCD_WriteReg(0x0034,0x0203);
LCD_WriteReg(0x0035,0x0204);
LCD_WriteReg(0x0036,0x0204);
LCD_WriteReg(0x0037,0x0502);
LCD_WriteReg(0x003A,0x0302);
LCD_WriteReg(0x003B,0x0500);
//----------------------------------------------
LCD_WriteReg(0x0023,0x0000);
LCD_WriteReg(0x0024,0x0000);
LCD_WriteReg(0x0025,0x8000); // 65hz
LCD_WriteReg(0x004f,0x0000); // X = 0
LCD_WriteReg(0x004e,0x0000); // Y = 0

post-171792-0-70746500-1424103691_thumb.jpg

Изменено пользователем Yevgeniy_F
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

uint32_t i

Инициализировал только вот эти выводы:

PD0 - D2

PD1 - D3

PD4 - NOE (RD)

PD5 - NWE (WR)

PD8 - D13

PD9 - D14

PD10 - D15

PD14 - D0

PD15 - D1

​PE7 - D4

PE8 - D5

​PE9 - D6

​PE10 - D7

​PE11 - D8

​PE12 - D9

​PE13 - D10

​PE14 - D11

​PE15 - D12

PG5 - RS (A15) - Command/Data

PG14 - CS (A25)

Может быть не хватает еще какого-нибудь вывода?

Или может быть там нужна какая-нибудь синхронизация (проблема с разверткой или ещё что-нибудь) или проблема с таймингами FSMC?

Ещё такое чувство, что там проблема со смещением в RAM (смещение в массиве) - смещение картинки относительно экрана.

Может быть существует настройка смещения изображения, как в мониторе от компа?

Пробовал работать с библиотекой, тоже самое явление:

uint32_t i;

int main()
   {		
    FSMC_Init();
    LCD_Init();

    while(1) 
         {		   
		 LCD_Clear(LCD_COLOR_GREEN); // Очищаем экран, закрашивая зеленым цветом            
         }
   }

Тело функции:

void LCD_Clear(uint16_t Color)
{
 uint32_t index = 0;

 LCD_SetCursor(0x00, 0x013F);
 LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
 for(index = 0; index < 76800; index++)
    {    
       LCD_RAM = Color;
    } 
}

Как я понял: 76800 - количество точек дисплея. Пробовал увеличивать - не помогает. Пробовал уменьшать - уменьшается закрашиваемая область от центра к верху.

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

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

uint32_t i

Инициализировал только вот эти выводы:

PD0 - D2

PD1 - D3

PD4 - NOE (RD)

PD5 - NWE (WR)

PD8 - D13

PD9 - D14

PD10 - D15

PD14 - D0

PD15 - D1

​PE7 - D4

PE8 - D5

​PE9 - D6

​PE10 - D7

​PE11 - D8

​PE12 - D9

​PE13 - D10

​PE14 - D11

​PE15 - D12

PG5 - RS (A15) - Command/Data

PG14 - CS (A25)

Может быть не хватает еще какого-нибудь вывода?

Или может быть там нужна какая-нибудь синхронизация (проблема с разверткой или ещё что-нибудь) или проблема с таймингами FSMC?

Ещё такое чувство, что там проблема со смещением в RAM (смещение в массиве) - смещение картинки относительно экрана.

Может быть существует настройка смещения изображения, как в мониторе от компа?

Пробовал работать с библиотекой, тоже самое явление:

uint32_t i;

int main()
{		
 FSMC_Init();
 LCD_Init();

 while(1)
       {		
          LCD_Clear(LCD_COLOR_GREEN); // Очищаем экран, закрашивая зеленым цветом
       }
}

Тело функции:

void LCD_Clear(uint16_t Color)
   {
     uint32_t index = 0;

     LCD_SetCursor(0x00, 0x013F);
     LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
     for(index = 0; index < 76800; index++)
       {
          LCD_RAM = Color;
       }
   }

Как я понял: 76800 - количество точек дисплея. Пробовал увеличивать - не помогает. Пробовал уменьшать - уменьшается закрашиваемая область от центра к верху.

Изменено пользователем Yevgeniy_F
Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Если инит сработал и все таки заливает, скорей всего со старшим байтом шины проблемы .

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

И все таки забросил бы SPL , до добра не доведет...

Изменено пользователем dosikus
Ссылка на комментарий
Поделиться на другие сайты

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

Логический анализатор отсутствует.

Попробую с помощью обычного осциллографа посмотреть вообще наличие сигналов на пинах старшего байта. Где-то слышал, что такие манипуляции надо проводить с помощью активного пробника, чтобы не перегружать выходы.

И все таки забросил бы SPL, до добра не доведет...

Полностью согласен. Это я просто на первом этапе, пока изучаю модули и систему в целом, использую SPL, чтобы быстро запустить и посмотреть как ведет себя система, чтобы увидеть так сказать общую картину и не запутаться во множестве деталей. Потом обязательно буду переделывать код с помощью CMSIS.
Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Логический анализатор отсутствует.

Попробую с помощью обычного осциллографа посмотреть вообще наличие сигналов на пинах старшего байта. Где-то слышал, что такие манипуляции надо проводить с помощью активного пробника, чтобы не перегружать выходы.

Осциллограф тебе мало здесь поможет . Надо видеть целиком состояние хотя бы старшего байта вместе с управляющими сигналами.

Не похоже на залипшие сигналы , скорей перепутаны.

Кстати что за борда у тебя , там уже все разведено или сам соединял ?

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

Борду заказывал с Китая. Прозванивал. Распиновка МК полностью совпадает с распиновкой разъема для дисплея на борде, а также с распиновкой самого дисплея, как и указывалось выше.

В общем сейчас проверил осциллографом и получил вот такие вот результаты:

На PD0, PD1, PD5, PD8, PD9, PD14, PD15, PE7, PE14 и PE15 сигнал в виде периодических пачек как рис 4. Растянул картинку на осциллографе и получил изображение как на рис 5.

На PD10 - наблюдается сигнал как на рис 6 - непонятные периодические импульсы не более 1 В. Очень странно, но на PD13 точно такие же импульсы, хотя этот пин и не используется.

На PE13, PG14 постоянный низкий уровень.

На PD4, PG5, PE8, PE9, PE10, PE11, PE12 постоянно высокий уровень.

PD0 - D2 - правильно (идут импульсы)

PD1 - D3 - правильно (идут импульсы)

PD4 - NOE (RD) - правильно (высокий уровень), режим чтения не используется.

PD5 - NWE (WR) - правильно (идут импульсы. т.к режим записи)

PD8 - D13 - правильно (идут импульсы)

PD9 - D14 - правильно (идут импульсы)

PD10 - D15 - наверно неправильно (идут непонятные импульсы как на рис 6)

PD14 - D0 - правильно

PD15 - D1 - правильно

​PE7 - D4 - правильно (идут импульсы)

PE8 - D5 - здесь что-то непонятно (постоянно высокий уровень), возможно неправильно.

​PE9 - D6 - здесь что-то непонятно (постоянно высокий уровень), возможно неправильно.

​PE10 - D7 - здесь что-то непонятно (постоянно высокий уровень), возможно неправильно.

​PE11 - D8 - здесь что-то непонятно (постоянно высокий уровень), возможно неправильно.

​PE12 - D9 - здесь что-то непонятно (постоянно высокий уровень), возможно неправильно.

​PE13 - D10 - здесь что-то непонятно (постоянно высокий уровень), возможно неправильно.

​PE14 - D11 - правильно (идут импульсы)

​PE15 - D12 - правильно (идут импульсы)

PG5 - RS (A15) - Command/Data - здесь тоже непонятно, по идее должны идти импульсы, хотя бы во время инициализации дисплея, ведь там есть функция LCD_WriteReg (reg, data), она организует передачу и команд и данных, а вместо этого на осциллографе наблюдается постоянный высокий уровень.

PG14 - CS (A25) - правильно (постоянный низкий уровень).

ЗЫ: я просто фигею, как вообще может дисплей инициализироваться при таком раскладе?!

post-171792-0-82909600-1424167077_thumb.jpg

post-171792-0-07865500-1424167182_thumb.jpg

post-171792-0-31580500-1424167472_thumb.jpg

post-171792-0-67471400-1424167544_thumb.jpg

post-171792-0-83711700-1424167563_thumb.jpg

post-171792-0-49592000-1424167592_thumb.jpg

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

К этой плате есть вполне рабочий пример для работы с экраном (на диске с ней должен быть). если нужно могу кинуть

Изменено пользователем swat24
Ссылка на комментарий
Поделиться на другие сайты

Был бы очень признателен. Интересно посмотреть. Мне почему-то прислали без диска.

Изменено пользователем Yevgeniy_F
Ссылка на комментарий
Поделиться на другие сайты

В коде инициализации строчку LCD_WriteReg(0x0001,0x2B3F) заменил на LCD_WriteReg(0x0001,0x6B3F) и стала закрашиваться другая сторона. Наверно произошел разворот изображения на 180 градусов. Закрашивается не доходя до середины, что в первом случае, что во втором. Блин, такое чувство, что массив данных смещен в памяти RAM и вот надо как-то его обратно сместить, а может и нет.

post-171792-0-65136400-1424182718_thumb.jpg

Изменено пользователем Yevgeniy_F
Ссылка на комментарий
Поделиться на другие сайты

Сравнил код из архива и твой с микрочип .сю

Буду по порядку инициализации блоков:

Твой

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

архив

  GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;

Твой

GPIO_PinAFConfig(GPIOE, GPIO_PinSource7, GPIO_AF_FSMC); // D4
 GPIO_PinAFConfig(GPIOE, GPIO_PinSource8, GPIO_AF_FSMC); // D5

архив

  GPIO_PinAFConfig(GPIOE, GPIO_PinSource2 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource7 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource8 , GPIO_AF_FSMC);

Твой

 GPIO_PinAFConfig(GPIOG, GPIO_PinSource5, GPIO_AF_FSMC); // RS - A15 Command/Data
 GPIO_PinAFConfig(GPIOG, GPIO_PinSource14, GPIO_AF_FSMC);// LCS - A25 - Chip Select 

архив


GPIO_PinAFConfig(GPIOG, GPIO_PinSource5 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOG, GPIO_PinSource12 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOG, GPIO_PinSource13 , GPIO_AF_FSMC);

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

микрочип .сю

:D

Буду по порядку инициализации блоков:

Твой

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

архив

 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;

Так и так пробовал, без разницы, надо попробовать сделать подтяжку к земле.

Твой

GPIO_PinAFConfig(GPIOE, GPIO_PinSource7, GPIO_AF_FSMC); // D4
GPIO_PinAFConfig(GPIOE, GPIO_PinSource8, GPIO_AF_FSMC); // D5

архив

 GPIO_PinAFConfig(GPIOE, GPIO_PinSource2 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource7 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource8 , GPIO_AF_FSMC);

Твой

GPIO_PinAFConfig(GPIOG, GPIO_PinSource5, GPIO_AF_FSMC); // RS - A15 Command/Data
GPIO_PinAFConfig(GPIOG, GPIO_PinSource14, GPIO_AF_FSMC);// LCS - A25 - Chip Select

архив


GPIO_PinAFConfig(GPIOG, GPIO_PinSource5 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOG, GPIO_PinSource12 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOG, GPIO_PinSource13 , GPIO_AF_FSMC);

Я инициализировал, основываясь на разводке борды. Сначала прозвонил, потом всё прописал как есть. Даже в даташите пины совпадают с моими. А в этом архиве почему-то написано немного по-другому.

Изменено пользователем Yevgeniy_F
Ссылка на комментарий
Поделиться на другие сайты

Попробуй для начала скомпилить тот проект и прошить . И только потом начнем думать...

Так и так пробовал, без разницы, надо попробовать сделать подтяжку к земле.

Хорошая практика для любого радиогубителя - "не крути две ручки сразу" ...

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

А какую посоветуете? На одном сайте видел подтяжку к питанию, на другом - без подтяжки. Подтяжку к земле не видел нигде.

Изменено пользователем Yevgeniy_F
Ссылка на комментарий
Поделиться на другие сайты

Здесь только длина проводников здорово с***т .
А с***т как расшифровывается? :D

И я же просил - не надо мне выкать... :D

Договорились. Изменено пользователем Yevgeniy_F
Ссылка на комментарий
Поделиться на другие сайты

Всё, наконец-то разобрался. Проблема была в инициализации портов для FSMC. Чёртова SPL-ня. Уже начал грешить на бракованный дисплей. В общем, проинициализировал с помощью CMSIS и всё заработало как часики.

Благодарю всех за помощь!

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...