2,7-вольтовые телефоны GSM фирмы Motorola используют MC 68338, о в отличие от более старых 5-ти вольтовых аппаратов, использующих MC 68332. Одно отличий между этими двумя микроконтроллерами - наличие модуля часов реальное время (RTCSM - Real Time Clock Sub-Module). Поскольку модуль часов реального времени присутствует, прежде, чем можно будет включить часы необходимо выполнить ряд действий:
  1. Добавить осциллятор, который обеспечит сигнал времени.
  2. Добавить программную поддержку отображения и модификации времени
  3. Обеспечить питание часов во время отключения аппарата (батарея + дополнительная схема).

Вот выдержка из технической спецификации MC 68338:

6.11 Модуль часов реального времени с осциллятором с низким энергопотреблением

Модуль часов реального времени с осциллятором с низким энергопотреблением обеспечивает независимую от других подмодулей CTM6 работу часов реального времени. Счетчик времени управляется выделенным генератором низкой частоты (32.768 Кгц) для потребления малой мощности. RTCSM содержит 15-разрядный делитель и 32-разрядный счетчик. Из них могут быть определены секунды, минуты, часы и дни. RTCSM может также генерировать сигнал прерывания с интервалом 1 секунда..

На осциллятор, делитель, счетчик может подаваться отдельное питание, когда VDD выключен. RTCSM и генератор с низким энергопотреблением могут быть отключены, чтобы сократить потребляемую VRTC мощность, когда VDD включен. Это полезно чтобы продлить срок годности батареи.

Руководство описывает, как решить проблему:

  1. отсутствующего сигнала времени. Кварц 32,768 Кгц подсоединяется последовательно с сопротивлением 10КОм резистор между ножками 139 (XRTC) и 138 (EXRTC) MC 68338. Обе ножки соединены с "землей" через конденсатор 1pF. Похоже, что ножка 67 (PF0/MODCLK) должна держать высокий уровень сигнала на сбросе, чтобы процессор использовал внешние часы. На практике достаточно одного кварца.
  2. Не забудьте добавить связанные с часами пункты меню MEDIT-ом и активизировать часы реального времени (RTC) командой тестового режима 8801#. Некоторые 8700-ые уже имеют кварц, и часы там могут быть активированы только с помощью ПО.
  3. Что касается последней проблемы, батарея должна быть подключена к VRTC (ножка 9). Казалось бы, необходимо отсоединять батарею от VRTC в момент включения передатчика, но, похоже, что процессор сам способен это делать (другая выдержка из документации на MC 68338):

6.14 Операции ожидания RTCSM и RAMSM

Переключатель питания standby в CTM6 опрашивает VDD и выбирает либо VDD и VDDSYN либо VRTC в качестве источника питания RTCSM и RAMSMS, в зависимости от уровня VDD. Когда VDD в пределах определенного рабочего диапазона, осциллятор RTCSM питается от VDDSYN, а RAMSM-ы от VDD. VDD также обеспечивает питанием цифровую логическую части RTCSM, поэтому и VDD и VDDSYN должны быть одинаковыми для нормальной работы. Когда VDD и VDDSYN выключены, суб-модули питаются от VRTC и находятся в режиме ожидания (standby). В режиме ожидания, RTCSM продолжает сохранять время (если включен). Однако, обновление регистров 15-битного делителя и 32-разрядного счетчика приостанавливается, чтобы сохранять питание. Все регистры RTCSM защищены от записи в режиме ожидания, чтобы предотвратить потерю данных. По той же самой причине RAMSM-ы также защищены от записи в режиме ожидания. Если функция режима ожидания не требуется в данном приложении, VRTC должен питаться от VDDSYN и VDD. Иначе RAMSM и RTCSM могут работать непредсказуемо.

Лучшее решение, вероятно, - поднять ножку 9 и подключить батарею, как будто она там была все время. Если Вы не поднимите штырек, батарея быстро разрядится, опустив уровень сигнала на ножке и появится ошибка "phone fail see supplier", которая исчезнет как только ситуация будет исправлена.

Я хотел бы благодарить Ральфа за практическое доказательство возможности реализации всех этих "теоретических" идей, которые я придумал здесь. Ральф демонстрировал его "умную" процедуру добавления батареи мне: ножка 9 найдена и нагрета чистым паяльником. Таким образом, можно удалить припой, который крепит ножку к плате, и поднять ножку. Используйте плоский литиевый аккумулятор (3 В) - желательно с припаяными к нему ножками. Батарейку можно немного зашкурить, чтобы было легче припаять ножки. Будьте очень осторожны, так как литиевая батарея могут взорваться или потерять зарят от наргева. Материал батареи отличается у различных производителей, и припаивание ножек может стать очень затруднительной процедурой. По моему опыту к батарее Varta сложно припаивать ножки. На батарейки Seizaiken наоборот легко напаять ножки. Батарея может быть укреплена на 68338 маленькой каплей горячего клея (см. фотографию).

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

Есть несколько различных способов добавить кристалл. Я предполагаю, что это зависит от навыков работы с паяльником и типа кристалла под рукой. Лично, я использовал кристалл из сломанных наручных часов. Он был намного меньшее, чем все, что можно купить в магазине электроники. Я поместил кварц непосредственно к двум ножкам процессора, отвернув сам кристалл в сторону от процессора. Я немного зачистил плату, чтобы добраться до медного слоя. Затем закрепил кристалл на плате каплей припоя.

8900-е с точки зрения добавлений - вообще песня. Четыре участка под МCU будто специально созданы чтобы разместить там кристалл. Два слева - "земля", там можно закрепить кварц. Два справа - для ножек кварца. Будет также просто добавить конденсаторы, если кто-то вдруг захочет. Часы могут идти немного быстрее чем надо, если конденсаторы отсутствуют, но в большинстве случаев, это, вероятно, не будет иметь значения. К ножкам кристалла можно припаять проводки для удобства. Их длина не имеет значения из-за частоты кристалла.

По отзывам, данный метод также подходит для d160. Некоторые версии прошивки для d160/d170 (и вероятно других) имеют ошибку, которая не позволяет правильно отображать время. RTC читается правильно, но где-то по дороге искажается. Можно использовать простое исправление к прошивке (в данном случае 85.00.56) чтобы исправить это. Эта ошибка, вероятно, имеется только в версии 85.00.56, но в других версиях возможна такая же ошибка, но в других областях памяти (см. более подробно http://www.motorulez.ru/cgi-bin/redirect.pl?http://www.tele-servizi.com/janus/texts/850056rtc.txt).

Используются технологии uCoz