реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Virtual COM Port на STM32, Ошибки на стандартных скоростях COM порта
coolbassnik
сообщение Apr 25 2015, 23:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 22-10-10
Из: Украина
Пользователь №: 60 348



Здравствуйте граждане!
Поднял виртуальный COM порт на микроконтроллере STM32F103. Сейчас столкнулся с тем что данные приходящие по USB от компьютера теряются. Есть такое предположение что потеря данных как-то связана с несоответствием частоты тактирования МК и на стандартных скоростях могут из-за этого возникать ошибки. У меня МК тактируется от кварца 8Мгц, USB соответственно 48Мгц и само ядро на 72Мгц, скорость порта использую 115200. Сам UART я не задействую, просто шлю данные с МК на компьютер посредством виртуального СОМ порта. Знаю что для UART есть специальные кварцы с определенной частотой заточенные для минимизации ошибок, а как с этим обстоит дело если порт виртуальный?
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Apr 26 2015, 02:01
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(coolbassnik @ Apr 25 2015, 19:18) *
Здравствуйте граждане!
Поднял виртуальный COM порт на микроконтроллере STM32F103. Сейчас столкнулся с тем что данные приходящие по USB от компьютера теряются. Есть такое предположение что потеря данных как-то связана с несоответствием частоты тактирования МК и на стандартных скоростях могут из-за этого возникать ошибки. У меня МК тактируется от кварца 8Мгц, USB соответственно 48Мгц и само ядро на 72Мгц, скорость порта использую 115200. Сам UART я не задействую, просто шлю данные с МК на компьютер посредством виртуального СОМ порта. Знаю что для UART есть специальные кварцы с определенной частотой заточенные для минимизации ошибок, а как с этим обстоит дело если порт виртуальный?


В случае виртуального порта эти скоростя до лампочки. Гдето ошибка.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 26 2015, 04:40
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



И да, не зависимо от выставленной скорости, вы передаете на какой-то другой, максимально возможной для USB в этой конфигурации.
Go to the top of the page
 
+Quote Post
mantech
сообщение Apr 26 2015, 05:44
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(coolbassnik @ Apr 26 2015, 02:18) *
скорость порта использую 115200. Сам UART я не задействую, просто шлю данные с МК на компьютер посредством виртуального СОМ порта.


О какой тогда скорости уарта идет речь?? Просто обеспечте 48 МГц на усб и не теряйте пакеты.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Apr 26 2015, 08:44
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



У меня была такая проблема, когда полностью заполнялся буфер USB: если что-то пыталось туда писать, пока данные передавались, то все терялось. Поставил мьютекс за запись и все стало превосходно.
Вот код
Go to the top of the page
 
+Quote Post
coolbassnik
сообщение Apr 26 2015, 08:57
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 22-10-10
Из: Украина
Пользователь №: 60 348



Спасибо за ответы. Буду искать ошибку у себя.
Go to the top of the page
 
+Quote Post
VadimNic_nt
сообщение Apr 26 2015, 09:56
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 25-10-09
Из: Екатеринбург
Пользователь №: 53 194



Цитата(coolbassnik @ Apr 26 2015, 11:57) *
Спасибо за ответы. Буду искать ошибку у себя.


Тоже недавно занимался подобным проектом. Добавил промежуточный кольцевой буфер между буфером USB и UART. Изменил функцию, передающую байты в UART - там проверялся флаг БУФЕР ПЕРЕДАТЧИКА ПУСТ?, я поменял на проверку флага ПЕРЕДАЧА ЗАВЕРШЕНА. Вот как то так. Использовал для проекта генератор на 16 МГц.
Go to the top of the page
 
+Quote Post
coolbassnik
сообщение Apr 26 2015, 10:09
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 22-10-10
Из: Украина
Пользователь №: 60 348



Вроде нашел ошибку в программе. Скорей всего я слишком часто отправляю данные и переполняется буфер USB. Спасибо всем.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th June 2025 - 12:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01416 секунд с 7
ELECTRONIX ©2004-2016