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

 
 
> Тактирование UART-передатчика (CYCLONE III)
mongol
сообщение Aug 22 2017, 15:24
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 22-08-17
Пользователь №: 98 917



Имеется проект небольшой, на Циклон поступают данные извне, а затем эти данные передаются по UART на микроконтроллер STM. Циклон тактируется от кварца на 100 MHz. На стороне микроконтроллера я примерно разобрался, почему там скорость тактирования должна быть в 16 раз выше битрейта, для лучшего сэмплирования. Но вот как тактировать передатчик, т.е. Циклон, я не могу понять. Во многих примерах тактирование ставят в 2 раза больше битрейта. Но почему так я и не выяснил. Как быть? Бодрейт для проекта выбран 9600. Делить с помощью PLL частоту кварца до 19200 и с такой же частотой обрабатывать приходящие на ПЛИС данные? Просветите пожалуйста новичка
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AVR
сообщение Aug 23 2017, 08:45
Сообщение #2


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(mongol @ Aug 22 2017, 18:24) *
Циклон тактируется от кварца на 100 MHz.
Как быть? Бодрейт для проекта выбран 9600. Делить с помощью PLL частоту кварца до 19200 и с такой же частотой обрабатывать приходящие на ПЛИС данные? Просветите пожалуйста новичка

А зачем тут PLL? Элементарный делитель на 10417...
100*10^6 / 10417 = 9599,69280983 ~ 9600
Ошибка тысячные процента, считаем идеал, stm32 прекрасно такое скушает.
Вот каждый 10417-й цикл выдвигаем бит наружу.

P.S. Обратите внимание: из ПЛИС только передача в сторону STM32, приема нет, как я понял.


--------------------
Go to the top of the page
 
+Quote Post
AVR
сообщение Aug 25 2017, 21:43
Сообщение #3


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(AVR @ Aug 23 2017, 11:45) *
А зачем тут PLL? Элементарный делитель на 10417...
100*10^6 / 10417 = 9599,69280983 ~ 9600
Ошибка тысячные процента, считаем идеал, stm32 прекрасно такое скушает.
Вот каждый 10417-й цикл выдвигаем бит наружу.

Реализация идеи: Прикрепленный файл  uart_tx.v ( 704 байт ) Кол-во скачиваний: 66
Тестбенч: Прикрепленный файл  test_uart_tx.v ( 616 байт ) Кол-во скачиваний: 37

Тактовая 100 МГц, на выходе почти 9600, но достаточно точно.
Данные кушаются по valid, следующая порция - когда busy снимется в 0.
Недостаток реализации: если неудачно совпадет - будем на каждый байт дополнительно терять один бит пропускной способности, но зато всё очень просто сделано - просто делитель на 10417.


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- mongol   Тактирование UART-передатчика (CYCLONE III)   Aug 22 2017, 15:24
- - Flip-fl0p   Цитата(mongol @ Aug 22 2017, 18:24) Имеет...   Aug 22 2017, 16:41
|- - dimka76   Передатчик UART это просто сдвиговый регистр. Соот...   Aug 22 2017, 17:46
|- - Александр77   Цитата(dimka76 @ Aug 22 2017, 20:46) Пере...   Aug 22 2017, 20:11
|- - Maverick   в 16 раз тактовая частота выше должна быть. Причи...   Aug 22 2017, 20:34
- - krux   все серийные UART используют на приеме 8х или 16х ...   Aug 23 2017, 07:45
- - mongol   Нашёл пост https://m.habrahabr.ru/post/278005/ Во...   Aug 23 2017, 13:04
|- - iosifk   Цитата(mongol @ Aug 23 2017, 16:04) Нашёл...   Aug 23 2017, 13:21
||- - mongol   Цитата(iosifk @ Aug 23 2017, 14:21) Хорош...   Aug 23 2017, 14:09
||- - iosifk   Цитата(mongol @ Aug 23 2017, 17:09) Стало...   Aug 23 2017, 14:12
||- - Maverick   понимаю, что делаю медвежью помощь... см. вложение...   Aug 23 2017, 17:59
||- - Inanity   Цитата(Maverick @ Aug 23 2017, 20:59) пон...   Aug 23 2017, 21:53
||- - andrew_b   Цитата(Inanity @ Aug 24 2017, 00:53) Да е...   Aug 24 2017, 05:26
||- - AVR   Цитата(Inanity @ Aug 24 2017, 00:53) Оно,...   Aug 24 2017, 07:40
|- - Flip-fl0p   Цитата(mongol @ Aug 23 2017, 16:04) Нашёл...   Aug 23 2017, 13:26
- - x736C   Inanity, правильные наблюдения. Только добавлю то,...   Aug 24 2017, 00:19
|- - Maverick   Я смотрю здесь покритиковать все мастаки, а подели...   Aug 24 2017, 08:05
|- - AVR   Цитата(Maverick @ Aug 24 2017, 11:05) Я с...   Aug 24 2017, 08:19
- - el.d   https://marsohod.org/projects/plata1/98-serialport   Aug 24 2017, 11:16
- - mongol   Мне понравилась вот эта реализация: https://sites....   Aug 24 2017, 14:15


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

 


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


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