Перейти к содержанию
    

падает скорость на rs232

здравствуйте!

Такая проблема-использую АТ89S52 для чтения информации с мобильника (эрик т28).На коротких посылках всё нормально а свыше 13-15 байт-не успеваю вычитывать похоже.Допустим посылка из 30 байт-меня в ней интересует 25-й для проверки и я в него не попадаю.Если чуть опережаю события(на один вызов getch меньше)-удается попасть в нужный байт-но это ж не дело.

В терминальной программе эрик выдает всё как надо.Уровни его на интерфейсе до 5 вольт подтянул.

Может кто сталкивался с подобным-буду очень благодарен за совет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может кто сталкивался с подобным-буду очень благодарен за совет

С поиском телепатов - конечно :)

Приведите Ваш исходник, или часть его, или хоть что-то, за что можно зацепиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кварц какой? Может скорость не совсем точно совпадает?

Ну и, если обработка символов занимает какое-то время, можно использовать буферизованный приём по прерываниям.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Была у одного знакомого такая-же проблема.

Компьютер читал через СОМ порт промышленный контроллер Дельта Электроникс как часы, а вот МК

посредством USART - ну никак ! И кварцев кучу перепробовали, и скорости меняли, короче "танцы

с бубнами" были конкретные... А все потому, что USART у МК не имеет в отличие от компьютерной

микросхемы ФАПЧ (фазовую автоподстройку частоты) !

 

Победили написав программный USART через прерывания... Аппаратный отправили "фтоппку"... :maniac:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А все потому, что USART у МК не имеет в отличие от компьютерной

микросхемы ФАПЧ (фазовую автоподстройку частоты) !

Вы бредите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кварц какой? Может скорость не совсем точно совпадает?

Ну и, если обработка символов занимает какое-то время, можно использовать буферизованный приём по прерываниям.

Кварц 11.059

Настроил передатчик на стандартный 2-й режим 10 бит(старт,стоп и 8 бит дата).Скорость 9600 с соотв.перезагрузкой таймера.Никакой обработки символов нет-тупо вычитываю по готовности.проверяю на наличие определенного символа и всё.Там только и есть,что CJNE

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кварц 11.059

Настроил передатчик на стандартный 2-й режим 10 бит(старт,стоп и 8 бит дата).Скорость 9600 с соотв.перезагрузкой таймера.Никакой обработки символов нет-тупо вычитываю по готовности.проверяю на наличие определенного символа и всё.Там только и есть,что CJNE

 

А как организован RS232 в телефоне ? Есть схема ?

Возможно у компьютера высокое входное сопротивление и соответственно в "терминалке" все работает

гуд. А вот в МК может быть более низкоомная входная цепь, которая в процессе работы медленно

подсаживает RS232 схему телефона и она начинает пороть чушь... Это мои догадки... :biggrin:

 

С телефона идет "чиcтый RS-232" ? Уровни +10, -10 ?

Изменено пользователем manul78

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как организован RS232 в телефоне ? Есть схема ?

Возможно у компьютера высокое входное сопротивление и соответственно в "терминалке" все работает

гуд. А вот в МК может быть более низкоомная входная цепь, которая в процессе работы медленно

подсаживает RS232 схему телефона и она начинает пороть чушь... Это мои догадки... :biggrin:

Ну поставил я последовательно резисторы на Rx и Tx.По 100 ом.А как организовано входное сопротивление каналов rs232 контроллера-честно говоря не знаю.Пробовал вписывать 1 в Rx контроллера конечно-не помогло :biggrin:

 

С телефона идет "чиcтый RS-232" ? Уровни +10, -10 ?

Нет конечно TTL 0 +- 2.5 V

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет конечно TTL 0 +- 2.5 V

 

Осциллограф цифровой возможно пролил-бы свет на данную проблему... :biggrin:

 

Попробуйте буферную микросхему чтобы привести уровни в приемлемый вид...

 

Последняя догадка, возможно телефон передает не поток, а пакеты (15 байт данных + 16-тый CRC) ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Осциллограф цифровой возможно пролил-бы свет на данную проблему... :biggrin:

 

Попробуйте буферную микросхему чтобы привести уровни в приемлемый вид...

 

Последняя догадка, возможно телефон передает не поток, а пакеты (15 байт данных + 16-тый CRC) ?

Осциллографа пока нету,-но жду его с нетерпением

Bus tranceiver ставил-не помогло.

А вот насчет пакета поподробнее если можно :unsure:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кварц 11.059

 

Это гуд.

 

Настроил передатчик на стандартный 2-й режим 10 бит(старт,стоп и 8 бит дата).Скорость 9600 с соотв.перезагрузкой таймера.Никакой обработки символов нет-тупо вычитываю по готовности.проверяю на наличие определенного символа и всё.Там только и есть,что CJNE

 

Какого таймера? Какое значение перезагружается? Может, приведёте кусочки кода с инициализацией и обработкой?

 

Нет конечно TTL 0 +- 2.5 V

 

 

При пятивольтовом контроллере? Я б поставил хоть транзистор для порядка:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот насчет пакета поподробнее если можно :unsure:

 

Вы конечно знаете, что устройства осуществляющие обмен между собой по RS-232 используют протоколы

обмена. Протоколов этих масса. Возможно Ваш телефон использует какой-то свой.

Как пример, надо например передать 100 байт. Устройства "договариваются" между собой и процесс

пошел:

 

Формат пакета: первый байт - количество передаваемых байт данных.

следующие байты - собственно данные.

последний байт - контрольная сумма. (CRC)

 

Передаем 100 байт пакетами по 15 :

 

Первый пакет: 15, х,х....х,х, CRC - Получив его приемник быстро обрабатывает результат и

отвечает передатчику что все гут либо просит повторить

первый пакет...

Второй пакет: 15,х,х.....х,х, CRC ................................................................................

.....................

 

................................................................................

................................................................................

.

 

Седьмой пакет: 10,х,х.....х,х,CRC - Последний пакет.

 

Используя всевозможные протоколы, устройства "разговаривают" между собой. Динамически меняют

скорости обмена при плохом качестве передачи и т.д. Все это делается для точной и быстрой передачи

данных. Все это я описал в общих чертах. Кстати, я больше чем уверен, что Ваш телефон использу-

ет какой-либо протокол обмена, т.к. просто "сливать" данные как из одного ведра в другое, не контро-

лируя результат - это маловероятно... :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При пятивольтовом контроллере? Я б поставил хоть транзистор для порядка:)

Уровни на приеме от эрика я подтянул к 5 вольтам-поставил 2 инвертора на транзисторах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обоснуйте ? В каком месте ?
Если совсем откровенно - во всех. Для начала: "компьютерная микросхема" - 16550 и ее более продвинутые версии. Найдите в ее даташите хотя бы упоминание о ФАПЧ.

 

Вы конечно знаете, что устройства осуществляющие обмен между собой по RS-232 используют протоколы

обмена. Протоколов этих масса. Возможно Ваш телефон использует какой-то свой.

Телефоны используют протокол, унаследованный от модемов Hayes. Обычный текст, текстовые же команды, начинающиеся с AT. Отсюда название - AT-команды. Никаких CRC.

borischi: лучше покажите код. Телепатией заниматься просто лень. Последняя попытка телепатии: У вас в системе используются прерывания? Если да, то нет ли где-то в прерываниях больших участков кода, время исполнения которых больше времени приема символа?

 

Уровни на приеме от эрика я подтянул к 5 вольтам-поставил 2 инвертора на транзисторах.
А инверторы там как раз и не нужны. Если у вас нет ничего, кроме инверторов - поставьте их два последовательно. И инверторы лучше взять интегральные. Что-то вроде 74HCT14.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...