Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.65/91: Рейтинг темы: голосов - 91, средняя оценка - 4.65
OJ26
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 4
1

AVR->uart->PIC->usb->PC

18.11.2010, 22:19. Просмотров 16378. Ответов 13
Метки нет (Все метки)

Доброго времени суток! возникла такая задача: построить клавиатуру по распределенной схеме. 1ый МК (atmega16) совершает опрос клавиатуры (сканирование) и передает код нажатой кнопки по uart. планируется передача 1-3 байт за сеанс передачи. (один байт описывает состояние ctrl, alt, shift, второй содержит номер нажатой клавиши, третий - номер второй нажатой клавиши, если нажато 2 одновременно ) Постоянно пересылать состояние всех клавиш счел нецелесообразным. Второй МК (pic18f2550) принимает данные по уарт и передает в компьютер по usb, определяясь как стандартное hid устройство. Реализация usb клавиатуры подошла от фреймворка microchip, с этим нет вопросов - работает стабильно. На стороне и принимающего, и передающего МК будет создан циклический буфер.

ПОСТАНОВКА ВОПРОСА: как лучше реализовать обмен по UART - с прерываниями или без ( чтобы не было конфликта прерываний usb и uart ) Больше всего интересует со стороны принимающего мк. Как это вижу я. в цикле ждем завершения очередного приема, проверяя флаг. По завершении приема записываем полученное значение в регистр usb. usb сам с нужной ему частотой инициирует прерывание и передачу данных в ПК. Какие рекомендации и советы можете дать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2010, 22:19
Ответы с готовыми решениями:

Народ где скачать AVR/PIC pascal?
Народ где скачать AVR/PIC pascal? Народ где скачать можно среду программирования AVR pascal и PIC...

Опторазвязка Reset у AVR и DTR у переходника UART-USB
Доброго времени суток, уважаемые. Задался целью гальванически развязать микроконтроллер типа...

AVR vs PIC
Я програмист, в электронике разбираюсь слабо. Решил изучить микроконтроллеры (интересная мне тема)....

Помогите портировать код PIC -> AVR
Здравствуйте уважаемые форумчане , У меня для вас наверно очень простой вопрос, но непонятный для...

AVR AVRISP STK500 V3.0 USB ISP Programmer for AVR IC
Люди помогите плз. не могу разобраться. приобрел этот чудный девайс (AVR AVRISP STK500 V3.0 USB...

13
BykTiho
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
19.11.2010, 04:27 2
1. Не жирно ли для такой простой задачи использовать мегу 16?
2. Почему бы не выкинуть вообще контроллер на клавиатуре и подключить клаву к контроллеру, передающему по усб данные?
3. Не проще ли взять усб клавиатуру и не париться? Если не подходит сама клава, то выдрать из нее контроллер и подключить к нему свои клавиши. Интерфейс контроллера усб клавы хорошо описан и изучен.

По вопросу о режиме уарта. По приему данных есть прерывание. Динные пришли - случилось прерывание. По прерыванию нужно только считать байт, куда легла полученная информация.
0
OJ26
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 4
19.11.2010, 18:09 3
Спасибо за ответ )) Структура уже продумана хорошо. Использование Меги 16 обосновано тем, что под нее уже разведенные готовые печатные платы. Передача по уарт ведется для использования диф канала (rs422). мега обработала матрицу клавиш - передала по уарт. конверторы интерфейса сделали свое дело - PIC принял на большом расстоянии, не боясь помех. И передал в юсб... Про прерывания уарта знаю... не знаю, не возникнет ли проблем от прерываний уарт и юсб в одной программе.
0
Shurup
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 37
19.11.2010, 18:20 4
Если не секрет, а для чего данный проект?
0
19.11.2010, 18:20
OJ26
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 4
19.11.2010, 18:26 5
для создания компьютерной клавиатуры, работающей на значительном удалении от компьютера. ) рабочая необходимость )))
0
Гарнист
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
19.11.2010, 18:42 6
А вот такая штука не поможет отцу удалённого управления?

<Изображение удалено>
0
morvym_yorki
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 600
19.11.2010, 19:09 7
kvm over ip спасет отца русской демакратии
0
OJ26
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 4
19.11.2010, 19:44 8
не настолько большом удалении ))) метров 30. А цена этого вопроса зашкаливает))
0
Shurup
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 37
19.11.2010, 22:52 9
Цитата Сообщение от OJ26
для создания компьютерной клавиатуры, работающей на значительном удалении от компьютера. ) рабочая необходимость )))
Монитор наверно тоже поближе к такой клаве нужно подтащить. А может это из соображений "дальнозоркость" типа )). Может использовать проверенные решения - RemoteAdmin, NetOp, Remote Desktop на худой конец.
0
Shurup
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 37
19.11.2010, 23:00 10
где-то видел чел подключал PS/2 клаву к AVR-ру. Может воспользоваться этим вариантом. Имхо проще должно быть. Первый авр опрашивает клаву и передает другому, а второй имитирует туже клаву по ПС/2
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
19.11.2010, 23:04 11
Сейчас глянул: в микропаскале есть библиотеки для работы с PS\2 клавиатурой. (это в стандартной поставке).
Сам их не юзал. Думаю будет не сложно найти под другие языки.

З.Ы.
Протокол там довольно простой. Очень смахивает на TWI (I2C)
0
o9d
0 / 0 / 0
Регистрация: 10.08.2010
Сообщений: 1,264
17.12.2010, 15:41 12
А не намного проще взять обыкновенную USB клаву и купить удлинитель USB ? Выйдет значительно проще+ заводское исполнение.

Или еще проще, взять беспроводную клавиатуру.
0
Hommir
0 / 0 / 0
Регистрация: 08.07.2010
Сообщений: 4
15.01.2011, 10:53 13
А как же геморрой? ;)
0
Dykk
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 69
15.01.2011, 17:01 14
При таких условиях обмен по Uart идет только с использованием прерывания по приему. Имхо я бы использовал передачу по одному байту с подтверждением приема от пика, тогда проще рассчитать время и не страшно если совпадут одновременно необбходимости выполнить несколько равноценных действий....
0
15.01.2011, 17:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2011, 17:01

ик-avr-uart
В общем попалась мне статейка про ик и avr http://habrahabr.ru/post/82383/ Загорелся я собрать...

AVR на C, траблы с UART
Доброго времени суток. Я новичок в программировании, и в МК. Пытаюсь написать прогу, но не совсем...

AVR. UART. 9 бит.
Сложилась тут задача: два МК, соеденены по интерфейсу RS-485. Периодически первый МК шлет второму 6...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru