Новые железяки используют элементы Пельтье, что позволяет удерживать точку 25.00С без насилия над кварцем. Цена кстати ниже.
частотомер на GD32f303c
- Сообщения: 202
- Зарегистрирован: Сб янв 09, 2016 15:51:17
OCXO с нагревателем - это очень древняя технология, в с временем готовности за 10 минут.
Новые железяки используют элементы Пельтье, что позволяет удерживать точку 25.00С без насилия над кварцем. Цена кстати ниже.
Новые железяки используют элементы Пельтье, что позволяет удерживать точку 25.00С без насилия над кварцем. Цена кстати ниже.
- Реклама
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Наш частотомер кот, ЗГ - хвост, таймеры - усы. Пока тянем за хвост, а нужно дергать за усы:)
Добавлено after 28 minutes 29 seconds:
Andrey_B, частотомер из RLC-71 реально перенести на GD303 ?
Добавлено after 28 minutes 29 seconds:
Andrey_B, частотомер из RLC-71 реально перенести на GD303 ?
Кому надо
в stm32f для таймера 1 есть режим обновления всех регистров записью массива через ДМА
Timer DMA burst
на простой демке видно как меняется скважность при перезаписи трех регистров сравнения таймера 1
фото результатов
https://img.radiokot.ru/files/149432/38kbeq2nbn.jpg
в stm32f для таймера 1 есть режим обновления всех регистров записью массива через ДМА
Timer DMA burst
на простой демке видно как меняется скважность при перезаписи трех регистров сравнения таймера 1
фото результатов
https://img.radiokot.ru/files/149432/38kbeq2nbn.jpg
- Вложения
-
- n8-GD32F303C осцил 3кан + ген3фазыN-tim1f3 -DMA burst.rar
- (21.19 КБ) 92 скачивания
Конечно можно переписав настройки тактовой SetSysClok280 от кварца не 8 мгц а 5.
Но как согласовывать выход 250 мВ с контроллером не знаю.
Добавлено after 4 minutes 58 seconds:
Уважаемый veso74.
Вы писали что использовали в своих проектах si5351.
Подскажите по стабильности частоты по времени и температуре.
Но как согласовывать выход 250 мВ с контроллером не знаю.
Добавлено after 4 minutes 58 seconds:
Уважаемый veso74.
Вы писали что использовали в своих проектах si5351.
Подскажите по стабильности частоты по времени и температуре.
- Реклама
Два перечисленных параметра зависят только от параметры подключенных кварцевый резонатор/вн. clock/. A сам чип представляет собой комплексный "умножитель" (с целыми и дробными коэффициентами) и последующие делитель/и (с целыми и дробными коэффициентами). Управление на первый взгляд сложное, но после освоения математического аппарата и ознакомления с внутренними регистрами ИС все несложно.
Вот только PLL у микроконтроллеров шумный, и высокой точности с внутренней частотной опорой не добиться.
OCXO за 700 руб время разогрева 5 мин ток 500-150 ма.
Попробую TCXO 25 мгц 2 ма от KDS 200 руб и для si5351 пойдёт.
Попробую TCXO 25 мгц 2 ма от KDS 200 руб и для si5351 пойдёт.
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Вот к примеру настройки таймера с аппаратными связями в Кубе. Жаль, что в нашем GD нет 32разр. таймера.
htim5.Instance = TIM5;
htim5.Init.Prescaler = 0;
htim5.Init.CounterMode = TIM_COUNTERMODE_UP;
htim5.Init.Period = 4294967295;
htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim5) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim5, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_IC_Init(&htim5) != HAL_OK)
{
Error_Handler();
}
sSlaveConfig.SlaveMode = TIM_SLAVEMODE_RESET;
sSlaveConfig.InputTrigger = TIM_TS_TI1FP1;
sSlaveConfig.TriggerPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
sSlaveConfig.TriggerFilter = 0;
if (HAL_TIM_SlaveConfigSynchro(&htim5, &sSlaveConfig) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_ENABLE;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
sConfigIC.ICFilter = 0;
if (HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_FALLING;
sConfigIC.ICSelection = TIM_ICSELECTION_INDIRECTTI;
if (HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_2) != HAL_OK)
{
Error_Handler();
}
htim5.Instance = TIM5;
htim5.Init.Prescaler = 0;
htim5.Init.CounterMode = TIM_COUNTERMODE_UP;
htim5.Init.Period = 4294967295;
htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim5) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim5, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_IC_Init(&htim5) != HAL_OK)
{
Error_Handler();
}
sSlaveConfig.SlaveMode = TIM_SLAVEMODE_RESET;
sSlaveConfig.InputTrigger = TIM_TS_TI1FP1;
sSlaveConfig.TriggerPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
sSlaveConfig.TriggerFilter = 0;
if (HAL_TIM_SlaveConfigSynchro(&htim5, &sSlaveConfig) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_ENABLE;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
sConfigIC.ICFilter = 0;
if (HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_FALLING;
sConfigIC.ICSelection = TIM_ICSELECTION_INDIRECTTI;
if (HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_2) != HAL_OK)
{
Error_Handler();
}
Это для какого МК?
И какой размер кода и использованной РАМ?
Насколько я знаю куб и хал безбожно жрут флеш и РАМ память.
И какой размер кода и использованной РАМ?
Насколько я знаю куб и хал безбожно жрут флеш и РАМ память.
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Игорь2111, испытано на H743, идея в том, что бы настаивать таймеры в кубе и переносить настройки на платформу с GD.https://www.radiokot.ru/forum/viewtopic ... 9&t=180991
Для этого нужен GD32H737 а он пока на Али не продаётся.
Недавно только появился GD32E505 с аппаратным CORDIC
Добавлено after 3 hours 18 minutes 2 seconds:
Уважаемый veso74.
Не пробовали ли Вы тактировать si5351a от внешнего генератора
как в даташите на пин1 ХА. ( ~1 в)
Недавно только появился GD32E505 с аппаратным CORDIC
Добавлено after 3 hours 18 minutes 2 seconds:
Уважаемый veso74.
Не пробовали ли Вы тактировать si5351a от внешнего генератора
как в даташите на пин1 ХА. ( ~1 в)
Пробовал. Даже с вход с параметрами, далекими от заявленных в документации (напр. 10 MHz, 66.666 MHz). Работает.
veso74
А напрямую с выхода МК или ТСХО ~3, 3в можно подавать или надо снижать до ~ 1,0 в
А напрямую с выхода МК или ТСХО ~3, 3в можно подавать или надо снижать до ~ 1,0 в
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Игорь2111, буду отлаживать частотомер на stm32f103, а когда приедет GD попробую разогнать. Я в генераторе FeelTech_FY3200S вместо кварца подавал 3в от TCXO и работает стабильно +-1ppm
Как напрямую, так и через делитель, разницы не нахожу. А и выходы генераторов не имеют низкого импеданса, поэтому, если сигнал будет слишком большим, он будет ограничен внутренней структурой Si подложки чипа, диоды есть.
[uquote="veso74",url="/forum/viewtopic.php?p=4477124#p4477124"]Предпочитаю, чтобы все устройства работали с вкл. кнопки ON, а работать круглосуточно без выключения лично не вариант.[/uquote]
Это только если погрешности до 1Е-8. Если нужно точнее, то только прогрев, а если точнее 1Е-9 и круглосуточная работа.
Интересно, как термостат с Пельте себя ведёт при окружающей температуре выше 25? Ведь для охлаждения кварца ему потребуется на другом конце кучу тепла рассеить.
Это только если погрешности до 1Е-8. Если нужно точнее, то только прогрев, а если точнее 1Е-9 и круглосуточная работа.
Пока не использовал, только купил, в планах прикрутить его в FC-71 вместо самодельного термостата.Игорь2111 писал(а):Если Вы использовали ОСХО за 700р. просьба написать как ведет себя частота после включения и
через сколько времени стабилизируется.
Ни какого насилия, применяемые кварцы специально изготавливаются таким образом, чтобы иметь наилучшую стабильность на определённой температуре. Например отечественные кварцы из частотомера Ч3-54 специально затачивались для работы при +55`С.AVI-crak писал(а):Новые железяки используют элементы Пельтье, что позволяет удерживать точку 25.00С без насилия над кварцем.
Интересно, как термостат с Пельте себя ведёт при окружающей температуре выше 25? Ведь для охлаждения кварца ему потребуется на другом конце кучу тепла рассеить.
Напрямую скорее всего нет. Узел частотомера там использует несколько таймеров и компаратор, включённые через внутренние связи. Позволит ли GD32F303 такие связи организовать - неизвестно. А вообще частотомер с подобным алгоритмом реализовать думаю можно.linkov1959 писал(а):Andrey_B, частотомер из RLC-71 реально перенести на GD303 ?
В STM32H750 PLL несколько штук, когда делал FC-71 проводил много экспериментов на этот счет. Ни какого влияния вплоть до 5E-9 джиттер PLL не оказывает даже на коротких интервалах измерения.GARMIN писал(а):Вот только PLL у микроконтроллеров шумный, и высокой точности с внутренней частотной опорой не добиться.
В генераторе ГА-71 пробовал такое, с внешним тактированием на некоторых частотах появлялись поражённые точки, в проблеме так и не разобрался, перешёл на отдельный кварц, проблемы исчезли. Посмотрите в этой теме.Игорь2111 писал(а):Не пробовали ли Вы тактировать si5351a от внешнего генератора
как в даташите на пин1 ХА. ( ~1 в)
- Сообщения: 202
- Зарегистрирован: Сб янв 09, 2016 15:51:17
[uquote="Andrey_B",url="/forum/viewtopic.php?p=4477898#p4477898"]Интересно, как термостат с Пельте себя ведёт при окружающей температуре выше 25? Ведь для охлаждения кварца ему потребуется на другом конце кучу тепла рассеить.[/uquote]
Не разбирал, но потребление заявлено 80мА. Достаточно медного полигона на ПП. Там всё крохотное, лёгкое, да ещё и в вакууме за двумя экранами. По температуре до 125С и от -80С. Не космос, хотя и на керамике. Время старта при комнатой температуре меньше секунды.
Вот только с названием изделия помочь не могу, это наши вояки себе делают, и китайцы для американских вояк. Есть вероятность что китайцы работают на два фронта.
Не разбирал, но потребление заявлено 80мА. Достаточно медного полигона на ПП. Там всё крохотное, лёгкое, да ещё и в вакууме за двумя экранами. По температуре до 125С и от -80С. Не космос, хотя и на керамике. Время старта при комнатой температуре меньше секунды.
Вот только с названием изделия помочь не могу, это наши вояки себе делают, и китайцы для американских вояк. Есть вероятность что китайцы работают на два фронта.
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Andrey_B, Хочу сделать частотомер на захватах пока на stm32f103 в кубеиде. Тим1 захватывает фронт импульса и в каскаде с тим2 считает тики, тим 3 считает импульсы, тим4 считает секунду и разрешает захват. В колбеке захвата запрещается захват и считается частота. Я правильно мыслю? Обнулять таймеры не нужно?
linkov1959, хотите реализовать метод обратного счёта? Если да, то алгоритм негодный. Маловато таймеров в 103 для полностью аппаратного решения, было хотя бы штук 5 или хоть один 32х разрядный, можно было бы что-то придумать. Или на крайняк внешнюю логику применить.
Вся сложность сводится к синхронному запуску и остановке двух 32х разрядных таймеров, один из которых считает и захватывает входные перепады, а другой считает системные, а захватывает входные. Таймеры сбросили, первым входным перепадом они все синхронно стартанули. Посчитали примерно секунду. Потом синхронно остановили. Вытаскиваем последние захваченные значения и по ним вычисляем частоту. Это алгоритм из RLC-71.
Рекомендую почитать это. Там описан алгоритм и пример реализации частотомера обратного счёта, ещё и непрерывного (конвейерного). Там же описаны все проблемы, которые нужно решить, чтоб реализовать такой алгоритм аппаратно.
Вся сложность сводится к синхронному запуску и остановке двух 32х разрядных таймеров, один из которых считает и захватывает входные перепады, а другой считает системные, а захватывает входные. Таймеры сбросили, первым входным перепадом они все синхронно стартанули. Посчитали примерно секунду. Потом синхронно остановили. Вытаскиваем последние захваченные значения и по ним вычисляем частоту. Это алгоритм из RLC-71.
Рекомендую почитать это. Там описан алгоритм и пример реализации частотомера обратного счёта, ещё и непрерывного (конвейерного). Там же описаны все проблемы, которые нужно решить, чтоб реализовать такой алгоритм аппаратно.


