Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Реализация конвертора скоростей 9600 - 10400 на МК
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
The Fresh
Есть девайс с UART'ом скорость 9600 нужен переходник на 10400 туда и обратно. Как можно реализовать на доступных и простых вещах. Может есть что то подобное уже готовое. Я понимаю задачу в нахождении недорого МК c UART и написании кода для него, подскажите.
_artem_
Не делал такое но предполагаю что это уже велосипед или мотоцикл на худой конец - берите двух уартовый микро и вперед . Правда, если ошибка по какой либо скорости будет превышать требуемые значения можно использовать два микро соединенные по SPI. И обратите внимание на буффер приема 10400 который может заполнится для длинных последовательностей (разница в 800 битов в секунду, длина максимальной последовательности и еще чтонибудь про запас определит размер этого буфера).
war4one
Цитата(The Fresh @ Jan 5 2007, 15:15) *
Есть девайс с UART'ом скорость 9600 нужен переходник на 10400 туда и обратно.


1) Берете любой МК с двумя UART или просто свой любимый, ресурсы которого позволяют организовать один (если один UART уже есть) или два software UART с нужными скоростями.
2) Особо обращаете внимание на максимальный размер массива данных, единовременно приходящего со стороны 10400. Этим определяется размер циклического буфера, который потребуется организовать для предотвращения потери данных. Если размер большой, то, возможно, понадобится внешнее ОЗУ.
The Fresh
Насчет объема то массив небольшой приблизно 5-10 байт комманда и столько же ответ. Если правильно понял ориентироваться на двух UART'овый МК . Подскажите плиз марку(общедоступную), софт(сайты для ознакомления), и программматор для этих целей. От себя знаю немного Delphi, немного С, короче не запутаюсь в примитивных кодах, если много требую то извиняйте.
Harbinger
На вкус и на цвет...
Ну вот у меня работает конвертор скоростей 115200/9600 на MSP430F149. Управляет HP8920. Что, имхо, избыточно весьма. В другое изделие ATMega162 поставил, ибо дешевле.
Сходил по вышеуказанной ссылке на Сахару - Мега 162 там, кажись, самое дешевое решение.
А 10400 - это где такая нестандартная скорость применяется? Если не секрет, конечно? wink.gif
The Fresh
Не секрет в ЭБУ авто.
DimG
10400? а не 10472? Эт я к чему - у 51-го контроллера чтобы получить скорость 9600, было необходимо поставить кварц 11,0962 МГц (11,096 тоже проходит). Если же не было неободимости в стандартной скорости, а производительность была нужна максимальная, то ставили 12 МГц, но скорость получалась 10472.
Хотя это может быть и не ваш случай.
Что же до переходника, то поставьте любой процессор, который позволяет формировать такую скорость, обычно в описаниях есть описание расчета, а с другой стороны микросхему приемопередатчика. По поводу МК с двумя UART ничего не могу посоветовать, т.к. сам такие не применял, но если они позволяют установить такие скорости на разных портах одновременно, то почему бы их и не использовать. smile.gif
Удачи.
The Fresh
Дело в том. что разные проги устанавливают разные скорости для ВАЗа это 10400, для машин с OBD(прога OBDtool) 10472. Опять таки как мне кажется есть некий запас по скорости при которой не будет коммуникационных ошибок. Если применять софтверный метод, то чем больше частота осцила тем меньше ошибка в получении скорости. Например для меня применяя на Attiny12 с внутренним осцил 1.2МГц можно получить скорость 10618(самая близкая которую можно получить к 10400), но как написано в даташите допускаются отклонения до 3% без коммуник. ошибок. Есть другая сторона, а в друг автожелезо не примет эту скорость т.е. скажем плюс минус ее рабочей скорости меньше чем мои 218, тогда будем ставить внешний осцил скажем на 4 МГц и получим 10389.
migray
Цитата(The Fresh @ Jan 10 2007, 20:15) *
Дело в том. что разные проги устанавливают разные скорости для ВАЗа это 10400, для машин с OBD(прога OBDtool) 10472. Опять таки как мне кажется есть некий запас по скорости при которой не будет коммуникационных ошибок. Если применять софтверный метод, то чем больше частота осцила тем меньше ошибка в получении скорости. Например для меня применяя на Attiny12 с внутренним осцил 1.2МГц можно получить скорость 10618(самая близкая которую можно получить к 10400), но как написано в даташите допускаются отклонения до 3% без коммуник. ошибок. Есть другая сторона, а в друг автожелезо не примет эту скорость т.е. скажем плюс минус ее рабочей скорости меньше чем мои 218, тогда будем ставить внешний осцил скажем на 4 МГц и получим 10389.


Есть хорошие МК NEC семейства 78K0/KE2, например uPD78F0535 (4.03 Евро). У них 2 UARTа, 3 К ОЗУ, много еще чего хорошего, но для твоей задачи все остальное не важно.
Если выбрать кварц 8 МГц, вполне доступный, то скорости будут 9615 и 10416, обе отличаются на 0,16% от заданных, порты программируются разными регистрами и допускают работу с разными скоростями. Подробную информацию смотри
http://www.eu.necel.com/docuweb/index.php?...p;submit=Search

Есть популярный Си компилятор (IAR), освоить будет не сложно.
Простой программатор можно собрать самому, о нем написано
http://www.eltech.spb.ru/flashprog.html

Если IAR-овского симулятора не хватит и захочешь применять внутрикристальную отладку, то тогда придется взять более дорогой чип uPD78F0537D (6 Евро) и отладчик Миникуб 2 (58 Евро). По ногам и перифирии 37D и 35 совместимы, разработать можно на 37D а 35 ставить в серию. Миникуб 2 может и программировать.
migray
Цитата(The Fresh @ Jan 10 2007, 20:15) *
Дело в том. что разные проги устанавливают разные скорости для ВАЗа это 10400, для машин с OBD(прога OBDtool) 10472. Опять таки как мне кажется есть некий запас по скорости при которой не будет коммуникационных ошибок. Если применять софтверный метод, то чем больше частота осцила тем меньше ошибка в получении скорости. Например для меня применяя на Attiny12 с внутренним осцил 1.2МГц можно получить скорость 10618(самая близкая которую можно получить к 10400), но как написано в даташите допускаются отклонения до 3% без коммуник. ошибок. Есть другая сторона, а в друг автожелезо не примет эту скорость т.е. скажем плюс минус ее рабочей скорости меньше чем мои 218, тогда будем ставить внешний осцил скажем на 4 МГц и получим 10389.


Что-то я в прошлом письме слишком дорогие процы посоветовал.
Смотреть надо семейство 78K0/KB2, uPD78F0500 в качестве серийного (2,02 Евро в розницу) и uPD78F0503D для отладки через OnChipDebug за 3,5 Евро.
По сравнению с 78K0/KE2 у этих процов 30 выводов, 8-32К Flash, 512-1024 байт ОЗУ, остальное для твоей задачи не важно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.