Конвертер скорости USART
Конвертер скорости USART
Добрый день всем!!!
Появилась необходимость сделать конвертер скорости USARTa на авр. Например, принимает по 19600 передает по 2400 и наоборот.
Подскажите, как это осуществить, имея один USART на микросхеме. Может у кого-то есть исходники.
Зараннее спасибо
Появилась необходимость сделать конвертер скорости USARTa на авр. Например, принимает по 19600 передает по 2400 и наоборот.
Подскажите, как это осуществить, имея один USART на микросхеме. Может у кого-то есть исходники.
Зараннее спасибо
- Реклама
-
Аlex
-
Аlex
- Реклама
asteroid7 писал(а):vitaliy85
Вы опишите лучше что не получается, а не как сделать.
Исходные данные, которые вы привели, недостаточны для советов "как это сделать".
Не понятно, какие прерывания будут использоваться вместо стандартных уартовских, какие таймеры/счетчики будут задействованы при этом. Алгоритм работы и т.д.
Дайте, плз, ссылки на описание, если есть у кого то.
И какие еще исходные данные нужны? Из УАРТа одной скорости, сделать другой и все...
Спасибо
-
Аlex
Re: Конвертер скорости USART
Это и есть ОДИН UARTvitaliy85 писал(а): Например, принимает по 19600 передает по 2400 и наоборот. Подскажите, как это осуществить, имея один USART на микросхеме.
- __Alexander
- Потрогал лапой паяльник
- Сообщения: 335
- Зарегистрирован: Вт сен 11, 2007 10:27:08
- Откуда: Киев
- Настя
- Мявтор!
- Сообщения: 878
- Зарегистрирован: Чт авг 07, 2008 09:12:38
- Откуда: не скажу
- Контактная информация:
vitaliy85 - ответьте на вопросы:
1) микроконтроллер какого производителя вам приемлем;
2) на каком языке программирования нужны примеры;
3) каков объем пакетов, т.е. символов в передаче;
4) какова периодичность передач;
5) где больший приоритет приема данных.
Иначе так и будете сопли здесь собирать.
Ниже детские ассменные примеры под PIC
(аппаратьные и без таймеров)
1) микроконтроллер какого производителя вам приемлем;
2) на каком языке программирования нужны примеры;
3) каков объем пакетов, т.е. символов в передаче;
4) какова периодичность передач;
5) где больший приоритет приема данных.
Иначе так и будете сопли здесь собирать.
Ниже детские ассменные примеры под PIC
(аппаратьные и без таймеров)
Код: Выделить всё
; сегмент передачи от МК в сторону ПК (9600, 8-N-1, 104 мкс)
Tx movlw .9 ; 8+1, т.е + бит C из STATUS
movwf Reg_2
bcf STATUS,C ; подготовка стартового бита
m1 btfsc STATUS,C
goto bit1
goto bit0
bit1 bsf PORTA,1 ; передача единицы
call Pause
goto m2
bit0 bcf PORTA,1 ; передача нуля
call Pause
goto m2
m2 rrf Reg_3,F ; сдвиг вправо для передачи с младшего бита
decfsz Reg_2,F
goto m1
bsf PORTA,1 ; установка 1 - "режим ожидания"
call Pause
return
;delay = 95 machine cycles
Pause movlw .31
movwf Reg_1
wr decfsz Reg_1, F
goto wr
nop
return
Код: Выделить всё
; сегмент приема данных от ПК на стороне МК (9600, 8-N-1, 104 мкс)
Rx movlw .8 ; ровно 8 бит
movwf Reg_2
m1 btfsc PORTA,0 ; отслеживаем стартовый бит
goto m1
;delay = 52 machine cycles ; задержка на 104/2 мкс
Pause1 movlw .17 ; для выхода на середину бита
movwf Reg_1
wr1 decfsz Reg_1, F
goto wr1
m3 call Pause2
btfsc PORTA,0
goto bit1
goto bit0
bit1 bsf STATUS,C
goto m2
bit0 bcf STATUS,C
goto m2
m2 rrf Reg_3,F ; сдвиг вправо
decfsz Reg_2,F
goto m3
call Pause3
return
;delay = 89 machine cycles ; задержка с учётом
Pause2 movlw .29 ; ранее выполненных команд
movwf Reg_1
wr2 decfsz Reg_1, F
goto wr2
nop
return
;delay = 104 machine cycles ; задержка под 1 стоповый бит
Pause3 movlw .34
movwf Reg_1
wr3 decfsz Reg_1, F
goto wr3
nop
return
натуральная блондинка
-
Аlex
Мультиплексоры ему не пойдут. Ему нужен переходник из одной скорости в другую. Когда один чем то занят другой тоже должен быть свободный как на приём, так и на передачу. Наверное ему нужен полный дуплекс.
Вообще не вижу здесь никакой проблемы. Автору просто лень почитать литературу. USART на столько прост, что и разбираться там не в чем. Обычная серийная передача битов.
Автор, скажите применение сия устройства.
Вообще не вижу здесь никакой проблемы. Автору просто лень почитать литературу. USART на столько прост, что и разбираться там не в чем. Обычная серийная передача битов.
Автор, скажите применение сия устройства.
- Настя
- Мявтор!
- Сообщения: 878
- Зарегистрирован: Чт авг 07, 2008 09:12:38
- Откуда: не скажу
- Контактная информация:
KT315B и Аlex - по делу есть что сказать?
Вы что тут флудите. Или ищете легких путей?
Представьте себя в условиях юноши-топикстартера.
Решите задачу с максимальной универсальностью:
полноценный двухсторонний обмен с максимальной
скоростью каждой стороны. Приветствуются любые
дешевые схемотехнические решения.
Понятно что скорость будет ограничиваться скоростью
2400 бод, т.е. на стороне 19600 будут одиночные символы,
но не чаще чем это можно "переварить" на скорости 2400.
Упустила из виду - vitaliy85 просит на АВР.
Складывается впечатление, что любители АВР флудеры.
Хотелось бы в этом ошибаться.
Вы что тут флудите. Или ищете легких путей?
Представьте себя в условиях юноши-топикстартера.
Решите задачу с максимальной универсальностью:
полноценный двухсторонний обмен с максимальной
скоростью каждой стороны. Приветствуются любые
дешевые схемотехнические решения.
Понятно что скорость будет ограничиваться скоростью
2400 бод, т.е. на стороне 19600 будут одиночные символы,
но не чаще чем это можно "переварить" на скорости 2400.
Упустила из виду - vitaliy85 просит на АВР.
Складывается впечатление, что любители АВР флудеры.
Хотелось бы в этом ошибаться.
натуральная блондинка
- DrWatson
- Опытный кот
- Сообщения: 890
- Зарегистрирован: Вт янв 20, 2009 14:49:08
- Откуда: Гондурас, Мурманск
У Atmel есть Апноуты AVR307 об использовании USI (например в ATtiny26, tiny2313) в качестве полудуплексного UART. А также AVR305 - полудуплексный программный UART. И AVR304 - полудуплексный UART с использованием прерываний. Документы формата PDF, но весят порядка 200к.
Изучайте на здоровье. Единственное, возможно, неудобство - все на английском.
Изучайте на здоровье. Единственное, возможно, неудобство - все на английском.
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
- Настя
- Мявтор!
- Сообщения: 878
- Зарегистрирован: Чт авг 07, 2008 09:12:38
- Откуда: не скажу
- Контактная информация:
vitaliy85 - не знаю как на AVR возможно будет решена задача,
но на PIC это выглядело бы вот так. Схема проста, но
накладывает "некритичные" ограничения на протокол обмена,
а именно не посылать следующиъ пакетов, пока не пришло
подтверждение успешной ретрансляции.
Но и это, строго говоря, не проблема. Если данные
одновременно передаются на обоих скоростях в сторону
конвертера, то аппаратно проще применить два контроллера,
отдельный для каждой скорости и обмен данными между МК
сделать на параллельной шине.
Без четкого пониимания плотности потока данных
и протокола обмена на логическом уровне
(не путать с аппартным протоколом RS232)
однозначно решение не могу предложить. Удачи.
но на PIC это выглядело бы вот так. Схема проста, но
накладывает "некритичные" ограничения на протокол обмена,
а именно не посылать следующиъ пакетов, пока не пришло
подтверждение успешной ретрансляции.
Но и это, строго говоря, не проблема. Если данные
одновременно передаются на обоих скоростях в сторону
конвертера, то аппаратно проще применить два контроллера,
отдельный для каждой скорости и обмен данными между МК
сделать на параллельной шине.
Без четкого пониимания плотности потока данных
и протокола обмена на логическом уровне
(не путать с аппартным протоколом RS232)
однозначно решение не могу предложить. Удачи.
- Вложения
-
- 2400-19600.GIF
- (7.65 КБ) 510 скачиваний
Последний раз редактировалось Настя Пт июн 26, 2009 11:40:34, всего редактировалось 1 раз.
натуральная блондинка


