частотомер на GD32f303c
- AVI-crak
- Прорезались зубы
- Сообщения: 202
- Зарегистрирован: Сб янв 09, 2016 15:51:17
- Контактная информация:
Re: частотомер на GD32f303c
[uquote="Игорь2111",url="/forum/viewtopic.php?p=4474845#p4474845"]Это не мой алгоритм, а уважаемого AVI-crak.[/uquote]
Да ну нафиг, не мог я такое написать даже под веществами. Я-же знаю как считается двойная точность на stm32f103 - это буквально боль и страдания.
Много боли, сплошные страдания. У меня только одинарная точность, для железа с аппаратной поддержкой математики.
Для графики есть другие алгоритмы - там 2PI равно 0xFFFFFFFF (это подсказка). Всё в целых числах, и очень быстро даже на М0.
Да ну нафиг, не мог я такое написать даже под веществами. Я-же знаю как считается двойная точность на stm32f103 - это буквально боль и страдания.
Много боли, сплошные страдания. У меня только одинарная точность, для железа с аппаратной поддержкой математики.
Для графики есть другие алгоритмы - там 2PI равно 0xFFFFFFFF (это подсказка). Всё в целых числах, и очень быстро даже на М0.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: частотомер на GD32f303c
Делал для мотор колеса Дуюнова.

-
Игорь2111
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Вс май 15, 2022 23:04:19
- Откуда: Белгородская обл.
Re: частотомер на GD32f303c
AVI-crak.
Понял. За подсказку спасибо.
Обойти двух спецов на ихнем же поле, это было здорово.
Понял. За подсказку спасибо.
Обойти двух спецов на ихнем же поле, это было здорово.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: частотомер на GD32f303c
GD32f303 поддерживает FPU?
-
Игорь2111
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Вс май 15, 2022 23:04:19
- Откуда: Белгородская обл.
Re: частотомер на GD32f303c
Ядро Cortex®-M4 GD32F303 оснащено модулем с плавающей запятой (FPU)
Использовать можно я так понимаю с оригинальными библиотеками от GD. Для Кейла и ИАР.
Использовать можно я так понимаю с оригинальными библиотеками от GD. Для Кейла и ИАР.
- AVI-crak
- Прорезались зубы
- Сообщения: 202
- Зарегистрирован: Сб янв 09, 2016 15:51:17
- Контактная информация:
Re: частотомер на GD32f303c
[uquote="Игорь2111",url="/forum/viewtopic.php?p=4475001#p4475001"]Обойти двух спецов на ихнем же поле, это было здорово.[/uquote]
Если сделать PI = 2.0, то будет ещё проще и быстрее, есно при наличии аппаратной математики.
https://godbolt.org/z/3Y71no4Wh
https://www.desmos.com/calculator/jlyultpmyt
Кстати в целых числах точность выше, но команд больше.
Если сделать PI = 2.0, то будет ещё проще и быстрее, есно при наличии аппаратной математики.
Код: Выделить всё
/// value = +4.0 ~ -4.0
/// error 0.025%
float sin_f2(float value)///35
{
float rev, res, nc;
if (value < 0.0f){
value = 0.0f - value;
nc = -1.0f;
}else nc = 1.0f;
if (value > 3.0f) value -= 4.0f;
else if (value > -1.0f) value = 2.0f - value;
res = value * value;
rev = 283.0f * value - (77.0f * res * value);
res *= 26.0f;
res += 180.0f;
rev /= res;
rev *= nc;
return rev;
};https://www.desmos.com/calculator/jlyultpmyt
Кстати в целых числах точность выше, но команд больше.
- >TEHb<
- Друг Кота
- Сообщения: 5731
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
Re: частотомер на GD32f303c
Но зато в М4 есть SIMD, что в некоторых случаях позволяет неплохо так срезать углы.
"Привет!" - соврал он.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: частотомер на GD32f303c
Синус считать не нужно, всё посчитано до нас, синусы будут выдавать таймеры по два на штуку, проц отдыхает. FPU понадобится для реализации цифровых фильтров с выходом в DACи.
-
Игорь2111
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Вс май 15, 2022 23:04:19
- Откуда: Белгородская обл.
Re: частотомер на GD32f303c
Лучшее враг хорошего.
Время расчёта синуса измеренное счётчиком DWT при тактовой 280 мгц
4,8 мксек.
При заранее посчитанных коэф пи - 4,3 мксек..
При 21 значащем разряде.
При используемой памяти РАМ на три таблицы до 10 кбайт
( частота выборки тактовая 10 кГц и выходная частота минимальная 5 Гц 2000 точек)
Время пересчёта трёх таблиц для DMA под нужную частоту (5 гц- 400 Гц)
около 30 миллисекунд.
Теоретически годится.
Под силовую часть на SCM1245- 300 руб/ шт
и оптопары HCPL2631- 100 руб/ 3 шт
Питание силовой от 24-400 вольт
Для этого на bootstrep входы на каждый отдельное изолиров питание 15 в.
+ 3 БП по 100 руб шт.
P.S
Удобная вещь подключенный дисплей. Можно в реальном времени посмотреть всё регистры и переменные.
Время расчёта синуса измеренное счётчиком DWT при тактовой 280 мгц
4,8 мксек.
При заранее посчитанных коэф пи - 4,3 мксек..
При 21 значащем разряде.
При используемой памяти РАМ на три таблицы до 10 кбайт
( частота выборки тактовая 10 кГц и выходная частота минимальная 5 Гц 2000 точек)
Время пересчёта трёх таблиц для DMA под нужную частоту (5 гц- 400 Гц)
около 30 миллисекунд.
Теоретически годится.
Под силовую часть на SCM1245- 300 руб/ шт
и оптопары HCPL2631- 100 руб/ 3 шт
Питание силовой от 24-400 вольт
Для этого на bootstrep входы на каждый отдельное изолиров питание 15 в.
+ 3 БП по 100 руб шт.
P.S
Удобная вещь подключенный дисплей. Можно в реальном времени посмотреть всё регистры и переменные.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: частотомер на GD32f303c
Игорь2111, FPU работает?
-
Игорь2111
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Вс май 15, 2022 23:04:19
- Откуда: Белгородская обл.
Re: частотомер на GD32f303c
Кокос для f103 не подключает.
Можно проверить на других IDE.
Можно проверить на других IDE.
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1905
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: частотомер на GD32f303c
Возможно, я неправильно понял (ру->бг), но зачем "разгоняем" МК? Раньше, в годах напр. частотомер на PIC (12F1822), с clock 25 MHz, измерял ~150 MHz, с внутренним prescaler перед таймером (количество переполнений таймера * 256/65536 + количество отчетов таймера), асинхронно. A время напр. 1 s: от другого таймера. Overclock для GD32F303 для использования в качестве изп. генератора?
Ниже: Arduino и Si5351A в качестве измерительный генератор. Десятичная точка на дисплее отсутствует (для часы?), читаем: 153,0 MHz.

Ниже: Arduino и Si5351A в качестве измерительный генератор. Десятичная точка на дисплее отсутствует (для часы?), читаем: 153,0 MHz.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: частотомер на GD32f303c
Наконец, удалось заказать в Днепр процы.
https://aliexpress.ru/item/100500550037 ... 3325720675
Подозрительно дешево. Как отличить 303й от 103го?
https://aliexpress.ru/item/100500550037 ... 3325720675
Подозрительно дешево. Как отличить 303й от 103го?
Re: частотомер на GD32f303c
ну, косвенно - размер памяти. 303 48 ног это от 256 кБ флэш, а 103 - до 128 кБ
Ну или поглядеть выполнение инструкций, отсутствующих в ядре М3
Ну или поглядеть выполнение инструкций, отсутствующих в ядре М3
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: частотомер на GD32f303c
Точно, если 256 кБ, то 303й однозначно. Я и stm32f303cc заказал, там тоже не обманешь.https://www.aliexpress.com/item/1005006 ... MLhIm&mp=1
-
Игорь2111
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Вс май 15, 2022 23:04:19
- Откуда: Белгородская обл.
Re: частотомер на GD32f303c
veso74
Сделать хороший частотомер цели не было.
Все поделки в этой теме это привлечь внимание к линейке GD32F303
отличной, дешевой замене STM32F103.
А также исследование их возможностей на практике с минимум затрат.
Без платных Кейл и ИАР за 3000$ (программы более 32 кб)
Для меня это хобби.
Сколько ни покупал на Али все рабочие. (макс тактовая от 280 до 320 мгц)
Китайский Кокос отлично совместим с китайским программатором ST-Link и их процами.(отладка работает 100%)
Похоже китайцы сами себя не подделывают
Сделать хороший частотомер цели не было.
Все поделки в этой теме это привлечь внимание к линейке GD32F303
отличной, дешевой замене STM32F103.
А также исследование их возможностей на практике с минимум затрат.
Без платных Кейл и ИАР за 3000$ (программы более 32 кб)
Для меня это хобби.
Сколько ни покупал на Али все рабочие. (макс тактовая от 280 до 320 мгц)
Китайский Кокос отлично совместим с китайским программатором ST-Link и их процами.(отладка работает 100%)
Похоже китайцы сами себя не подделывают
Последний раз редактировалось Игорь2111 Чт сен 14, 2023 21:52:34, всего редактировалось 2 раза.
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1905
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: частотомер на GD32f303c
Спасибо. Подумал, что в выбранном методе (частотмер на STM32) есть что-то особенное. А способ решения AVR, PIC -> STM немного меняется, и того стоит, имеет гораздо больше возможностей (мне кажется STM сложнее, но в какой-то степени - проще). И есть большой периферии по цене 1-2-3 чашек кофе. Для меня тоже хобби.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: частотомер на GD32f303c
[uquote="Игорь2111",url="/forum/viewtopic.php?p=4476787#p4476787"]veso74
Сделать хороший частотомер цели не было.
Все поделки в этой теме это привлечь внимание к линейке GD32F303
отличной, дешевой замене STM32F103.[/uquote]
Китаец выслал мне оригинальный stm32f303cct6 за меньше 2$, а stm103 меньше 1$. что бы привлечь внимание к GD нужно делать не просто хороший, а настоящий частотомер.
Сделать хороший частотомер цели не было.
Все поделки в этой теме это привлечь внимание к линейке GD32F303
отличной, дешевой замене STM32F103.[/uquote]
Китаец выслал мне оригинальный stm32f303cct6 за меньше 2$, а stm103 меньше 1$. что бы привлечь внимание к GD нужно делать не просто хороший, а настоящий частотомер.
-
Игорь2111
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Вс май 15, 2022 23:04:19
- Откуда: Белгородская обл.
Re: частотомер на GD32f303c
Меня интересовал диапазон 144 мгц.
stm32f103 больше 80 мгц не гонится.
stm32f303 не пробовал.
Подозреваю что тоже, судя по даташиту.
Хороший частотомер мне видится
ТСХО 25 мгц-> AD9833 0.1 гц-> gd32f303 280 мгц без прескалера.
Точность +/- 1гц при 9 разрядах до 100 мгц.
С прескалером 2
Точность +/-2 Гц при 9 разрядах до 280 мгц
Также на этой связке можно будет сделать стробоскопический осциллограф до 200 мгц.
Дорого для любителя.
stm32f103 больше 80 мгц не гонится.
stm32f303 не пробовал.
Подозреваю что тоже, судя по даташиту.
Хороший частотомер мне видится
ТСХО 25 мгц-> AD9833 0.1 гц-> gd32f303 280 мгц без прескалера.
Точность +/- 1гц при 9 разрядах до 100 мгц.
С прескалером 2
Точность +/-2 Гц при 9 разрядах до 280 мгц
Также на этой связке можно будет сделать стробоскопический осциллограф до 200 мгц.
Дорого для любителя.
Re: частотомер на GD32f303c
Игорь2111, а в чём смысл измерять частоту именно напрямую МК? Почему не применить предделитель? С нормальными алгоритмами асинхронные делители не снижают разрешающую способность. STM32F303 + 74hc74 без разгона способен 100МГц за 1с измерить с разрешением 8.5 разрядов:
(1с*144МГц*100МГц)/((1с*144Мед.сч)+1ед.сч) = 99 999 999.3056 Гц
(1с*144МГц*100МГц)/((1с*144Мед.сч)-1ед.сч) = 100 000 000.6940 Гц
Причём с примерно таким-же разрешением можно измерить любую входную частоту выше 1Гц за время около 1с.
Что касается точности, то тут всё будет зависеть от стабильности опоры.
ЗЫ: и зачем для измерения частоты нужна AD9833?
(1с*144МГц*100МГц)/((1с*144Мед.сч)+1ед.сч) = 99 999 999.3056 Гц
(1с*144МГц*100МГц)/((1с*144Мед.сч)-1ед.сч) = 100 000 000.6940 Гц
Причём с примерно таким-же разрешением можно измерить любую входную частоту выше 1Гц за время около 1с.
Что касается точности, то тут всё будет зависеть от стабильности опоры.
ЗЫ: и зачем для измерения частоты нужна AD9833?