STM Урок 60. F769I-DISCO. WB. LCD. SDIO. Часть 1



 

Урок 60

Часть 1

 

F769I-DISCO. WB. LCD. SDIO

 

Продолжаем работу с бесплатной средой программирования System Workbench for STM32.

На прошлом занятии мы с помощью библиотеки BSP и не только смогли вывести картинки на экран дисплея, причем вывод осуществляется практически мгновенно.

Сегодня мы займёмся тем же самым ремеслом, только подключим мы ради эксперимента уже другую, более навороченную плату — STM32F769I-DISCOVERY.

Я показывал обзор данной платы в видеоуроке здесь и здесь. Поэтому все прелести данной платы я объяснять не буду.

Но там мы данную плату испытывали только с помощью готового примера. Хочется, наконец-то, что-то создать и самим.

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

Запустим Cube MX, откроем создание нового проекта. выберем соответствующий контроллер

 

image00

Жмем «OK».

Настроим RCC на кварцевый резонатор

 

image03

 

Сразу зайдём в Clock Configuration и настроим нужную частоту, так как потом будет сложнее. Настроим на 200 МГц, ибо так легче потом настроить периферию, чем с 216 (нажмите на картинку для увеличения размера)

 

image04_0500

 

Теперь начнём потихоньку всё включать.

Включим SDMMC2, так как именно к ней подключен распаянный на плате держатель Micro-SD

 

image01

 

Включим FATFS для чтения файлов с флеш-карты

 

image05

 

В Configuration в FATFS увеличим максимальный размер сектора до 4096

 

image06

 

Теперь вернемся в Clock Configuration и настроим умножители, делители и мультиплексоры следующим образом, отказавшись от предложенной автонастройки во избежания её вечной попытки настроить нам данные переключатели

 

image07

 

Но это ещё не всё, так как красный крестик у нас всё ещё активен. В правом нижнем углу большого окна clock configuration есть ещё один мультиплексор SDMMC2 Clock Mux. Переключим его в положение PLL48CLK. Вот теперь крестик исчез. Возвращаемся в Pinout.

Включим FreeRTOS

 

image09

 

Затем настроим SYS

 

image10

 

Теперь начнем настраивать дисплей.

Так как дисплей у нас подключен по интерфейсу DSI в 24-битном режиме, то такой режим мы в LTDC и выбираем

 

image11

 

 

Так как мы выбрали именно такой режим, то мы видим, что ни одна ножка в контроллере не активизировалась. Поэтому нужно настроить непосредственно режим DSI

 

image12

 

Включим DMA2D

 

image13

 

Настроим FMC

 

image14

 

На плате присутствует также два светодиода красный и зелёный. Подключены они к PJ5 и PJ13

 

image16

 

Поэтому включим данные ножки на выход, мало ли пригодятся светодиоды

 

image17

 

Переходим в Configuration. Вот тут работы будет много, до этого была разминка.

Как всегда, добавим стек в основной задаче и добавим ещё 4 задачи во FreeRTOS

 

image15

 

В FMC будут следующие настройки и тайминги

 

image18

 

В CORTEX_M7 внесём следующие настройки

 

image19

 

 

LTDC настраиваем так

 

image21

 

image22_1

 

В DSI Host настройки будут такие

 

image20

 

Ну, вроде с настройками пока всё.

Зайдём в Project Settings и настроим его следующим образом

 

image23

 

Сгенерируем проект и закроем диалог.

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

Откроем файл main.c и поставим туда фокус ввода.

Как всегда, уберём в свойствах проекта конфигурации всех отладчиков.

Соберём проект, прошивать пока не будет.

Теперь нам необходимо подключить файлы библиотеки BSP для дисплея. Хотя это делается подобным образом, как и для предыдущего контроллера, но всё-таки есть смысл рассказать ещё раз, так как некоторые незначительные различия будут.

Зайдём в папку «Drivers» в папке с проектом и создадим там папку «BSP», зайдём в эту папку и создадим там 2 папки – «STM32F769I-Discovery» и «Components». Зайдём в папку «Components» и скопируем туда из папки «Диск:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.7.0\Drivers\BSP\Components» папки «ft6x06», «otm8009a» и «Common».

Вернемся на 2 уровня выше и зайдём в другую папку – «STM32F769I-Discovery». Скопируем в неё из папки «Диск:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.7.0\Drivers\BSP\STM32F769I-Discovery» следующие файлы:

stm32f769i_discovery.c
stm32f769i_discovery.h
stm32f769i_discovery_lcd.c
stm32f769i_discovery_lcd.h
stm32f769i_discovery_sdram.c
stm32f769i_discovery_sdram.h
stm32f769i_discovery_ts.c
stm32f769i_discovery_ts.h

Выходим из этой папки на самый верхний уровень папки с проектом и создадим там папку «Utilities». Зайдём в данную папку и скопируем туда из папки «Диск:\Keil_v5\ARM\PACK\Keil\STM32F7xx_DFP\2.7.0\Utilities» папку «Fonts».

Возможно, в момент прочтения статьи имя папки «2.7.0» будет уже другим, так как версии постоянно обновляются.

Ещё одно условие: файлы в добавленных к проекту папках не должны содержать атрибут «Только для чтения».

Вернёмся в WB, обновим там дерево с проектом (Refresh (F5)), и пересоберём наш проект.

Теперь нам необходимо подключить созданные папки к проекту. Для этого в свойствах проекта заходим в пункт C/C++ Build -> Settings -> Tool Settings, нажимаем там кнопку с плюсиком и добавляем нужную папку (нажмите на картинку для увеличения изображения)

 

image24_0500

 

Добавим туда папку «STM32F769I-Discovery» следующим образом, в процессе желательно путь исправить на относительный, чтобы было по аналогии с другими файлами:

 

image25

 

image26

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

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

 

 

Предыдущий урок Программирование МК STM32 Следующая часть

 

 

Отладочную плату можно приобрести здесь недорого (продавец проверенный) STM32F769I-DISCO

 

 

Смотреть ВИДЕОУРОК

 

STM32 F769I-DISCO. WB. LCD. SDIO

3 комментария на “STM Урок 60. F769I-DISCO. WB. LCD. SDIO. Часть 1
  1. Андрей:

    (Pack 2.9.0) При попытке собрать проект WB начал ругаться на отсуствие файла adv7533.h Ошибка в строке #53 файла stm32f769i_discovery_lcd.h Добавил в папку Components, папку adv7533 — ошибка исчезла

  2. Костя:

    При генерации кода в кубе он начал ругаться:

    These IPs still have some not configured or wrong parametr values:
    [FATFS, Verify the Platform Settings Tab]

    Настройки все сделал как и в уроке.

    • Костя:

      Сам же нашел ответ, он ругается что не выбран пин uSD_Detect. В принципе можно выбрать любой свободный и настроить на GPIO_Input и во вкладке конфигурации FATFS в разделе Platform Settings выбрать наш настроенный Pin. Для платы же DISCO Pin PI15.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*