THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама

В этой статье поговорим об устройстве кварцевых часов и кварцевом резонаторе. Возможно, это будет довольно сложная тема для понимания. Прошу заметить, что в статье рассматривается принцип работы кварцевых часов не на примере существующего механизма а на примитивной абстрактной и грубой модели, показывающей только суть работы большинсва электронных и кварцевых часов.
В этой статье хочется развеять неточности касательно устройства схемы кварцевых часов, которые я встречал на других ресурсах, но об этом чуть ниже.

Рассмотрим для примера самый простейший кварцевый механизм, он состоит из:

  1. Электронный блок с контроллером и кварцевым резонатором
  2. Элемент питания (на фото отсутствует)
  3. Шаговый электродвигатель (катушка статор и ротор с постоянным магнитом)
  4. Шестереночный привод стрелок

Тут кажется все просто, электронный блок подает электрический импульс на катушки статора и ротор делает оборот равный одной секунде. Но как же электронный блок «понимает», что прошло время крутить ротор.

Рассмотрим подробнее работу схему простейшего электронного блока кварцевых часов, он состоит из кварцевого резонатора (зеленый прямоугольник) и микроконтроллера (красный квадрат).

Теперь остановимся подробнее на принципе работы и устройстве кварцевого резонатора.

На фото вскрытый кварцевый резонатор, К сожалению у меня не получилось вскрыть, не повредив кварц, который чаще всего используется в наручных часах.

Работа кварцевого резонатора основана на пьезоэлектрическом эффекте.

Суть пьезоэлектрического эффекта — это генерация ЭДС пьезоэлектриком при сдавливание или растяжения (вибрации) твердого тела (пьезоэлектрика) и наоборот при подаче напряжения пьезоэлектрик будет сдавливаться или расширяться. Важно заметить, такой эффект происходит только в момент сжатия или растяжения.

Любой кварцевый резонатор состоит из монокристалла кварца вырезанным определенным образом и с закрепленными на нем металическими пластинами к которым подведены контакты. Конкретно в часах используются резонаторы с плоским кристаллом в форме камертона (в виде буквы «Y» или «U») с прикрепленными на плоскостях металическими пластинами к которым подключены выводы. Сам кварц диэлектрик — то есть электрический ток он не проводит.

А теперь переходим к сути работы этого компонента. Бытует мнение, что кварцевый резонатор сам генерирует постоянную частоту, при подаче постоянного тока. Это не так, на самом деле все несколько сложнее.

Как говорилось выше, пьезоэлектрический эффект возникает только в момент сжатия или растяжения пьезоэлектрика. К примеру если кратковременно подать электрический заряд на выводы на кварцевого резонатора то кристалл кварца сожмется (ЭДС). Но в тот момент, как кварц будет обратно разжиматься он создаст противоположный по полярности (противоЭДС) заряд на выводах, конечно гораздо меньший чем был подан изначально. Т.Е произойдет одно колебание. Колебаний может быть несколько, важно то, что именно в этом случае (если нет подпитки электрозаряда из вне) они будут гармонически затухающими. Все это происходит за очень короткий момент времени. Это примерно тоже самое, что и удар по камертону. Кристал кварца может колебаться только с одной частотой, независимо от амплитуды.

Резонанс

Что бы колебания кварца были постоянные а не затухающие, нужно обеспечить постоянную внешнюю подпитку этих колебаний, например электрическим током определенной частоты.

А теперь переходим к тому, почему резонатор называется резонатором. У самого кристалла кварца есть своя частота механических колебаний. Как я уже приводил пример выше с камертоном. У него тоже есть своя механическая частота, то есть неважно, как его ударили, он будет выдавать звучание на одной и той же ноте (частоте). С кварцем все то же самое. Если подать на выводы электрический ток какой либо частоты (в разумных пределах) кварц будет механически колебаться (в этот раз уже постоянно в отличии от кратковременного заряда) только с определенной своей (резонансной) частотой, генерируя ЭДС и противоЭДС. Но если на выводы кварца подать ток именно той частоты на которой резонирует кварц, то потребление электричества которое превращается в работу (в колебания кварца) будет минимально в отличие от других частот. Грубо говоря кварц пропустит через себя все частоты кроме своей резонансной, при которой резко увеличится сопротивление. Все это нам напоминает работу колебательного контура, но кварц отличается гораздо лучшей добротностью.

Микроконтроллер

Одна из задач микроконтроллера поддержания частоты на выводах кварца при которой он резонирует опираясь на сопротивление при определенной частоте.

Т.Е Микроконтроллер синхронизируется с кварцем а так как частота кварца известна то и известно сколько прошло времени за определенное количество колебаний кварца. Чаще всего частота кварца используемого в часах равна 32 768 гц. При такой частоте можно обеспечить хорошие показатели в точности измерение времени.

Иногда полезно иметь в системе часы отсчитывающие время в секундах, да еще с высокой точностью. Часто для этих целей применяют специальные микросехмы RTC (Real Time Clock) вроде . Вот только это дополнительный корпус, да и стоит она порой как сам МК, хотя можно обойтись и без нее. Тем более, что многие МК имеют встроенный блок RTC. В AVR его правда нет, но там есть асинхронный таймер, служащий полуфабрикатом для изготовления часиков.

Первым делом нам нужен часовой кварц на 32768Герц.

Почему кварц именно 32768Гц и почему его зовут часовым? Да все очень просто — 32768 является степенью двойки. Два в пятнадцатой степени. Поэтому пятнадцати разрядный счетчик, тикающий с частотой 32768 Гц, будет переполняться раз в секунду. Это дает возможность строить часы на обычной логической рассыпухе без каких либо заморочек. А в микроконтроллере AVR организовать часы с секундами можно почти без использования мозга, на рефлексах периферии.

Асинхронный режим таймера
Помните как работают таймеры? Тактовая частота с основного тактового генератора (RC внешняя или внутренняя, внешний кварц или внешний генератор) поступает на предделители, а с выхода предделителей уже щелкает значениями регистра TCNT. Либо сигнал на вход идет с счетного входа Тn и также щелкает регистром TCNT

Для этого на выводы TOSC2 и TOSC1 вешается кварцевый резонатор. Низкочастотный, обычно это часовой кварц на 32768Гц. На он смонтирован справа от контроллера и подключается перемычками. Причем тактовая частота процессора должна быть выше как минимум в четыре раза. У нас тактовая от внутреннего генератора 8Мгц, так что нас это условие вообще не парит:)

И не нужно высчитывать количество тактов основного кварца, а если его нет, то заморачиваться на плавающую частоту встроенного RC генератора. Часовой кварц имеет куда более компактные размеры чем обычный кварц, да и стоит дешевле.


Также немаловажным является тот факт, что асинхронный таймер может тикать сам по себе, от часового кварца, ведь тактовая частота процессора ему не нужна, а это значит тактирование ядра контроллера (самое жручее, что у него есть) можно отключить, загнав процессор в спячку, существенно снизив потребление энергии и просыпаясь только по переполнению таймера (1-2 раза в секунду), чтобы записать новые показания времени.

Конфигурирование
Для включения надо всего лишь установить бит AS2 регистра ASSR — и все, таймер работает в асинхронном режиме. Но есть тут одна фича которая мне стоила много головняков в свое время. Дело в том, что при работе от своего кварца все внутренние регистры таймера начинают синхронизироваться по своему же кварцу. А он медленный и основная программа может менять уже введенное значение гораздо быстрей чем оно обработается таймером.

Т.е., например, предустановил ты значение TCNT2, таймер на своей 32кгц молотилке его еще даже прожевать не успел, а твой алгоритм уже пробежал и снова туда что то записал — в результате в TCNT2 наверняка попадет мусор. Чтобы этого не случилось запись буфферизируется. Т.е. это ты думаешь, что записал данные в TCNT2, но на самом деле они попадают во временный регистр и в счетный попадут только через три такта медленного генератора.

Также буфферизируется регистры сравнения OCR2 и регистр конфигурации TCCR2

Как узнать данные уже внеслись в таймер или висят в промежуточных ячейках? Да очень просто — по флагам в регистре ASSR. Это биты TCN2UB, OCR2UB и TCR2UB — каждый отвечает за свой регистр. Когда мы, например, записываем значение в TCNT2 то TCNUB становится 1, а как только наше число из промежуточного регистра таки перешло в реальный счетный регистр TCNT2 и начало уже тикать, то этот флаг автоматом сбрасывается.

Таким образом, в асинхронном режиме, при записи в регистры TCNT2, OCR2 и TCCR2 сначала нужно проверять флаги TCN2UB, OCR2UB и TCR2UB и запись проводить только если они равны нулю. Иначе результат может быть непредсказуемым.

Да, еще один важный момент — при переключениях между синхронным и асинхронным режимом значение в счетном регистре TCNT может побиться. Так что для надежности переключаемся так:

  • Запрещаем прерывания от этого таймера
  • Переключаемся в нужный режим (синхронный или асинхронный)
  • Заново настраиваем таймер как нам нужно. Т.е. выставляем предустановку TCNT2 если надо, заново настраиваем TCCR2
  • Если переключаемся в асинхронный режим, то ждем пока все флаги TCN2UB, OCR2UB и TCR2UB будут сброшены. Т.е. настройки применились и готовы к работе.
  • Сбрасываем флаги прерываний таймера/счетчика. Т.к. при всех этих пертурбациях они могут случайно установиться
  • Разрешаем прерывания от этого таймера

Несоблюдение этой последовательности ведет к непредсказуемым и трудно обнаруживаемым глюкам.

Спящие режимы и асинхронный таймер
Т.к. асинхронный таймер часто используется в разных сберегающих режимах, то тут возникает одна особенность, раскладывающая целое поле из граблей.

Суть в том, что таймер, работающий от медленного кварца, не успевает за главным процессором, а в том дофига зависимостей от периферии — те же прерывания, например. И когда проц спит, то эти зависимости не могут реализоваться, в результате возникают глюки вроде неработающих прерываний или поврежденных значений в регистрах. Так что логика работы с асинхронным таймером и спящим режимом должна быть построена таким образом, чтобы между пробуждением и сваливаеним в спячку асинхронный таймер успел отработать несколько своих тактов и выполнил все свои дела.

Примеры:
Контроллер использует режим энергосбережения и отключения ядра, а пробуждается по прерываниям от асинхронного таймера. Тут надо учитывать тот факт, что если мы будем изменять значения регистров TCNT2, OCR2 и TCCR2, то уход в спячку нужно делат ТОЛЬКО после того, как флаги TCN2UB, OCR2UB и TCR2UB упадут. Иначе получится такая лажа — асинхронный таймер еще не успел забрать данные из промежуточных регистров (он же медленный, в сотни раз медленней ядра), а ядро уже отрубилось. И ладно бы конфигурация новая не применилась, это ерунда.

Хуже то, что на время модификаций регистров TCNT или OCR блокируется работа блока сравнения, а значит если ядро уснет раньше, то блок сравнения так и не запустится — некому его включить будет. И у нас пропадет прерывание по сравнению. Что черевато тем, что событие мы прошляпим и будем их терять до следующего пробуждения из спячки.
А если контроллер будится прерыванием по сравнению? То он уснет окончательно. Опаньки!
Вот и лови такой глюк потом.

Так что перед уходом в режимы энергосбережения надо обязательно дать асинхронному таймеру прожевать введенные значения (если они были введены) и дождаться обнуления флагов.

Еще один прикол с асинхронным режимом и энергосбережением заключается в том, что подсистема прерываний при выходе из спячки стартует за 1 такт медленного генератора. Так что даже если мы ничего не меняли, то обратно в спячку сваливаться нельзя — не проснемся, т.к. прерывания не успеют запуститься.

Так что выход из спячки и засыпание по прерыванию асинхронного таймера должно быть в таком виде:

  • Проснулись
  • Что то сделали нужное
  • Заснули

И длительность операции между Проснулись и Заснули НЕ ДОЛЖНА БЫТЬ МЕНЬШЕ чем один тик асинхронного таймера. Иначе анабиоз будет вечным. Можешь delay поставить, а можешь сделать как даташит советует:

  • Проснулись
  • Что то сделали нужное
  • Ради прикола записали что то в любой из буфферизиуемых регистров. Например, в TCNT было 1, а мы еще раз 1 записали. Ничего не изменилось, но произошла запись, поднялся флаг TCN2UB который продержится гарантированно три такта медленного генератора.
  • Подождали пока флаг упадет
  • Уснули.

Также не рекомендуется при выходе из спячки сразу же читать значения TCNT — можно считать лажу. Лучше подождать один тик асинхронного таймера. Или сделать прикол с записью в регистр и ожиданием пока флаг спадет, как было написано выше.

Ну и последний, но важный, момент — после подачи питания, или выхода из глубокой спячки, с отключением не только ядра, а вообще всей периферии, пользоваться медленным генератором настоятельно рекомендуется не раньше чем через 1 секунду (не миллисекунду, а целая секунда!). Иначе генератор может еще быть нестабильным и в регистрах будет еще каша и мусор.

И, в завершение статьи, небольшой примерчик. Запуск асинхронного таймера на Atmega16 (Как полигон используется плата )

Проект типовой, на базе диспетчера, одно лишь отличие — диспечтер переброшен на таймер0, чтобы освободить таймер2.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 int main(void ) { InitAll() ; // Инициализируем периферию InitRTOS() ; // Инициализируем ядро RunRTOS() ; // Старт ядра. UDR = "R" ; // Маркер старта, для отладки SetTimerTask(InitASS_Timer, 1000 ) ; // Так как таймер в асинхронном режиме // запускается медленно, то делаем // Выдержку для запуска инициализации таймера. while (1 ) // Главный цикл диспетчера { wdt_reset() ; // Сброс собачьего таймера TaskManager() ; // Вызов диспетчера } return 0 ; }

int main(void) { InitAll(); // Инициализируем периферию InitRTOS(); // Инициализируем ядро RunRTOS(); // Старт ядра. UDR = "R"; // Маркер старта, для отладки SetTimerTask(InitASS_Timer,1000); // Так как таймер в асинхронном режиме // запускается медленно, то делаем // Выдержку для запуска инициализации таймера. while(1) // Главный цикл диспетчера { wdt_reset(); // Сброс собачьего таймера TaskManager(); // Вызов диспетчера } return 0; }

Сама процедура инициализации таймера в асинхронном режиме сделана в виде конечного автомата. При первом запуске она взводит бит асинхронного режима и делает приготовления, после запускает сама себя снова же, через диспетчер, чтобы дать возможность еще чему либо проскочить в очереди, не блокируюя систему на ожидание.

При последующих входах проверяются флаговые биты готовности регистров таймера. Если они все по нулям, то мы на всякий случай зануляем флаги прерывания таймера, чтобы не было глюков и ложных срабатываний, а потом разрешаем нужное нам прерывание. И выходим.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 void InitASS_Timer(void ) { if (ASSR & (1 << AS2) ) //Если это второй вход то { if (ASSR & (1 << TCN2UB | 1 << OCR2UB | TCR2UB) ) // проверяем есть ли хоть один бит флаговый { SetTask(InitASS_Timer) ; // Если есть, то отправляем на повторный цикл ожидания } else // Если все чисто, то можно запускать прерывания { TIFR |= 1 << OCF2 | 1 << TOV2; // Сбрасываем флаги прерываний, на всякий случай. TIMSK |= 1 << TOIE2; // Разрешаем прерывание по переполнению return ; } } TIMSK &= ~(1 << OCIE2 | 1 << TOIE2) ; // Запрещаем прерывания таймера 2 ASSR = 1 << AS2; // Включаем асинхронный режим TCNT2 = 0 ; TCCR2 = 5 << CS20; // Предделитель на 128 на 32768 даст 256 тиков в секунду // Что даст 1 прерывание по переполнению в секунду. SetTask(InitASS_Timer) ; // Прогоняем через диспетчер, чтобы зайти снова. }

void InitASS_Timer(void) { if(ASSR & (1<

ISR(TIMER2_OVF_vect) // Прерырвание по переполнению таймера 2 { UDR = i; i++; }

Можно было сделать переменные содержащие часы:минуты:секунды и щелкать этими переменными со всей их логикой переполнения часов/минут, но мне было лень. И так все понятно.

Казалось-бы, банальное дело, запустить часовой кварц. Какие могут быть проблемы? Есть микроконтроллер и две его ножки, которые специально предназначены для подключения кварца. Есть часовой кварц. Припаять кварц – дело двух секунд. Еще минута нужна для того, чтобы добавить пару строк инициализации таймера в программу. Вот вроде и все. НО, после того как я три дня запускал этот долбанный часовой кварц, я понял, что вопрос не так прост, как я думал.

А предыстория была такой. Друг попросил меня сделать ему простые часики, без наворотов, на 7-сегментных индикаторах. Плевое дело. Микроконтроллер был взят ATmega48 (умеет работать с часовым кварцем), быстренько написана программа, вытравлена печатка. После сборки часов и отладки программы (динамическая индикация, кнопки и т.д.) дошла очередь до часового кварца. До этих часиков я уже пару раз применял часовой кварц в своих проектах и ничего не предвещало беды:), но случилось непредвиденное – часовой кварц наотрез отказался запускаться. Вообще!
В попытках разобраться, что-же мешает заработать моему часовому кварцу я первым делом обратился к даташиту на микроконтроллер (ATmega48). Информации по асинхронному режиму и подключению таймера там оказалось очень мало. Дальше я начал искать решение проблемы на форумах. Вот тут было разнообразие решений и советов вплоть до ритуальных танцев с бубнами, что тоже не особо мне помогло. Пришлось путем проб и ошибок (не путать с «методом тыка»!) самому разбираться, что к чему. В результате героических потугов, наступания на какие только можно грабли и убитых трех дней, родился практический опыт подключения часового кварца, с которым я здесь и поделюсь.

Итак, какие грабли нас ожидают при запуске часового кварца?

1 Схемотехника.
1.1 Конденсаторы.
В даташите на микроконтроллер довольно пространно упоминается то, что к часовому кварцу должны быть подключены конденсаторы, а про их емкость вообще узнать трудно. Часовой кварц, скорей всего, заработает и без конденсаторов, но лучше их поставить это улучшит стабильность частоты и поможет кварцу быстрей запускаться.
Емкость конденсаторов должна быть в пределах 12-22 пФ.

1.2 Разводка дорожек под кварц.
Тут даташит и апноты дают нам четкие указания. Дорожки от ножек микроконтроллера до кварца должны быть минимальной длинны, земляная» дорожка для конденсаторов должна быть отдельной, то есть через нее не должны протекать посторонние токи (особенно это касается сильноточных и высокочастотных цепей).

1.3 Корпус часового кварца.
Железный корпус часового кварца обязательно припаяете к земле (к той к которой припаяны конденсаторы). Незаземленный корпус будет работать как антенна, внося искажения в работу кварца, ухудшая точность хода Ваших часов.

1.4 Грязь на плате.
Часовой кварц довольно нежная штука и сопротивления в пару мегаом между ножками вполне хватит для его остановки. Как показала практика, жидкий флюс, если его плохо смыть, дает достаточное сопротивление, для того чтобы кварц не работал. После пайки тщательно вымойте плату. Очень часто во флюсах содержится кислота, что и дает проводимость между ножками. Для нейтрализации кислоты промойте плату слабым раствором соды (пищевой) и тщательно отмойте чистой водой.

2 Программирование.
2.1 Инициализация асинхронного режима таймера.

Для того чтобы таймер работал от часового кварца, его (таймер) необходимо перевести в асинхронный режим. Для перевода таймера (почти у всех микроконтроллеров это таймер 2) в этот режим нужно записать 1 в бит AS2. Но не все так просто, нужно соблюсти определенный алгоритм запуска. По даташиту процедура включения асинхронного режима для таймера 2 следующая:
1. Запретить прерывания от таймера/счетчика 2 — OCIE2x, TOIE2;
2. Переключить его в асинхронный режим 1 -> AS2;
3. Записать новые значения в регистры TCNT2, OCR2x и TCCR2x;
4. Дождаться сброса флагов TCN2UB, OCR2xUB и TCR2xUB;
5. Сбросить флаги прерываний таймера/счетчика 2;
6. Разрешить прерывания (если требуется).

Обязательно соблюдайте такую последовательность. Вот листинг правильной инициализации асинхронного режима таймера2.

/* запрещаем прерывания */ cli() ; /* 1. Запрещаем прерывания Timer/Counter2 обнуляя OCIE2х и TOIE2. */ TIMSK2 &= ~((1 << OCIE2A) | (1 << OCIE2B) | (1 << TOIE2) ) ; /* 2. Переводим Timer/Counter2 в асинхронный режим устанавливая AS2. */ ASSR = (1 << AS2) ; /* Даем немного времени для стабилизации работы генератора (можно опустить). */ _delay_ms(1000 ) ; /* 3. Записываем новые значения TCNT2, OCR2x, and TCCR2B. */ TCNT2 = 0 ; /* устанавливаем пределитель = 128 32.768 kHz / 128 / 256 = переполнение раз за секунду. */ TCCR2B |= (1 << CS22) | (1 << CS20) ; /* 4. Чтобы быть уверенным, что часы заработали ждем пока обнулятся биты: TCN2UB, OCR2AUB, OCR2BUB, TCR2AUB и TCR2BUB. */ while (ASSR & 0x1F ) ; /* 5. Обнуляем флаги прерываний Timer/Counter2. */ TIFR2 |= ((1 << OCF2A) | (1 << OCF2B) | (1 << TOV2) ) ; /* 6. Разрешаем прерывание по переполнению таймера 2 */ TIMSK2 |= (1 << TOIE2) ; /* разрешаем прерывания */ sei() ;

/* запрещаем прерывания */ cli(); /* 1. Запрещаем прерывания Timer/Counter2 обнуляя OCIE2х и TOIE2. */ TIMSK2 &= ~((1<

2.2 Пределитель таймера 2.
Для того, чтобы прерывания по переполнению таймера2 происходили раз в секунду, значение пределителя должно быть 128. (128пределитель*256переполнение=32768частота кварца).

2.3 Работа часов в режиме сна PowerSave.
Очень заманчиво в паузах между секундными прерываниями переводить микроконтроллер в режим сна, в этом случае ток микроконтроллера упадет до 6-7мкА. Для такого случая есть режим пониженного потребления PowerSave, в нем таймер2 продолжает работать от часового кварца и пробуждает микроконтроллер прерыванием. Алгоритм такого режима работы простой, после выхода из режима сна по прерыванию от таймера в процедуре обработки прерывания «тикаем» часами, выходим из прерывания и опять даем команду заснуть (SLEEP). Вот тут есть очень важный нюанс. Опять смотрим даташит на микроконтроллер в разделе режимов пониженного потребления и работы асинхронного режима. Для того чтобы таймер после пробуждения начал нормально функционировать и был способен вывести микроконтроллер из сна при следующем прерывании нужно до команды засыпания выждать определенное время. Для того, чтобы убедится в том что генератор работает нормально нужно сделать запись в любой регистр таймера, из тех, которые не нарушат работу часов (например в OCR2x) и дождаться сброса флагов готовности данного регистра (OCR2xUB). После того как флаг сбросился можно смело переводить микроконтроллер в режим сна.

/* Точка выхода с прерывания по переполнению таймера2 */ /* Записываем любое значения в OCR2A. */ OCR2A = 0; /* Дожидаемся пока обнулится OCR2AUB. */ while(ASSR & (1<

3 Разное.
3.1 Не используйте дешевые китайские кварцы (в особенности выпаянные со старых сломанных копеечных часов). Даже если они и заработают, точность у них будет никакая.

3.2 Ну и напоследок , имейте под рукой несколько разных кварцев, возможно, Ваш кварц не запускается по причине того, что он спален. Попробуйте его заменить.

Вот, вроде, и все грабли, по которым я потоптался, пока запускал часовой кварц. Или еще что-то добавить?


(Visited 9 508 times, 1 visits today)

Часовой кварц – это термин, используемый для обозначения специальной батарейки для кварцевых часов. С технической точки часовой кварц представляет собой кварцевый генератор для передачи энергии, что необходимо для поворота стрелок часов. При нажатии на часовой кварц, появляется электрический импульс, при подаче на него тока происходит сжатие. Именно благодаря техническим характеристикам применяемых часовых кварцев, часы на основе кварцевых генераторов славятся поразительной точностью показаний.

Особенности выбора и эксплуатации часовых кварцев

В нашем интернет магазине вы можете приобрести качественные современные вариантычасовых кварцевоптом и в розницуот лучших мировых и отечественных производителей по выгодным ценам. Для жителей Москвы предоставляются льготные условия доставки. При использовании в часовом механизме качественного кварцевого генератора, часы практически не требуют дополнительной зарядки. Их достаточно заводить 1 раз в несколько лет. Главным параметром выбора часового кварца является егосфера применения, соответствие часовому механизму. Часовые кварцы новых поколений максимально адаптированы к самым разным модификациям кварцевых часов.

THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама