Реверс-инженеринг материнской платы Psion Revo

На фотографии приведена плата классического Psion Revo, причем ранняя редакция платы с местами для установки Flash-памяти.

Вид платы со стороны клавиатуры:

Ниже приводится описание компонентов платы:

Не определенные узлы

Расшифровки прочих буквенных обозначений компонентов

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

Разъем LCD

Номер контактаОбозначениеОписание
1-Тачскрин
2-Тачскрин
3-Тачскрин
4-Тачскрин
5-GND
6-3.3В
7-18В
8--15В
9-2.5В
10-1.3В
11-GND
12-HSYNC ~11.6KГц (горизонтальная синхронизация)
13-CLK, однако частота 1.33МГц,
ровно в 4 раза меньше расчетной 5.4МГц
(480*160*70) для данной развертки.
Вполне возможно надо перепроверить еще раз.
14-GND
15-DATA
16-DATA
17-DATA
18-DATA
19-GND
20-VSYNC 70Гц (вертикальная синхронизация)
21-3.3V
22-450Гц, скважность 50%
23-n/c (Psion 5mx использует для питания подсветки)
24-n/c (Psion 5mx использует для питания подсветки)
25-n/c (Psion 5mx использует для питания подсветки)
26-n/c (Psion 5mx использует для питания подсветки)

Разъем дочерней платы

Номер контактаОбозначениеОписание
15-PWR Ext
14-PWR Ext
13-GND
12-GND
11-GND
10-GND
9-GND
8-IrDA xxx
7-IrDA xxx
6-IrDA xxx
5-IrDA xxx
4-BATT Temp
3-BATT+
2-BATT+
1-BATT+

Даташиты на компоненты платы

Анализ цепей питания

Для зарядки Ni-Mh аккумулятора в Psion Revo используется микросхема BQ2002. Это интеллектуальный контроллер быстрой зарядки Ni-Mh аккумуляторов.

На рисунке представлена схема включения данной микросхемы:

Чтобы предотвратить вредный для Ni-Mh перезаряд, контроллер использует следующие факторы для прекращения зарядки аккумулятора:

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

Если поставить в машинку аккумуляторы с емкостью большей, чем заводская, то процесс зарядки может прерываться по таймеру. Машинка заряжает аккумулятор током 0.5C, поэтому значение таймера 160 минут. Это дает около 40 минут запаса (если не брать в рассчет погрешность самого таймера).

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

Но остается вопрос: если же использовать более емкие аккумуляторы, будет ли машинка использовать их емкость полностью? Кривая разряда у Ni-Mh в отличие от литиевых батарей довольно пологая и резкое изменение напряжения наблюдается только в самом конце разряда. Т.е. явно преобразовать напряжение на банках в остаточную емкость в процентах не получится.

Для ответа на этот вопрос можно провести следующий эксперимент: подключить вместо штатных AAA-аккумуляторов блок из заряженных AA аккумуляторов. Их емкость в несколько раз больше, чем у AAA, так что по времени работы машинки будет явно видно, вышла ли она за пределы стандартной емкости.

Вторым чипом, отвечающим за зарядку аккумулятора является BQ2018. Это счетчик циклов заряд-разряд, имеющий дополнительную RAM-память. Сначала я предполагал что именно он (т.к. именно он снимает падение напряжения на шунте (низкоомном резисторе). Однако, изучение даташита показало, что данной функции в нем нет. Это именно счетчик, он считает циклы заряд-разряд, так же имеет некоторые таймерные функции. В данной микросхеме по всей видимости хранится информация об остаточной емкости аккумулятора.

Самое интересное, после отключения пина данных (по которому процессор общается с данным чипом), в свойствах батареи перестают отображаться корректные значения токов зарядки и разрядки аккумулятора, всегда отображается 100мА, заряд от разряда уже не отличает (все время отображает что работает от аккумулятора, при этом аккумулятор заряжает нормально). Но через какое-то время (от 5 до 15 минут) отрубается. После чего включить ее можно только если дать плате отлежаться от 5 до 20 минут с отключенным аккумулятором и внешним питанием. Полученное поведение не имеет никакого смысла и не дает никакой информации для конструктивных выводов.

При закорачивании входов аналогового компаратора на чипе BQ2018, внешне имеем следующее поведение: машинка нормально заряжается, разряжается, показывает разрядные и зарядные токи. Однако, показания индикатора заряда застыло на месте, в моем случае это оказалось 64%.

Спустя полтора часа индикатор все-таки сдвинулся и показал 63%. Закралось подозрение, что после разряда аккумуляторов информация будет потеряна. Однако, оставив устройство на ночь, утром обнаружил его выключившимся. При этом удалось включить, данные были на месте, вот только довольно быстро оно опять вырубилось. Аккумулятор показывал 62%. Самое интересное, предупреждений машинка не давала, просто гасла.

После установки на зарядку, в неопределенный момент (предположительно на окончании быстрой зарядки) показания аккумулятора скакнули на 78%.

Поведение Psion Revo при установке нового аккумулятора

Интересное поведение было замечено при установке новых аккумуляторов: машинка встала на быструю зарядку, зарядила аккумуляторы приблизительно до 85%. Затем светодиод погас, машинка стояла на малом токе и вроде бы дошла до 100%. Дальше продолжала стоять в кредле. Самое странное, что произошло: через какой-то промежуток времени, снова загорелся светодиод, сигнализирующий быструю зарядку, но аккумулятор пополз ВНИЗ! Шел он со скоростью около 2% в минуту, при этом машинка сигнализировала, что заряжает аккумулятор током 400мА. При достижении 40% индикатор резко скакнул на 100%. К сожалению в тот момент питалась Revo не от лабораторного источника, так что сколько она потребляла в данном режиме неизвестно.

Моя версия БГ (пока не проверенная)

Одно из предположений о причинах возникновения батарейного глюка - это нарушение (ухудшение) контакта с блоком аккумуляторов. Плата питания (так в Revo называют маленькую платку, с разъемом для аккумулятора и модулем ИК-порта) соединяется с основной платой плоским шлейфом с шагом контактов 0.5мм. При быстрой зарядке аккумулятора по данному шлейфу проходят приличные токи (до 400мА). Даже несмотря на то, что на питание в шлейфе выделено 3 дорожки, все-равно возможно подгорание контактов, осовенно если учесть движение шлейфа при открытии/закрытии мащинки. При подаче питания не через кредл, а через штырьевой разъем, ситуация еще хуже.

Вот к примеру во что может превратиться шлейф, особенно после нескольких замен аккумулятора:

А вот так выглядит более-менее нормальный шлейф:

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

Вообще, физика процесса следующая: при нарушении контакта в разъеме, сопротивление на контакте возрастает. При малом токе, к примеру, при работе машинки от аккумулятора, падение на контакте не существенно, машинка нормально работает. Проблемы начинаются, когда происходит попытка зарядить машинку. Начинает течь большой ток, падение на контакте возрастает. Данное падение суммируется с напряжением на аккумуляторе, поэтому может произойти ранняя отсечка по напряжению, в дальнейшем заряжаться малым током, составляющим от C/32 до C/64, т.е. 25 или вовсе 13мА. Таким током разряженный аккумулятор надо заряжать больше суток. Т.е. машинка может банально не зарядиться.

Кстати, при разрядке, при повышении тока потребления, падение напряжения на контакте так же возрастает (соответственно, машинке достается еще меньше), что может вырубить машинку. Особенно велика вероятность отрубания на сигналах будильника, когда потребление возрастает до максимального значения примерно в 200мА.

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

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

Original: http://igorkov.org/psion-rev,
Author: igorkov