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

Кто любит RISC в жизни, заходим, не стесняемся.
linkov1959
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

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

Сообщение linkov1959 »

Нужно заменить 3 регистра.
Один нашел похожий DISP_SPI->DR заменил на DISP_SPI->TXDR.
SPI_SR_TXE пока заменил на SPI_SR_TXC, но там есть варианты.
А вот SPI_SR_BSY в H743 ничего похожего нет.
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

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

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

*(volatile uint8_t*)&SPIx->TXDR = val;
Отправка идет пакетами, проверять нужно флаги TXP/RXP. И в RM есть глава про правильное выключение SPI, естественно при этом нужно дожидаться окончания передачи данных, т.е. из нее можно почерпнуть чем заменяется BSY...
Реклама
linkov1959
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

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

Сообщение linkov1959 »

Reflector, буду искать готовую библиотеку или пример. У меня еще есть точно такой дисплей без SPI. Там, наверное, проще в смысле совместимости?
Последний раз редактировалось linkov1959 Пн дек 27, 2021 14:44:35, всего редактировалось 1 раз.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

А куда будет цепляться этот дисплей без SPI? Если к FMC, то как сказать, с моей точки зрения проще, а кому-то наоборот :)
FMC, в плане совместимости, практически аналог FSMC для F4, единственное нужно выбрать банк в некешируемом регионе.
Реклама
Эиком - электронные компоненты и радиодетали
linkov1959
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

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

Сообщение linkov1959 »

Reflector, Я имею ввиду взять пример на F103 и перенести на H743 библиотеку дисплея на шине.
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

Либа для F103 может быть для FSMC или ногодрыга, FSMC везде можно сказать одинаковый, порты у F1 другие, но вряд ли это серьезная проблема.
Реклама
linkov1959
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

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

Сообщение linkov1959 »

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

Добавлено after 9 hours 1 minute 11 seconds:
Reflector, а что такое ногодрыга? Это плохо? Есть такая библиотека.
tft.rar
(29.98 КБ) 116 скачиваний
Последний раз редактировалось linkov1959 Вт дек 28, 2021 00:04:08, всего редактировалось 1 раз.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

Если нет аппаратного интерфейса, такого как SPI или FMC, то приходится дергать пинами софтово, что не то чтобы плохо, ведь иначе никак, но относительно медленно и обычно без DMA, хотя можно и с ним. У H7 есть FMC, лучше его и задействовать.
linkov1959
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

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

Сообщение linkov1959 »

Reflector, без примера не разберусь.:(
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

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

Сообщение 240265 »

https://disk.yandex.ru/d/zgN9puZg3NKG8m H743.rar

Добавлено after 49 minutes 25 seconds:
https://github.com/WeActTC/MiniSTM32H7xx
IVL ex UA6PJ
linkov1959
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

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

Сообщение linkov1959 »

Пока балуюсь с ногодрыгой по шине 8бит. Перенес рабочий проект с F103 на H743, по крайней мере, экран ожил, в цвета окрашивается, но вместо шрифтов квадратики с мусором. Графика работает. Что может быть?
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

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

Сообщение 240265 »

а на 103 нормально было?

Добавлено after 33 minutes 33 seconds:
с шрифтами разберись
IVL ex UA6PJ
linkov1959
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

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

Сообщение linkov1959 »

240265, На 103 нормально. Загрузил проект с FMC, но не понял, как выводить на дисплей хотя бы точку или букву.
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

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

Сообщение 240265 »

Читай https://www.google.ru/search?q=fsmc+stm ... nt=gws-wiz

Добавлено after 7 minutes 6 seconds:
Здесь есть исходники https://www.radiokot.ru/artfiles/6511/
IVL ex UA6PJ
linkov1959
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

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

Сообщение linkov1959 »

Теперь не могу запустить DMA на Н743. Настраиваю, как на F103, а преобразование не запускается, в массиве нули и прерывания нет. Очередность инит исправлена, сначала DMA, потом ADC.

Добавлено after 2 hours 38 minutes 15 seconds:
Проверил еще, где лежит массив, это RAM_D1, а то если DTCM, то DMA туда не пишет.
linkov1959
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

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

Сообщение 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.
linkov1959
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

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

Сообщение 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 загонять!
linkov1959
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

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

Сообщение 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
linkov1959
Держит паяльник хвостом
Сообщения: 923
Зарегистрирован: Пн сен 10, 2018 19:16:28

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

Сообщение linkov1959 »

Нужно добавлять калибровку.
/* USER CODE BEGIN 2 */
HAL_ADCEx_Calibration_Start(&hadc1, ADC_CALIB_OFFSET_LINEARITY , ADC_SINGLE_ENDED);
HAL_Delay(100);
jcxz
Мудрый кот
Сообщения: 1726
Зарегистрирован: Вт авг 15, 2017 10:51:13

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

Сообщение jcxz »

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

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