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

 
 
> Тактирование 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
Ответов
mongol
сообщение Aug 23 2017, 13:04
Сообщение #2





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



Нашёл пост
https://m.habrahabr.ru/post/278005/
Вот здесь по другому принципу высчитывается частота. Причем полученное значение непонятно как коррелирует с желаемым.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 23 2017, 13:21
Сообщение #3


Гуру
******

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



Цитата(mongol @ Aug 23 2017, 16:04) *
Нашёл пост
https://m.habrahabr.ru/post/278005/
Вот здесь по другому принципу высчитывается частота. Причем полученное значение непонятно как коррелирует с желаемым.

Хороший пример того, как НЕ НАДО делать проекты...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
mongol
сообщение Aug 23 2017, 14:09
Сообщение #4





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



Цитата(iosifk @ Aug 23 2017, 14:21) *
Хороший пример того, как НЕ НАДО делать проекты...

Стало очень интересно, в чем минусы вышеприведенного проекта?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 23 2017, 14:12
Сообщение #5


Гуру
******

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



Цитата(mongol @ Aug 23 2017, 17:09) *
Стало очень интересно, в чем минусы вышеприведенного проекта?

много есть о чем надо рассказать...
Если хотите, то голосом по скайпу. Мой адрес в личной карточке форума...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 23 2017, 17:59
Сообщение #6


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



понимаю, что делаю медвежью помощь...
см. вложение - altera
Цитата
For example, a basic UART implementing the 115200 baud N81 protocol costs only 62 ALUTs.
The example design uart_hw_test implements a simple demo for use with a terminal
app. It takes input characters on the receive side and sends the following character
(for example, ”a” –> ”b”) out the transmitter.



Прикрепленные файлы
Прикрепленный файл  uart.v ( 5.56 килобайт ) Кол-во скачиваний: 21
Прикрепленный файл  uart_tb.v ( 2.7 килобайт ) Кол-во скачиваний: 9
Прикрепленный файл  uart_hw_test.v ( 2.51 килобайт ) Кол-во скачиваний: 9
 


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Inanity
сообщение Aug 23 2017, 21:53
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653



Цитата(Maverick @ Aug 23 2017, 20:59) *
понимаю, что делаю медвежью помощь...
см. вложение - altera


Мне очень не нравится этот код.

Смеха ради посмотрел код приёмника и не увидел синхронизаторов там, где по моему мнению они обязаны быть.
Модуль uart_rx. Асинхронные данные приходят по проводу rxd. В этом процессе они защёлкиваются в триггер last_rxd:

Код
reg last_rxd;
always @(posedge clk) begin
    last_rxd <= rxd;
end


Триггер last_rxd может находиться в метастабильном состоянии, т.к. по rxd пакеты приходят асинхронно.
Провод slew тоже метастабилен, т.к. комбинационно зависит от last_rxd:

Код
wire slew = rxd ^ last_rxd;


Далее по коду и slew, и last_rxd используются в различных процессах, if-ах и в автомате состояний.

Код
WAITING : begin
    // wait for a start bit (0)
    if (!slew & sample_now && !last_rxd) begin   // тут ещё нравится использование & и && одновременно.
        state <= READING;
        held_bits <= 0;
    end
end


Оно, может и работает, но по-моему это жесть. Да ещё и копирайт от альтеры)

Сообщение отредактировал Inanity - Aug 23 2017, 21:55
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Aug 24 2017, 05:26
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Inanity @ Aug 24 2017, 00:53) *
Да ещё и копирайт от альтеры)
Не надо думать, что в корпорациях пишут идеальный код. Говнокода там тоже достаточно.
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
- - AVR   Цитата(mongol @ Aug 22 2017, 18:24) Цикло...   Aug 23 2017, 08:45
|- - AVR   Цитата(AVR @ Aug 23 2017, 11:45) А зачем ...   Aug 25 2017, 21:43
||- - 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 Текстовая версия Сейчас: 19th July 2025 - 08:04
Рейтинг@Mail.ru


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