Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
GFX
Поставщик валерьянки для Кота
Сообщения: 2040
Зарегистрирован: Вт окт 23, 2012 18:36:14
Откуда: Ростов-на-Дону

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение GFX »

Chettuser писал(а):Бросьте вы эту каку (Cube)!
Причем здесь кака Куб, я его использую как визуализация выводов, очень удобно частоты смотреть и настраивать, никто Холл использовать вам не предлагает и я его не использую, но как визуальная поддержка и справочник по ножкам куб отличная штука и спорить тут бесполезно.

Добавлено after 3 minutes 55 seconds:
Reflector писал(а): Вообще по докам максимум в master mode - 24 MHz, но раз весь мк гонится в 2 или почти в 2 раза, то один SPI в 1.5 раза разгонится без проблем.
Да нет разницы, что 2, что 4 делитель, скорость одна.
Проверить сейчас не могу, но такого определенно быть не должно.
Вот даташит, тут 18 четко прописано как и в STM32f103.
Скриншот 2016-11-23 23.52.28.png
(83.04 КБ) 504 скачивания
На делитель 2 он не реагирует ни на 103, ни тут.

Добавлено after 3 minutes 36 seconds:
Chettuser писал(а): Разогнанный F103 до x16 с кварцем 8МГц, прекрасно шлёт на 64 МГц SPI. Заливку дисплея 160*128 (Nokia 1616) не проверял, но на глаз где то с десятка два fps.
:))) с два десятка у меня выдает 320х240 без разогнанного состояния. Нашли чем хвастать, зато куб у вас кака :kill: Нет там 64МГц, а на 32 он прекрасно будет выдавать в нормальной программе 30-40 ФПС на 160х128.
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Reflector »

GFX писал(а):Вот даташит, тут 18 четко прописано как и в STM32f103.
Изображение

Почему для SPI1 допустимая частота больше? Видимо потому, что более быстрая APB2 дает какой-то профит.
Реклама
Аватара пользователя
Juris
Грызет канифоль
Сообщения: 255
Зарегистрирован: Вс мар 04, 2012 12:05:24
Откуда: Riga

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Juris »

Chettuser писал(а):
Juris писал(а): мой китайский "свисток" ST-Link больше не определяетса системой. Странно, чем же я его замучал
Сам сдох. Он скорее всего на F101 (с USB!!! :shock: ). Народ менял на нормальный F103C8T6. Только прошить чем то надо будет.
Я осознаю, что это off-topic, но поскольку тут уже были разговоры, разскажу как сделал себе "новый" ST-Link заливальщик. Валялся у меня без дела старый модуль Discovery-stm8, где для связи по USB на легко отламываемом куске платы живёт F103. Подпаялся я к пинам 30 и 31, для прошивки его через сериал, прошил, и думал, что всё, порядок, так как некие вроде-как-st-link пины там уже были. Но нифига. Пришлось подпаятса также к пинам 27 и 26+15, также как разводка на китайском модуле с чипом F101. Но теперь порядок, работает, само-обновляетса, прошивает. И надеюсь несдохнет так просто на ровном месте как китайский F101.
Картинки:
Спойлерhttp://bildites.lv/a/x7uaxxs8#845dbptu
Аватара пользователя
Fusion
Грызет канифоль
Сообщения: 272
Зарегистрирован: Пт ноя 13, 2009 10:39:32
Откуда: Москва
Контактная информация:

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Fusion »

Проверил скорость обновления экрана.
32.5 кадра в секунду.
Тогда скорость SPI:
32.5 Гц * 320 * 240 * 2 * 8 = 40 мГц

Реально скорость 12.5 кадров, так как там еще вычисления.
Реклама
Эиком - электронные компоненты и радиодетали
Chettuser

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Chettuser »

GFX писал(а): Нашли чем хвастать, зато куб у вас кака :kill: Нет там 64МГц, а на 32 он прекрасно будет выдавать в нормальной программе 30-40 ФПС на 160х128.
Да я так же пользуюсь кубом с той же целью что и Вы! (Есть люди которые нагребли горсть F4 и оторваться не могут от куба). По поводу fps - без понятия сколько там было, не измерял. Обозначенное - это оценка "на глаз".
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Reflector »

F103 запаянного под рукой нет, F303 никак не доедет, но проверил SPI1 на F407, там он точно такой-же, с максимальной документированной скоростью 42 MHz, т.е. 168/4. При AHB и APB2 без делителей частота SPI при /2 и /4 естественно отличается в 2 раза, правда мне пришлось PLL понизить, чтоб на ЛА это нормально разглядеть, но мк ведь не знает какая у нас реальная частота на APB2...
Реклама
Chettuser

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Chettuser »

В том то и дело, что куб не даст настроить выше максимальной установленной, а ручками это делается на раз плюнуть. Мой ЛА не потянудл естественно такие частоты, но причину отказа запуска дисплея я уже знал, потому и добавил паузу для BUZY. Иначе проскакивало и молотило без остановки.
Аватара пользователя
GFX
Поставщик валерьянки для Кота
Сообщения: 2040
Зарегистрирован: Вт окт 23, 2012 18:36:14
Откуда: Ростов-на-Дону

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение GFX »

Reflector писал(а):
GFX писал(а):Вот даташит, тут 18 четко прописано как и в STM32f103.
Изображение

Почему для SPI1 допустимая частота больше? Видимо потому, что более быстрая APB2 дает какой-то профит.
APB2 понятно что может дает, только откуда эта таблица? 24 из 72 никак не получить с помощью множителя 2 или 4 :)) Нет такого в даташите и референс мануале и физически нет делителя 3, так что вот как то так, но заявлено 18, и гонится он только вместе со всем процессором.

Добавлено after 3 minutes 51 second:
Fusion писал(а):Проверил скорость обновления экрана.
32.5 кадра в секунду.
Тогда скорость SPI:
32.5 Гц * 320 * 240 * 2 * 8 = 40 мГц
Реально скорость 12.5 кадров, так как там еще вычисления.
Вот такое вычисление вообще может считать что угодно, если в измерении ФПС косяк и смотря что иметь в виду под обновлением, полностью закраска с одного цвета на другой?. Вы лучше сделайте делитель на 4, сделайте замер ФПС и потом поменяйте на 2 и опять сделайте замер.

Добавлено after 1 minute 50 seconds:
Reflector писал(а):F103 запаянного под рукой нет, F303 никак не доедет, но проверил SPI1 на F407, там он точно такой-же, с максимальной документированной скоростью 42 MHz, т.е. 168/4. При AHB и APB2 без делителей частота SPI при /2 и /4 естественно отличается в 2 раза, правда мне пришлось PLL понизить, чтоб на ЛА это нормально разглядеть, но мк ведь не знает какая у нас реальная частота на APB2...
В том то и дело что может знает, понятно что делитель 2 рабочий на более малых скоростях, замер нужно по максимуму делать, а то опять догадки.

Добавлено after 4 minutes 11 seconds:
Chettuser писал(а):В том то и дело, что куб не даст настроить выше максимальной установленной, а ручками это делается на раз плюнуть.
Причем тут куб? Все он дает, только еще раз, я его не использую в качестве холла, просто глянуть ножки расстановку, функции, скорости и прочее и все он даст посмотреть из доступного и даже не рабочего. Дело не в нем, по даташиту 18 МГц у SPI на 72 МГц основного клока это делитель 4, есть делитель 2, но по мне он не срабатывает из-за каких-то аппаратных ограничений, разницы по ФПС нет что 4, что 2. Проведу еще чистый эксперимент просто закраску экрана посчитаю, чтобы без накладных расчетов и заполнения буфера АЦП, синхронизаций и прочего.
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение scorpi_0n »

GFX писал(а):Причем тут куб? Все он дает, только еще раз, я его не использую в качестве холла, просто глянуть ножки расстановку, функции, скорости и прочее и все он даст посмотреть из доступного и даже не рабочего. Дело не в нем, по даташиту 18 МГц у SPI на 72 МГц основного клока это делитель 4, есть делитель 2, но по мне он не срабатывает из-за каких-то аппаратных ограничений, разницы по ФПС нет что 4, что 2. Проведу еще чистый эксперимент просто закраску экрана посчитаю, чтобы без накладных расчетов и заполнения буфера АЦП, синхронизаций и прочего.
СПИ флэш спокойно крутится на 36 МГц клока, т.е. делитель на 2. Или дисплей не тянет, или с флагами заморочки, они там к клоку СПИ привязаны, а не к клоку МК. Померять ФПС можно через ДВТ или любым свободным таймером.
Аватара пользователя
GFX
Поставщик валерьянки для Кота
Сообщения: 2040
Зарегистрирован: Вт окт 23, 2012 18:36:14
Откуда: Ростов-на-Дону

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение GFX »

scorpi_0n писал(а):СПИ флэш спокойно крутится на 36 МГц клока, т.е. делитель на 2. Или дисплей не тянет, или с флагами заморочки, они там к клоку СПИ привязаны, а не к клоку МК. Померять ФПС можно через ДВТ или любым свободным таймером.
Так... оставил только экрана перерисовку, разница есть, не в два раза, но есть, видимо ждет экран или еще чего ждет, так что замеры были не совсем у меня корректные на осциллографе, пока АЦП то да се и разницы просто не было на фоне видно.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Reflector »

GFX писал(а):APB2 понятно что может дает, только откуда эта таблица? 24 из 72 никак не получить с помощью множителя 2 или 4 :)) Нет такого в даташите и референс мануале и физически нет делителя 3, так что вот как то так, но заявлено 18, и гонится он только вместе со всем процессором.
Таблица из Datasheet для F303. 24 не должно обязательно получаться из 72, оно должно получаться из частоты не превышающей 72, т.е. это может быть 48 / 2 (36 видимо согласно ихним стандартам уже перебор). Для F103 ADC также указана максимальная скорость при 56 MHz... Ничего необычного, иногда скорость периферии важнее скорости cpu.
Аватара пользователя
GFX
Поставщик валерьянки для Кота
Сообщения: 2040
Зарегистрирован: Вт окт 23, 2012 18:36:14
Откуда: Ростов-на-Дону

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение GFX »

Fusion писал(а):Проверил скорость обновления экрана.
32.5 кадра в секунду.
Тогда скорость SPI:
32.5 Гц * 320 * 240 * 2 * 8 = 40 мГц

Реально скорость 12.5 кадров, так как там еще вычисления.
Извиняюсь, расчет правильный, на 72 Мгц у меня выходит закраска 29 ФПС через ДМА, 20 без ДМА и 15 при делителе 4, причем при делителе 4 разници нет что с ДМА что без 15 кадров, то что проц успевает опросить. Ну ладно, разгоняем еще и SPI бедный проц :cry:
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение 240265 »

Да ладно "бедный" , вот когда я его в первой версии Fusion на 120 Мгц пробовал вот тогда бедный. Но ни чё - работал.
IVL ex UA6PJ
Аватара пользователя
Fusion
Грызет канифоль
Сообщения: 272
Зарегистрирован: Пт ноя 13, 2009 10:39:32
Откуда: Москва
Контактная информация:

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Fusion »

Для STM32K6 в даташите прописана максимальная частота:
SPI interface allows to communicate up to 18 Mbits/s in slave and master modes

Правдв потом в таблице другая:
fSCK (Master mode 2.7<VDD<3.6) 24MHz

Для контроллера дисплея ILI9341 максимальная частота SPI 10 мГц:
Serial Clock Cycle (Write) min 100ns

Но работает на 40 и ладно)
Аватара пользователя
GFX
Поставщик валерьянки для Кота
Сообщения: 2040
Зарегистрирован: Вт окт 23, 2012 18:36:14
Откуда: Ростов-на-Дону

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение GFX »

Fusion писал(а):Для STM32K6 в даташите прописана максимальная частота:
SPI interface allows to communicate up to 18 Mbits/s in slave and master modes

Правдв потом в таблице другая:
fSCK (Master mode 2.7<VDD<3.6) 24MHz

Для контроллера дисплея ILI9341 максимальная частота SPI 10 мГц:
Serial Clock Cycle (Write) min 100ns

Но работает на 40 и ладно)
Получается и на 60МГц работает у меня. А на 103м на 64МГц. Правда на самом деле выигрыша большого нет. При заливке черед DMA да прирост в 2 раза. Но кроме fill screen вы что то отправляете через dma? Точку рисовать и линии явно не стоит. Буквы через точку рисуются да и все остальное. Тут либо заводить буфер рисовать в него, а потом буфер заливать через dma, но памяти много уйдет, ее столько нет для полного буфера. Зато было бы не зависимо от сложности графика 25-30 фпс через spi, это классно конечно.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Reflector »

GFX писал(а):При заливке черед DMA да прирост в 2 раза. Но кроме fill screen вы что то отправляете через dma? Точку рисовать и линии явно не стоит. Буквы через точку рисуются да и все остальное.
Главное не выводить буквы и линии через точку в буквальном смысле, потому что я уже видел довольно много именно таких реализаций, когда есть функция рисования точки и каждый раз вызывается именно она, с передачей координат и соответствующими накладными расходами :) А при рисовании линий без точек тоже неплохо бы изменять направление вывода(у самого индикатора), тогда придется менять только одну координату.
Аватара пользователя
Fusion
Грызет канифоль
Сообщения: 272
Зарегистрирован: Пт ноя 13, 2009 10:39:32
Откуда: Москва
Контактная информация:

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Fusion »

DMA для дисплея совсем не использую.
Символы рисую выводом прямоугольной области:
Спойлер

Код: Выделить всё

void DrawSim24x20(unsigned int X, unsigned int Y, unsigned int color, char digit)
{
	SendCMD(ILI9341_MAC);
  SendData(0xE8);
  SendCMD(ILI9341_COLUMN_ADDR);
  SendData(X>>8);
  SendData(X);
  SendData((X+23)>>8);
  SendData(X+23);
  SendCMD(ILI9341_PAGE_ADDR);
  SendData(0);
  SendData(Y);
  SendData(0);
  SendData(Y+19);

		SendCMD(ILI9341_GRAM);
		GPIO_SetBits(GPIOB, DC);		// data

		for (unsigned int j = 0; j < 3*20; j++) {
		for (unsigned int i = 0; i < 8; i++) {
			if (((font24x20[digit*3*20+j]<<(i))&0x80)==0) {
					SendData(0);
					SendData(0);
			}
			else
			{
					SendData(color>>8);
					SendData(color);	
			}
		}
	}
}


Экран перерисовываю также, только не жду готовности SPI:
Спойлер

Код: Выделить всё


//		while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
		SPI_SendData8(SPI1, color);
//		while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
		SPI_SendData8(SPI1, color);
У СТМ двойной буфер на отправку, поэтому можно писать 2 байта сразу.
Аватара пользователя
GFX
Поставщик валерьянки для Кота
Сообщения: 2040
Зарегистрирован: Вт окт 23, 2012 18:36:14
Откуда: Ростов-на-Дону

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение GFX »

Fusion писал(а):DMA для дисплея совсем не использую.
Символы рисую выводом прямоугольной области:
Спойлер

Код: Выделить всё

void DrawSim24x20(unsigned int X, unsigned int Y, unsigned int color, char digit)
{
	SendCMD(ILI9341_MAC);
  SendData(0xE8);
  SendCMD(ILI9341_COLUMN_ADDR);
  SendData(X>>8);
  SendData(X);
  SendData((X+23)>>8);
  SendData(X+23);
  SendCMD(ILI9341_PAGE_ADDR);
  SendData(0);
  SendData(Y);
  SendData(0);
  SendData(Y+19);

		SendCMD(ILI9341_GRAM);
		GPIO_SetBits(GPIOB, DC);		// data

		for (unsigned int j = 0; j < 3*20; j++) {
		for (unsigned int i = 0; i < 8; i++) {
			if (((font24x20[digit*3*20+j]<<(i))&0x80)==0) {
					SendData(0);
					SendData(0);
			}
			else
			{
					SendData(color>>8);
					SendData(color);	
			}
		}
	}
}


Экран перерисовываю также, только не жду готовности SPI:
Спойлер

Код: Выделить всё


//		while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
		SPI_SendData8(SPI1, color);
//		while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
		SPI_SendData8(SPI1, color);
У СТМ двойной буфер на отправку, поэтому можно писать 2 байта сразу.
Ну я жду флаги все как положено, а то это может выйти боком, ладно разогнать но не смотреть статус это черезчур, особенно перед изменением DC. Единственно spi же 16 битный зачем вы отправляете за два захода цвет то и координаты?А вообще в личку программу работы с дисплеем сбросить можете?

Добавлено after 4 minutes 49 seconds:
Reflector писал(а):
GFX писал(а):При заливке черед DMA да прирост в 2 раза. Но кроме fill screen вы что то отправляете через dma? Точку рисовать и линии явно не стоит. Буквы через точку рисуются да и все остальное.
Главное не выводить буквы и линии через точку в буквальном смысле, потому что я уже видел довольно много именно таких реализаций, когда есть функция рисования точки и каждый раз вызывается именно она, с передачей координат и соответствующими накладными расходами :) А при рисовании линий без точек тоже неплохо бы изменять направление вывода(у самого индикатора), тогда придется менять только одну координату.
линию я рисую нормально не через точку а именно прописав все проверки и обращения. Но направление не меняю... А шрифты че они шрифты выводятся редко выводятся быстро на фпс в данном случае не влияют. Тут скорость заливки чисто при включении важна и саиое главное скорость рисовки линии. Линиями тут все рисуется. Дма для линии без буфера не использовать. Можно флаг свободы на передачу не проверять, т.к. при скорости spi 36-60 мгц скорее всего мы тупо теряем на этом время и он всегда свободен. Проверю. Но на чтение и для работы с SD точно оставлю все как положено.

Добавлено after 15 minutes 18 seconds:
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
Еще я обратил внимание что у вас закоментированы проверки буси, но ьакое применение их вообще неправильное
// while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
SPI_SendData8(SPI1, color);
// while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
SPI_SendData8(SPI1, color);
Перед записью нужно проверять флаг пустого буыера на запись. При этом буси может быть и это не страшно, т.к. есть двойной буфер как раз для этого. Буси нужно проверять перед сменой dc скорости cs и прочего он говорит о том что еще идет передача, но при этом буфер на передачу может быть пуст.А такое применение это потеря времени в чистом виде.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение Reflector »

GFX писал(а):линию я рисую нормально не через точку а именно прописав все проверки и обращения. Но направление не меняю...
Допустим есть типичная вытянутая по вертикали линия (0, 0) - (5, 50). Тогда если инкремент адреса идет по горизонтали, то фактически придется в 50-ти случаях менять координату Y и 45 раз менять X после вывода каждой точки, т.е., грубо говоря, получается 4+4+2+2 байт на точку(плюс/минус несколько байт для разных индикаторов). Если инкремент идет по вертикали, то нужно 5 раз поменять X и все, а это 45*2 + 5*(4+2+2) или в 4.6 раза меньше байт для всей линии.
А шрифты че они шрифты выводятся редко выводятся быстро на фпс в данном случае не влияют.
Тут текста мало, в другой раз будет много, проще написать функцию быстрого вывода текста на все случаи, тем более это не намного сложнее.
Аватара пользователя
GFX
Поставщик валерьянки для Кота
Сообщения: 2040
Зарегистрирован: Вт окт 23, 2012 18:36:14
Откуда: Ростов-на-Дону

Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр

Сообщение GFX »

Reflector писал(а):
GFX писал(а):линию я рисую нормально не через точку, а именно прописав все проверки и обращения. Но направление не меняю...
Допустим есть типичная вытянутая по вертикали линия (0, 0) - (5, 50). Тогда если инкремент адреса идет по горизонтали, то фактически придется в 50-ти случаях менять координату Y и 45 раз менять X после вывода каждой точки, т.е., грубо говоря, получается 4+4+2+2 байт на точку(плюс/минус несколько байт для разных индикаторов). Если инкремент идет по вертикали, то нужно 5 раз поменять X и все, а это 45*2 + 5*(4+2+2) или в 4.6 раза меньше байт для всей линии.
А шрифты че они шрифты выводятся редко выводятся быстро на фпс в данном случае не влияют.
Тут текста мало, в другой раз будет много, проще написать функцию быстрого вывода текста на все случаи, тем более это не намного сложнее.
Да я согласен и не против. А можно вопрос, вы уже делали эти функции или пока в теории?) Просто зачем изобретать велосипед, когда один приличный форумчанин может поделиться такой библиотекой? :wink: А то мы сейчас 3 разные версии сделаем, наизобретаем велосипедов.

Добавлено after 24 minutes 47 seconds:
Fusion писал(а): Экран перерисовываю также, только не жду готовности SPI:
Спойлер

Код: Выделить всё


//		while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
		SPI_SendData8(SPI1, color);
//		while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
		SPI_SendData8(SPI1, color);
У СТМ двойной буфер на отправку, поэтому можно писать 2 байта сразу.
Вот хохма, SPI работает в 8ми битном режиме быстрее!
Было
while (!SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE));
SPI_I2S_SendData16(SPI1, color);
итого 22 ФПС
Причем без проверки флага на экране каша, он с ума сходит.

Поменял на
SPI_SendData8(SPI1, (color>>8));
SPI_SendData8(SPI1, color);
Итого работает без проверки флага и 28 ФПС, т.е. ДМА не нужно, на филл скрине, не жалко пусть ДМА, но на точках то так быстрее. Вот и думай, что логично вроде 16 битный режим юзать, ан нет. Блин все тестировать нужно и проверять, дожили.

Добавлено after 42 minutes 45 seconds:
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
Ан нет, все-таки справедливость восторжествовала. Если писать не кучей байт, а дергать DC все время, т.е. рисовать точкой, то в 16 битном режиме быстрее выходит, постоянно без проверки статуса 16 битный не работает, а при проверке флага теряется скорость. Т.е. в 8ми битном режиме подряд писать быстрее выходит потому что он работает без проверки статуса, его можно на заливку квадратных областей использовать, или рисовать быструю линию только по горизонтали которая или вертикали, а точки в 16 бинтом режиме рисовать.
Ответить

Вернуться в «ARM»