Ошибка mcu uart error

Сообщение отредактировал KёniG — 19.12.22, 02:27

Ivanfrost88,
Обновиться можно штатным обновлением в бинарном формате , если есть на что обновляться.

Добавлено 20.01.2020, 12:30:

DanilaSib,
Рут не пробовали получить? Киньте boot.img из прошивки — попробую пропатчить.

Сообщение отредактировал sandr2010 — 20.01.20, 12:31

Ivanfrost88,
Так :

Сообщение отредактировал sandr2010 — 20.01.20, 12:33

Ivanfrost88, Нет. Вообщем проблема в том, что продавец отправил прошивку с инструкцией. Я обновился, но есть косяки: перестал работать регулятор громкости и висит надпись на экране «Activation code does not match».

Добавлено 20.01.2020, 12:35:

sandr2010, ну у меня было только 2 файла.

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

Добавлено 20.01.2020, 12:39:

sandr2010, постараюсь сегодня boot скинуть

Сообщение отредактировал DanilaSib — 20.01.20, 16:12

Ivanfrost88,
«Нет» — это о чём?
Я читал ваше сообщение в другой теме. Пробуйте настроить энкодер в инженерке.
Если прошивка была как на скрине , из трёх файлов , то вам нужно было удалить ts8227L factory.bin — это полный сброс настроек на заводские.

Сообщение отредактировал sandr2010 — 20.01.20, 12:41

sandr2010, boot.img ( 6.59 МБ )
и здесь все остальное.

Сообщение отредактировал DanilaSib — 20.01.20, 14:15

DanilaSib,
Попробуйте : прошить его флештулом , далее по подсказкам при загрузке. Рут от Magisk. Если будут проблемы — прошить родной boot.img

мне не выслал, сказал нет причин. как выпросил? лончер сторонний стоит? на «шторке» значи WIFI и все? или появились остальные?
я бы на нее лончер с PX3/PX5 взял бы. у них функционал лучше. на сток лончере AIMP виджет коряво становится.

Сообщение отредактировал Ruster28r95 — 21.01.20, 20:04

из-за использования стороннего лончера радио исчезло. поэтому надо его найти, а тыкать кнопку «моде» не всегда удобно. Видеоплеер тоже из лочнера запускается. чтобы не ставить сторонние приложения хочу найти их и вытащить на «рабочий стол»
Хирургически: вскрыл плату, дорожки есть, толку нет. понесу радиотехнику. пусть думает.

Сообщение отредактировал Ruster28r95 — 21.01.20, 20:58

По usb : если у вас есть картридер и usb разъем на лицевой панели , то они задействованы от разъемов 4 и 6 pin на задней панели. Процессор имеет все два порта usb. Один из них должен быть рабочим , но только если не задействован usb на лицевой панели. Второй разъем задействован на картридер (стоит контроллер) и он не сможет работать даже если картридер будет пустым. Решение для работы задних разъемов , переднего usb и картридера есть : установить/распаять хаб на один из портов процессора (к примеру идущему к 6pin разъему). Разрезать дорожки дата , на дорожки идущие в сторону процессора распаять вход (вход/выход — понятия растяжимые в данном случае , потому будем считать что шнурок подключаемый к компу — это вход , а разъемы для флешек и т.п. на хабе — выход) хаба , на один из выходов хаба повесить лицевой usb , отключив его от разъема 4pin , на другой — картридер , на третий — сам разъем 6pin. В итоге будете иметь два порта сзади , один спереди и картридер. Питание хаба взять от разъемов 4 или 6 pin (они запитаны параллельно). Киньте фото материнки в высоком разрешении — нарисую , как развести.

Сообщение отредактировал sandr2010 — 21.01.20, 21:38

vyachik81, рулетка у меня не поверенная, но самая передняя часть, похожа с информацией из шапки. 177*102

Сообщение отредактировал DanilaSib — 22.01.20, 15:04

Источник

Я хотел бы знать, почему возникают ошибки UART и когда следует проверять наличие таких ошибок. Здесь есть пост, в котором говорится об обработке отдельных ошибок, таких как переполнение, четность и т. Д. Я понимаю, почему происходит переполнение данных, почему происходит ошибка четности, но я хотел бы знать, что является основной причиной. Мой вопрос больше сфокусирован на том, почему эти ошибки могут возникать (физические причины), и когда нужно делать проверку ошибок как фактор их применения.

Пока что моя программа работает отлично (без проверки ошибок), но я знаю, что шум может все испортить. Как я могу имитировать условия, которые могут вызвать сбой портов UART Rx / Tx?

Существует несколько потенциальных источников шума в любой цепи. Некоторые из наиболее распространенных включают в себя:

  • Плохо регулируемые источники питания;
  • Импульсные источники питания;
  • Недостаточная емкостная развязка силовых шин рядом с микроконтроллером;
  • Индуктивная связь соседних электромагнитных источников (в том числе 50 или 60 Гц от источника питания; даже если цепь питается от батареи, она будет испытывать эти помехи, когда достаточно близко к источнику питания);
  • Источники РЧ вблизи резонансной частоты следа на плате или одной из его гармоник;
  • Прокладка сильноточных трасс на плате возле сигнальных линий;
  • И т.п.

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

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

  • Замораживание (охлаждение контура до минимального номинала его компонентов);
  • Выпечка (нагрев до максимальной оценки);
  • Воздействие EMI :
    • Установите плату поверх шнура питания обогревателя;
    • Введите радио CB в непосредственной близости от платы;
    • Поместите плату рядом с вашим беспроводным маршрутизатором;
    • Используйте длинный соединительный провод (вместо правильно построенного последовательного кабеля) для соединения UART.

Есть много других — на самом деле, есть большие испытательные лаборатории, посвященные квалификации EMC .

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

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

Большинство ошибок проистекают из трех причин: (1) сгенерированный сигналом передатчик не соответствует действительным данным; (2) сигнал передатчика не был получен как сгенерированный, или (3) приемник не был готов обрабатывать данные, когда они были получены. Самая распространенная причина, по которой я столкнулся с проблемой № 1, — это передатчик, который переконфигурируется или отключается во время передачи данных. Проблема № 2 может легко возникнуть для сигналов, проходящих через «внешний мир», в результате радиопомех (мобильные телефоны могут быть на удивление неприятными!), Но, как правило, не должна возникать для сигналов, ограниченных одной платой. Проблема № 3 может возникать из-за того, что слишком много байтов поступает быстрее, чем они могут быть обработаны, или из-за того, что приемник реконфигурирован, выключен или запущен во время передачи.

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

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

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

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

Ошибка переполнения — это когда новый байт получен до того, как процессор прочитал предыдущий байт. Немного отличается, когда задействован FIFO, но это одно и то же — действительные полученные данные теряются из-за медленной работы процессора. Всегда проверяйте это перед чтением байта, и если байт является частью более длинного сообщения (или команды), отбросьте все сообщение / команду и каким-то образом попросите передатчик повторно отправить все сообщение / команду.

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

Источник

Adblock
detector

Что вызывает ошибки UART?

Я хотел бы знать, почему возникают ошибки UART и когда следует проверять наличие таких ошибок. Здесь есть пост, в котором говорится об обработке отдельных ошибок, таких как переполнение, четность и т. Д. Я понимаю, почему происходит переполнение данных, почему происходит ошибка четности, но я хотел бы знать, что является основной причиной. Мой вопрос больше сфокусирован на том, почему эти ошибки могут возникать (физические причины), и когда нужно делать проверку ошибок как фактор их применения.

Пока что моя программа работает отлично (без проверки ошибок), но я знаю, что шум может все испортить. Как я могу имитировать условия, которые могут вызвать сбой портов UART Rx / Tx?

Существует несколько потенциальных источников шума в любой цепи. Некоторые из наиболее распространенных включают в себя:

  • Плохо регулируемые источники питания;
  • Импульсные источники питания;
  • Недостаточная емкостная развязка силовых шин рядом с микроконтроллером;
  • Индуктивная связь соседних электромагнитных источников (в том числе 50 или 60 Гц от источника питания; даже если цепь питается от батареи, она будет испытывать эти помехи, когда достаточно близко к источнику питания);
  • Источники РЧ вблизи резонансной частоты следа на плате или одной из его гармоник;
  • Прокладка сильноточных трасс на плате возле сигнальных линий;
  • И т.п.

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

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

  • Замораживание (охлаждение контура до минимального номинала его компонентов);
  • Выпечка (нагрев до максимальной оценки);
  • Воздействие EMI :
    • Установите плату поверх шнура питания обогревателя;
    • Введите радио CB в непосредственной близости от платы;
    • Поместите плату рядом с вашим беспроводным маршрутизатором;
    • Используйте длинный соединительный провод (вместо правильно построенного последовательного кабеля) для соединения UART.

Есть много других — на самом деле, есть большие испытательные лаборатории, посвященные квалификации EMC .

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

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

Большинство ошибок проистекают из трех причин: (1) сгенерированный сигналом передатчик не соответствует действительным данным; (2) сигнал передатчика не был получен как сгенерированный, или (3) приемник не был готов обрабатывать данные, когда они были получены. Самая распространенная причина, по которой я столкнулся с проблемой № 1, — это передатчик, который переконфигурируется или отключается во время передачи данных. Проблема № 2 может легко возникнуть для сигналов, проходящих через «внешний мир», в результате радиопомех (мобильные телефоны могут быть на удивление неприятными!), Но, как правило, не должна возникать для сигналов, ограниченных одной платой. Проблема № 3 может возникать из-за того, что слишком много байтов поступает быстрее, чем они могут быть обработаны, или из-за того, что приемник реконфигурирован, выключен или запущен во время передачи.

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

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

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

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

Ошибка переполнения — это когда новый байт получен до того, как процессор прочитал предыдущий байт. Немного отличается, когда задействован FIFO, но это одно и то же — действительные полученные данные теряются из-за медленной работы процессора. Всегда проверяйте это перед чтением байта, и если байт является частью более длинного сообщения (или команды), отбросьте все сообщение / команду и каким-то образом попросите передатчик повторно отправить все сообщение / команду.

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

Источник

990x.top

Простой компьютерный блог для души)

MCU — что это такое в автомагнитоле Андроид? (Micro Controller Unit)

MCU — это специальная плата Micro Controller Unit (микроконтроллер), связывающая работу Android, камеры заднего вида, радиоприемник, устройство громкой связи Bluetooth, усилителя звука (включая низкой частоты) и остальных составляющих автомагнитолы.

  1. MCU это самостоятельный компьютер, который выполнен в виде отдельной платы, имеет свой процессор, флешпамять, а также программируемые входы/выходы.
  2. Андроид как раз и взаимодействует с MCU.
  3. Внимание! Как показывает практика — просто так обновлять прошивку микроконтроллера не нужно, если корректно работает модуль CAN-bus, кнопки руля, функции Wi-Fi, Блютуз и другие важные вам опции. Иногда обновление прошивки MCU приводит к неработоспособности устройства, тогда нужно обращаться в сервисный центр.
  4. Прошивка только влияет на работу самого контроллера, на логику Андроида влияния нет.
  5. Во время обновления MCU ни в коем случае нельзя отключать ГУ от питания.
  6. Название прошивки может содержать букву D, это означает что версия для устройства с наличием DSP-процессора, предназначенный для обработки цифровых сигналов (часто в реальном времени). Если установить прошивку для DSP на магнитолу, где DSP нет — звук будет отсутствовать.
  7. Прошивка MCU не имеет никакого отношения к прошивке Андроид. Последнее — это только операционная система и все. Также при установке прошивки нужно учитывать тип радиомодуля. Он может быть цифровым или аналоговым. Чтобы узнать — нужно посмотреть данные установленного MCU, трижды тапните (иногда нужно пять) по версии MCU в информации об устройстве, если в конце указано TEF — значит аналоговый, если Si4 — цифровой. Если установить версию для цифрового, когда у вас аналоговый — не будет ловить радио (постоянно будет шипеть).

Способ узнать версию зависит от модели устройства. Например на SMARTY TREND нужно открыть раздел Настройки (Settings), далее выбрать пункт Информация (Information) > версия MCU > 5 раз быстро тапнуть, после появится нужные данные:

Если у вас другая версия магнитолы — просто попробуйте несколько раз тапнуть по версии MCU в окне О системе.

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

Источник

устранение проблем с uart на android os 4.4.2

aonmaster

[ ВНИМАНИЕ . ] Для Android OS 4.4.2 UART нужно паять .
Советы: Это только для старой ревизии платы BST адаптера , если вы видите » V1.1 » на BST Адаптер (задняя сторона PCB ), то это означает новую плату адаптера у вас было !

проблему с коннектом BST с Android 4.4.2 UART удалось решить так
Если после обновления устройств на Android OS v.4.4.2 не может соединиться с UART кабелем , но с OS Android v.4,3 связь через UART работает нормально — попробуйте решить проблему следующим образом:

А. Необходимые материалы и инструменты:
1 ) . Резистор : R104 ( 100K )
2 ) . паяльник

B. Как решить :
1 ) . Возьмите BST Adapater (Отсоединив USB- кабели), припаяйте R104 ( 100K ) резистор в указанные на рисунке точки
после этого UART работает нормально.

Tips: This only for old BST PCB Adapter customer, if you seen «V1.1» on BST PCB Adapter back side, thats means new pcb adapter you had!

BST-Android 4.4.2 UART Failed Solved

After upgrade 4.4.2 android OS, cannot communication with uart cables, but 4.3 uart communication working fine, try to solve problem as follow ways please:

A. Required materials and tools:
1). Resistor: R104(100K)
2). Soldering tool

B. How to solve:
1). Take BST Adapater( disconnect usb cables), solder R104(100K) resistor as follow point:

Источник

Serial, UART и Android, как связь с микроконтроллерами

Наши испытуемые:

Планшет на Android 4.1.1 “DNS AirTab M101w” и следующие устройства:
1. Плата Tiva C Series TM4C123G LaunchPad
2. Плата Stellaris LaunchPad EK-LM4F120XL
3. Плата Arduino MEGA 2560
4. Плата MSP430 LaunchPad, M430G2553

И сейчас мы будем по очерёдности подключать все эти платы через USB OTG к планшету и пытаться установить с ними связь не прибегая к root доступу.

Испытуемый 1. Плата Tiva C Series TM4C123G LaunchPad

Плата имеет разъём micro-usb “DEBUG”, и RGB светодиод, с ними то и будем играться.
Был залит при помощи Energia IDE следующий скетч:

В моём случае при подключении к планшету в директории /dev/usb/ появляется файл tty1-1:1.0. Попробуем в эмуляторе терминала прописать следующее:

И тут неожиданно для меня загорается зелёный свет и я увидел строку вывода. Почему неожиданно? Потому что я пренебрёг предварительной настройкой соединения, ткнул пальцем в небо, но за то как удачно! Не будем останавливаться на этом. Но скажу что в разных версиях ядра платы будут определяться по разному, и единой строки команды без костылей не придумаешь (да-да linux обыкновенный).

Немного поигравшись с цветами, отправляя в так называемый COM порт разные цифры приступил к поиску универсального Android решения. В Google Play находится много по запросу “Serial UART”, и большинство приложений работает как надо с игрушкой от Texas Instruments. Но мои попытки найти что нить совместимое Open Source окончились почти ничем. Для Arduino нашёл классную библиотеку, но об этом ниже…

Испытуемый 2: Плата Stellaris LaunchPad EK-LM4F120XL

Как я понял, это предыдущая версия нашего первого испытуемого и с андройдом ведёт себя точно так же. Но актуальная на данный момент Energia 0101E0010 при попытке залить скетч не видит эту плату (Windows 8).

Поэтому я просто включил вывод в консоль пути конечного бинарника и загружал его вручную при помощи LM Flash Programmer.

Испытуемый 3: Плата Arduino MEGA 2560

Немного изменим скетч и будем мигать только одним светодиодом.
Заливаем при помощи Arduino IDE

Подключаем к планшету, снова видим в директории /dev/usb/ файлик tty1-1:1.0, повторяем эксперимент:

и тут обнаруживаю что светодиод 2 раза мигнул с периодом около 100 мс и погас. Ладно пробую следующее:

И тут терминал застыл в ожидании… Ладно Ctrl+C

Логично что в выводе ничего нет.

Но это было только вступление, есть один замечательный проект Physicaloid Library. Для начала откроем библиотеку как обыкновенный android проект в Eclipse. Теперь создадим новый проект и в его свойствах в пункте android, Library жмём Add… и выбираем Physicaloid Library. Теперь что бы при нажатии кнопки отправить строку “1” в ардуину:

Как прочитать полученные данные, думаю рассказывать не нужно, ибо в документации к библиотеке всё есть.

Испытуемый 4: Плата MSP430 LaunchPad, M430G2553.

Эта плата совсем не захотела работать с моим железом. Просто не определяется системой, а USB Device info просто виснет при рефреше.

Источник

UART и с чем его едят

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


Роутер превращается в компьютер, если к нему по UART подключить клавиатуру и дисплей

От телеграфа к COM-порту

Протокол UART (Universal asynchronous receiver/transmitter) или, по-русски, УАПП (универсальный асинхронный приемопередатчик) — старейший и самый распространенный на сегодняшний день физический протокол передачи данных. Наиболее известен из семейства UART протокол RS-232 (в народе – COM-порт, тот самый который стоит у тебя в компе). Это, наверное, самый древний компьютерный интерфейс. Он дожил до наших дней и не потерял своей актуальности.

Надо сказать, что изначально интерфейс УАПП появился в США как средство для передачи телеграфных сообщений, и рабочих бит там было пять (как в азбуке Морзе). Для передачи использовались механические устройства. Потом появились компьютеры, и коды ASCII, которые потребовали семь бит. В начале 60-х на смену пришла всем известная 8-битная таблица ASCII, и тогда формат передачи стал занимать полноценный байт, плюс управляющие три бита.

В 1971 году, когда уже начался бум микросхем, Гордон Белл для компьютеров PDP фирмы Western Digital сделал микросхему UART WD1402A. Примерно в начале 80-х фирмой National Semiconductor был создан чип 8520. В 90-е был придуман буфер к интерфейсу, что позволило передавать данные на более высоких скоростях. Этот интерфейс, не претерпев практически никаких изменений, дошел и до наших дней

Физика интерфейса

Чтобы понять, что роднит и отличает разные UART-интерфейсы, разберем принцип работы самого популярного и любимого нами протокола RS-232. Дотошно расписывать все тонкости его работы я не буду. Об этом написан ни один десяток мегабайт статей, и если ты умеешь пользоваться Гуглом, то без проблем найдешь всю необходимую информацию. Но основы я расскажу, благо с ними можно уже круто всем рулить, а всякие фишки используются очень редко.

Основные рабочие линии у нас – RXD и TXD, или просто RX и TX. Передающая линия – TXD (Transmitted Data), а порт RXD (Received Data) – принимающая.
Эти линии СОМ-порта задействованы при передаче без аппаратного управления потоком данных. При аппаратном потоке задействованы еще дополнительные интерфейсные линии (DTS, RTS и пр.). Выход передатчика TX соединен с входом приемника RX и наоборот. Электрический принцип работы RS-232 отличается от стандартной 5-вольтовой TTL логики. В этом протоколе логический нуль лежит от +3 до +12 вольт, а единица от -3 до -12, соответственно. Промежуток от -3 до +3 вольт считается зоной неопределенности. Учти, что все напряжения указаны относительно корпуса компьютера, или земли. Теперь, я думаю, ты понимаешь, зачем в компьютерном блоке питания существует сразу два напряжения: -12 и +12 вольт. Они были введены специально для работы СОМ-порта.


Приём сигнала по RS-232 (взято из книги М.Гук «Аппаратные интерфейсы ПК»)

Такая большая амплитуда рабочих напряжений, целых 24 вольта, нужна в первую очередь для помехоустойчивости линий связи. По стандарту, длина кабеля, по которому у нас бегают данные, может быть 15 м. Хотя на практике люди умудрялись заставлять его работать даже на 25 м. Электрические параметры RS-232 – это главная характеристика, которая отличает его от других протоколов семейства UART.

Следующие характеристики – формат посылки и скорость передачи данных – полностью применимы ко всем видам UART и обеспечивают их совместимость через несложные схемы сопряжения.

Стандартная посылка занимает 10 бит. Но правило это распространяется только на стандартные настройки СОМ-порта. В принципе, его можно перенастроить так, чтобы он даже интерфейс One-Wire понимал. В режиме простоя, когда по линии ничего не передается, она находится в состоянии логической единицы, или -12 вольт. Начало передачи обозначают передачей стартового бита, который всегда равен нулю. Затем идет передача восьми бит данных. Завершает посылку бит четности и стоповый бит. Бит четности осуществляет проверку переданных данных. Стоповый бит говорит нам, что пересылка данных завершена. Надо отметить, что STOP-бит может занимать 1, 1.5, и 2 бита. Не стоит думать, что это дробные биты, это число говорит только о его длительности. Стоповый бит, как и стартовый, равен нулю.


Сигнал UART на экране осциллографа. Виден старт бит, данные и стоповый бит. Спасибо DIHALTза картинку

Скорость работы

Даже если тебе раньше никогда не приходилось работать с СОМ-портом, по крайней мере, в модеме ты должен знать номинальные скорости работы: 9600, 28800, 33600, 56000 и т.п. Сколько бит в секунду убегает из нашего порта? Вот смотри, допустим, скорость у нас 9600 бит в секунду. Это означает, что передача одного бита будет занимать 1/9600 секунды, а пересылка байта – 11/9600. И такая скорость для байта верна только в случае, если стоп-бит будет занимать один бит. В случае, если он занимает два стоп-бита, то передача будет 12/9600. Это связано с тем, что вместе с битами данных передаются еще специальные биты: старт, стоп и бит четности. Линейка скоростей СОМ-порта стандартизирована. Как правило, все устройства работают на трех стандартных скоростях: 9600, 19200, 115200. Но возможны другие варианты, даже использование нестандартных скоростей или скорости, меняющейся во времени, – с этим я сталкивался при разборе полетов очередного устройства.

Такой разный протокол

Видов UART существует великое множество. Я не буду перечислять их наименования, ибо, если ты владеешь английским, то сумеешь и сам нагуглить. Но самые основные не отметить нельзя! Напомню, что главное отличие интерфейсов состоит в среде и способе передаче данных. Данные могут передаваться даже по оптоволокну.

Второй по распространению интерфейс после RS-232 – это RS-485. Он является промышленным стандартом, и передача в нем осуществляется по витой паре, что дает ему неплохую помехоустойчивость и повышенную скорость передачи до 4 мегабит в секунду. Длина провода тут может достигать 1 км. Как правило, он используется на заводах для управления разными станками.

Надо сказать, что IRDA, или инфракрасная связь, которая встроена в большинство телефонов и КПК, тоже по сути является UARTом. Только данные передаются не по проводам, а с помощью инфракрасного излучения.

В SMART-картах (SIM, спутниковое телевиденье, банковские карты) – тех самых устройствах, которые мечтает похачить каждый уважающий себя фрикер – тоже используется наш любимый UART. Правда, там полудуплексная передача данных, и логика работы может быть 1,8/3,3 и 5 вольт. Выглядит так, будто RX запаян с TX на одном конце и на другом – в результате, один передает, другой в этот момент слушает, и наоборот. Это регламентировано стандартом смарт-карт. Так мы точно знаем, сколько байт пошлем, и сколько нам ответит карточка. Тема достойна отдельной статьи. В общем, запомни, что UART есть практически везде.


Устройства, которые имеют на своём борту UART, по часовой стрелке: мышка, ридер-эмулятор SMART-карт, КПК Palm m105, отладочная плата для микроконтроллера ATtiny2313 (или AT89C2051), модем.

Сопряжение интерфейсов

Я уже глаза намозолил разными интерфейсами, но как с ними работать-то? Ну, с обычным RS-232 понятно, а, допустим, с 5-вольтовым юартом как быть? Все просто: существуют различные готовые микросхемы-преобразователи. Как правило, в маркировке они содержат цифры «232». Увидел в схеме микруху с этими цифирями – будь уверен: скорее всего, это преобразователь. Через такие микросхемы с небольшим обвязом и сопрягаются все интерфейсы UART. Я не буду рассказывать о промышленных интерфейсах, а скажу о тех преобразователях, которые интересуют нас в первую очередь.

Самый известный преобразователь интерфейса – это микросхема, разработанная фирмой MAXIM, которая и получила от нее часть своего названия (max232). Для ее работы требуется четыре конденсатора от 0,1 микрофарады до 4 микрофарад и питание 5 вольт. Удивительно, что эта микросхема из 5 вольт генерирует отрицательное напряжение, чтобы сопрягать 5-вольтовый UART с RS-232.

Существуют микросхемы сопряжения USB с UART, например, микросхема ft232rl. В Ubuntu для этой микросхемы уже встроены драйвера. Для Windows их придется качать с официального сайта. После установки драйверов в системе появится виртуальный СОМ-порт, и с ним уже можно рулить различными устройствами. Советую не принимать эти микросхемы, как единственно возможные. Найдется громадное количество более дешевых и интересных аналогов, посему наседай на Гугл и поймешь, что мир UARTа – это круто.

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

Что нам это дает?

Как ты понял, интерфейс UART присутствует во многих устройствах, в которых стоит какой-либо процессор или контроллер. Я даже больше скажу: если там стоит контроллер, то юарт есть стопудово (только он не всегда может использоваться). Как правило, по этому интерфейсу идет наладка и проверка работоспособности девайса. Зачастую производитель умалчивает о наличии этого интерфейса в изделии, но найти его несложно: достаточно скачать мануал на процессор и, где находится юарт, ты будешь знать. После того, как ты получишь физический доступ к железяке по нашему интерфейсу, можно его настроить на свое усмотрение или даже заставить работать, так как надо тебе, а не как задумал производитель. В общем, – выжать максимум возможностей из скромного девайса. Знание этого протокола дает также возможность подслушать, что же творится в линиях обмена между различными процессорами, так как часто производители организуют целые юарт-сети в своем устройстве. В общем, применений много, главное – интуитивно понимать, как это делать.

Апдейтим роутер

Намедни я намутил себе WiFi-роутер WL-520GU и, прочитав статью Step’a «Level-up для точки доступа» (][ #106), успешно установил туда Linux. Но у меня возникли проблемы с монтированием swap-раздела жесткого диска. Так появилась необходимость посмотреть лог загрузки точки доступа – подмонтировался раздел или нет – причем, как говорится, на лету, чтобы сразу вносить необходимые изменения. Шестым чувством я подозревал, что в моем роутере просто обязан быть UART. Я взял в руки крестовую отвертку и начал его разбирать. Дело тривиальное, но с заковыркой – потайные винтики находятся под резиновыми ножками (если решишь повторить, помни, что при разборе ты лишаешься гарантии). Моему взору предстала достаточно скучная плата, где все «chip-in-one»: один центральный процессор, в который включено все, внешняя оператива, флеша, преобразователь питания и рядок разъемов с кнопками. Но на плате была не распаянная контактная площадка, точнее сказать, отверстия под иголки. Их было четыре штуки. Вот он UART, это очевидно! По плате даже без мультиметра видно, что крайние иголки – это +3,3 вольта и второй – земля. Средние контакты, соответственно, RX и TX. Какой из них что, легко устанавливается методом научного тыка (спалить интерфейс очень проблематично).
Сразу хочу отметить, что интерфейс UART в каждом роутере выглядит по-разному. В большинстве случаев, это не распаянные отверстия на плате. Правда, в одном роутере от ASUS я даже встретил полностью подписанный разъем.

Собираем преобразователь

Чтобы подключить роутер к компу, необходимо сопрячь интерфейсы RS-232 с UARTом роутера. В принципе, можно подключить к USB, используя указанную выше микросхему FT232RL, – что я и сделал при первой проверке роутера. Но эта микросхема – в достаточно сложном для пайки корпусе, посему мы поговорим о более простых решениях. А именно – микросхеме MAX232. Если ты собираешься питаться от роутера, то там, скорее всего, будет 3,3 вольта, поэтому лучше использовать MAX3232, которая обычно стоит в КПК (схему распайки нетрудно найти в инете). Но в моем роутере присутствовало питание +5 вольт на входе, а указанных микросхем у меня великое множество, и я не стал заморачиваться. Для сборки нам потребуются конденсаторы 0,1 мкФ (4 штуки) и сама микросхема. Запаиваем все по традиционной схеме, и начинаем эксперименты.


Исходники для сборки

На выход я сразу повесил 9-пиновый разъем типа «папа», чтобы можно было легко подключить нуль-модемный кабель. Если ты помнишь, во времена DOSа такими кабелями делали сетку из двух компов и резались в «Дюкнюкем». Провод для наших целей собрать несложно. Правда, получится не полный нуль-модем и через него особо не поиграешь, но рулить точкой доступа будет самое то! Тебе понадобятся два 9-пиновых разъема типа «мама», корпуса к ним и провод, например, от старой мышки или клавы (главное, чтобы в нем было три провода). Сначала соединяем земли ¬- это пятый контакт разъемов; просто берем любой провод и с обоих сторон припаиваем к 5-му контакту. А вот с RX и TX надо поступить хитрее. С одного конца провода запаиваем на 3-й контакт, а с другого – на 2-й. Аналогично с третьим проводом, только с одного конца запаиваем на 2-й контакт, с другого – на 3-й. Суть в том, что TX должен передавать в RX. Прячем запаянные разъемы в корпус — и готов нуль-модемный кабель!


Распаянные иголки на плате роутера.

Для удобства монтажа в материнку роутера я впаял штырьковый разъем, а в монтажку с MAX232 – обратный разъем и вставил платку, как в слот. RX и TX роутера подбираются экспериментально.


Собраная плата

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


Прожигаем отверстие для вывода проводов


Распаянный СОМ-порт


Всё в сборе. Обратите внимание, что красный провод питания идёт к разъёму адаптера роутера. Узелок внутри сделан, для того чтобы рывком на оторвать припаянные провода.

Настройка терминала

Нам нужно настроить терминальную программу. В Винде все достаточно просто: запускаем Hyper Terminal, отключаем программную и аппаратную проверку данных, выставляем скорость 115200 и один стоповый бит. А вот в Линухе дело обстоит чуть хитрее. У меня Ubuntu, и рассказывать буду про нее. Для начала разберись, как в твоей сборке именуется СОМ-порт. В моем случае СОМ1 был ttyS0 (если использовать к примеру микросхему FT232, то он будет именоваться ttyUSB0). Для работы с ним я использовал софтинку minicom.

Запускай ее с параметрами: minicom -l -8 -c on -s. Далее выбирай «Настройки последовательного порта»:
Последовательный порт /dev/ttyS0

* Скорость/четность/биты 115200 8N1
* Аппаратное управление потоком — нет
* Программное управление потоком — нет

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

Я не рекомендую подключать микросхему преобразователя к роутеру, дабы проверить ее функционал. Допускается только брать с него питание. Проверка проходит очень просто — необходимо перемкнуть RX с TX. Сначала перемыкаешь в СОМ-порте 2-й и 3-й контакт — проверяешь настройки терминалки. Пишешь что-то на клаве: если символы возвращаются, значит, все ОК. Также проверяешь кабель, те же контакты. Потом подключаешь микросхему, и уже у нее на выходе ставишь перемычку. Я заостряю на этом внимание, потому что, например, у меня возникли проблемы, и ничего не работало, пока я все не проверил и не нашел ошибку.

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


Лог загрузки роутера в программе minicom

Автономное плаванье

Согласись, делать через терминальную программу то же самое, что удобнее сделать через SSH – не айс. Мне хотелось превратить роутер в автономный Linux-компьютер, со своей хитрой архитектурой. Для этого нужно, чтобы данные с клавиатуры передавались по UART, и по нему же выводились на монитор. Паять и разрабатывать устройство было лениво. Тогда-то и пришла идея заюзать для этих целей пылящийся без дела КПК. По сути, наладонник будет исполнять роль контроллера клавиатуры и дисплея, ну и служить сопряжением интерфейсов.

Сначала я попробовал древнейший Palm m100. Но, видимо, у него очень маленькая буферная память, и от количества данных, которые идут с роутера, ему становилось плохо. Я взял другой — промышленный КПК, с нормальным СОМ-портом и терминалкой. Подключил, вставил в док и, в результате, получил небольшой линукс-компьютер. В принципе, вместо дорогущего промышленного КПК подойдет большинство наладонников, работающих под операционкой WinCE, главное – найти подходящий терминальный софт.


Линукс компьютер 🙂

Итоги

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

Этот пост является отредактированной для хабра версией моей статьи в Хакере № 05/09 «Главный инструмент фрикера».

Источник

990x.top

Простой компьютерный блог для души)

MCU — что это такое в автомагнитоле Андроид? (Micro Controller Unit)

MCU — это специальная плата Micro Controller Unit (микроконтроллер), связывающая работу Android, камеры заднего вида, радиоприемник, устройство громкой связи Bluetooth, усилителя звука (включая низкой частоты) и остальных составляющих автомагнитолы.

  1. MCU это самостоятельный компьютер, который выполнен в виде отдельной платы, имеет свой процессор, флешпамять, а также программируемые входы/выходы.
  2. Андроид как раз и взаимодействует с MCU.
  3. Внимание! Как показывает практика — просто так обновлять прошивку микроконтроллера не нужно, если корректно работает модуль CAN-bus, кнопки руля, функции Wi-Fi, Блютуз и другие важные вам опции. Иногда обновление прошивки MCU приводит к неработоспособности устройства, тогда нужно обращаться в сервисный центр.
  4. Прошивка только влияет на работу самого контроллера, на логику Андроида влияния нет.
  5. Во время обновления MCU ни в коем случае нельзя отключать ГУ от питания.
  6. Название прошивки может содержать букву D, это означает что версия для устройства с наличием DSP-процессора, предназначенный для обработки цифровых сигналов (часто в реальном времени). Если установить прошивку для DSP на магнитолу, где DSP нет — звук будет отсутствовать.
  7. Прошивка MCU не имеет никакого отношения к прошивке Андроид. Последнее — это только операционная система и все. Также при установке прошивки нужно учитывать тип радиомодуля. Он может быть цифровым или аналоговым. Чтобы узнать — нужно посмотреть данные установленного MCU, трижды тапните (иногда нужно пять) по версии MCU в информации об устройстве, если в конце указано TEF — значит аналоговый, если Si4 — цифровой. Если установить версию для цифрового, когда у вас аналоговый — не будет ловить радио (постоянно будет шипеть).

Способ узнать версию зависит от модели устройства. Например на SMARTY TREND нужно открыть раздел Настройки (Settings), далее выбрать пункт Информация (Information) > версия MCU > 5 раз быстро тапнуть, после появится нужные данные:

Если у вас другая версия магнитолы — просто попробуйте несколько раз тапнуть по версии MCU в окне О системе.

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

Источник

Как сделать Hard Reset на магнитоле Android?

Чем то острым нажимаю кнопку ресет и держа ее, включаю магнитолу, через 7-10 секунд начинался сброс Зажимаю кнопку дом и включаю магнитолу. Включается Recovery и выбираю строчку Wipe Data. Перебрав попытки, магнитола сама предлагает сброситься, кажется после 20й попытки

Как полностью выключить андроид магнитолу?

Длительное нажатие (более 1 секунды) на кнопку «Power» при отключенном АСС и нахождении магнитолы в режиме сна или во включенном состоянии приводит к ее выключению штатным образом (через 20 — 30 секунд).

Как перезагрузить автомобильный андроид?

Как выполнить перезагрузку андроид аппаратными методами

Зажмите и удерживайте кнопку включения/выключения 1-3 секунды, до появления соответствующего меню. Если устройство поддерживает перезагрузку – нажмите на такую кнопку и телефоне перезагрузится. В ином случае, выберите вариант – «Отключение питания».

Как сбросить автомагнитолу до заводских настроек?

Чем то острым нажимаю кнопку ресет и держа ее, включаю магнитолу, через 7-10 секунд начинался сброс Зажимаю кнопку дом и включаю магнитолу. Включается Recovery и выбираю строчку Wipe Data. Перебрав попытки, магнитола сама предлагает сброситься, кажется после 20й попытки

Как сбросить магнитолу Пионер до заводских настроек?

  1. нажатием на ручку настройки звука (нониус) входим в меню;
  2. работая джойстиком влево, вправо, находим раздел «Аудио» и снова нажимаем на нониус;
  3. ищем «FADER/BALANCE» и ставим цифру 0, обозначающую сброс параметров;
  4. джойстиком доводим показатель FADER до значения +15.

Что такое RST на магнитоле?

RST – кнопка сброса. Используется при возможном «зависании» устройства.

Что такое MCU в магнитоле?

MCU (Microcontroller Unit) — это самостоятельный компьютер, выполненный на отдельной материнской плате имеющий свои собственные процессор, память и программируемые входы и выходы. … Другая часть головного устройства — компьютер под управлением ОС Android — взаимодействует с MCU, передавая ему команды.

Как зайти в рекавери px5?

Способ №2 (из режима recovery): загрузите устройство в режиме recovery с заранее вставленной в слот «GPS-карты» подготовленной карточкой. Перемещаясь по меню, выберите пункт «Apply update system» «Apply update mcu». После этого будет произведено обновление прошивки, а устройство останется в режиме recovery.

Как отключить экран на магнитоле?

Для быстрого выключения экрана (включения выбранной заставки) можно назначить хард кнопку «Звездочка» слева от экрана. Для этого идем в Настройки — Расширенные, нажимаем на Настраиваемая Кнопка и ставим точку напротив Дисплей вкл/выкл.

Как выключить магнитолу?

Приведем типовой порядок действий, который подойдет практически для всех моделей магнитол Pioneer, которые имеют подобную проблему:

  1. Нажмите на магнитоле на кнопку «2» и зайдите в меню;
  2. Выберите в списке разделов System;
  3. Далее нажмите PW Save;
  4. Выключите магнитолу при помощи кнопки OFF;

Как перезагрузить телефон чтобы он был как новый?

На большинстве устройств Android вам необходимо одновременно нажать кнопки питания и уменьшения громкости в течение 5 секунд. Это должно работать на любых Android смартфонах и планшетах, таких как Google Nexus и Google Pixel, Samsung Galaxy и телефоны LG.

Как сделать полную перезагрузку телефона?

  1. Выключить устройство
  2. Зажать одновременно три кнопки: клавишу увеличения громкости «Volume Up», клавишу «Главный экран» и кнопку включения
  3. Дождаться загрузки меню
  4. Клавишами изменения громкости выбрать пункт wipe data/factory reset и нажать кнопку включения

Источник

Что вызывает ошибки UART?

Я хотел бы знать, почему возникают ошибки UART и когда следует проверять наличие таких ошибок. Здесь есть пост, в котором говорится об обработке отдельных ошибок, таких как переполнение, четность и т. Д. Я понимаю, почему происходит переполнение данных, почему происходит ошибка четности, но я хотел бы знать, что является основной причиной. Мой вопрос больше сфокусирован на том, почему эти ошибки могут возникать (физические причины), и когда нужно делать проверку ошибок как фактор их применения.

Пока что моя программа работает отлично (без проверки ошибок), но я знаю, что шум может все испортить. Как я могу имитировать условия, которые могут вызвать сбой портов UART Rx / Tx?

Существует несколько потенциальных источников шума в любой цепи. Некоторые из наиболее распространенных включают в себя:

  • Плохо регулируемые источники питания;
  • Импульсные источники питания;
  • Недостаточная емкостная развязка силовых шин рядом с микроконтроллером;
  • Индуктивная связь соседних электромагнитных источников (в том числе 50 или 60 Гц от источника питания; даже если цепь питается от батареи, она будет испытывать эти помехи, когда достаточно близко к источнику питания);
  • Источники РЧ вблизи резонансной частоты следа на плате или одной из его гармоник;
  • Прокладка сильноточных трасс на плате возле сигнальных линий;
  • И т.п.

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

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

  • Замораживание (охлаждение контура до минимального номинала его компонентов);
  • Выпечка (нагрев до максимальной оценки);
  • Воздействие EMI :
    • Установите плату поверх шнура питания обогревателя;
    • Введите радио CB в непосредственной близости от платы;
    • Поместите плату рядом с вашим беспроводным маршрутизатором;
    • Используйте длинный соединительный провод (вместо правильно построенного последовательного кабеля) для соединения UART.

Есть много других — на самом деле, есть большие испытательные лаборатории, посвященные квалификации EMC .

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

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

Большинство ошибок проистекают из трех причин: (1) сгенерированный сигналом передатчик не соответствует действительным данным; (2) сигнал передатчика не был получен как сгенерированный, или (3) приемник не был готов обрабатывать данные, когда они были получены. Самая распространенная причина, по которой я столкнулся с проблемой № 1, — это передатчик, который переконфигурируется или отключается во время передачи данных. Проблема № 2 может легко возникнуть для сигналов, проходящих через «внешний мир», в результате радиопомех (мобильные телефоны могут быть на удивление неприятными!), Но, как правило, не должна возникать для сигналов, ограниченных одной платой. Проблема № 3 может возникать из-за того, что слишком много байтов поступает быстрее, чем они могут быть обработаны, или из-за того, что приемник реконфигурирован, выключен или запущен во время передачи.

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

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

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

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

Ошибка переполнения — это когда новый байт получен до того, как процессор прочитал предыдущий байт. Немного отличается, когда задействован FIFO, но это одно и то же — действительные полученные данные теряются из-за медленной работы процессора. Всегда проверяйте это перед чтением байта, и если байт является частью более длинного сообщения (или команды), отбросьте все сообщение / команду и каким-то образом попросите передатчик повторно отправить все сообщение / команду.

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

Источник

¶ Как собрать информацию о проблеме

Чтобы Вам могли помочь в решении проблем, которые возникли с Klipper’ом, необходимо предоставить log файлы:

¶ Расположение log файлов Klipper, Moonraker

В случае если у Вас работает Web клиенты, то получить log файлы в случае возникновения можно по кнопкам klippy.log и moonraker.log .

Если таковой возможности нет, то не беда — обычно log файлы расположены в

/klipper_logs , для этого заходим в папку любым scp клиентом (например WinSCP или Tabby) и скачиваем их.

¶ Ошибки системы

В случае если возникает аппаратная ошибка, то для ее выявления используется dmesg :

Данная команда создаст файл dmesg.txt в домашней папке пользователя (по умолчанию считаем что это пользователь pi ) и тогда полный путь к файлу будет /home/pi/dmesg.txt . Скачиваем данный файл любым scp клиентом (например WinSCP или Tabby).

¶ Ошибки сервисов

При неправильной работы сервисов, для определения причин используются следующие команды:

Сообщает текущее состояние сервиса klipper :


Возвращает ошибки связанные с сервисом klipper

Основные сервисы которые могут нас интерисовать: klipper , moonraker , klipperscreen , moonraker-telegram-bot .

Получаем статус сервиса и его ошибки и сохраняем в файл:

Скачиваем данные файлы любым scp клиентом (например WinSCP или Tabby).

Теперь у Вас есть полный комплект log файлов для обращения за помощью!

¶ Lost communication with MCU

¶ Проявление проблемы

Если во время печати, прогрева принтера, простоя вы регулярно получаете ошибку следующего плана:

Во время удержания ошибки в выводе команды

В логах выходит сообщение

То это значит, что у вас рвётся USB-соединение между платой MCU и микрокомпьютером.

¶ Причины проблемы

  • Некачественный кабель
  • Плохой контакт (изношены или повреждены разъёмы)
  • Электромагнитные помехи от силовой части или других устройств

¶ Решение проблемы

  • Замена кабеля на качественный
  • Замена поврежденных или изношенных разъёмов
  • Переход на UART

¶ GSTAT: 00000004 uv_cp=1 (undervoltage!)

¶ Проявление проблемы

Если во время печати, прогрева принтера вы регулярно получаете ошибку следующего плана:

Это значит, что драйвер не может «накачать» конденсаторы в его обвязке из-за недостатка мощности.

Данная проблема требует дополнительной диагностики и наличия ЗИП (запасные части, инструменты, приспособления)

¶ Причины проблемы

  • Бракованный драйвер
  • Недостаток мощности БП
  • Повреждения проводки до шагового двигателя
  • Повреждение обмоток шагового двигателя

¶ Порядок диагностики, выявления неисправного узла и решения проблемы

Внимание! Данные проверки выполняется Вами на свой страх и риск! В случае повреждения принтера администрация ресурса не несёт ответственности за возможный или приченённый ущерб.

¶ 1. Локализация проблемы

¶ 1.1 Проверка драйвера

Попробуйте поменять местами драйвера шаговых двигателей. Если проблема «переехала» вместе с драйвером, это значит, что драйвер шагового двигателя неисправен.

¶ 1.2 Проверка проводки

Используя мультиметр в режиме измерения сопротивления и прозвонки проверьте кабельную трассу до неисправного двигателя в разных положениях и нагрузках проводки (изгиб с малым радиусом, натяг, скручивание). Если изменяется сопротивление или пропадает контакт, значит проводка неисправна.

¶ 1.3 Проверка шагового мотора

Снимите и аккуратно разберите шаговый мотор. Осмотрите обмотки, они не должны быть грязно-коричневого цвета. Прозвоните обмотки в режиме измерения сопротивления. Сопротивление обмоток должно быть одинаковым. Если обмотки грязного цвета, а внутри мотора пахнет «палёной электроникой» или дымом, значит мотор неисправен. Если сопротивление обмоток значительно отличается, значит произошло межвитковое замыкание и мотор неисправен.

¶ 1.4 Проверка блока питания

Запустите прогрев стола и экструдера на максимальной мощности до максимальной температуры (стол до 130-140, экструдер до 300 градусов), после прогрева запустите тестовую печать без пластика на максимальных скоростях и ускорениях. Во время этого теста возможно стабильное получение такой ошибки.

¶ 2. Решение проблемы

¶ 2.1 Неисправный драйвер

Замените драйвер на исправный

¶ 2.2 Неисправная проводка

Замените и/или переобожмите провода. Используйте более гибкие провода с большим количеством жил.

¶ 2.3 Неисправный заговый двигатель

¶ 2.4 Недостаток мощности/неисправный блок питания

Замените блок питания на качественный (производства Mean Well, серия RSP) или отремонтируйте блок питания заменив неисправные компоненты.

¶ Failed to import ‘numpy’ module, make sure it was installed via ‘

/klippy-env/bin/pip install’ (refer to docs/Measuring_Resonances.md for more details).

¶ Проявение проблемы

При попытке запустить тест резонансов появляется ошибка

Источник

Основные мозги в мониторе.

Полный размер

Плата монитора (монохром)

Решил немного ковырнуть протокол обмена данными между магнитолой и монитором
Приведу общую схему взаимодействия электроники в Teana:

схема взаимодействия блоков между собой

Имеем блок кнопок (центральная консоль управления), монитор с мощной начинкой и собственно сама магнитола с одной единственной кнопкой выброса диска))
И главный вопрос темы: как же управлять магнитолой с одной кнопкой?
— да очень просто! С аппаратной стороны просто)) и сложно с программной…((
Управление происходит по стандартной цифровой шине UART на скорости 9600 baud, 1 stop bit, odd parity bit.
Вооружившись ноутбуком и логическим анализатором лезем в шину и снимаем логи.
на экране монитора у нас отображается: FM1 ch6 107.9

смотрим и понимаем, что не все так просто как ожидалось. Начинаем смотреть все остальные передачи и анализировать.
по скрину OUTPUT TX (передача от магнитолы) имеем набор байт:
0x10, 0x02, 0x41, 0x06, 0x06, 0x01, 0x10, 0x10, 0x79, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x10, 0x03, 0xD5
анализ выдал следующее:

мое виденье происходящего

10h, 02h отсекаем это начало передачи
41h служебный байт(назначение пока неизвестно)
06h код Радио (04h CD), (02h Volume), ченжер и AUX по идее тоже здесь
06h номер канала станции в памяти ch6 (значение Volume)
01h номер диапазона FM1 или FM2 (02h) или AM (11h)
10h назначение пока неизвестно, этот байт может отсутствовать
10h частота станции в HEX представлении (сотни) почему то
79h частота станции в HEX представлении (десятки и дробная часть)
FFh частота станции в HEX представлении (сотки дробной части) (5Fh)
00h назначение пока неизвестно
00h назначение пока неизвестно
00h назначение пока неизвестно
00h назначение пока неизвестно
10h, 03h отсекаем это конец передачи
D5h контрольная сумма 0x41^0x06^0x06^0x01^0x10^0x10^0x79^0xFF^0x00^0x00^0x00^0x00^0x10^0x03=0xD5
Это пока только начало…Надеюсь найти единомышленников по ковырянию в носу протоколов цифровых шин автомобиля…
Дополнение на 13.03.2017
Не все так просто как казалось))), чудеса начинаются с добавлением дополнительных байтов в зависимости от значения предыдущего.
На подходе вторая часть с интеграцией в проект климат контроля на ANDROID

Hello.

I’m using STM32L476RGT and I have a question regarding uart error recovery.

MCU is talk to slave MCU via UART, actually rs485.

Now main MUC is talking to 3 slave MCUs via UART and it’s working well but randomly, there happening uart error.

Error code was overrun error so I disabled overrun error at CubeMx tool and this error disappeared but there happening another error, «noise error».

When I get «HAL_UART_ErrorCallback()», I de-initialize uart and initialize again and waiting for next data via uart but it didn’t work as I expected, even though uart data coming , there is no interrupt happening.

I use below code when I get error callback.

void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
{
	uint16_t err = 0;
 
        if(huart->Instance == rs485Port)
	{
		ERR("485 ERR...%dn", huart->ErrorCode);
		ERR("gState 0x04%x, RxState 0x04%xn", huart->gState, huart->RxState);
 
		err = huart->Instance->RDR;
		err = huart->Instance->ISR;
		err = huart->Instance->ICR;
 
		HAL_UART_DeInit(huart);
		huart->Instance->CR1 &= 0xFFFE;
		huart->Instance->CR1 |= 0x0001;
		MX_UART4_Init();
	}
}

When there happening uart error, I read DR to empty rx buffer and ISR/ICR to clear flag.

And disable and enable uart enable bit at CR.

But couldn’t get uart interrupt even though uart data is coming.

How can I recover uart interrupt when there happen error?

Процессор:
QUAD CORE ARM A7 4 * 1,2 ГГц (MT8227l)

Оперативная память: 2 ГБ

Операционная система: Android 9.0(fake), Android 8.1 API 27

Радио: FM / AM, RDS, DAB / DAB + (опционально) не

GPS: предварительно загруженные данные карты в автономном режиме, поддержка Google Maps / Waze online Navigation Поддержка других приложений для Android-навигации

Разрешение: 1024 * 600

Видео декодер: 1080P

Музыкальный формат: MP3, WMA, AAC, RM, FLAC и т. Д.

Формат видео: MPEG-1/2/4, H264, H263, VC1, RV, RMVB, DivX, Sorenson SparK, Spark, VP8, AVS Stream.

Диапазон FM-частот: 87,5-108 МГц ; 0.05МГц (EU) /0.1MHz (США)

Диапазон частот AM: 522-1620 кГц; 9KHz (EU) / 10KHz (США)

DAB / DAB +: ДА (коробка DAB не входит в комплект)

Двойная зона: Да, навигация во время воспроизведения музыки

Online Nav .: Да, поддержка карт Google / Waze в Интернете

Bluetooth-телефон: ДА, звонки без помощи рук

MCU Error

Музыка Bluetooth: Да, воспроизведение / пауза / предыдущая / следующая

Телефонная книга : Да, загрузка телефонной книги / поиск телефонной книги.

Прикрепленное изображение

Фото платы

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прошивка под кабель android 8.1 API27 10.19 слитая с этого ГУ

Прикрепленное изображение

Прошивка под флешку android 8.1 API27 присланная продавцом

Прикрепленное изображение

Прошивка для вертикальных устройств

Прикрепленное изображение

Коды:
инженерное меню-8888
состояние проца, памяти-1111
Код 1616 в меню настройка дисплея
Код 1414 перезагрузка гу.
Актуальная версия прошивальщика

Инструкция по прошивке

Внимание!! прежде чем прошивать аппарат, сначала убедитесь что это именно ваша модель! Обязательно перед прошивкой и любыми манипуляциями, снимите дамп вашего аппарата! снять дамп можно по этой инструкции SP Flash Tool — программа-прошивальщик для смартфонов на базе MTK. (Пост rozetkin #75632552)

Mcu uart error junsun android 9.0

Прошивка очень проста и не требует раскурочивания аппарата. Необходимо только стабильное питание 12V в оба контакта разъема (B+, ACC). Устанавливаем драйвера, например из соседней ветки Головное устройство ML-CK1018 и аналогичные , на базе процессора МТ/АС8227L — Обсуждение (Пост valerij571 #91861317) , распаковываем наш архив с прошивкой, берём обычный шнурок mini usb

Прикрепленное изображение

вставляем его в разъем ГУ на передней панели, под заглушкой и в компьютер. Открываем SP flash tool, во вкладке Download нажимаем на Scatter-loading File, идём по пути в папку, куда распакована наша прошивка, выбираем наш scatter файл и у нас получается подобная картина

Прикрепленное изображение

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

Если процесс не начался а SP flash tool выбил ошибку, значит снова нажимаем Download а на ГУ скрепкой нажимаем ресет на передней панели и отпускаем, все, процесс пошел. После того как выскочит окошко с зелёной галкой на экране, сигнализирующей об успешном окончании прошивки, отключаем питание ГУ, отсоединяем usb кабель, затем снова подаём питание на наше ГУ. Появится бут заставка и пойдет загрузка. Как правило, первое включение может длиться до 10 минут. После появления рабочего стола, необходимо подождать ещё пару минут и после этого приступить к настройке ГУ.

Без необходимости НЕ ТРОГАТЬ.

Прикрепленное изображение

  • Пост с расшифровками инженерного меню
  • Установка TWRP и ROOT Magisk
  • Поднятие кирпича junsun v1 8227l ver. 2/32

Технический раздел

  • Замена микросхемы усилителя на TDA7851A
  • Замена микросхемы усилителя на TDA7850 + доработка охлаждения
  • Замена усилителя и радиомодуля
  • Ещё вариант охлаждения

20.01.20, 12:20 | #2

Пользователи
Реп: ( 0 )
DanilaSib, приветствую. А через флешку можно без flash toolа обновиться?
20.01.20, 12:29 | #3

Друзья 4PDA
Реп: ( 1823 )

Ivanfrost88,
Обновиться можно штатным обновлением в бинарном формате , если есть на что обновляться.

Добавлено 20.01.2020, 12:30:

DanilaSib,
Рут не пробовали получить? Киньте boot.img из прошивки — попробую пропатчить.

20.01.20, 12:30 | #4

Пользователи
Реп: ( 0 )
sandr2010, В бинарном формате это как?
20.01.20, 12:33 | #5

Друзья 4PDA
Реп: ( 1823 )

Ivanfrost88,
Так :

Прикрепленные изображения

Прикрепленное изображение

20.01.20, 12:34 | #6

Пользователи
Реп: ( 0 )

Ivanfrost88, Нет. Вообщем проблема в том, что продавец отправил прошивку с инструкцией. Я обновился, но есть косяки: перестал работать регулятор громкости и висит надпись на экране «Activation code does not match».

Добавлено 20.01.2020, 12:35:

sandr2010, ну у меня было только 2 файла.

Прикрепленные изображения

Прикрепленное изображение

Прикрепленное изображение

20.01.20, 12:38 | #7

Друзья 4PDA
Реп: ( 277 )
Рут не пробовали получить?

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

Добавлено 20.01.2020, 12:39:

sandr2010, постараюсь сегодня boot скинуть

20.01.20, 12:40 | #8

Друзья 4PDA
Реп: ( 1823 )

Ivanfrost88,
«Нет» — это о чём?
Я читал ваше сообщение в другой теме. Пробуйте настроить энкодер в инженерке.
Если прошивка была как на скрине , из трёх файлов , то вам нужно было удалить ts8227L factory.bin — это полный сброс настроек на заводские.

20.01.20, 12:41 | #9

Пользователи
Реп: ( 0 )
sandr2010, нет, это я ошибочно написал.
20.01.20, 12:42 | #10

Пользователи
Реп: ( 0 )
sandr2010, энкодер как настроить не подскажите?
20.01.20, 12:44 | #11

Друзья 4PDA
Реп: ( 1823 )

Ivanfrost88,
Пока нет. 1. Голова другая стоит. 2. Смогу посмотреть на ней только завтра (сегодня на сутках).

20.01.20, 12:45 | #12

Пользователи
Реп: ( 0 )
sandr2010, sandr2010, sandr2010, хорошо.
20.01.20, 14:15 | #13

Друзья 4PDA
Реп: ( 277 )

sandr2010, boot.img ( 6.59 МБ )
и здесь все остальное.

20.01.20, 14:28 | #14

Друзья 4PDA
Реп: ( 1823 )

DanilaSib,
Попробуйте : прошить его флештулом , далее по подсказкам при загрузке. Рут от Magisk. Если будут проблемы — прошить родной boot.img

Прикрепленные файлы
20.01.20, 15:36 | #15

Друзья 4PDA
Реп: ( 277 )
sandr2010, ок. На перепайку затащу, и сразу зашью.
21.01.20, 20:01 | #16

Друзья 4PDA
Реп: ( 8 )

Планирую замену УНЧ с TDA7388 на TDA7850 и вживления охлаждения.
Можно ли найти на ней место хранения APK видео и радио плеера?
Добавить 2 USB на задней панели не вышло. Кабель изготовили и проверили на «родном» разъеме, на втором на тыльной панели не захотел работать.

продавец отправил прошивку с инструкцией

мне не выслал, сказал нет причин. как выпросил? лончер сторонний стоит? на «шторке» значи WIFI и все? или появились остальные?
я бы на нее лончер с PX3/PX5 взял бы. у них функционал лучше. на сток лончере AIMP виджет коряво становится.

21.01.20, 20:21 | #17

Друзья 4PDA
Реп: ( 1823 )

Ruster28r95,
Чужие лаунчеры будут работать процентов на 30 , если вообще будут работать. Уж лучше использовать сторонние автолаунчеры : карлаунчер , карвебгуру , фсс и т.п.

Можно ли найти на ней место хранения APK видео и радио плеера?

О чем речь — не понятно.
По usb : всё можно сделать , но в некоторых случаях — только «хирургически» 🙂 .

21.01.20, 20:58 | #18

Друзья 4PDA
Реп: ( 8 )
О чем речь — не понятно.

из-за использования стороннего лончера радио исчезло. поэтому надо его найти, а тыкать кнопку «моде» не всегда удобно. Видеоплеер тоже из лочнера запускается. чтобы не ставить сторонние приложения хочу найти их и вытащить на «рабочий стол»
Хирургически: вскрыл плату, дорожки есть, толку нет. понесу радиотехнику. пусть думает.

21.01.20, 21:20 | #19

Друзья 4PDA
Реп: ( 1823 )

Ruster28r95,
Из-за лаунчера программа не может изчезнуть. Выдернуть стоковые программы радио , плееров на рабочий стол стороннего лаунчера не получится , но есть решение в шапке —

Если сторонний лаунчер не видит встроенные приложения, решение здесь MEKEDE U708 188L процессор AC8227l (MTK8227L) — Обсуждение (Пост morris #79530766)

По usb : если у вас есть картридер и usb разъем на лицевой панели , то они задействованы от разъемов 4 и 6 pin на задней панели. Процессор имеет все два порта usb. Один из них должен быть рабочим , но только если не задействован usb на лицевой панели. Второй разъем задействован на картридер (стоит контроллер) и он не сможет работать даже если картридер будет пустым.

Решение для работы задних разъемов , переднего usb и картридера есть : установить/распаять хаб на один из портов процессора (к примеру идущему к 6pin разъему). Разрезать дорожки дата , на дорожки идущие в сторону процессора распаять вход (вход/выход — понятия растяжимые в данном случае , потому будем считать что шнурок подключаемый к компу — это вход , а разъемы для флешек и т.п. на хабе — выход) хаба , на один из выходов хаба повесить лицевой usb , отключив его от разъема 4pin , на другой — картридер , на третий — сам разъем 6pin. В итоге будете иметь два порта сзади , один спереди и картридер. Питание хаба взять от разъемов 4 или 6 pin (они запитаны параллельно). Киньте фото материнки в высоком разрешении — нарисую , как развести.

22.01.20, 14:56 | #20

Друзья 4PDA
Реп: ( 25 )

Добрый день.
Хочу себе взять вот эту магнитолу.
Как понимаю мне в эту ветку.
Для ее установки мне необходима переходная рамка.
Продавец на сайте в описании указывает что лицевая панель имеет размеры: 171*102 мм. а на скриншоте указано 182*102 мм.
Можете кто то замерять лицевую панель и написать ее размеры что знать какую рамку заказывать.
Заранее спасибо.

22.01.20, 15:03 | #21

Друзья 4PDA
Реп: ( 277 )

vyachik81, рулетка у меня не поверенная, но самая передняя часть, похожа с информацией из шапки. 177*102

Источник:

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

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

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

Ошибка переполнения — это когда новый байт получен до того, как процессор прочитал предыдущий байт. Немного отличается, когда задействован FIFO, но это одно и то же — действительные полученные данные теряются из-за медленной работы процессора. Всегда проверяйте это перед чтением байта, и если байт является частью более длинного сообщения (или команды), отбросьте все сообщение / команду и каким-то образом попросите передатчик повторно отправить все сообщение / команду.

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

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

Источник: qastack.ru

¶ Как собрать информацию о проблеме

Чтобы Вам могли помочь в решении проблем, которые возникли с Klipper’ом, необходимо предоставить log файлы:

¶ Расположение log файлов Klipper, Moonraker

faq_web_logs_error.png

В случае если у Вас работает Web клиенты, то получить log файлы в случае возникновения можно по кнопкам klippy.log и moonraker.log .

Если таковой возможности нет, то не беда — обычно log файлы расположены в ~/klipper_logs , для этого заходим в папку любым scp клиентом (например WinSCP или Tabby) и скачиваем их.

faq_web_logs_error.png

¶ Ошибки системы

В случае если возникает аппаратная ошибка, то для ее выявления используется dmesg :

dmesg > ~/dmesg.txt

Данная команда создаст файл dmesg.txt в домашней папке пользователя (по умолчанию считаем что это пользователь pi ) и тогда полный путь к файлу будет /home/pi/dmesg.txt . Скачиваем данный файл любым scp клиентом (например WinSCP или Tabby).

¶ Ошибки сервисов

При неправильной работы сервисов, для определения причин используются следующие команды:

systemctl status klipper

faq_sysctl_status.png

Сообщает текущее состояние сервиса klipper :

journalctl -u klipper

faq_sysctl_jour.png

Возвращает ошибки связанные с сервисом klipper

Основные сервисы которые могут нас интерисовать: klipper , moonraker , klipperscreen , moonraker-telegram-bot .

Получаем статус сервиса и его ошибки и сохраняем в файл:

systemctl status klipper > ~/klipper_status.txt journalctl -u klipper > ~/klipper_journal.txt

Скачиваем данные файлы любым scp клиентом (например WinSCP или Tabby).

Теперь у Вас есть полный комплект log файлов для обращения за помощью!

¶ Lost communication with MCU

¶ Проявление проблемы

Если во время печати, прогрева принтера, простоя вы регулярно получаете ошибку следующего плана:

Lost communication with MCU ‘mcu’ Once the underlying issue is corrected, use the «FIRMWARE_RESTART» command to reset the firmware, reload the config, and restart the host software. Printer is shutdown

Во время удержания ошибки в выводе команды

dmesg

В логах выходит сообщение

[ 222.188664] usb usb6-port1: disabled by hub (EMI?), re-enabling. [ 222.188697] usb 6-1: USB disconnect, device number 2 [ 222.190453] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0 [ 222.190521] ch341 6-1:1.0: device disconnected [ 222.520521] usb 6-1: new full-speed USB device number 3 using ohci-platform [ 222.745122] usb 6-1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64 [ 222.745141] usb 6-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [ 222.745148] usb 6-1: Product: USB Serial [ 222.747652] ch341 6-1:1.0: ch341-uart converter detected [ 222.764329] usb 6-1: ch341-uart converter now attached to ttyUSB1

То это значит, что у вас рвётся USB-соединение между платой MCU и микрокомпьютером.

¶ Причины проблемы

  • Некачественный кабель
  • Плохой контакт (изношены или повреждены разъёмы)
  • Электромагнитные помехи от силовой части или других устройств

¶ Решение проблемы

  • Замена кабеля на качественный
  • Замена поврежденных или изношенных разъёмов
  • Переход на UART

¶ GSTAT: 00000004 uv_cp=1 (undervoltage!)

¶ Проявление проблемы

Если во время печати, прогрева принтера вы регулярно получаете ошибку следующего плана:

Error: GSTAT: 00000004 uv_cp=1 (undervoltage!)

Это значит, что драйвер не может «накачать» конденсаторы в его обвязке из-за недостатка мощности.

Данная проблема требует дополнительной диагностики и наличия ЗИП (запасные части, инструменты, приспособления)

¶ Причины проблемы

  • Бракованный драйвер
  • Недостаток мощности БП
  • Повреждения проводки до шагового двигателя
  • Повреждение обмоток шагового двигателя

¶ Порядок диагностики, выявления неисправного узла и решения проблемы

Внимание! Данные проверки выполняется Вами на свой страх и риск! В случае повреждения принтера администрация ресурса не несёт ответственности за возможный или приченённый ущерб.

¶ 1. Локализация проблемы

¶ 1.1 Проверка драйвера

Попробуйте поменять местами драйвера шаговых двигателей. Если проблема «переехала» вместе с драйвером, это значит, что драйвер шагового двигателя неисправен.

¶ 1.2 Проверка проводки

Используя мультиметр в режиме измерения сопротивления и прозвонки проверьте кабельную трассу до неисправного двигателя в разных положениях и нагрузках проводки (изгиб с малым радиусом, натяг, скручивание). Если изменяется сопротивление или пропадает контакт, значит проводка неисправна.

¶ 1.3 Проверка шагового мотора

Снимите и аккуратно разберите шаговый мотор. Осмотрите обмотки, они не должны быть грязно-коричневого цвета. Прозвоните обмотки в режиме измерения сопротивления. Сопротивление обмоток должно быть одинаковым. Если обмотки грязного цвета, а внутри мотора пахнет «палёной электроникой» или дымом, значит мотор неисправен.

Если сопротивление обмоток значительно отличается, значит произошло межвитковое замыкание и мотор неисправен.

¶ 1.4 Проверка блока питания

Запустите прогрев стола и экструдера на максимальной мощности до максимальной температуры (стол до 130-140, экструдер до 300 градусов), после прогрева запустите тестовую печать без пластика на максимальных скоростях и ускорениях. Во время этого теста возможно стабильное получение такой ошибки.

¶ 2. Решение проблемы

¶ 2.1 Неисправный драйвер

Замените драйвер на исправный

¶ 2.2 Неисправная проводка

Замените и/или переобожмите провода. Используйте более гибкие провода с большим количеством жил.

¶ 2.3 Неисправный заговый двигатель

¶ 2.4 Недостаток мощности/неисправный блок питания

Замените блок питания на качественный (производства Mean Well, серия RSP) или отремонтируйте блок питания заменив неисправные компоненты.

¶ Failed to import ‘numpy’ module, make sure it was installed via ‘~/klippy-env/bin/pip install’ (refer to docs/Measuring_Resonances.md for more details).

¶ Проявение проблемы

При попытке запустить тест резонансов появляется ошибка

!! Failed to import `numpy` module, make sure it was installed via `~/klippy-env/bin/pip install` (refer to docs/Measuring_Resonances.md for more details).

¶ Решение

Выполнить в терминале команду

~/klippy-env/bin/pip install -v numpy

¶ TMC ‘stepper_y’ reports error: GSTAT: 00000001 reset=1(Reset)

¶ Проявление проблемы

В любой момент времени во время физического контакта с принтером выпадает ошибка

TMC ‘stepper_y’ reports error: GSTAT: 00000001 reset=1(Reset) Once the underlying issue is corrected, use the «FIRMWARE_RESTART» command to reset the firmware, reload the config, and restart the host software. Printer is shutdown

¶ Причины проблемы

Из-за статического разрда на корпус или на двигатели драйвер вылетает в ошибку

¶ Решение проблемы

Используйте заземление принтера, снимайте с себя статику с помощью антистатического браслета.

¶ Русские имена файлов для Python 2.7

В случае если при печати файлов с именами на Киррилице возникает ошибка:

Interanl error on command: «SDCARD_PRINT_FILE»

sudo service klipper stop sudo service moonraker stop mv ~/klippy-env ~/klippy-env-27 virtualenv -p python3 ~/klippy-env ~/klippy-env/bin/pip install -r ~/klipper/scripts/klippy-requirements.txt sudo service klipper start sudo service moonraker start

Источник: klipper.wiki

I am using the minimal ble_app_uart ecample, just changes the RX_PIN_NUMBER to 11 an TX_PIN_NUMBER to 12 to mach my board HW.

when I am trying to send data from MY MCU to the NRF52832 I got APP_UART_COMMUNICATION_ERROR

with error communication code = 0x04

How can I handle this error !?

It’s likely some noise or similar on the UART.RXD pin, you can ignore it. Though it may also be because the baud rate is not correct, which can also lead to error code 0x04 (FRAMING error):

I suspect that the UART.RXD pin is not pulled high externally, this will cause the pin to float, and generate APP_UART_COMMUNICATION_ERROR. Make sure it is high, for instance by adding a 1Mohm pull up.

0 jawadk over 2 years ago in reply to Kenneth

thank you for your help

now I am getting error code 12

what this error mean !?

Источник: devzone.nordicsemi.com

Штатная магнитола, ковыряем цифровую шину UART (часть1)

Решил немного ковырнуть протокол обмена данными между магнитолой и монитором
Приведу общую схему взаимодействия электроники в Teana:

схема взаимодействия блоков между собой

Имеем блок кнопок (центральная консоль управления), монитор с мощной начинкой и собственно сама магнитола с одной единственной кнопкой выброса диска))
И главный вопрос темы: как же управлять магнитолой с одной кнопкой?
— да очень просто! С аппаратной стороны просто)) и сложно с программной…((
Управление происходит по стандартной цифровой шине UART на скорости 9600 baud, 1 stop bit, odd parity bit.
Вооружившись ноутбуком и логическим анализатором лезем в шину и снимаем логи.
на экране монитора у нас отображается: FM1 ch6 107.9

Полный размер
пример лога

смотрим и понимаем, что не все так просто как ожидалось. Начинаем смотреть все остальные передачи и анализировать.
по скрину OUTPUT TX (передача от магнитолы) имеем набор байт:
0x10, 0x02, 0x41, 0x06, 0x06, 0x01, 0x10, 0x10, 0x79, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x10, 0x03, 0xD5
анализ выдал следующее:

мое виденье происходящего

10h, 02h отсекаем это начало передачи
41h служебный байт(назначение пока неизвестно)
06h код Радио (04h CD), (02h Volume), ченжер и AUX по идее тоже здесь
06h номер канала станции в памяти ch6 (значение Volume)
01h номер диапазона FM1 или FM2 (02h) или AM (11h)
10h назначение пока неизвестно, этот байт может отсутствовать
10h частота станции в HEX представлении (сотни) почему то
79h частота станции в HEX представлении (десятки и дробная часть)
FFh частота станции в HEX представлении (сотки дробной части) (5Fh)
00h назначение пока неизвестно
00h назначение пока неизвестно
00h назначение пока неизвестно
00h назначение пока неизвестно
10h, 03h отсекаем это конец передачи
D5h контрольная сумма 0x41^0x06^0x06^0x01^0x10^0x10^0x79^0xFF^0x00^0x00^0x00^0x00^0x10^0x03=0xD5
Это пока только начало…Надеюсь найти единомышленников по ковырянию в носу протоколов цифровых шин автомобиля…
Дополнение на 13.03.2017
Не все так просто как казалось))), чудеса начинаются с добавлением дополнительных байтов в зависимости от значения предыдущего.
На подходе вторая часть с интеграцией в проект климат контроля на ANDROID

Источник: www.drive2.ru

  • Ошибка mc 3u freekassa
  • Ошибка mbr1 что делать
  • Ошибка mbr error 1 при загрузке
  • Ошибка mbr error 1 press any key to boot from floppy
  • Ошибка maxscript auto load script error