2015-07-08 2 views
0
  1. Я пишу простую программу для передачи данных с MCU на ПК.
  2. Я использую кабель FTDI для достижения этого.
  3. Данные, которые я отправляю, являются строковыми цифрами от 0 до 9 (от 0x30 до 0x39 в виде ascii-кодов).
  4. Оба терминала MCU и ПК сконфигурированы на 9600 kbps, 8 бит, без контроля четности, без управления потоком, один стоповый бит.
  5. Если данные, переданные с MCU на ПК, являются неправильными.
  6. Когда линии TX и RX MCU соединены друг с другом, я вижу, что все символы, которые были отправлены, были получены MCU.
  7. Когда линии TX и RX кабеля FTDI (подключенные к ПК) подключены друг к другу - все символы, отправленные с терминала ПК, были получены ПК.

Я не могу понять, что может быть неправильным при отправке данных с MCU на ПК.UART - неправильные символы на ПК

Пожалуйста, помогите!

+0

Даже если вы оба настроены с одинаковой скоростью передачи, поведение, которое вы видите, указывает на несоответствие. Что происходит, когда вы отправляете персонажи с ПК на MCU? –

+2

Используйте область действия для проверки сигналов. – Olaf

+0

Вы говорите '5. Когда данные, переданные с MCU на символы ПК, ошибочны. «Как они ошибаются? Будут сдвинуты биты? Яичница? Кажется ли это случайным? –

ответ

0

Решение более просто, чем я думал. Для моих предыдущих применений я использовал кабель ATC-810 (USB-to-UART, чип FT232BL). В прошлом это сработало, но теперь почему-то это не работает. Новые драйверы от FTDI могут быть ... Когда я взял кабель TTL-232R-3V3 - все данные, которые я отправляю с MCU, который я получаю на ПК!

Большое спасибо за помощь!

3

Описанные вами симптомы предполагают несоответствие времени между ПК и MCU. Последовательная связь UART может допускать несоответствие скорости передачи в бодах < 5% с обоих концов. На практике, потому что ПК, безусловно, точна, вы можете уйти с до 10% во встроенной цели, но это экстремально. Либо делитель скорости передачи данных для вашей части запрограммирован неправильно, либо системные часы являются неточными или просто не являются той частотой, которую вы считаете. RC-генераторы на некоторых MCU, используемых для снижения затрат, могут быть не номинальными, как +/- 10%.

Вы должны проверить часы и скорость передачи данных непосредственно с помощью осциллографа или с трудом проверить каждую настройку часов от PLL до генератора скорости передачи данных UART.