Перейти к содержанию
    

потеря данных при передаче через UART

уже нервный стресс испытывать начинаю....

Вы этта... Отдохните, сделайте перерыв, поспите, погуляйте. А потом, с новыми силами- за разборки.

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

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

 

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

 

Например, у Вас система связи, которая состоит из :

1) передатчик

2) линия связи

3) приемник.

 

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

 

 

Проверка передатчика состоит в том, чтобы принять байты чем-то гарантированно работающим.

Проверка приемника делается приемом заведомо известной последовательности байтов.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавлю ещё одно, к сказанному Ruslan1.

Вероятность того, что виноват (по описанному хомуту) компилятор, CMSIS ... исчезающе мала.

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

Наиболее вероятный хомут, как обычно, в программе. Ваш хомут.

Любой человек, а не только вы, склонен приписывать успехи себе, а неудачи перекладывать на другого. На разработчика железа, компилятора, библиотек ... :biggrin:

Попробуйте более критически подойти к себе ... )) Скажу по себе - это помогает.

Хомут может быть запрятан совершенно в другой части программы. На ваш взгляд совершенно не связанной.

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

На stm не грешите. Я только что тестил 6 изделий. Суммарно отработали с середины декабря. Обмен примерно 1 раз в секунду. Прибор на базе 407. Один прибор стоял с двумя расширителями на базе 103.

Расширители общаются с основным прибором по RS485. Цикл опроса < 100 мс.

Приём у меня по прерыванию, передача по DMA.

Для одного из заводов делал стенд. Там стоит 4 103. Работает круглосуточно. Тоже претензий нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прежде, чем искать программные косяки, убедитесь, что аппаратно все работает, как должно. Осциллографом сигналы посмотрите. И питание тоже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Раз все кинулись оказывать моральную поддержку, посоветую найти 15 минут и прочитать "историю одного байта".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Раз все кинулись оказывать моральную поддержку, посоветую найти 15 минут и прочитать "историю одного байта".

Эх молодость...

Насколько я помню, в РуЕмбедеде в Феде это произведение сильно раньше появилось и горячо обсуждалось Шепелевым-Торресом-Орловым :)

Ода творчеству :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эх молодость...

Насколько я помню, в РуЕмбедеде в Феде это произведение сильно раньше появилось и горячо обсуждалось Шепелевым-Торресом-Орловым :)

Ода творчеству :)

 

А как Жору "мочили"; пестня (;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прежде, чем искать программные косяки, убедитесь, что аппаратно все работает, как должно. Осциллографом сигналы посмотрите. И питание тоже.

Кстати, очень пользительная штука логический анализатор, тот который китайцы продают за 10 баксов.

Неделю назад с его помощью разрулил ситуацию "кто виноват" в связке моя железяка- компьютер. ПЦ-Программер кричал что у него все в порядке, пока я ему не показал форму напряжения- его порт чудесным образом через несколько минут работы переходил с 115200 на 9600 (передача от компа в меня), хотя у него в коде этого в принципе нет. Он мне- исходники ("ну нету тут 9600"), я ему- эпюры с логического анализатора ("вот тут-115200, а вот это уже 9600 поперло"). Стал тих, задумчив, ковырялся в драйверах линуха, через пару часов заработало.

 

А как Жору "мочили"; пестня (;

Он, кстати, мне самым адекватным из той троицы казался. Но извиняюсь за офтопик, больше не буду :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, очень пользительная штука логический анализатор, тот который китайцы продают за 10 баксов.

О, только хотел сказать то же самое ! (уже, кстати, от $5 можно найти). Скорости, потери, время перехода RX-RX в полудуплексных системах - самое оно. Снимает кучу вопросов сразу. И на практике гораздо удобнее чем скоп даже с опцией декодирования UART.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я помню, в РуЕмбедеде в Феде это произведение сильно раньше появилось и горячо обсуждалось Шепелевым-Торресом-Орловым :)
Я набрал в гугле и взял первую ссылку. Специально искать первоисточник было лень. Но "у меня все ходы записаны":
Subject: 
             История одного байта
        Date: 
             Tue, 08 May 2001 08:36:07 +0400
        From: 
             Alexey Vladimirov <[email protected]>
Organization: 
             * AV_Point - Riga, Latvia *
Newsgroups: 
             fido7.ru.embedded


(c) Dmitry Galuscenko

                История одного байта
                ====================

 

Ссылку на самый достойный из дешевых лог. анализаторов на Али кто-нибудь подскажет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 Мвыб/с в одноканальном режиме - не впечатляет, USB уже не посмотришь. Хотя, по соотношению цена/качество хорош. Как игрушке, не нарадуешься. Сам не имею, надо купить, думаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 Мвыб/с в одноканальном режиме - не впечатляет, USB уже не посмотришь. Хотя, по соотношению цена/качество хорош. Как игрушке, не нарадуешься. Сам не имею, надо купить, думаю.

Это не игрушка, а действительно очень качественный продукт с очень качественным софтом (понятно, что китайцы тут не причем- они дешевого клона сделали).

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

Но вот все низкочастотное, начиная с USART и I2C и заканчивая низкоскоростными SPI (несколько мегагерц) - отлично. Причем главное- в софте, он действительно отличный, с автоматическим декодированием протоколов (SPI, UART, I2C- показывает и байты тоже, а не только уровни).

 

Незаменимая штука если ошибка нерегулярная, а спать хочется. Я на нем как-то 8-канальный логгер "собрал" за 10 минут, оставил на выходные, а в понедельник уже разбирался, кто когда что передал, с полной синхронизацией между каналами, он очень длинные файлы умеет делать (Сейчас глянул- два мегасемпла по 8 каналам может больше пяти дней собирать). Но я больше чем на три дня не оставлял, и семплировал поменьше.

 

Ссылку на самый достойный из дешевых лог. анализаторов на Али кто-нибудь подскажет?

Они все- 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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, на официальном сайте я уже изучил вдоль и поперек свойства, цены. Хороший - дорого, во всяком случае, сейчас. Для начала можно взять дешевый (китайский), с программой познакомиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ссылку на самый достойный из дешевых лог. анализаторов на Али кто-нибудь подскажет?

Я брал у этого продавца. Всего восемь каналов, но за такую-то цену не жалко :)

Изменено пользователем arhiv6

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

(раз уж взялись оффтопить...)

 

Руслан, а как этот logic16 на сотне мегасэмплов работает?

Беглый гуглинг сообщает нам "у меня всё работает, ногодрыг с ардуины захватывается, больше мне ничего не надо" и "ничего не работает, сэмплы теряются напрочь"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

обязательно купите нормальные захваты, это еще 2 бакса за десяток щупов с проводами (8 каналов + 2 земляных)

Это не очень хорошие захваты, дешевые спору нет, но цеплять ими удобно только выводы крупных деталей типа ТО-220. А вот в фирменном комплекте идут замечательные - можно за ножку SO-8 зацепить безбоязненно. Аналогичные купил на aliexpress, но по качеству несколько хуже фирменных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...