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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> STM32F4, UART и заваленные фронты сигнала, куды крестьянину податься?
Я.К.
сообщение Feb 19 2016, 17:03
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 4-12-08
Из: Москва
Пользователь №: 42 205



Есть проблема: я хочу воспользоваться UART'ом на частоте 1МБод, но из-за заваленных фронтов сигнала ничего не выходит.

Что я делал?
- Есть у меня плата STM32F429-DISC0.
- Я создал болванку проекта с помощью STM32Cube,
- выбрал там 180 МГц частоты,
- включил UART5,
- выставил ему режим Single Wire (Half Duplex),
- да назначил 1000000 бод скорости,
- и даже скорость GPIO поставил HIGH.

В тестовой программке я просто и без затей посылаю 0x55 по этому самому UART'у.
Вроде бы, ломаться тут нечему, но не тут-то было: фронты UART-сигнала завалены просто в хлам: длительность фронта как раз и составляет примерно 1 мкс.

Прикрепленное изображение


Имею спросить: как бы мне это забороть?

P.S. Тестовый проект прилагается: Прикрепленный файл  TestUART.rar ( 8.54 мегабайт ) Кол-во скачиваний: 48


P.P.S. Cнизить скорость UART'а, не могу: то устройство, с которым мне надо общаться, работает именно на 1МБод.
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 19 2016, 17:13
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



А на каких пинах висят RXD и TXD UART5?
Go to the top of the page
 
+Quote Post
Я.К.
сообщение Feb 19 2016, 17:14
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 4-12-08
Из: Москва
Пользователь №: 42 205



Цитата(adnega @ Feb 19 2016, 20:13) *
А на каких пинах висят RXD и TXD UART5?


Режим полудуплексный, используется только пин PC12.
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 19 2016, 17:16
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Нашел: GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
Поставьте резисторы подтягивающие.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 19 2016, 19:43
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



на каком то уарте висит конденсатор от юсб
Go to the top of the page
 
+Quote Post
Я.К.
сообщение Feb 19 2016, 19:45
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 4-12-08
Из: Москва
Пользователь №: 42 205



Цитата(Огурцов @ Feb 19 2016, 22:43) *
на каком то уарте висит конденсатор от юсб


Вы знаете, я сегодня пробовал переключиться на USART1, но картина от этого не менялась.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Feb 19 2016, 19:50
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Я.К. @ Feb 19 2016, 20:03) *
Есть проблема: я хочу воспользоваться UART'ом на частоте 1МБод, но из-за заваленных фронтов сигнала ничего не выходит.

А если убрать UART и портом просто управлять напрямую программно, то какие будут фронты? И какой стандарт порта и какая нагрузочная способность?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Я.К.
сообщение Feb 19 2016, 20:02
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 4-12-08
Из: Москва
Пользователь №: 42 205



Цитата(adnega @ Feb 19 2016, 20:16) *
Нашел: GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
Поставьте резисторы подтягивающие.


В смысле, достать паяльник и аппаратно припаять 1 кОм, который будет подтягивать к логической единице? Или вы имеете в виду, что-то более человечное??
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 19 2016, 20:05
Сообщение #9


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Я.К. @ Feb 19 2016, 20:45) *
Вы знаете, я сегодня пробовал переключиться на USART1, но картина от этого не менялась.

на первом он и висит, только я не помню, на каком пине
если у вас на разных пинах кажет одно и то же, то это либо нагрузка - отключайте, либо осциллограф
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 19 2016, 20:07
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Я.К. @ Feb 19 2016, 23:02) *
В смысле, достать паяльник и аппаратно припаять 1 кОм, который будет подтягивать к логической единице? Или вы имеете в виду, что-то более человечное??

Или настраивайте как push-pull.
Вам открытый коллектор нужен вообще?
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 19 2016, 20:10
Сообщение #11


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Я.К. @ Feb 19 2016, 21:02) *
человечное

GPIO_OType_PP

Go to the top of the page
 
+Quote Post
Я.К.
сообщение Feb 19 2016, 21:05
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 4-12-08
Из: Москва
Пользователь №: 42 205



Цитата(adnega @ Feb 19 2016, 23:07) *
Или настраивайте как push-pull.
Вам открытый коллектор нужен вообще?


Боюсь, именно он-то мне и нужен: у меня полудуплексный UART (т.е. один и тот же порт и пишет с МК на периферийное устройство, и потом читает его ответ).

Цитата(Огурцов @ Feb 19 2016, 23:10) *
GPIO_OType_PP


В HAL-драйвере это GPIO_MODE_OUTPUT_PP?
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 19 2016, 21:21
Сообщение #13


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



не знаю, в хел - без меня
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 20 2016, 06:09
Сообщение #14


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Я.К. @ Feb 20 2016, 00:05) *
Боюсь, именно он-то мне и нужен: у меня полудуплексный UART (т.е. один и тот же порт и пишет с МК на периферийное устройство, и потом читает его ответ).

Не одновременно же. Делайте PP выход. Передали, и на вход переключайтесь.
Там встроенные PU резисторы немалые, а емкость у линии связи и входов и выходов имеется.
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 20 2016, 08:24
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Ну, или скорость понижать многократно.
Кста, при работе в полудуплексном режиме UART-у нужно как-то сообщать о намерении передавать/получать?
Дергать направление GPIO - какое-то мутное решение.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 5th July 2025 - 08:51
Рейтинг@Mail.ru


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