borischi 0 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба здравствуйте! Такая проблема-использую АТ89S52 для чтения информации с мобильника (эрик т28).На коротких посылках всё нормально а свыше 13-15 байт-не успеваю вычитывать похоже.Допустим посылка из 30 байт-меня в ней интересует 25-й для проверки и я в него не попадаю.Если чуть опережаю события(на один вызов getch меньше)-удается попасть в нужный байт-но это ж не дело. В терминальной программе эрик выдает всё как надо.Уровни его на интерфейсе до 5 вольт подтянул. Может кто сталкивался с подобным-буду очень благодарен за совет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба Может кто сталкивался с подобным-буду очень благодарен за совет С поиском телепатов - конечно :) Приведите Ваш исходник, или часть его, или хоть что-то, за что можно зацепиться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба Кварц какой? Может скорость не совсем точно совпадает? Ну и, если обработка символов занимает какое-то время, можно использовать буферизованный приём по прерываниям. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба Была у одного знакомого такая-же проблема. Компьютер читал через СОМ порт промышленный контроллер Дельта Электроникс как часы, а вот МК посредством USART - ну никак ! И кварцев кучу перепробовали, и скорости меняли, короче "танцы с бубнами" были конкретные... А все потому, что USART у МК не имеет в отличие от компьютерной микросхемы ФАПЧ (фазовую автоподстройку частоты) ! Победили написав программный USART через прерывания... Аппаратный отправили "фтоппку"... :maniac: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба А все потому, что USART у МК не имеет в отличие от компьютерной микросхемы ФАПЧ (фазовую автоподстройку частоты) ! Вы бредите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба Вы бредите. Обоснуйте ? В каком месте ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
borischi 0 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба Кварц какой? Может скорость не совсем точно совпадает? Ну и, если обработка символов занимает какое-то время, можно использовать буферизованный приём по прерываниям. Кварц 11.059 Настроил передатчик на стандартный 2-й режим 10 бит(старт,стоп и 8 бит дата).Скорость 9600 с соотв.перезагрузкой таймера.Никакой обработки символов нет-тупо вычитываю по готовности.проверяю на наличие определенного символа и всё.Там только и есть,что CJNE Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 23 августа, 2009 Опубликовано 23 августа, 2009 (изменено) · Жалоба Кварц 11.059 Настроил передатчик на стандартный 2-й режим 10 бит(старт,стоп и 8 бит дата).Скорость 9600 с соотв.перезагрузкой таймера.Никакой обработки символов нет-тупо вычитываю по готовности.проверяю на наличие определенного символа и всё.Там только и есть,что CJNE А как организован RS232 в телефоне ? Есть схема ? Возможно у компьютера высокое входное сопротивление и соответственно в "терминалке" все работает гуд. А вот в МК может быть более низкоомная входная цепь, которая в процессе работы медленно подсаживает RS232 схему телефона и она начинает пороть чушь... Это мои догадки... С телефона идет "чиcтый RS-232" ? Уровни +10, -10 ? Изменено 23 августа, 2009 пользователем manul78 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
borischi 0 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба А как организован RS232 в телефоне ? Есть схема ? Возможно у компьютера высокое входное сопротивление и соответственно в "терминалке" все работает гуд. А вот в МК может быть более низкоомная входная цепь, которая в процессе работы медленно подсаживает RS232 схему телефона и она начинает пороть чушь... Это мои догадки... Ну поставил я последовательно резисторы на Rx и Tx.По 100 ом.А как организовано входное сопротивление каналов rs232 контроллера-честно говоря не знаю.Пробовал вписывать 1 в Rx контроллера конечно-не помогло С телефона идет "чиcтый RS-232" ? Уровни +10, -10 ? Нет конечно TTL 0 +- 2.5 V Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба Нет конечно TTL 0 +- 2.5 V Осциллограф цифровой возможно пролил-бы свет на данную проблему... Попробуйте буферную микросхему чтобы привести уровни в приемлемый вид... Последняя догадка, возможно телефон передает не поток, а пакеты (15 байт данных + 16-тый CRC) ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
borischi 0 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба Осциллограф цифровой возможно пролил-бы свет на данную проблему... Попробуйте буферную микросхему чтобы привести уровни в приемлемый вид... Последняя догадка, возможно телефон передает не поток, а пакеты (15 байт данных + 16-тый CRC) ? Осциллографа пока нету,-но жду его с нетерпением Bus tranceiver ставил-не помогло. А вот насчет пакета поподробнее если можно :unsure: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба Кварц 11.059 Это гуд. Настроил передатчик на стандартный 2-й режим 10 бит(старт,стоп и 8 бит дата).Скорость 9600 с соотв.перезагрузкой таймера.Никакой обработки символов нет-тупо вычитываю по готовности.проверяю на наличие определенного символа и всё.Там только и есть,что CJNE Какого таймера? Какое значение перезагружается? Может, приведёте кусочки кода с инициализацией и обработкой? Нет конечно TTL 0 +- 2.5 V При пятивольтовом контроллере? Я б поставил хоть транзистор для порядка:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба А вот насчет пакета поподробнее если можно :unsure: Вы конечно знаете, что устройства осуществляющие обмен между собой по RS-232 используют протоколы обмена. Протоколов этих масса. Возможно Ваш телефон использует какой-то свой. Как пример, надо например передать 100 байт. Устройства "договариваются" между собой и процесс пошел: Формат пакета: первый байт - количество передаваемых байт данных. следующие байты - собственно данные. последний байт - контрольная сумма. (CRC) Передаем 100 байт пакетами по 15 : Первый пакет: 15, х,х....х,х, CRC - Получив его приемник быстро обрабатывает результат и отвечает передатчику что все гут либо просит повторить первый пакет... Второй пакет: 15,х,х.....х,х, CRC ................................................................................ ..................... ................................................................................ ................................................................................ . Седьмой пакет: 10,х,х.....х,х,CRC - Последний пакет. Используя всевозможные протоколы, устройства "разговаривают" между собой. Динамически меняют скорости обмена при плохом качестве передачи и т.д. Все это делается для точной и быстрой передачи данных. Все это я описал в общих чертах. Кстати, я больше чем уверен, что Ваш телефон использу- ет какой-либо протокол обмена, т.к. просто "сливать" данные как из одного ведра в другое, не контро- лируя результат - это маловероятно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
borischi 0 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба При пятивольтовом контроллере? Я б поставил хоть транзистор для порядка:) Уровни на приеме от эрика я подтянул к 5 вольтам-поставил 2 инвертора на транзисторах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 23 августа, 2009 Опубликовано 23 августа, 2009 · Жалоба Обоснуйте ? В каком месте ?Если совсем откровенно - во всех. Для начала: "компьютерная микросхема" - 16550 и ее более продвинутые версии. Найдите в ее даташите хотя бы упоминание о ФАПЧ. Вы конечно знаете, что устройства осуществляющие обмен между собой по RS-232 используют протоколы обмена. Протоколов этих масса. Возможно Ваш телефон использует какой-то свой. Телефоны используют протокол, унаследованный от модемов Hayes. Обычный текст, текстовые же команды, начинающиеся с AT. Отсюда название - AT-команды. Никаких CRC. borischi: лучше покажите код. Телепатией заниматься просто лень. Последняя попытка телепатии: У вас в системе используются прерывания? Если да, то нет ли где-то в прерываниях больших участков кода, время исполнения которых больше времени приема символа? Уровни на приеме от эрика я подтянул к 5 вольтам-поставил 2 инвертора на транзисторах.А инверторы там как раз и не нужны. Если у вас нет ничего, кроме инверторов - поставьте их два последовательно. И инверторы лучше взять интегральные. Что-то вроде 74HCT14. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться