Клавиатура и NedoPC-90

8-битные микроконтроллеры AVR (AT90, ATtiny, ATmega) от Atmel (в настоящий момент принадлежит Microchip)

Moderator: Shaos

User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

SfS wrote:
Shaos wrote: Вобщем для начала собрал схему понижения напряжения - взял 3 диода 1N4001, резистор и конденсатор - получил напряжение 3.6В - нормально или еще понижать?
Ты наверное взял диоды слишком хорошие :). У них падение маленькое.
Я брал КД-какието стеклянные (510 чтоли?). В общем напряжение на клаве было примерно 3.1-3.3 вольта. Мне кажется, что на 3.6 работать должно - но можешь для перестраховки еще один диод воткнуть. Или возьми сопротивление не 10к - а поменьше - скажем 3К. Напряжение чуток упадет.

В общем то я такой вопрос подробно не исследовал, хотя 0.3-0.5 вольта в данном случае не должны влиять - всетаки это клалва - ширпотреб и не рассчитана на прецензионное питание.
По идее, 3х кремниевых диодов должно хватать. Но диоды, используемые в БП (даже низкочастотные), почему-то имеют меньшее напряжение падения. Высокочастотные и шоттки не подойдут, т.к. на них падение очень маленькое. Подобрать можно с помощью обычного цифрового мультиметра с возможностью проверки диодов. В этом режиме прибор показывает не сопротивление перехода (как я раньше думал, а после испытаний оказалось обратное) а некоторый "индекс". Число, которое для диодов шоттки и высокочастотных лежит в диапазоне 200...80, а для обычных 340...260. Выбираются те, у которых число больше.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Путем уменьшения сопротивления с 33К до 10К уменьшил напряжение до 3.4В. Собрал схему согласования на транзисторе 2N3904 (NPN). Проверил, вроде работает. К какой ноге AVR теперь цеплять получившийся ТТЛ-сигнал? И интересует также простой алгоритм проверки работоспособности клавы.
Я тут за главного - если что шлите мыло на me собака shaos точка net
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Shaos wrote:Путем уменьшения сопротивления с 33К до 10К уменьшил напряжение до 3.4В. Собрал схему согласования на транзисторе 2N3904 (NPN). Проверил, вроде работает. К какой ноге AVR теперь цеплять получившийся ТТЛ-сигнал? И интересует также простой алгоритм проверки работоспособности клавы.
На прерывание INT0 (нога порта D - PD2 на 8535 проце).
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Подключил к досовскому ноутбуку с досовской терминалкой - поставил 9600, 8 без четности и 2 стоповых бита - при нажатии на кнопки клавиатурки на экран ноутбука выскакивает по 2-3 больших русских символа, F_CLK установил в 1 МГц - вроде столько должно быть по умолчанию без внешних кристаллов
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:Подключил к досовскому ноутбуку с досовской терминалкой - поставил 9600, 8 без четности и 2 стоповых бита - при нажатии на кнопки клавиатурки на экран ноутбука выскакивает по 2-3 больших русских символа, F_CLK установил в 1 МГц - вроде столько должно быть по умолчанию без внешних кристаллов
SfS, напиши пожалуйста какие настройки должны быть в терминальной программе на PC, чтобы поток символов от железки нормально распознавался
Я тут за главного - если что шлите мыло на me собака shaos точка net
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Shaos wrote: SfS, напиши пожалуйста какие настройки должны быть в терминальной программе на PC, чтобы поток символов от железки нормально распознавался
minicom - вроде по умолчанию все распознает.
Только с концом строки иногда глюкает.
скорость 9600 8 бит без четности. Это если речь идет о связи AVR и PC.

Слушай, а стартовое сообщение "Stdio Inited via UART0" выходит при включении нормально ? То которое в файле main.c прописано ?
Last edited by SfS on 05 Feb 2006 00:40, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

SfS wrote:В чем проблемы у тебя ? Что не так распознается ?
"при нажатии на кнопки клавиатурки на экран ноутбука выскакивает по 2-3 больших русских символа"

а minicom у меня вообще не работет - во первых показывает иероглифы, во вторых (если вручную поставить ему английскую локаль) требует настроить модем, которого несуществует...
Я тут за главного - если что шлите мыло на me собака shaos точка net
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Shaos wrote: а minicom у меня вообще не работет - во первых показывает иероглифы, во вторых (если вручную поставить ему английскую локаль) требует настроить модем, которого несуществует...
Странно. запускаешь minicom -s из-под root'а. И все что связано с инициализацией модема отключаешь. У меня так и сделано.

Я изпод доса не пробовал тестироваться.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

SfS wrote:Странно. запускаешь minicom -s из-под root'а. И все что связано с инициализацией модема отключаешь. У меня так и сделано.
Ну вот - а говоришь, что все по умолчанию распознаёт ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Shaos wrote:2 стоповых бита
Может тут собака порылась ? Попробкй 1бит!
У меня при передаче по уарту - 1 бит стоит.
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Shaos wrote:Ну вот - а говоришь, что все по умолчанию распознаёт ;)
По умолчанию - тоже распознавал. Только ждал пока модем инициализируется довольно долго и ошибку выдавал.

Только изза этого я и отключил команды инициализации модема.

А 8бит без четности и один стоповый - по умолчанию и стояло.
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Shaos wrote:1 МГц - вроде столько должно быть по умолчанию без внешних кристаллов
Вот еще где может быть косячина.
1МГц может не хватать. Программный UART на 9600 - это примерно 10^4 прерываний в секунду. 10^6/10^4=100 тактов на прерывание. Судя по куску кода-обработчика прерывания от таймера - вполне может 100 тактов и не хватить.
Так что попробуй поставить внешний кварц. У меня стоял 8МГц.
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Shaos wrote:Вопрос - если включить клаву/индикатор/компорт, то сколько свободной памяти кода и данных останется на моей ATMEGA8535? Это к вопросу об интерпретаторе и, возможно, компиляторе RW1/RW0. И еще я забыл о внешнем флеш-накопителе...
Флешка требует около 300 байт озу (под кэш много уходит). В меге8535 - всего 512 байт озу. Плюс индикатор, клавиатура и системные вещи - байт около 50.
Таким образом, общий расход ОЗУ - около 350 байт из 512. Остается свободными только примерно 160 байт - явно мало.

Исходя из этого, логичнее поставить мегу8515+внешнее озу 32К. Это добавочные две микрухи - ОЗУ + регистр-защелка на адрес.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

SfS wrote:
Shaos wrote:1 МГц - вроде столько должно быть по умолчанию без внешних кристаллов
Вот еще где может быть косячина.
1МГц может не хватать. Программный UART на 9600 - это примерно 10^4 прерываний в секунду. 10^6/10^4=100 тактов на прерывание. Судя по куску кода-обработчика прерывания от таймера - вполне может 100 тактов и не хватить.
Так что попробуй поставить внешний кварц. У меня стоял 8МГц.
А как программировать чип на использование внешнего кварца?
Я тут за главного - если что шлите мыло на me собака shaos точка net
SfS
Doomed
Posts: 491
Joined: 16 Apr 2005 22:35
Location: Томск

Post by SfS »

Shaos wrote:А как программировать чип на использование внешнего кварца?
FUSE выставить надо. CKSEL=1110, CKOPT=0.
Внешний кварц от 1МГЦ до 16 МГц. Блокировочные кондеры на кварце - от 12пФ до 22пФ.
Вроде так.