|
|
  |
потеря данных при передаче через UART |
|
|
|
Mar 17 2016, 21:50
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(Andrey_C @ Mar 17 2016, 17:10)  уже нервный стресс испытывать начинаю.... Вы этта... Отдохните, сделайте перерыв, поспите, погуляйте. А потом, с новыми силами- за разборки. Перво-наперво: нужна система. хаотические прыжки в разные стороны (другой компилятор, другое железо...) не приведут к сужению области возможных значений, если непонятно что Вы хотите проверить и доказать в ходе этого конкретного прыжка. И еще эти прыжки ну никак не помогут в процессе решения следующей проблемы, так как никакого опыта не дали, даже если и привели к случайному нахождению проблемы. Разбейте проблему на независимые кусочки и подумайте, как в ходе каждого эксперимента, не используя другие еще не проверенные кусочки, можно доказать работоспособность или наличие ошибки в данном проверяемом модуле. Например, у Вас система связи, которая состоит из : 1) передатчик 2) линия связи 3) приемник. Убедившись, какая часть не работает, дальше детализируете эту часть на более мелкие кусочки, которые можно независимо проверить. Проверка передатчика состоит в том, чтобы принять байты чем-то гарантированно работающим. Проверка приемника делается приемом заведомо известной последовательности байтов. У Вас же проверяется все вместе и работоспособность чего-то не доказана. Может, у Вас в разъеме компьютера земля плохо контачит, а Вы компилятор меняете.
|
|
|
|
|
Mar 18 2016, 06:44
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Добавлю ещё одно, к сказанному Ruslan1. Вероятность того, что виноват (по описанному хомуту) компилятор, CMSIS ... исчезающе мала. Вероятность хомута железа, я бы оценил как единицы процентов. Наиболее вероятный хомут, как обычно, в программе. Ваш хомут. Любой человек, а не только вы, склонен приписывать успехи себе, а неудачи перекладывать на другого. На разработчика железа, компилятора, библиотек ... Попробуйте более критически подойти к себе ... )) Скажу по себе - это помогает. Хомут может быть запрятан совершенно в другой части программы. На ваш взгляд совершенно не связанной. Поэтому, кроме сказанного Ruslan1, добавлю. Минимизируйте прогу. Оставьте только часть, необходимую для проверки. На stm не грешите. Я только что тестил 6 изделий. Суммарно отработали с середины декабря. Обмен примерно 1 раз в секунду. Прибор на базе 407. Один прибор стоял с двумя расширителями на базе 103. Расширители общаются с основным прибором по RS485. Цикл опроса < 100 мс. Приём у меня по прерыванию, передача по DMA. Для одного из заводов делал стенд. Там стоит 4 103. Работает круглосуточно. Тоже претензий нет.
|
|
|
|
|
Mar 18 2016, 12:07
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Цитата(Ruslan1 @ Mar 18 2016, 15:58)  Эх молодость... Насколько я помню, в РуЕмбедеде в Феде это произведение сильно раньше появилось и горячо обсуждалось Шепелевым-Торресом-Орловым  Ода творчеству  А как Жору "мочили"; пестня (;
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Mar 18 2016, 12:14
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(ViKo @ Mar 18 2016, 09:52)  Прежде, чем искать программные косяки, убедитесь, что аппаратно все работает, как должно. Осциллографом сигналы посмотрите. И питание тоже. Кстати, очень пользительная штука логический анализатор, тот который китайцы продают за 10 баксов. Неделю назад с его помощью разрулил ситуацию "кто виноват" в связке моя железяка- компьютер. ПЦ-Программер кричал что у него все в порядке, пока я ему не показал форму напряжения- его порт чудесным образом через несколько минут работы переходил с 115200 на 9600 (передача от компа в меня), хотя у него в коде этого в принципе нет. Он мне- исходники ("ну нету тут 9600"), я ему- эпюры с логического анализатора ("вот тут-115200, а вот это уже 9600 поперло"). Стал тих, задумчив, ковырялся в драйверах линуха, через пару часов заработало. Цитата(Obam @ Mar 18 2016, 15:07)  А как Жору "мочили"; пестня (; Он, кстати, мне самым адекватным из той троицы казался. Но извиняюсь за офтопик, больше не буду
|
|
|
|
|
Mar 18 2016, 13:09
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Ruslan1 @ Mar 18 2016, 15:14)  Кстати, очень пользительная штука логический анализатор, тот который китайцы продают за 10 баксов. О, только хотел сказать то же самое ! (уже, кстати, от $5 можно найти). Скорости, потери, время перехода RX-RX в полудуплексных системах - самое оно. Снимает кучу вопросов сразу. И на практике гораздо удобнее чем скоп даже с опцией декодирования UART.
|
|
|
|
|
Mar 18 2016, 13:43
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Ruslan1 @ Mar 18 2016, 13:58)  Насколько я помню, в РуЕмбедеде в Феде это произведение сильно раньше появилось и горячо обсуждалось Шепелевым-Торресом-Орловым  Я набрал в гугле и взял первую ссылку. Специально искать первоисточник было лень. Но "у меня все ходы записаны": Код Subject: История одного байта Date: Tue, 08 May 2001 08:36:07 +0400 From: Alexey Vladimirov <Alexey.Vladimirov@f99.n5100.z2.fidonet.org> Organization: * AV_Point - Riga, Latvia * Newsgroups: fido7.ru.embedded
(c) Dmitry Galuscenko
История одного байта ==================== Ссылку на самый достойный из дешевых лог. анализаторов на Али кто-нибудь подскажет?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 18 2016, 22:06
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(ViKo @ Mar 18 2016, 17:03)  24 Мвыб/с в одноканальном режиме - не впечатляет, USB уже не посмотришь. Хотя, по соотношению цена/качество хорош. Как игрушке, не нарадуешься. Сам не имею, надо купить, думаю. Это не игрушка, а действительно очень качественный продукт с очень качественным софтом (понятно, что китайцы тут не причем- они дешевого клона сделали). само собой, им езернет и юсб наблюдать не получится, и еще много чего не получится. Но вот все низкочастотное, начиная с USART и I2C и заканчивая низкоскоростными SPI (несколько мегагерц) - отлично. Причем главное- в софте, он действительно отличный, с автоматическим декодированием протоколов (SPI, UART, I2C- показывает и байты тоже, а не только уровни). Незаменимая штука если ошибка нерегулярная, а спать хочется. Я на нем как-то 8-канальный логгер "собрал" за 10 минут, оставил на выходные, а в понедельник уже разбирался, кто когда что передал, с полной синхронизацией между каналами, он очень длинные файлы умеет делать (Сейчас глянул- два мегасемпла по 8 каналам может больше пяти дней собирать). Но я больше чем на три дня не оставлял, и семплировал поменьше. Цитата(Сергей Борщ @ Mar 18 2016, 16:43)  Ссылку на самый достойный из дешевых лог. анализаторов на Али кто-нибудь подскажет? Они все- Saleae logic. Если предлагают что-то с другим софтом- не советую, должно быть 24MHz совместимое с saleae (китайцы часто это название фирмы-разработчика не упоминают в описании лота, только по картинкам софта ниже в описании можно понять что это оно). недавно покупал 16-каналку от того же разработчика, 28 зеленых, еще в продажеа 8-каналки на али давно покупал, ссылки уже не работают. они все выглядят как этот или этотобязательно купите нормальные захваты, это еще 2 бакса за десяток щупов с проводами (8 каналов + 2 земляных) Кстати, оригинал уже "прокачали" до 100 мегасемплов и даже до 500, надо же с китайскими копипастерами конкурировать ViKo, это специально для Вас, обещают даже декодирование нужного USB. Если цена оригинала не смущает (600 угадайте чего)  Цитата Sixteen digital inputs, sixteen analog inputs (shared with digital channels) Maximum Sample Rates Digital: 500 MSPS @ 4 channels, 100 MSPS @ 16 channels (USB 3.0 required) Analog: 50 MSPS @ 3 channels, 12.5 MSPS @ 13 channels, 6.25 MSPS @ 16 channel Bandwidth Digital: 100 MHz square wave when sampling at 500 MSPS Analog: 5 MHz when sampling at 50 MSPS Trigger Edge or pulse width trigger Software Cross-platform Windows, Mac and Linux support Supported Protocols Serial, SPI, I2C, Atmel SWI, Biss-C, CAN, DMX-512, HD44780, HDLC, I2S, JTAG, LIN, MDIO, MIDI, Manchester, Modbus, 1-Wire, PS/2 Keyboard & Mouse, SMBus, SWD, Synchronous Parallel, USB, UNI/O Но там хитрости с буферизацией, мне кажется что они эти сотни мегасемпл буферизируют, соответственно терабайт записать не смогут.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|