Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: at90s1200 с com-портом
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
d71
заранее извиняюсь, но спросить очень хочется, ибо зеленый я

задача такая.
принять из ком порта три байта
прибавить к каждому из них по единичке (неважно, но что-то сделать)
отправить их в ком порт

вопрос, как прицепить ком-порт к устройству
(у меня есть работающая плата с парой светодиодов и стк200)
т.е. прицепиться хочу к свободным портам B, например

нужен кусок кода и схемы (если что-то надо обвязать), а дальше я разберусь smile.gif

спасибо smile.gif
SSerge
Цитата(d71 @ Dec 24 2005, 13:32) *
заранее извиняюсь, но спросить очень хочется, ибо зеленый я

задача такая.
принять из ком порта три байта
прибавить к каждому из них по единичке (неважно, но что-то сделать)
отправить их в ком порт

вопрос, как прицепить ком-порт к устройству
(у меня есть работающая плата с парой светодиодов и стк200)
т.е. прицепиться хочу к свободным портам B, например

нужен кусок кода и схемы (если что-то надо обвязать), а дальше я разберусь smile.gif

спасибо smile.gif

Дык, почитать атмеловские Application Notes - там всё расписано.

AVR304: Half Duplex Interrupt Driven Software UART (11 pages, revision A, updated 8/97)
This Application Note describes how to make a half duplex UART on any AVR device using the 8-bit Timer/Counter0 and an external interrupt.

AVR305: Half Duplex Compact Software UART (9 pages, revision C, updated 09/05)
This Application Note describes how to implement a polled software UART capable of handling speeds up to 614,400 bps on an AT90S1200.
d71
Ж( смотрю в книгу...
мда... я не то что зеленый, я видать зачат неправильно, буду копать, клянусь, что выпущу электростатью о том как стартовал в мире атмела smile.gif
mse
Цитата
смотрю в книгу...

Чево в неё смотреть? Наливай да пей.
Определись с бодовой скоростью. Найди кол-во тактов ОСЦ на бод. Задержки делать будеш циклами-нопами. Анализируй ногу RXD(инв сигнал от компа). Должна быть "1". Как тока "0", начинай считать 1/2 бода. время прошло - смотри состояние RXD, если "0", значить старт-бит, начинаем приём, если "1", значит лажа, назад.
Приём тупой - отступай то выборки на старт-бите бодовое время и состояние RXD вдвигай в регистр. И так 8 раз. Байт у тебя. Передача - наоборот. Выставил старт-бит, подержад бодовое время, а потом 8 бит и стоп-бит. Всё.
defunct
2 d71: А взять контроллер с аппаратным UARTом не судьба? из 20-ти ножковых аппаратный UART есть в AT90S2312 и ATtiny2313. Стоят они почти также как и AT90S1200.

PS: неправильный проц Вы для старта выбрали...
mse
Цитата
неправильный проц Вы для старта выбрали

Нормально. Как раз освоить. Спалит - не жалко.
Laptop
Я конечно тоже начинал осваивать AVR с 1200 в 1997 году, но сразу как написал первый проект возникло непреодолимое желание перейти на 2313. Прелестей гораздо больше, тем более что на нем уже на С можно писатьwink.gif И полный простор, с размещением переменных и прочей рутиной не надо возиться, хотя в ассемблерный выход полезно подсматривать. Но, имхо, осваивать конечно начинать нужно на ассемблере дабы прочуствовать тонкости архитектуры и потом уже перейдя на С думать кактегориями именно этого процессора. Что касается цены, то он всего лишь на доллар дороже...
А спалить их очень трудно. У меня с тех времен до сих пор камни живыеsmile.gif))
Успехов в освоенииsmile.gif
mse
Цитата
Что касается цены, то он всего лишь на доллар дороже...

Дык, уже что те, что те уже раритет. М48 стоить $0.95. А начинать можно с чего угодно. ;О)
d71
спасибо, друзья, копаю, уже одну лапату сточил почти smile.gif видать асфальт...
а насчет выбора... только не смейтесь - в Благовещенске не могу купить тини2313 - давно бы уже.. , есть только s1200 и s2313.
ком изучаю на будущее, реальная задача свалится на голову через месяц-два, с помощью его буду читать то что ацп налили в память типа at24 (тоже кусок кода не помешал-бы и погладеть на разработку с такой памятью)
--
до си руки не доходят - простоянно есть задачи писать всяческие контроллеры зарядных устройств и прочий бред - херачу так сказать, не то что на литературу - поспать некогда smile.gif
потому и прошу подчас куски кода - разбираюсь по ходу из чужих программ и мечтаю о тихой лаборатории, удобном кресле и вдумчивом почитывании даташитов smile.gif
mse
Читай Атымельи аппноты. Там всё есть.
defunct
Цитата(d71 @ Dec 26 2005, 05:42) *
только не смейтесь - в Благовещенске не могу купить тини2313 - давно бы уже.. , есть только s1200 и s2313.


Смеяться не над чем, всяко бывает.. Если есть возможность берите AT90S2313. Аппаратный УАРТ намного упростит вашу задачу. Довольно-таки важный момент при работе с UART'ом - частота кварца, которая должна быть кратна 115200 иначе возможны ошибки приема/передачи. для AT90S рекомендовал бы 9.216 Mhz и 11.0592Mhz (ошибка UART'a 0.0% на всех стандартных скоростях, при этом ядро AVR используется в полную силу).
d71
2313 сегодня чуть ли не последний на всю область купил smile.gif
кварц подберу, это спасибо большое
а схема как его с мах232 дружить есть?
Pyku_He_oTTyda
d71 - если с кварцем туго, могу в конверт пару штук положить. Про МАХ - стандартный даташит, если покупать, то лучше выбрать без внешних конденсаторов.
Кроме МАХа, есть и у других производителей, ключевое слово 232, 202, 203
mse
В конверт - не рекомендую, разобьют при доставке.
Делай программный УАРТ, типа тово, что я расписАл словами из аппноты. Тогда и бодовый кварец не нужен - цыклами да ноп-ами время выдержыш. Да и полезно, мало ли что в жызни встретицца. А на аппаратном любой дурак смогёт. Неспортивно на аппаратном учицца.
Pyku_He_oTTyda
По другому никак, если посылкой, то "золотые" получатся
d71
не нашел макс232 без кондеров.
можно марку поточнее (извените уж за настойчивость smile.gif)
--
кварцы хочется правильные, очень сильна хочется
у меня 2313 -10, так что на 9.216 Mhz в самый раз, если я чего не путаю
Pyku_He_oTTyda
Например ADM203. ADM233

http://www.analog.com/en/subCat/0,2879,767...F0%255F,00.html
defunct
Цитата(d71 @ Dec 28 2005, 08:17) *
кварцы хочется правильные, очень сильна хочется
у меня 2313 -10, так что на 9.216 Mhz в самый раз, если я чего не путаю


9.216 относительно редкий кварц..
10Pi/Si работают с кварцем до 12Mhz включительно. В даташите на 2313 11.0592Mhz включен в таблицу делителей скоростей уарта, т.е. Atmel получается гарантирует устойчивую работу чипа на 11.0592Mhz. Главное чтобы питание не было заниженным.
Old1
Цитата(d71 @ Dec 27 2005, 12:06) *
2313 сегодня чуть ли не последний на всю область купил smile.gif
кварц подберу, это спасибо большое
а схема как его с мах232 дружить есть?

Если есть проблемы с приобретением интерфейсной микросхемы, относительно просто связать контроллер с РС (правда без аппаратного управления потоком) можно при помощи интерфейса "токовая петля", схемка в аттачменте. ИМХО для обучения полезно попробовать, опять же гальваническая развязка есть...
SSerge
Цитата(defunct @ Dec 28 2005, 13:29) *
Цитата(d71 @ Dec 28 2005, 08:17) *

кварцы хочется правильные, очень сильна хочется
у меня 2313 -10, так что на 9.216 Mhz в самый раз, если я чего не путаю


9.216 относительно редкий кварц..
10Pi/Si работают с кварцем до 12Mhz включительно. В даташите на 2313 11.0592Mhz включен в таблицу делителей скоростей уарта, т.е. Atmel получается гарантирует устойчивую работу чипа на 11.0592Mhz. Главное чтобы питание не было заниженным.

Если коэффициент делителя (содержимое UBRR) больше 20, то всегда можно получить нужную скорость передачи с ошибкой не более 2,5%, что для UART достаточно.

Таким образом кварц можно ставить какой угодно, лишь бы его частота была в 16*20=320 раз выше чем требуемая битовая скорость.
Для скорости 9600 получается - годится любой кварц от 3 до 10 МГц.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.