Евгений Музыченко (emuzychenko) wrote,
Евгений Музыченко
emuzychenko

Category:

Секс длиной в неделю, или Kingelect - фуфло :)

Сегодня в три часа ночи закончился, наконец, напряженный секс с планшетом WITS A81G. :) Как я уже писал, прибор продавался под маркой Kingelect P780, и у него не работал последовательный приемник UART3, к которому подключен выход GPS-приемника.

Сначала я честно описал ситуацию девочке (Grace Fwz), отвечающей на запросы, и попросил связать меня с электронщиками, чтобы те подсказали возможные причины глюка. Та сначала наврала, что передала мое письмо инженеру, потом прислала якобы ответ от того "инженера", где мне предлагалось еще раз запустить программу навигации и выйти с планшетом на улицу для лучшего приема. :) Когда я объяснил, что думаю о таком сервисе, девочка ответила, что самый главный инженер в командировке, и будет через неделю. Ладно, черт с вами, занялся пока дальнейшим изучением платы и интернета.

Собственно, при первом же тестировании открытой платы я обратил внимание, что на вход UART3 поступает сигнал не очень внятной амплитуды - где-то от 0.7 до 1.5 В, при напряжении питания приемника 1.8 В. Но отрывать вход пока не хотелось - там на входе делитель для согласования выходного напряжения GPS-приемника (3 В) со входом UART, резисторы размером 1 x 0.5 мм, лишний раз такие паять не хочется. Тем более была надежда на скорую консультацию разработчиков, хотя бы в плане номинальных уровней.

Поддержка GPS-приемника там реализована довольно интересно: сам UART3 - это COM3, а COM5 обслуживается "псевдодрайвером" gps.dll, вся задача которого - через GPIO подать сигнал на ключ, подключающий G591 к питанию, и все дальнейшие запросы перенаправлять на COM3. То есть, при открывании COM3 получаем доступ к RS232, разведенному под разъем, а при открывании COM5 - к GPS.

Разумеется, я тут же подключил к контактам UART3 внешний RS232 от стоящей рядом автомобильной балалайки, убедился, что с выхода передатчика при загрузке идут отладочные сообщения на 115200, а после загрузки - все выводимое на COM3, попробовал что-то передавать на вход приемника, но он не реагировал, несмотря на вполне нормальную амплитуду сигнала (где-то 0.2..1.5 В). После этого и уверился в том, что приемник либо совсем дохлый, либо неправильно инициализирован.

В какой-то момент заинтересовался, отчего не выключается Bluetooth, начал экспериментировать с выключением и включением BT/WiFi, и после очередной перезагрузки, на всякий случай запустив тестовую программу, увидел GPS работающим. Выключил-включил - опять не работает. Тогда снова стал последовательно менять настройки, и после сотни перезагрузок в разных конфигурациях уловил определенную зависимость - при отключенном WiFi и полной яркости экрана вероятность получить работающий UART3 значительно выше (где-то 70%), нежели при включенном WiFi и половинной яркости (не более 5-10%). Это навело на мысль о том, что успех инициализации порта зависит от чистоты либо питания, либо тактовых сигналов.

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

Попутно нашел документацию на BeagleBoard - похожую по конфигурации плату на OMAP3530, там в перечне исправлений как раз упоминается похожая проблема - работает передатчик и не работает приемник. Но там приемник не работает ни в Linux, ни в системном мониторе u-boot, а когда я загрузил этот u-boot, у меня в нем и приемник и передатчик работали, как часы. Для верности отыскал на плате тактовый сигнал 32 кГц, с которым была проблема в ранних версиях BeagleBoard, слегка испортил его, повесив на землю конденсатор на 200 пФ - в u-boot приемник по-прежнему работал нормально.

Тем временем вернулся китайский "главный инженер" Eric Huang. Через пару минут разговора с ним стало ясно, что он всего лишь чуть-чуть менее чайник, нежели девочка Grace. При этом он старательно надувал щеки, уверяя, что хорошо знаком со схемотехникой устройства, но якобы не может "раскрывать подробностей схемы посторонним лицам". Ни один грамотный электронщик так себя не повел бы, ибо отлично знает, что информация типа напряжений и диаграмм сигналов в контрольных точках никогда не являлась сколько-нибудь закрытой, а схема A81 откровенно дралась с референсной EVM3530 от TI, и секретить там совершенно нечего. Но, как известно, чем мельче сотрудник, тем больше у него понтов.

Напоследок я у этих хомячков попросил их оригинальную прошивку, поскольку родные прошивки для A81G имеют глюк в апплете распределения памяти, но девочка отослала меня к Eric'у, а Eric в скайпе с утра повесил на себя значок "занят", а под вечер свалил, так и не удосужившись черкнуть хотя бы пару слов. В ответ я разозлился и написал на aliexpress злобный отзыв. Правда, при их репутации "0.0% positive feedback" это мало что даст, но все-таки. :) Кстати, тоже показатель - хомячки клялись, что продают эти планшеты тысячами, а по статистике AliExpress у них за последний год всего несколько продаж и два отзыва - какого-то итальянца и мой вчерашний.

Принялся снова мучить плату под u-boot и под WinCE. Отключил в CE режим DMA, поставив RxDmaRequest=ffffffff - приемник стал работать при каждой загрузке, но выдавал сплошные ошибки; видать, прием по прерываниям в драйвере реализован плохо. Включил DMA обратно, и почти случайно заметил, что, если винда грузилась при подключенном внешнем передатчике, то UART3 стопроцентно заводится и в DMA-режиме. Стал проверять, почему - обратил внимание, что при подключенном внешнем передатчике уровень на Rx получается порядка 1.5 В. Подтянул просто резистором кверху - эффект сохранился.

Таким образом, получается, что состояние BREAK (низкий уровень на Rx) во время инициализации UART3 приводит к неработоспособности приемника в режиме DMA, а на режим программного обмена не влияет.

Тут я настолько обрадовался найденной причине, что оторвал делитель между TXA G591 и Rx UART3, и сгородил там простенький ключ на 2N3904, чтобы убрать просадку уровня при неработающем G591. Замучился паять к площадкам 0.5 x 0.5 мм - без микроскопа и держателей это как-то несподручно. :) Убедился, что все работает, собрал и облегченно вздохнул.

И только сегодня утром до меня дошло, что ковырял я это дело совсем не с той стороны, с которой следовало - чем, собственно, и отличается любитель в моем лице от профессионала, набившего руку на готовых методиках. :) С самого начала, увидев отличный сигнал на выходе G591, сигнал чуть хуже на входе Rx, и полное отсутствие приема данных, я сосредоточился только на выяснении причины неработоспособности приемника. А надо было сразу задаться вопросом - с чего это вдруг на входе Rx в то время, пока G591 не работает, ощутимо низкий уровень, почему неработающий G591 тянет его вниз, и почему у неработающего G591 на Vcc не нуль, а целый вольт? То, что у него в неактивном режиме около вольта на Vcc, я видел еще в первый день, и не раз впоследствии, но как-то не задумывался над этим, полагая, что такова реализация ключа, и это нормальное явление. А по сути, явление это ненормальное, и именно из-за этого его выходные транзисторы приоткрыты, создавая утечку со входа Rx и снижая уровень до состояния BREAK. Сообрази я это вовремя - нашел бы косяк в ключе, и не пришлось бы возиться столько времени с проблемой UART, которая в нормальных условиях просто не проявляется. :) По-хорошему, надо бы его разобрать и доделать, но это потом, сейчас уже времени нет.

Периодически нарываясь на такое вот "замыливание глаза", лучше понимаю, что далеко не все создатели столь нелюбимых мною лженаук - жулики или полусумасшедшие. Некоторые действительно обнаружили в своих экспериментах непонятные явления, но уклонились от грамотной методики проверки, сосредоточившись на отдельных аспектах явления и упуская из виду остальные. Хорошо, мне хватило недели, а ведь кто-то годами бьется головой в стену, не удосуживаясь посмотреть, нет ли рядом прохода. :)

Tags: жулики, компьютеры, лженауки, ремонт, техника, торговля, электроника
Subscribe

  • Французские названия :)

    Французы, как и мы, не заморачиваются придумыванием специальных названий: у нас - кондитерская, булочная, сливочная, у них -…

  • Чихание, оргазм и эволюция :)

    Давно известна поговорка "чих - это маленький оргазм". :) Многие целенаправленно вызывают чихание, нюхая табак (снафф), поскольку получают от чихания…

  • Минтаевая икра

    До вчерашнего дня я был уверен, что минтаевая икра массово продавалась исключительно в СССР, вместе с самим вездесущим минтаем (" Баранья грудинка,…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 8 comments