МАРСОХОД

Open Source Hardware Project

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2
  • 3

ТЕМА: Как передать данные через com порт?

Как передать данные через com порт? 4 года 1 день назад #5030

  • kox
  • kox аватар Автор темы
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 26
  • Спасибо получено: 3
Скомпилировал, запускал через подправленный под себя bat, не помогло- без изменений((

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Как передать данные через com порт? 4 года 1 день назад #5031

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
У меня тоже были проблемы с потерей последних байт. Точно не помню, но вроде как из-за этого решил передавать данные только в текстовом режиме, в hex формате. А в ПЛИС преобразовывать в бинарное представление. uart.timeout стал использовать много позже, для интерактивного обмена с компом.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Как передать данные через com порт? 4 года 1 день назад #5032

  • kox
  • kox аватар Автор темы
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 26
  • Спасибо получено: 3
А не осталось исходника для ПЛИС, чтобы преобразовывать форматы?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Как передать данные через com порт? 4 года 1 день назад #5033

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
Больше 10 лет прошло, вряд-ли найду, проще заново написать. Сложно не должно быть, 5 бит из каждого символа преобразовать в 4 бита.
Вечером попробую посмотреть старые проекты, но не обещаю.
Спасибо сказали: kox

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Leka.

Как передать данные через com порт? 4 года 1 день назад #5034

  • kox
  • kox аватар Автор темы
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 26
  • Спасибо получено: 3
Было бы замечательно, если бы нашлись исходники.)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Как передать данные через com порт? 4 года 1 день назад #5035

Попробуйте уменьшить скорость - может быть на такой скорости синхронизация сбивается.

Что касается отличия передачи текста от бинарного файла, то теоретически возможны проблемы с концом строки (возврат каретки + перевод строки супротив возврата каретки), проблемы с Esc-последовательностями и проблемы с символами управления потоком. Например, при программном управлении потоком используются два байта, один из которых сигнализирует о неготовности приёмника, а второй о готовности. Они подмешиваются в поток, поэтому передача этих байт экранируется, из за чего размер передаваемых данных может вырасти (но не уменьшится).

Не пользовался HypeTerminal много лет и уже забыл о его возможностях. Он что, позволяет просто так передавать файл в порт? Насколько я помню -он использует протокол передачи данных X-modem, Y-modem, Z-modem или Kermit.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от alman.

Как передать данные через com порт? 4 года 1 день назад #5036

  • kox
  • kox аватар Автор темы
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 26
  • Спасибо получено: 3
Спасибо за совет- попробую.
В гипертерминале отдельным пунктом идет передача текстового файла.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Как передать данные через com порт? 4 года 1 день назад #5037

  • kox
  • kox аватар Автор темы
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 26
  • Спасибо получено: 3
Уменьшил скорость до 57600, проблема осталась.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Как передать данные через com порт? 4 года 1 день назад #5038

Можно попробовать исправить проблему сложным способом - отправить данные назад и посмотреть различия между тем, что отправлялось, и тем, что передавалось. Но в этом случае надо быть уверенным что из платы в ПК передаётся правильно. Такую задачу можно разбить на две. То, что Вы передаёте из ПК в плату, зашить в ПЗУ (через мегафункцию Квартуса) и передавать в обратном направлении. На компьютере сравнить полученные данные с образцовыми и увидеть что поменялось и насколько повторяема ошибка - данные всегда искажаются одинаково или искажение случайно. Отсюда и плясать. Т.е. если искажения будут, то после исправления передачи данных в одну сторону, с большой вероятность заработает в обе. А если при приёме с платы на ПК искажений не будет, а будет только при передаче, тогда уже сравнивать принятые данные с отправленными.

Как вариант, можно поискать другую реализацию UART, взяв её с opencores.org - их там, как минимум, пять штук. Некоторые в составе больших проектов.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от alman.

Как передать данные через com порт? 4 года 1 день назад #5039

  • kox
  • kox аватар Автор темы
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 26
  • Спасибо получено: 3
Мегафункция для работы с EPCS флешкой?
Я вот думаю- не из-за того ли это, что я работаю с win xp из MacOS посредством виртуалки Parallels?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
  • 3
Время создания страницы: 0.227 секунд

ВКонтакте  facebook  GitHub  YouTube  Twitter
Вы здесь: Начало Forum Наш форум Проекты пользователей Как передать данные через com порт?