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

 
 
> Software UART, Как реализовать на Si8051f320
lancode
сообщение Oct 19 2008, 11:01
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 25-05-08
Пользователь №: 37 806



Подскажите, как реализовать программный UART порт на Si8051f320
Я беру вот этот пример с сайта:
https://www.silabs.com/Support%20Documents/...lDocs/an115.pdf
https://www.silabs.com/Support%20Documents/...are/an115sw.zip

в комментариях этого примера написано что он будет работать с C8051F00x и C8051F01x
поправил что смог под свой МК, компилирую, получаю ошибки на этих строках:
EIE2 |= 0x20; // Enable IE7.
PRT1IF |= 0x80; // Trigger IE7.
PRT1IF &= ~(0x80); // Clear IE7 interrupt flag
PRT1IF |= 0x80; // interrupt to service.

Хорошо, иду читать документацию, в datasheet написано что у данного МК нету такого прерывания (IE7), точнее оно есть, но нигде не используется. Думаю, меняю что-то, правлю исходиник... в общем, запутался.

Итак, задача, реализовать программный UART (или адаптировать этот семпл с сайта, для Si8051f320).
Притом реализовать хотя бы только чтение (RX) скорость 9600.
Возможно потом понадобится реализовать и TX
Помогите, пожалуйста, разобраться.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lancode
сообщение Oct 27 2008, 07:04
Сообщение #2





Группа: Новичок
Сообщений: 10
Регистрация: 25-05-08
Пользователь №: 37 806



barabek Спасибо большое, попробовал твои примеры. Вроде работает. Конечно придется дописать и поправить под себя.

Задача немного изменилась. Скорость приема вместо 9600 стала 115200.
Взял этот же пример, поставил скорость. Запустил, не работает.
Можно ли, и если можно, то как сделать, чтоб этот же пример работал на скорости 115200 ?

Цитата
М.б. лучше взять 2 hard uart ( F34x) + аппаратное переключение ?

Это как? Что такое аппаратное переключение? Что будет если данные передаются одновременно по обоим портам?
Go to the top of the page
 
+Quote Post
c8051
сообщение Oct 28 2008, 09:57
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 10-06-08
Из: Украина, Черкассы-Киев
Пользователь №: 38 188



Цитата(lancode @ Oct 27 2008, 10:04) *
Что такое аппаратное переключение? Что будет если данные передаются одновременно по обоим портам?

Активными двунаправленными будут 2 hard uart (большая скорость) для выбранных клиентов.
Остальные могут только передавать запросы (они идут на прерывания)
или работать на низкой скорости(soft uart)
Когда ф340 решит сделать активными(быстрыми) новую пару, то соответственно "старые" клиенты должны перейти перейти на медленный(soft) или ожидание очереди
Go to the top of the page
 
+Quote Post
barabek
сообщение Oct 29 2008, 14:20
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



насчет 115200 не проверял. Сейчас к сожалению нет времени этим заняться. Но 24е+6/115200=208, т.е. всего 208 тактов между прерываниями на биты, если работает только один порт на прием. А так как 4 порта - как-то интуитивно маловато времени smile.gif . На передачу конечно проще, можно разные порты синхронизировать.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- lancode   Software UART   Oct 19 2008, 11:01
- - Kolia   А не проще ли воспользоваться аппаратным UART   Oct 20 2008, 12:16
- - lancode   Нет, не проще. Мне нужно 4 порта UART. Sofware UA...   Oct 20 2008, 13:15
|- - c8051   Цитата(lancode @ Oct 20 2008, 17:15) Мне ...   Oct 20 2008, 14:11
|- - barabek   Пока писал первое сообщение, да еще с моим затупоч...   Oct 20 2008, 14:50
- - barabek   Цитата(lancode @ Oct 19 2008, 22:01) Подс...   Oct 20 2008, 13:27
|- - barabek   не могу старое сообщение отредактировать. Вот что ...   Oct 29 2008, 23:46
- - lancode   barabek Беру твой пример soft_rx. На скорости 960...   Nov 2 2008, 20:15
|- - barabek   Цитата(lancode @ Nov 3 2008, 06:15) ... З...   Nov 3 2008, 15:20
- - lancode   Поднял частоту таймера с SYSCLOCK/48 до SYSCLOCK П...   Nov 4 2008, 17:53
|- - barabek   Вот, как и обещал, сделал, только предыдущий вариа...   Nov 5 2008, 06:24
- - lancode   barabek Огромное спасибо за пример. Вот как тольк...   Nov 12 2008, 15:24
|- - barabek   Цитата(lancode @ Nov 13 2008, 01:24) Попр...   Nov 13 2008, 02:15
- - lancode   Ага. Инициализация была пропущена. Я не заметил ...   Nov 20 2008, 14:23
|- - barabek   Цитата(lancode @ Nov 21 2008, 00:23) Ага....   Nov 21 2008, 03:24
- - lancode   Ошибку поправил. Теперь работают все 3 порта. Цит...   Nov 21 2008, 19:36


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

 


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


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