Страница 4 из 5

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 27, 2021 14:00:54
linkov1959
Нужно заменить 3 регистра.
Один нашел похожий DISP_SPI->DR заменил на DISP_SPI->TXDR.
SPI_SR_TXE пока заменил на SPI_SR_TXC, но там есть варианты.
А вот SPI_SR_BSY в H743 ничего похожего нет.

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 27, 2021 14:26:05
Reflector
У H7 совершенно другой SPI, простая замена флагов и регистров на таковые с похожими названиями работать не будет. И не забываем про упаковку, записав в TXDR байт можно отправить сразу 4, если регистр 32-х разрядный, нужно приведение:

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

*(volatile uint8_t*)&SPIx->TXDR = val;
Отправка идет пакетами, проверять нужно флаги TXP/RXP. И в RM есть глава про правильное выключение SPI, естественно при этом нужно дожидаться окончания передачи данных, т.е. из нее можно почерпнуть чем заменяется BSY...

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 27, 2021 14:41:07
linkov1959
Reflector, буду искать готовую библиотеку или пример. У меня еще есть точно такой дисплей без SPI. Там, наверное, проще в смысле совместимости?

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 27, 2021 14:42:43
Reflector
А куда будет цепляться этот дисплей без SPI? Если к FMC, то как сказать, с моей точки зрения проще, а кому-то наоборот :)
FMC, в плане совместимости, практически аналог FSMC для F4, единственное нужно выбрать банк в некешируемом регионе.

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 27, 2021 14:47:42
linkov1959
Reflector, Я имею ввиду взять пример на F103 и перенести на H743 библиотеку дисплея на шине.

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 27, 2021 14:51:18
Reflector
Либа для F103 может быть для FSMC или ногодрыга, FSMC везде можно сказать одинаковый, порты у F1 другие, но вряд ли это серьезная проблема.

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 27, 2021 23:58:35
linkov1959
Reflector, Вспомнил! TFT на шине я запускал в микробейсике именно на H743, но там не смог запустить АЦП. А библиотеке, наверное, пофиг, где её запускают?
На микропаскале и SPI дисплей на H743 работает, но там всё встроено и извлечь нельзя, а регистры по своему названы.

Добавлено after 9 hours 1 minute 11 seconds:
Reflector, а что такое ногодрыга? Это плохо? Есть такая библиотека.
tft.rar
(29.98 КБ) 118 скачиваний

Re: Цифровой осциллограф с нуля.

Добавлено: Вт дек 28, 2021 00:02:24
Reflector
Если нет аппаратного интерфейса, такого как SPI или FMC, то приходится дергать пинами софтово, что не то чтобы плохо, ведь иначе никак, но относительно медленно и обычно без DMA, хотя можно и с ним. У H7 есть FMC, лучше его и задействовать.

Re: Цифровой осциллограф с нуля.

Добавлено: Вт дек 28, 2021 00:10:55
linkov1959
Reflector, без примера не разберусь.:(

Re: Цифровой осциллограф с нуля.

Добавлено: Вт дек 28, 2021 05:39:08
240265
https://disk.yandex.ru/d/zgN9puZg3NKG8m H743.rar

Добавлено after 49 minutes 25 seconds:
https://github.com/WeActTC/MiniSTM32H7xx

Re: Цифровой осциллограф с нуля.

Добавлено: Ср дек 29, 2021 00:10:45
linkov1959
Пока балуюсь с ногодрыгой по шине 8бит. Перенес рабочий проект с F103 на H743, по крайней мере, экран ожил, в цвета окрашивается, но вместо шрифтов квадратики с мусором. Графика работает. Что может быть?

Re: Цифровой осциллограф с нуля.

Добавлено: Ср дек 29, 2021 07:04:54
240265
а на 103 нормально было?

Добавлено after 33 minutes 33 seconds:
с шрифтами разберись

Re: Цифровой осциллограф с нуля.

Добавлено: Ср дек 29, 2021 09:59:23
linkov1959
240265, На 103 нормально. Загрузил проект с FMC, но не понял, как выводить на дисплей хотя бы точку или букву.

Re: Цифровой осциллограф с нуля.

Добавлено: Ср дек 29, 2021 16:32:58
240265
Читай https://www.google.ru/search?q=fsmc+stm ... nt=gws-wiz

Добавлено after 7 minutes 6 seconds:
Здесь есть исходники https://www.radiokot.ru/artfiles/6511/

Re: Цифровой осциллограф с нуля.

Добавлено: Ср дек 29, 2021 23:43:25
linkov1959
Теперь не могу запустить DMA на Н743. Настраиваю, как на F103, а преобразование не запускается, в массиве нули и прерывания нет. Очередность инит исправлена, сначала DMA, потом ADC.

Добавлено after 2 hours 38 minutes 15 seconds:
Проверил еще, где лежит массив, это RAM_D1, а то если DTCM, то DMA туда не пишет.

Re: Цифровой осциллограф с нуля.

Добавлено: Пт дек 31, 2021 19:46:57
linkov1959
Уже упростил код до примитива без DMA.
HAL_ADC_Start(&hadc1);
/* USER CODE END 2 */
while (1)
{
HAL_Delay(100);
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
flag= HAL_ADC_GetValue(&hadc1);
}
На 103 работает, на 743 не работает, точнее выдает только начальное значение ADC при загрузке!
На этот раз меня не проведешь, однозначно ошибка библиотеки HAL под 743.

Re: Цифровой осциллограф с нуля.

Добавлено: Вс янв 02, 2022 23:24:28
linkov1959
Не могу запустить DMA в CubeIDE на H743, а без DMA даже 1 мегасимпл не получается. В микропаскале выжимал без DMA с этого камня 3 мегасимпла.
Для осцила не самый подходящий камень. F103 и то лучше, 9мегасимплов выжал! F303 нужно помучить.
Вот смотрю код микропаскаля, а там ребята "ружья кирпичом не чистят:)".
DTCM-RAM 128KB 0x2000 0000 ~ 0x2001 FFFF 400(480)Mhz Domain 1
// AXI_SRAM_D1 512KB 0x2400 0000 ~ 0x2407 FFFF 200(240)Mhz Domain 1 / MDMA
// SRAM1_D2 128KB 0x3000 0000 ~ 0x3001 FFFF 200(240)Mhz Domain 2 / DMA1,2
Массив нужно в 0x3000 0000 загонять!

Re: Цифровой осциллограф с нуля.

Добавлено: Чт янв 06, 2022 22:44:33
linkov1959
Нужно выставить
ContinuousConvMode = ENABLE;
ADC_CONVERSIONDATA_DMA_CIRCULAR;
В функцию
HAL_ADC_Start_DMA(&hadc1, ptr, 64);
вместо массива подставить указатель на доступную для DMA память.
После запуска ADC DMA его нужно остановить (лучше в прерывании) и запускать снова.
while (1)
{
HAL_ADC_Start_DMA(&hadc1, ptr, 64);// uint32_t *ptr = 0x30003000;
HAL_Delay(100);
HAL_ADC_Stop_DMA(&hadc1);
В дебаге выбрать контроль памяти и можно смотреть результат. В настройках DMA выбрать WORD для удобства контроля. Если Half, то будет паковать по 16 бит и длину записи можно уменьшить в два раза.
https://drive.google.com/file/d/1I9ojWk ... sp=sharing

Re: Цифровой осциллограф с нуля.

Добавлено: Пт янв 07, 2022 12:56:10
linkov1959
Нужно добавлять калибровку.
/* USER CODE BEGIN 2 */
HAL_ADCEx_Calibration_Start(&hadc1, ADC_CALIB_OFFSET_LINEARITY , ADC_SINGLE_ENDED);
HAL_Delay(100);

Re: Цифровой осциллограф с нуля.

Добавлено: Пт янв 07, 2022 13:20:05
jcxz
[uquote="linkov1959",url="/forum/viewtopic.php?p=4152956#p4152956"]Для осцила не самый подходящий камень. F103 и то лучше[/uquote]Давно уже говорил - для осцилла лучше LPC4370. Всякие STM близко не лежали!