Акронис
Пт 15 декабря 2017 г. 12:39
Расскажите мне простой пример кода для генератора Squarewave на таймере с интервалом 25 наносекунд (25 МГц)
Доска STM32F407 Black.
Сделал это, но по крайней мере 1 микросекунда. Это должно быть быстрее !
Доска STM32F407 Black.
Сделал это, но по крайней мере 1 микросекунда. Это должно быть быстрее !
rcc.c
systick.c
usart.c
Стивестронг
Пт 15 декабря 2017 г. 16:32
Вы должны использовать непосредственно выходной сигнал SWM таймера вместо цифрового порта.
Добавьте эту линию в настройку (), чтобы генерировать сигнал PWM на контакте канала таймера:
Добавьте эту линию в настройку (), чтобы генерировать сигнал PWM на контакте канала таймера:
__deprecated
void rcc_clk_init(rcc_sysclk_src sysclk_src,
rcc_pllsrc pll_src,
rcc_pll_multiplier pll_mul);
Rogerclark
Пт 15 декабря 2017 г., 19:07
25 секунд нано’S 40 МГц
Вам, вероятно, нужно установить PLL Clock, чтобы доска работала на скорости 160 МГц, чтобы таймер мог иметь разделитель 4.
Вам, вероятно, нужно установить PLL Clock, чтобы доска работала на скорости 160 МГц, чтобы таймер мог иметь разделитель 4.
Акронис
Солнце 17 декабря 2017 г. 4:20 утра
Привет, Стивестронг !
Я включил линию Pinmode (PA1, PWM) в SETUP ().
Какой код необходим для входа в
void timer_interrrupts ()
{
???
}
Для этого ?
Я включил линию Pinmode (PA1, PWM) в SETUP ().
Какой код необходим для входа в
void timer_interrrupts ()
{
???
}
Для этого ?
Акронис
Солнце 17 декабря 2017 г., 4:26
Привет, Рогеркларк !
Правильно ли я вас понял, что необходимо это сделать ?
таймер.SetPrescaleFactor (4);
Если нет, скажите мне, как это сделать. Мне действительно нужно частота ШИМ намного быстрее, чем 1 МГц!
Правильно ли я вас понял, что необходимо это сделать ?
таймер.SetPrescaleFactor (4);
Если нет, скажите мне, как это сделать. Мне действительно нужно частота ШИМ намного быстрее, чем 1 МГц!
Rogerclark
Солнце 17 декабря 2017 г. 11:29
Зависит от того, какое разрешение вам нужно
Эн.глин. На F103, с 8 -битным разрешением, максимальная скорость ШИМ будет составлять 72/256 = около 280 кГц - максимальная скорость
На F4 с тактовой частотой 160 МГц и 8 -битным разрешением ШИМ, который дает вам только PWM FREQ 625 кГц
Ни одна из этих досок не даст вам PWM периода 1 МГц. За исключением случаев, если вы чрезвычайно разгоняете процессор до 256 МГц, и я не уверен, что кто -то успешно сделал это.
Я думаю, что вам нужно использовать что -то вроде FPGA для достижения той производительности, которую вы ищете
Эн.глин. На F103, с 8 -битным разрешением, максимальная скорость ШИМ будет составлять 72/256 = около 280 кГц - максимальная скорость
На F4 с тактовой частотой 160 МГц и 8 -битным разрешением ШИМ, который дает вам только PWM FREQ 625 кГц
Ни одна из этих досок не даст вам PWM периода 1 МГц. За исключением случаев, если вы чрезвычайно разгоняете процессор до 256 МГц, и я не уверен, что кто -то успешно сделал это.
Я думаю, что вам нужно использовать что -то вроде FPGA для достижения той производительности, которую вы ищете
Акронис
Солнце 17 декабря 2017 г. 14:27
Я правильно вас понимаю, что более частота 625 кГц на таймере без разгрузки каких -либо способов ?
Мне нужен простой генератор прямоугольных импульсов
И без использования ШИМ можно получить высокую скорость генерации ?
Мне нужен простой генератор прямоугольных импульсов
И без использования ШИМ можно получить высокую скорость генерации ?
victor_pv
Солнце 17 декабря 2017 г. 15:30
Да, вы можете получить выход MHZ в PIN -коде, установив значение перезагрузки на 1, Prescaler до 0, а таймер сравнится с 0 и 1.
Стивестронг
Солнце 17 декабря 2017 г. 9:05 вечера
Проблема кажется на стороне F4 в репо Роджере (и мое).
Я исследую эту проблему, но кажется, что серьезная переделка необходима.
Я исследую эту проблему, но кажется, что серьезная переделка необходима.
Rogerclark
Солнце 17 декабря 2017 г. 9:11 вечера
@Acronis
Вы написали противоречивые требования.
Вы сказали 25NS -интервал. Что возможно с помощью процессора HE F4.
Вы также сказали 1 МГц ШИМ, что невозможно (при условии 8 -битного разрешения ШИМ)
Я думаю, вам нужно объяснить, что вы пытаетесь сделать и почему....
Вы написали противоречивые требования.
Вы сказали 25NS -интервал. Что возможно с помощью процессора HE F4.
Вы также сказали 1 МГц ШИМ, что невозможно (при условии 8 -битного разрешения ШИМ)
Я думаю, вам нужно объяснить, что вы пытаетесь сделать и почему....
Акронис
Солнце 17 декабря 2017 г. 11:13
Добрый день всем.
Мне нужно генерировать квадратный сигнал 1 бит (вывод 0 или 1) с высокой частотой, используя таймер.
Частота генерации нуждается в самом высоком, более 1 МГц
Изображение https: // yadi.SK/I/O_BCSSLH3QHEBA
(Расскажите мне, на каком сайте загружать изображения, чтобы они появились на форуме в теме)
Мне нужно генерировать квадратный сигнал 1 бит (вывод 0 или 1) с высокой частотой, используя таймер.
Частота генерации нуждается в самом высоком, более 1 МГц
Изображение https: // yadi.SK/I/O_BCSSLH3QHEBA
(Расскажите мне, на каком сайте загружать изображения, чтобы они появились на форуме в теме)
Стивестронг
Пн, 18 декабря 2017 г. 1:25 утра
Попробуйте это:
..
set_clock(128000, 460800);
// do math, send/receive big data..
set_clock(38, 300);
// scan sensors, buttons, write slow data to SPI flash
// or onto Sdcard, send/receive slow telemetry
set_clock(128000, 460800);
// do math, send/receive big data..
..
Rogerclark
Пн, 18 декабря 2017 г., 4:55 утра
ХОРОШО
Итак, что нужно квадратной волной 20 МГц.
Итак, что нужно квадратной волной 20 МГц.
Акронис
Пн, 18 декабря 2017 г. 13:02
Привет, Стивестронг !
Я очень благодарен за вашу бесценную помощь в изучении этого прекрасного микроконтроллера STM32F407 !
Это не прямоугольный генератор, но я думаю, что это то, что мне нужно, и будет хорошо работать от меня !
Код мне понравился, но у меня есть несколько вопросов:
1. Я не нашел информацию на форуме о строке gpio_set_af_mode (timer5_ch1_pin, 2);
Что он делает и что делает цифра 2 ?
2. Можно ли назначить другой пин ? Например PA2 ? Я пытался, но я не работаю. Как я могу изменить ?
3. Возможно ли получить еще больший частотный генератор, например, 84 или 100 или 168 МГц ?
Я был бы очень благодарен, если бы вы могли помочь мне с этими новичками .
Я очень благодарен за вашу бесценную помощь в изучении этого прекрасного микроконтроллера STM32F407 !
Это не прямоугольный генератор, но я думаю, что это то, что мне нужно, и будет хорошо работать от меня !
Код мне понравился, но у меня есть несколько вопросов:
1. Я не нашел информацию на форуме о строке gpio_set_af_mode (timer5_ch1_pin, 2);
Что он делает и что делает цифра 2 ?
2. Можно ли назначить другой пин ? Например PA2 ? Я пытался, но я не работаю. Как я могу изменить ?
3. Возможно ли получить еще больший частотный генератор, например, 84 или 100 или 168 МГц ?
Я был бы очень благодарен, если бы вы могли помочь мне с этими новичками .
Ахулл
Пн, 18 декабря 2017 г. 13:21
[Акронис - Пн, 18 декабря 2017 г. 13:02] - ...Вероятно, не напрямую, но есть несколько способов удвоить частоты, которые вы * можете * генерировать, если вы не против добавить немного дополнительного оборудования, например, с парой шлепанцев.
3. Возможно ли получить еще больший частотный генератор, например, 84 или 100 или 168 МГц ?
...
.. Хотя я не уверен, будет ли скромный CD4528 достаточно быстрым для вашего применения, поэтому вам, возможно, придется сделать немного Google, чтобы найти что -то подходящее.
Вы также можете посмотреть на AD9851 DDS -генератор сигналов, контролируется STM32F103, конечно
https: // www.eBay.com/sch/i.HTML?_SACAT = ... DDS&_frs = 1
Какова цель этой квадратной волны?
Акронис
Пн, 18 декабря 2017 г. 13:28
Привет, ахалл.
Спасибо за ваш подсказка, но я не очень хорош в строительстве схем, и я не хочу использовать никаких внешних компонентов, и я хочу только микроконтроллер .
Более код, который побудил дорогой Севестронг отлично работает.
Просто хочу иметь дело с теми вопросами, которые я написал, которые я понял, как с этим, чтобы работать правильно.
Мы разрабатываем интересный проект для измерения процента алкоголя.
Чтобы изменить желаемое поколение.
Сначала сгенерированный сигнал, а затем проанализируйте отклик ADC микроконтроллера.
Кстати, ADC очень помог Sevestrong
Спасибо за ваш подсказка, но я не очень хорош в строительстве схем, и я не хочу использовать никаких внешних компонентов, и я хочу только микроконтроллер .
Более код, который побудил дорогой Севестронг отлично работает.
Просто хочу иметь дело с теми вопросами, которые я написал, которые я понял, как с этим, чтобы работать правильно.
Мы разрабатываем интересный проект для измерения процента алкоголя.
Чтобы изменить желаемое поколение.
Сначала сгенерированный сигнал, а затем проанализируйте отклик ADC микроконтроллера.
Кстати, ADC очень помог Sevestrong
Эдогальдо
Пн, 18 декабря 2017 г., 13:32
[Акронис - Пн, 18 декабря 2017 г. 13:02] - 3. Возможно ли получить еще больший частотный генератор, например, 84 или 100 или 168 МГц ?Если вам просто нужна квадратная волна, должно быть возможно вывести системные часы (до 168 МГц) через булавки MCO, но я не могу предоставить вам технические данные..
Ура, e.
Акронис
Пн, 18 декабря 2017 г. 13:35
Если вам просто нужна квадратная волна, должно быть возможно вывести системные часы (до 168 МГц) через булавки MCO, но я не могу предоставить вам технические данные..
И где я могу увидеть информацию ?
Акронис
Пн, 18 декабря 2017 г. 13:47
Если кто -то заинтересован, результаты измерения выглядят так
https: // yadi.SK/I/C05IOVNY3QIJUN
https: // yadi.SK/I/C05IOVNY3QIJUN
Стивестронг
Пн, 18 декабря 2017 г. 13:56
[Акронис - Пн, 18 декабря 2017 г. 13:02] - Это не прямоугольный генератор, но я думаю, что это то, что мне нужно, и будет хорошо работать от меня !Ну, это должен быть сигнал квадратной волны, потому что это цифровой выходной сигнал ШИМ из таймера 5 Сравните канал 1.
[Акронис - Пн, 18 декабря 2017 г. 13:02] -
pinMode(D18, OUTPUT);
digitalWrite(D18, 0);
delay(10);
int read1 = digitalRead(D18);
digitalWrite(D18, 1);
delay(10);
int read2 = digitalRead(D18);
Акронис
Пн, 18 декабря 2017 г. 14:04
Ну, это должен быть сигнал квадратной волны, потому что это цифровой выходной сигнал ШИМ из таймера 5 Сравните канал 1.
хм . Но это не .Почему ...
С осциллографом
https: // yadi.sk/i/ly1g8rbe3qiqfn
С осциллографом
https: // yadi.sk/i/ly1g8rbe3qiqfn
Акронис
Пн, 18 декабря 2017 г. 14:10
digitalWrite(ledPin,!digitalRead(ledPin));
Акронис
Солнце 18 февраля 2018 г. 10:22
Привет, Стив
Я обновил библиотеку сегодня до вашего последнего на F4.
В предыдущей версии этот код работал нормально, но теперь дает ошибку
Я обновил библиотеку сегодня до вашего последнего на F4.
В предыдущей версии этот код работал нормально, но теперь дает ошибку
void setup () {
Serial.begin(115200);
Serial.println("[hello]");
}
void loop () {
Serial.println(millis());
delay(1000);
}
Стивестронг
Солнце 18 февраля 2018 г., 11:07
Используйте gpio_afmode_tim3_5 вместо значения 2
[hello]
0
117
234
351
468
585
Акронис
Солнце 18 февраля 2018 г. 11:43
Стив. Эти параметры скомпилируются обычно, но код
int count =0;
void setup () {
}
void loop () {
if ( count==0) {
Serial.begin(115200);
Serial.println("[hello]");
count=1;
}
Serial.println(millis());
delay(10000);
}
Стивестронг
Солнце 18 февраля 2018 12:12
Ой, извините.
Мой предыдущий коммит ошибочно удалил предопределенные экземпляры таймера.
Я снова добавил их.
Пожалуйста, снова посмотрите мой репо.
(В будущем обратите внимание на предупреждения, напечатанные Arduino IDE в окне сообщения!)
Мой предыдущий коммит ошибочно удалил предопределенные экземпляры таймера.
Я снова добавил их.
Пожалуйста, снова посмотрите мой репо.
(В будущем обратите внимание на предупреждения, напечатанные Arduino IDE в окне сообщения!)
Акронис
Солнце 18 февраля 2018 12:32
Стив великолепен !
Все работает, как раньше !
Спасибо!
Все работает, как раньше !
Спасибо!