#1 Re: Апаратні питання » STM32f429 LTDC VGA джитер » Вчора 16:08:15

dimich пише:

А #define SDRAM_READBURST FMC_Read_Burst_Disable якось впливає?

Змінював коли ще був встановлений параметр SDRAM FMC_SDMemory_Width_16b, результат не змінювався. З параметром SDRAM FMC_SDMemory_Width_8b і FMC_Read_Burst_Enable, стає гірше.

Зараз зображення стабільне. Пробував знову замінити швидкість пінів SDRSM з 25мГц на 50мГц, артефакти з'явились знову, але появляються рідко. З GPIO_Speed_25MHz з зображенням все гаразд.

Наразі налаштував роздільну здатність LTDC 800х600 pixel clock 40мГц, нашвидкоруч написав функції для роботи з графікою, щоб зображення було динамічним, також налаштував переривання таймера по захвату, щоб перевірити чи не буде воно заважати LTDC. Тестую вже декілька годин, артефакти за цей час з'являлись лише пару разів.

WIN_20250402_14_55_15_Pro.jpeg

#2 Re: Апаратні питання » STM32f429 LTDC VGA джитер » Вчора 00:22:12

dimich пише:

Я б сказав "десь між формувачем адреси в МК і декодером адреси в мікросхемі SDRAM". Малоймовірно, що збоїть десь в самому МК чи після декодера в SDRAM, хоча таке теж не виключено.

Ніби як вирішив проблему з артефактами, поки що рішення дуже грубе, намагаюсь зрозуміти чому працює саме в такому варіанті.

1. Роздільна здатність 400х600, частота LTDC 20мГц.
2. Замінив LTDC_Pixelformat_RGB565 на LTDC_Pixelformat_L8. Відповідно (LTDC_CFBLineLength) і (LTDC_CFBPitch) теж підправив.
3. В налаштуваннях SDRAM FMC_SDMemory_Width_16b замінив на FMC_SDMemory_Width_8b.

Все інше ніби залишив так як і було. Поки що жодного артефакта не вискакувало.

p.s. Саме зміна третього пункту допомогла, з першими 2 пунктами атрефакти все ще були.

#3 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-04-01 23:37:39

dimich пише:

Дані-то читаються наче б то правильні, тільки не з тих адрес

Ще не перевіряв, виходить що ще може бути проблема в самій мікросхемі SDRAM?

dimich пише:

це ж тільки умовні позначення, насправді конфігурується вихідний опір

Про це знаю, просто так простіше пояснити що саме змінювалось

dimich пише:

Із цікавості, не пробували ставити low speed (GPIO_Speed_2MHz)?

Не працює зовсім, екран при цьому чорний. Але якщо опустити частоту ядра до 80мГц відповідно частота SDRAM при цьому  опускається до 40мГц, то працює і на GPIO_Speed_2MHz, з тими ж артефактами.  roll

dimich пише:

Ще, в програмі SD clock frequency конфігурується на 90 МГц, а в даташиті на IS42S16400J говориться про "Clock frequency: 200, 166, 143, 133 MHz".

Маркування SDRAM що у мене на платі IS42S16400J-7TL, даташит каже що із закінченням -7 (CAS Latency=3 143Mhz) (CAS Latency=2 133Mhz) навіть так, запасу по частоті має вистачати.

#4 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-04-01 15:51:46

dimich пише:

Можна спробувати потестити програмно

Це типу тест на перевірку цілісності даних у пам'яті.

Поки що пробував ініціалізувати SDRAM, гарантовано робочим кодом іншого автора, результат без змін. Також не допомагає і зменшення частоти ядра, при цьому SDRAM працює на нижчій частоті, з більшими таймінгами.

Єдине що дає результат, це зменшення швидкості роботи пінів що підключаються до  SDRAM.
При налаштуванні пінів на 50мГц артефакти майже постійно присутні на екрані.
При налаштуванні пінів на 25мГц артефакти на екрані з'являються десь періодичністю 3 - 4 рази на хвилину.

#5 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-31 23:50:36

dimich пише:

Може просто погано пропаяний контакт шини адреси?

Візуально все припаяно добре, пробував деформувати плату і натискати на мікросхеми, реакції на це немає.

#6 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-31 23:06:54

dimich пише:

Поки не дуже зрозуміло, як воно виглядає в динаміці. Схоже на "сніг" CGA? Скільки часу такий піксель тримається, один кадр чи довше?.

Ні на сніг не схоже, і так тримається десь приблизно один кадр, сфотографувати було важко. З'являються у випадковому місці там де на екрані зображені чорні кола, там де екран по горизонталі повністю залитий зеленим не з'являються.

dimich пише:

А якщо виводити з внутрішньої SRAM, а не з SDRAM?

При роботі з SRAM таких артефактів немає.

dimich пише:

Може FMC невірно сконфігурований для цієї мікросхеми SDRAM.

Мікросхема SDRAM (IS42S16400J) ніби як стандартна для всіх плат з таким мікроконтролером. Конфігурацію взяв в того ж самого автора на GitHub, тому в правильності не впевнений. Думаю потрібно збільшити таймінг там де SDRAM перемикає свою лінію даних на вихід, щоб збільшити час зчитування. Хоча якщо уважно придивитись на сам артефакт, то здається ніби артефактні пікселі  читаються з пам'яті по неправильній адресі.

#7 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-31 21:48:55

Тепер з'явилась нова проблема, з артефактами (фото). З'являються і зникають на екрані навіть коли у пам'ять нічого не записується. Якщо зменшити швидкість роботи пінів що підключаються до пам'яті з 50мГц до 25мГц то вони починають з'являтися набагато рідше, але зовсім не зникають. Ще виявив що якщо підключити щуп осцилографа до будь якої лінії даних  SDRAM, то кількість таких артефактів різко зростає.

WIN_20250331_21_22_22_Pro.jpeg
WIN_20250331_21_21_17_Pro.jpeg

#8 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-31 16:54:34

Здається джитер поборов. Зображення чисте, сигнал з тактового виходу тепер теж чистий.

Всьому вина це помилка в коді налаштувань таймінгів. Потрібно було в кожному параметрі добавити -1, як то вимагає суворий reference manual yikes

      // Налаштування таймінгів LCD
      LTDC_InitStruct.LTDC_HorizontalSync =        (HSYNC_Width-1);                               
      LTDC_InitStruct.LTDC_VerticalSync =        (VSYNC_Width-1);                               
      LTDC_InitStruct.LTDC_AccumulatedHBP =        (HSYNC_Width + HBP)-1;                           
      LTDC_InitStruct.LTDC_AccumulatedVBP =        (VSYNC_Width + VBP)-1;                           
      LTDC_InitStruct.LTDC_AccumulatedActiveW =    (HSYNC_Width + HBP + Active_Width)-1;
      LTDC_InitStruct.LTDC_AccumulatedActiveH =    (VSYNC_Width + VBP + Active_Height)-1;           
      LTDC_InitStruct.LTDC_TotalWidth =            (HSYNC_Width + HBP + Active_Width + HFP)-1;   
      LTDC_InitStruct.LTDC_TotalHeigh =            (VSYNC_Width + VBP + Active_Height + VFP)-1;

WIN_20250331_16_51_11_Pro.jpeg

#9 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-31 13:39:40

dimich пише:

Спробуйте перемістити його у внутрішню SRAM.

Перемістив, нічого не змінилось.

dimich пише:

Слушна думка. Там окремий PLLSAI, то може відбувається якийсь зрив генерації в самому МК. Але таке мало би бути видно на осцилограмі тактового виходу..

Запустив ШІМ і підключив тактові виходи до входів кольорів. На LCD моніторі тактовий сигнал ШІМ, має такий же вигляд як і тактовий сигнал LTDC, тільки чорних смуг з шумом стало дві.
Підключив кінескопний монітор, взяв лупу, і став оцінювати кожен такт  ШІМ і LTDC, і помітив цікаву річ, сигнали йдуть синхронно один з одним, з цим проблем немає, але джитер присутній абсолютно на усіх пікселях від початку і до кінця екрану, і немає різниці чи це сигнал ШІМ чи LTDC.

#10 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-31 03:17:20

dimich пише:

Питання навмання: не пробували інвертувати полярність HSync?

Так, на роздільній здатності 640х480 полярність HSync і VSync негативна а на 800х600  позитивна, тому змінював. 

dimich пише:

В ідеалі тактовий сигнал з заповненням 50% мав би відображатись як суцільне поле половинної яскравості, бо один імпульс приходиться на один піксель. А тут якась інтерференційна картина. Зрозуміло, що АЦП монітора семплує миттєві (в першому наближенні) значення. Але він мав би семплувати з частотою, в кілька разів вищою за частоту пікселів, і усереднювати (фільтрувати). Схоже, він семплує прямо на відновленій частоті пікселів і ніякого усереднення не робить.

Це тому що монітор працює в режимі 800х600 40мГц pixel clock, а LTDC працює з у двічі скороченими горизонтальними таймінгами  (400х600) і pixel clock 20мГц, тому один піксель в пам'яті виводяться на екран як два, те саме получається і із тактовою частотою.


dimich пише:

Питання навмання: Не перевіряли цей монітор з джерелом заздалегідь робочого VGA сигнала, наприклад HDMI-VGA адаптером або старою відеокартою з VGA-виходом?

Так, в моніторі впевнений, на ньому налагоджував вже не першу саморобну відеокарту і ніколи таких проблем не було, але про всяк випадок перевірив на іншому LCD моніторі в якому інша роздільна здатність, то там джитер такий же.

dimich пише:

А як, наприклад, виглядають вертикальні лінії в один піксель з інтервалом в пару десятків пікселів?

Перевірю. Ще прийшла в голову думка, запустити на таймері ШІМ із піксельною частотою і заповненням 50% , тоді тактову частоту таймера і LTDC можна буде подати на окремі входи кольорів, і візуально оцінити чи працюють вони синхронно.

#11 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-30 23:42:30

dimich пише:

Може цьому конкретному монітору взагалі не подобається рівень 3.3 В, може для стабільної роботи він хоче 5.

Якщо ви про сигнали синхронізації, то їх рівні пробував піднімати двома послідовно включеними інверторами (74HC04), в такому варіанті джитер не зникає а просто зсувається на декілька пікселів вправо.

dimich пише:

Так що спробуйте все-таки обмежити полосу пропускання кольорової компоненти конденсатором

Теж пробував, підключав конденсатор 120 пФ, джитер стає менш помітним і зсувається на декілька пікселів вліво. При конденсаторові 240 пФ джитера непомітно, але зображення стає розмитим.

dimich пише:

Тактовий вихід у вас же просто висить "у повітрі", нікуди не навантажений на самій платі?

Так, тактовий вихід нікуди не підключається. Увімкнення і вимкнення піна на якому висить тактовий вихід теж не має ніякого ефекту.

dimich пише:

Специфікація VESA (наступний за VGA стандарт) допускає відхилення pixel clock до ±0.5%

Вирішив про всяк випадок перевірити і цю версію. Налаштував LTDC на роздільну здатність 800х600, тут джитер теж був, потім перевірив варіант з роздільною здатністю 400х600 з вдвічі меншою частотою пікселів 20 мГц, смуги джитера з трьох зменшились майже до  однієї. Підключив знову тактовий вихід до входу зеленого кольору і побачив на екрані це neutral
Чітко видно тактовий сигнал, і якийсь незрозумілий шум. Підключив в такому варіанті кінескопний монітор на ньому зображення чисте.

WIN_20250330_22_16_52_Pro.jpeg
WIN_20250330_22_17_15_Pro.jpeg

#12 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-30 13:30:21

jokeer пише:

ну, не знаю.. Якщо воно пролізло саме в зелений канал, більше нікуди, та ще й таке криве..

Воно таке лізе по усіх каналах. Зелений то для перевірки був підключений до виходу LCD_CLK, саме на ньому такий сигнал як на фото вище.

#13 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-30 12:07:58

jokeer пише:

Схоже на якусь аналогову заваду. Може по живленню, може через аналогову землю. Без осцилографа складно.

Осцилограф є fnirsi 1C15, ним цю заваду розгледіти не вдається

#14 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-30 12:01:21

dimich пише:
duron пише:

на жаль не підходить LTDC для моніторів з аналоговим входом.

Думаю, якщо пошаманити над аналоговою частиною, то можна отримати задовільний результат. Але скоріш за все знадобляться буферні каскади з фільтрами, узгодження імпедансів і т.п. Без відповідних інструментів налаштувати буде непросто.

Пробував ставити на вихід LTDC регістр 74hc574 і подавав на його тактовий вхід сигнал LCD_CLK, результат без змін. Можливо проблема ще може бути в частоті піксельних даних, стандарт відео 640x480 вимагає частоту пікселів 25.175 мГц, PLL LTDC вдається налаштувати саму ближчу частоту 25.125 мГц.

#15 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-30 01:42:09

dimich пише:

Що ж, моя гіпотеза - відбувається розсинхронізація між піксель-клоком LTDC і відновленим піксель-клоком у моніторі. Скоріш за все через недосконалість аналогової частини та особливості дискретизації аналогового сигнала в TFT-моніторі. Через це фронт відеосигнала попадає то в один піксель, то в інший, сусідній.
Кінескопний монітор не відновлює піксел-клок, там це не потрібно.

Єдине, що на даний момент можу порадити - це роздобути осцилограф і подивитись, чим сигнал, що генерується вашою схемою, відрізняється від еталонного VGA (при підключеному моніторі, звісно).

Як воркераунд, можете спробувати в лінії Green після резистора поставити конденсатор десь 10-47 пФ в землю (підберіть експериментально). Це має "розмити" зображення і джиттер буде не так помітно.

Теж про це подумав, коли підключив кінескопний монітор, але до останнього надіявся що це я десь допустив помилку. Шкода що в проєкті гітхаба про цей нюанс промовчали, на жаль не підходить LTDC для моніторів з аналоговим входом. Дякую за допомогу

#16 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-30 00:49:20

dimich пише:
duron пише:

Піни LTDC, в процесі наладки зменшив до 3х (PI9=VSYNC,  PI10=HSYNC, PI2=VIDEO G7).

Які номінали резисторів на кожному з пінів? (на фото не розібрати).

На схемі в проекті з гітхаба R-2R ЦАП, він робить певну аттенюацію. У вас, якщо на виході PI2 3.3В, то має бути десь 270-300 Ом.
На VSYNC і HSYNC навпаки, мають бути TTL-рівні, 82 Ома може бути забагато (від схеми монітора залежить).

На кожному аналоговому вході стоять резистори по 330Ом. На входи синхронізації резистори не ставив взагалі, але про всяк випадок перевірив роботу з резисторами по 100Ом, які звичайно ж на роботу не вплинули.

#17 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-29 23:15:59

dimich пише:
duron пише:

Саме на цих зелених смугах і відбувається джитер пікселів.

Так мабуть цей сигнал і пролазить у відеосигнал, може й не прямо, а побічно. Схему підключення ж теж не показуєте.
TFT монітор намагається синтезувати піксель-клок по імпульсам горизонтальної синхронізації, а поріг спрацьовування плаває через шум квантування АЦП. Сигнал VGA-то аналоговий, і горзонтальна синхронізація йде в каналі зеленого.
Без коду, де той LTDC конфігурується, без схеми підключення, без діагностичної інформації це ворожіння на кавовій гущі.

Схеми як такої немає, поки що все зібрано навісним монтажем, плата процесора Core429I і VGA розєм. Піни LTDC, в процесі наладки зменшив до 3х (PI9=VSYNC,  PI10=HSYNC, PI2=VIDEO G7). Код конфігурації LTDC взяв на github https://github.com/iliasam/stm32f429_vga_examples/blob/master/simple_vga_example/32f429_lcd.c

WIN_20250329_21_44_13_Pro.jpg

#18 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-29 21:16:41

dimich пише:
duron пише:

підключивши тактовий вихід LTDC на вхід зеленого кольору монітора, ці смуги стає добре видно.

Ну схоже на імпульси частотою близько 80 кГц, розмазані за рахунок характеристики навантаження. Що ще може бути на тактовому виході? Вони мабуть і пролазять у сигнал.

Саме на цих зелених смугах і відбувається джитер пікселів. Там де смуг немає зображення чисте. Ніяк не можу зрозуміти що це, змінював тактову частоту ядра, і навіть дійшло до заміни кварцу на інший, зображення від цього не змінюється

#19 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-29 20:36:00

dimich пише:
duron пише:

Цікаво що на кінескопному моніторі їх немає, зображення чисте, тому думаю проблема не в коді.

Ну може це гармоніка горизонтальної синхронізації пролазить, через те, що лінія неузгоджена. Може якісь вибрики по живленню. Без осцилограми можна довго вгадувати.

Нажаль нормального осцилографа на якому це можна було б побачити я не маю. Але підключивши тактовий вихід LTDC на вхід зеленого кольору монітора, ці смуги стає добре видно.

WIN_20250329_19_22_56_Pro.jpeg

#20 Re: Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-29 19:59:46

Опишу більш детальніше. В першому пості я помилково написав що це лінії, але насправді це вертикальні смужки, десь від 10 до 20 послідовних пікселів. Всього на екрані їх 3 штуки. Якщо на моніторі увімкнути режим автоналаштування зображення, то ці смужки змінюють своє положення. Цікаво що на кінескопному моніторі їх немає, зображення чисте, тому думаю проблема не в коді.

#21 Апаратні питання » STM32f429 LTDC VGA джитер » 2025-03-29 13:37:52

duron
відповідей: 39

Вітаю, намагаюсь подружити мікроконтролер STM32F429 з VGA монітором в роздільній здатності 640х480 по LTDC. Зображення на екрані з'являється, все працює, але на моніторі присутні три вертикальні лінії з доволі великим джитером пікселів. Пробував гратися з дільниками PLL і швидкістю роботи портів, але на картинку це сильно не впливає. Можливо ще хтось пробував підключати таким способом, чи була у вас така проблема, і чи можна її вирішити.

#23 Re: Проекти » Трьохфазний тиристорний регулятор обертів колекторного двигуна » 2024-02-27 02:06:23

dimich пише:

Чи не простіше обмежити швидкість зміни керуючого сигнала з потенціометра?

Хмм, цікава думка, швидка зміна обертів мені і не потрібна. Треба буде спробувати.

#24 Re: Проекти » Трьохфазний тиристорний регулятор обертів колекторного двигуна » 2024-02-26 20:33:24

dimich пише:

Я маю на увазі не частоту роботи самого АЦП, а частоту аналізу отриманного значення програмою.

А зрозумів, частота аналізу виходить 300 гц. Я маю по 2 зовнішні переривання для кожної фази, від детекторів переходу через нуль. І коли спрацьовує переривання, саме в цей момент беруться вибірки з АЦП по струмові, тахогенератору і змінних резисторів, і тут же виконується обчислення PID. До речі, частота дискретизації PID теж дорівнює 300 гц.

dimich пише:

Якщо при 23А лампочка моргає, то вже непорядок з проводкою. Або з лампочкою smile Тоді вибачте, не розумію проблему ще більше. Ви хочете обмежити швидкість обмеження струму?

Ну 23A це не мало не багато а 5кВт навантаження на мережу, а від трансформатора я знаходжусь далеко. Тому різко подавати таке навантаження в мережу не дуже добре (мої сусіди це підтвердять). Наприклад коли відбувається розгін, то двигун теж працює на цих же 23 амперах, але це відбувається плавно, просто лампочка на момент притухає і все.

#25 Re: Проекти » Трьохфазний тиристорний регулятор обертів колекторного двигуна » 2024-02-26 16:44:33

dimich пише:

Може була недостатня частота опитування АЦП? Інших варіантів, чому би з ватчдогом працювало, а з програмним опитуванням ні, не бачу.

АЦП працює в чотирьох канальному режимі, з частотою 9мГц і DMA, в сумі виходить що кожен канал працює на частоті трохи більше ніж 2мгц, думаю цієї частоти опитування достатньо.
Думаю що програмне опитування не працює тому, що в момент коли робиться вибірка, амплітуда сигналу на вході АЦП вже йде на спад, із за невеликої ємності конденсатора (100мкф) після діодного мосту. Вирішить це можна збільшенням ємності, але тоді втратиться швидкість реакції.

dimich пише:

Змінили оберти -> струм підвищився, перевищив поріг -> спрацював ватчдог -> обмежив струм. Струм зменшився -> перемкнулись на регулятор.

Такий спосіб працює, але не дуже добре. Виходить що двигун працює зі струмом в 5А -> змінюю оберти, відбувається різкий стрибок струму з 5А до 23А -> спрацьовує ватчдог -> струм зменшився -> знову працює регулятор з 5А. Якщо в цей момент дивитись на лампочку, то виглядає так, ніби хтось швидко клацає перемикач що вимикає світло.

Підвал форуму