Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   KAY-1024/SL-4/TURBO v2010 + NemoFDC + NemoIDE (http://zx-pk.ru/showthread.php?t=13770)

Alex_NEMO 20th January 2011 00:30

Quote:

Originally Posted by caro (Post 351181)
Версия прошивки 0.3 от 18.01.11

Это пробная версия прошивки контроллера клавиатуры
на ATMega48 для KAY 1024.

При выдаче RESET зажигается светодиод HL3.

Управление выходом TURBO по состоянию Scroll Lock
Если горит, на выходе TURBO 1, иначе 0.

Состояние Scroll Lock и Num Lock сохраняются в EEPROM.
Caps Lock при сбросе всегда выключено.

WAIT пока не подключено, хотя уже сейчас возможна
работа в режиме TURBO.

Камиль, отчитываюсь сам сегодня:
1. С кварцем на 20 МГц, прошивка 0.3 (пока последняя) - работа вполне комфортная и в "стандартном" режиме и в ТУРБО. Не работали только лишь клавиши H, J, K, L. Четкое переключение ТУРБО/не ТУРБО, CapsLock, RESET.

2. С кварцем на 25 МГц, прошивка 0.3 (пока последняя) - работа несколько хуже, чем в 1-м случае и в "стандартном" режиме и в ТУРБО. Не работали клавиши Y, U, I, O, P, {, }, 6, 7, 8, 0, BackSpace, ;, '. Четкое переключение CapsLock, RESET. А с ТУРБО/не ТУРБО - довольно интересно - Scroll Lock четко реагирует на переключение, а светодиод на плате (HL1) частенько не менял своего свечения...

3. Мех. клава работает более-менее стабильно, причем, как мне показалось, стабильнее "параллельно" с PS/2 клавой, т.е. с контроллером (я тестил ещё и при вытащенных из панелек контроллере и ЛЛ1). Видимо, или придется ещё уменьшать сопротивление резюков сборки NR2 (сейчас они у меня 2,2кОм) или укорачивать кабель до мех. клавы...

Ещё одна досадная для меня неприятность - не заработала моя комбо (USB/PS2) слим-клава BTC6100C, которая прекрасно работает на Спекки 2007. На кнопки реакции нет, а шифты и курсор - такое ощущение, что в цикле происходит многократное переключение ТУРБО/не ТУРБО... Это можно "вылечить"?

SoftFelix 20th January 2011 00:38

Quote:

Originally Posted by Alex_NEMO (Post 351720)
2. С кварцем на 25 МГц, прошивка 0.3 (пока последняя) - работа несколько хуже, чем в 1-м случае и в "стандартном" режиме и в ТУРБО.

Хм... Странно. А я завтра намылился кварц менять...
Quote:

Originally Posted by Alex_NEMO (Post 351720)
Не работали клавиши Y, U, I, O, P, {, }, 6, 7, 8, 0, BackSpace,

Вообще не работали или только в ТУРБО?

caro 20th January 2011 08:31

Quote:

Originally Posted by Alex_NEMO
отчитываюсь сам сегодня:
......

Да, информация интересная и мне не очень понятная.
Хорошо бы осцилографом посмотреть некоторые сигналы, что бы понять такое поведение системы.
Похоже на взаимное влияние механической клавиатуры и контроллера.
Хорошо бы их по отдельности в начале отладить, а затем уж попытаться скрестить :)
Буду думать. А для начала поставь в контроллер кварц на 20 МГц.


---------- Post added at 08:41 ---------- Previous post was at 08:40 ----------

Quote:

Originally Posted by SoftFelix
Хм... Странно. А я завтра намылился кварц менять...

Если еще не перепаял, пока оставь как есть.

---------- Post added at 09:31 ---------- Previous post was at 08:41 ----------

Quote:

Originally Posted by Alex_NEMO
Ещё одна досадная для меня неприятность - не заработала моя комбо (USB/PS2) слим-клава BTC6100C, которая прекрасно работает на Спекки 2007.

Судя по всему эта клавиатура не работает в режиме SCAN-CODE 3.
Quote:

Originally Posted by Alex_NEMO
Это можно "вылечить"?

Нужно переделать прошивку для работы клавиатуры в режиме SCAN-CODE 2.

SoftFelix 20th January 2011 09:20

Quote:

Originally Posted by caro (Post 351786)
Сообщение от SoftFelix
Хм... Странно. А я завтра намылился кварц менять...
Если еще не перепаял, пока оставь как есть.

Есть предположение, что в программе Атмеги надо увеличить время выдачи сигналов на линиях KDxx - удерживать "0" более длительное время.

Alex_NEMO 20th January 2011 10:30

Quote:

Originally Posted by SoftFelix (Post 351727)
Хм... Странно. А я завтра намылился кварц менять...

Сам попробуй и с 20 МГц и, если будет желание, проверь на 24 МГц.

Quote:

Originally Posted by SoftFelix (Post 351727)
Вообще не работали или только в ТУРБО?

И там и там не работали. Переключал Scroll Lock'ом. По светодиоду Scroll Lock
все ОК, а "штатный" индикатор HL1, иногда, бывает "косячит".

Quote:

Originally Posted by caro (Post 351786)
Да, информация интересная и мне не очень понятная.
Хорошо бы осцилографом посмотреть некоторые сигналы, что бы понять такое поведение системы.
Похоже на взаимное влияние механической клавиатуры и контроллера.
Хорошо бы их по отдельности в начале отладить, а затем уж попытаться скрестить
Буду думать. А для начала поставь в контроллер кварц на 20 МГц.

Камиль, дело в том, что я пробовал и так и эдак. Результат примерно одинаковый.
Осцил есть - могу глянуть. Вечерком верну кварц на 20 МГц и допаяю кондеры "обвязки" (я до сих пор без них пробовал).

Quote:

Originally Posted by caro (Post 351786)
Судя по всему эта клавиатура не работает в режиме SCAN-CODE 3.

Тут я не спец, клава относительно не старая, но на сайте BTC уже в архиве моделей. Пробовал на своей рабочей ПЦ Cherry, которая у меня бессменно работает с 1997года! Со времени моего первого ПЦ - iP166MMX.

Quote:

Originally Posted by caro (Post 351786)
Нужно переделать прошивку для работы клавиатуры в режиме SCAN-CODE 2.

Камиль, если не сложно, сделайте, пожалуйста! Хотя бы со временем.

Quote:

Originally Posted by SoftFelix (Post 351798)
Есть предположение, что в программе Атмеги надо увеличить время выдачи сигналов на линиях KDxx - удерживать "0" более длительное время.

Возможно. Но почему тогда при смене частот кварца разные "ряды" косячят?

caro 20th January 2011 11:04

Quote:

Originally Posted by Alex_NEMO
Вечерком верну кварц на 20 МГц и допаяю кондеры "обвязки" (я до сих пор без них пробовал).

Вот это зря, без них вообще не понятно на частоте ли кварца у тебя контроллер запускался.
При этом бесполезно проверять частоту осцилографом на выводах кварца,
поскольку при подключении щупа к ножкам кварца он может показывать нормальную частоту,
а при отсоединении от ножек, на самом деле частота может быть не известно какая.

---------- Post added at 12:04 ---------- Previous post was at 11:59 ----------

Quote:

Originally Posted by Alex_NEMO
Возможно. Но почему тогда при смене частот кварца разные "ряды" косячят?

Раз есть осцилограф, глянь форму сигналов на входах адресных линий контроллера (KA8...KA15), не сильно ли там затянуты задние фронты (от 1 к 0).

Alex_NEMO 20th January 2011 11:36

Quote:

Originally Posted by caro (Post 351816)
Вот это зря, без них вообще не понятно на частоте ли кварца у тебя контроллер запускался.
При этом бесполезно проверять частоту осцилографом на выводах кварца,
поскольку при подключении щупа к ножкам кварца он может показывать нормальную частоту,
а при отсоединении от ножек, на самом деле частота может быть не известно какая.

Понял, кондеры обязательно припаяю. И все по новой проверю.

Quote:

Originally Posted by caro (Post 351816)
Раз есть осцилограф, глянь форму сигналов на входах адресных линий контроллера (KA8...KA15), не сильно ли там затянуты задние фронты (от 1 к 0).

Хорошо, попробую посмотреть. Заодно USBee AX Pod "обкатаю"!

SoftFelix 20th January 2011 11:50

Quote:

Originally Posted by Alex_NEMO (Post 351808)
Возможно. Но почему тогда при смене частот кварца разные "ряды" косячят?

Меня всё ещё смущает твой кабель "1 метр для мех.клавы". При таком раскладе номинал NR2 - чем меньше - тем лучше. В разумных пределах. 155ЛП9 тянет до 40мА на каждый выход. Так что можно смело ставить NR2 на 470...680 Ом. Т.к. один вентиль одной из ЛП9 нагружен на низкоомную индуктивную нагрузку (преобразователь +12В), я поставил тантал на шины питания вблизи этих микросхем.

+Надо ещё знать алгоритм работы программы в Атмеге. Кварц-то мы заменили, внутренняя программа стала работать быстрее, а тайменги остались для 20МГц. В частности, удерживание нуля на выводах KDxx. Камилю виднее...
Quote:

Originally Posted by caro (Post 351816)
Вечерком верну кварц на 20 МГц и допаяю кондеры "обвязки" (я до сих пор без них пробовал).
Вот это зря, без них вообще не понятно на частоте ли кварца у тебя контроллер запускался.

Обычно кварцы на такую частоту работают на 1-ой гармонике и добротность кварца на основной частоте очень высокА. Скорее всего, всё работало на нужной частоте. Но конденсаторы всё равно нужны.

Alex_NEMO 20th January 2011 12:14

Quote:

Originally Posted by SoftFelix (Post 351831)
Меня всё ещё смущает твой кабель "1 метр для мех.клавы". При таком раскладе номинал NR2 - чем меньше - тем лучше. В разумных пределах. 155ЛП9 тянет до 40мА на каждый выход. Так что можно смело ставить NR2 на 470...680 Ом. Т

Я писал, что пробовал и с мех. клавой и без неё. Все последние проверки, когда описаны отсутствие нек. рядов и символов проводил уже БЕЗ подключенной мех. клавы. Наверное, укорочу её хвост, сантиметров до 70-60 хотя бы. И если потребуется уменьшу сопротивление резюков до 1 кОм. Меньше боязновато - контроллеру нагрузка по входам возрастет же! Там бы, по идее, токоогнаничительные резюки по входам, наверное, не помешали бы.
Quote:

Originally Posted by SoftFelix (Post 351831)
Т.к. один вентиль одной из ЛП9 нагружен на низкоомную индуктивную нагрузку (преобразователь +12В), я поставил тантал на шины питания вблизи этих микросхем.

Тут я вообще думаю убрать эту схемку - выпаять дроссель L1 и диод VD3. Все равно от АТХ-питания запитан. И помех поменьше будет.
Quote:

Originally Posted by SoftFelix (Post 351831)
Скорее всего, всё работало на нужной частоте. Но конденсаторы всё равно нужны.

Ладно, уговорили! :) Вечером припаяю.

caro 20th January 2011 12:33

Quote:

Originally Posted by SoftFelix
+Надо ещё знать алгоритм работы программы в Атмеге. Кварц-то мы заменили, внутренняя программа стала работать быстрее, а тайменги остались для 20МГц. В частности, удерживание нуля на выводах KDxx.

Тут всё нормально, "0"-и снимаются по окончании цикла чтения порта клавиатуры.
Code:

;********************************************************
; Прерывание INT0 по чтению порта клавиатуры _RDFE ~\_/~
; Длительность импульса = 720 нсек
; Порт D в режиме чтения, на входе Адрес сканирования
VINT0:                                ;6..7  -> 300-350 нсек
        in        YL,PIND                ;1 - адрес сканирования
        sbic        PINC,KA10        ;1
        sbr        YL,1<<_RDFE        ;1 - добавить бит KA10
        ld        scanFF,Y        ;2 - скан-код из ScanBuf
        out        PORTB,scanFF        ;1 - выдать в порт данных
                                ;12..13 -> 600-650 нсек (20 МГц)
                                ;        -> 500-540 нсек (24 МГц)
wait_RD:                        ; Ждать отпускания _RDFE
        sbis        PIND,_RDFE        ;1/2        _/~
        rjmp        wait_RD                ;2
        out        PORTB,r_FF        ;1 PORTB - все 1
                                ;15..19 -> 750-950 нсек
        reti                        ;4
;**********************************************************



All times are GMT +4. The time now is 16:38.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.