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

Antony1000

Участник
  • Постов

    16
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Antony1000

  • Звание
    Участник
    Участник
  1. В том то и дело, что регистры контроллера FMC для работы с SDRAM идентичны. Только я работаю с библиотеками HAL, а там SPL.
  2. На прошивке от Стартеркита такого не происходит.
  3. В том-то и дело что программа стоит на while(1), а в SDRAM появляются какие-то значения.
  4. ПЛАТА ТАЖЕ похоже, что самопроизвольно в ОЗУ появляются какие-то записи, что можно наблюдать в окне Memory 0xC0000000. Откуда могут браться это значения?
  5. Большое СПАСИБО буду разбирать
  6. Не могли бы дать свой пример настройки ОЗУ и ЛЦД. Хотел бы проверить работу железа. При записи в память внешнего ОЗУ запись происходит с ошибками не все значения записываются. Что это может быть? Помогите вывести изображение из ФЛЭШИ. Похоже, что у меня как-то переключаются слои Похоже, что из флэши изображения выводится стабильно Завёл константу const unsigned char logotip[16400] = { 0xff,0xff.... Белая полоса, далее непонятные цвета по видимому содержимое кода программы. Вывел изображение из флэш уже цветная картинка всё гууд. Затык в работе с SDRAM
  7. Интересно получается: при отладке в пошаговом режиме после вывода изображения на экран и остановки отладки всё хорошо выводится. Как только запускаю RUN в режиме отладки начинают мерцать буквы и бары.
  8. В инициализации ОЗУ просто указано FMC_SDRAMInitStructure.FMC_ColumnBitsNumber = FMC_ColumnBits_Number_8b; FMC_SDRAMInitStructure.FMC_RowBitsNumber = FMC_RowBits_Number_11b; а надо FMC_SDRAMInitStructure.FMC_ColumnBitsNumber = FMC_ColumnBits_Number_9b; FMC_SDRAMInitStructure.FMC_RowBitsNumber = FMC_RowBits_Number_13b; просто не вся адресация ОЗУ
  9. После разбора даташита на дисплей создал код LtdcHandler.Init.HorizontalSync = 0; LtdcHandler.Init.VerticalSync = 0; LtdcHandler.Init.AccumulatedHBP = 44; //HBP+HSYNC-1; LtdcHandler.Init.AccumulatedVBP = 15; //VSYNC+VBP-1; LtdcHandler.Init.AccumulatedActiveW = 524; LtdcHandler.Init.AccumulatedActiveH = 287; LtdcHandler.Init.TotalWidth = 525; LtdcHandler.Init.TotalHeigh = 288; LtdcHandler.Init.Backcolor.Red= 0; LtdcHandler.Init.Backcolor.Blue= 0; LtdcHandler.Init.Backcolor.Green= 0; /* LCD clock configuration */ /* PLLSAI_VCO Input = HSE_VALUE/PLL_M = 25/15 = 1,6667Mhz */ /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN = 180 Mhz */ /* PLLLCDCLK = PLLSAI_VCO Output/PLLSAIR = 180/5 = 36 Mhz */ /* LTDC clock frequency = PLLLCDCLK / LTDC_PLLSAI_DIVR_8 = 36/4 = 9 Mhz */ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC; PeriphClkInitStruct.PLLSAI.PLLSAIN = 108; PeriphClkInitStruct.PLLSAI.PLLSAIR = 5;// PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_4; HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct); /* Polarity */ LtdcHandler.Init.HSPolarity = LTDC_HSPOLARITY_AL; LtdcHandler.Init.VSPolarity = LTDC_VSPOLARITY_AL; LtdcHandler.Init.DEPolarity = LTDC_DEPOLARITY_AL; LtdcHandler.Init.PCPolarity = LTDC_PCPOLARITY_IPC; HAL_LTDC_Init(&LtdcHandler); Layercfg.WindowX0 = 0; Layercfg.WindowX1 = 480; Layercfg.WindowY0 = 0; Layercfg.WindowY1 = 272; Layercfg.PixelFormat = LTDC_PIXEL_FORMAT_ARGB8888; Layercfg.FBStartAdress = FB_Address; Layercfg.Alpha = 255; Layercfg.Alpha0 = 0; Layercfg.Backcolor.Blue = 0; Layercfg.Backcolor.Green = 0; Layercfg.Backcolor.Red = 0; Layercfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA; Layercfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA; Layercfg.ImageWidth = 480; Layercfg.ImageHeight = 272; HAL_LTDC_ConfigLayer(&LtdcHandler, &Layercfg, LayerIndex); DrawProp[LayerIndex].BackColor = LCD_COLOR_WHITE; DrawProp[LayerIndex].pFont = &Font24; DrawProp[LayerIndex].TextColor = LCD_COLOR_BLACK; HAL_LTDC_EnableDither(&LtdcHandler); изображение выводится, но через секунду или меньше ... или больше начинают мерцать точки в буквах и изображениях. Где может быть косяк. Ау, пожалуйста, отзовитесь специалисты по ТФТ. Непонятки в настройке области. Почему Layercfg.WindowX0 = 0; Layercfg.WindowX1 = 480; Layercfg.WindowY0 = 0; Layercfg.WindowY1 = 272; .... Layercfg.ImageWidth = 480; а не Layercfg.WindowX0 = 44; //HBP+HSYNC;; Layercfg.WindowX1 = 524; //(LCD_PIXEL_WIDTH + HBP+HSYNC - 1); Layercfg.WindowY0 = 15; //VSYNC + VBP; Layercfg.WindowY1 = 287 //(LCD_PIXEL_HEIGHT + VSYNC+VBP - 1); ..... Layercfg.ImageWidth = (480*4)+3; // the length of one line of pixels in bytes + 3 then : во втором случае выводится бред
  10. Помогите настроить периферийный модуль LTDC в stm32f429 для дисплея MI0430HT (даташит в приложении). Дисплей 480 * 272 точки. Плата от Стартеркита : http://starterkit.ru/html/index.php?name=s...view&id=128 Настройки взял из примера на плату, но в оригинальном примере работает а под HAL нет. Прошу помощи. LtdcHandler.Init.HorizontalSync = 40; LtdcHandler.Init.VerticalSync = 9; LtdcHandler.Init.AccumulatedHBP = 42; LtdcHandler.Init.AccumulatedVBP = 11; LtdcHandler.Init.AccumulatedActiveW = 52; LtdcHandler.Init.AccumulatedActiveH = 283; LtdcHandler.Init.TotalWidth = 525; LtdcHandler.Init.TotalHeigh = 288; LtdcHandler.Init.Backcolor.Red= 0; LtdcHandler.Init.Backcolor.Blue= 0; LtdcHandler.Init.Backcolor.Green= 0; /* PLLSAI_VCO Input = HSE_VALUE/PLL_M = 25/15 =1,667 Mhz */ /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN = 180 Mhz */ /* PLLLCDCLK = PLLSAI_VCO Output/PLLSAIR = 180/5 = 36 Mhz */ /* LTDC clock frequency = PLLLCDCLK / LTDC_PLLSAI_DIVR_8 = 36/4 = 9 Mhz */ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC; PeriphClkInitStruct.PLLSAI.PLLSAIN = 108; PeriphClkInitStruct.PLLSAI.PLLSAIR = 5; PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_4; HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct); LtdcHandler.Init.HSPolarity = LTDC_HSPOLARITY_AL; LtdcHandler.Init.VSPolarity = LTDC_VSPOLARITY_AL; LtdcHandler.Init.DEPolarity = LTDC_DEPOLARITY_AL; LtdcHandler.Init.PCPolarity = LTDC_PCPOLARITY_IPC; HAL_LTDC_Init(&LtdcHandler); Layercfg.WindowX0 = 43; Layercfg.WindowX1 = (480 + 43 - 1); Layercfg.WindowY0 = 12; Layercfg.WindowY1 = (272 + 12 - 1); Layercfg.PixelFormat = LTDC_PIXEL_FORMAT_ARGB8888; Layercfg.FBStartAdress = FB_Address; Layercfg.Alpha = 255; Layercfg.Alpha0 = 0; Layercfg.Backcolor.Blue = 0; Layercfg.Backcolor.Green = 0; Layercfg.Backcolor.Red = 0; Layercfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA; Layercfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA; Layercfg.ImageWidth = ((480 * 4) + 3);//524;//480; Layercfg.ImageHeight = 272; HAL_LTDC_ConfigLayer(&LtdcHandler, &Layercfg, LayerIndex); DrawProp[LayerIndex].BackColor = LCD_COLOR_WHITE; DrawProp[LayerIndex].pFont = &Font24; DrawProp[LayerIndex].TextColor = LCD_COLOR_BLACK; HAL_LTDC_EnableDither(&LtdcHandler); MI0430HT_V1.0_withTP.PDF
  11. Ну и как успехи? Для написания проекта пользуетесь Куб или SPL или чем-то ещё
  12. Как выяснилось из даташита на дисплей там используется только пин DE. Т. е. нет необходимости в пинах синхронизации. Кто-то пользуется платами стартеркита или "сам с собой тихо я веду беседу" ; - )
  13. Помогите настроить правильно периферию для платы в CubeMX. В приложении проект для Куба. ТО, что я навоял не работает. Было бы очень полезно разобраться в настройках для Куба, так как контроллер сложный и знать досконально настройку всех регистров, особенно для работы с ЛЦД, мне кажется, тяжеловато. С надеждой на помощь. test_LCD_01.zip
×
×
  • Создать...