ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 апреля
803062 Топик полностью
il-2 (19.12.2017 19:32, просмотров: 186) ответил _basile на Поделился бы. Оно каш ноу на хую, но прикольнольно ж.
Принцип такой: - Один обычный таймер используется для генерации PCLK, он-же является источником тактирования для второго таймера. - Второй таймер (тактируется от первого) используется для генерации DE, HSYNC, VSYNC а так-же используется для разрешения работы третьего таймера. Этот таймер должен быть Advanced (с наличием Repetition counter) и с 3 каналами минимум - т.е. подходит только TIM1 и TIM8. Собственно этот таймер и перенастраивается по событию Update через DMA burst mode. Repetition counter необходим, чтобы можно было одним блоком данных (6 регистров) загружаемых в таймер по DMA обслужить генерацию до 128 строк. Иначе размер блоков настроек таймера достигнет неприличных размеров. Главная фишка - использование center aligned mode. Ну и надо проявить некоторую сообразительность при формировании этих блоков с регистрами. Канал DMA настраивается на круговой режим передачи из памяти (с инкрементом) в регистр таймера Burst DMA - запрос по событию TIM1_UP. - Третий таймер формирует запросы для DMA на чтение из памяти в порт. Частота запросов = PCLK, таймер настраивается на режим Gated slave mode - от второго таймера. В качестве сигнала Gate используется канал для генерации DE. Это то, что мне удалось запустить на дисплее 480х272. Еще планировал сделать передачу данных из внешней SPI SRAM в порт по DMA, но пока не сделал. Хотя сложностей быть не должно.