Важная информация

User Tag List

Страница 26 из 53 ПерваяПервая ... 222324252627282930 ... ПоследняяПоследняя
Показано с 251 по 260 из 522

Тема: Контроллер клавиатуры для "Пентагон-128" на ATMega8/48/88/168/328

  1. #251
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    это кнопки, которые замыкаются на землю, типа /res или /turbo, можете повесить на них любые такие кнопки

  2. #252
    Master Аватар для xolod
    Регистрация
    01.02.2010
    Адрес
    Москва
    Сообщений
    743
    Спасибо Благодарностей отдано 
    157
    Спасибо Благодарностей получено 
    174
    Поблагодарили
    86 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    Продублирую еще раз свои прошивки
    Прошил вашу прошивку и исправил Fuse и все заработало.
    Важно иметь хороший инструмент: Очень рекомендую программатор MiniPro TL866! Прошивает все, еще тестирует логику!

  3. #253
    Member Аватар для djspawn
    Регистрация
    05.10.2008
    Адрес
    Брест, Беларусь
    Сообщений
    122
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Добрый день!

    РАЗОБРАЛСЯ, rdfe к номеру три на рисунке ниже, поменял несколько атмег и кварцев на 24 МГц - теперь работает как часы.

    Собрал данную схему от EvgenRU. Но подключить к Пентагон 128к так и не получилось.
    Клавиатру в начале один раз мигает, после чего включается нум-лок и скролл-лок.
    Если подключать /RDFE от DD49.1 2нг., то проходит инициализация но потом не работает ресет по клавише принт-скрин и не действуют светодиоды.
    Пробовал делать схему формирования /рдфе на логическом элементе ЛЛ1, но результата не дало.
    Возможно нужно убрать диоды и резисторы?

    Далее привожу схему вариантов подключения:



    П.С. Схема завелась только на одном экземпляре кварца 24МГц, на 16, 20, 27 не заработало, прошивки на каждый кварц своя. Atmega8A - DIP корпус.

    - - - Добавлено - - -

    Цитата Сообщение от xolod Посмотреть сообщение
    Прошил вашу прошивку и исправил Fuse и все заработало.
    Важно иметь хороший инструмент: Очень рекомендую программатор MiniPro TL866! Прошивает все, еще тестирует логику!
    Если не секрет, то какие фьюзы исправили?
    Последний раз редактировалось djspawn; 30.04.2017 в 21:35.
    Pentagon 128 mod.2014 (upgraded to 1024K)+TURBO+FDD3.5+MultiROM+TurboSound+StereoCovo x+NemoIDE
    ZX-Evolution rev.C White+NeoGS+AYX-32+HDD+2xFDD3.5+FDD5.25+ZiFi
    Байт 128К+TR-DOS+YM+TURBO+FDD5.25
    ReVerSE-U16 Rev.C
    Scorpion ZS-256
    STM32 AY Player
    AY AVR Player

  4. #254
    Master Аватар для xolod
    Регистрация
    01.02.2010
    Адрес
    Москва
    Сообщений
    743
    Спасибо Благодарностей отдано 
    157
    Спасибо Благодарностей получено 
    174
    Поблагодарили
    86 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если не секрет, то какие фьюзы исправили?
    На Atmega88
    lfuse:w:0xEE:m -U hfuse:w:0xD5:m

  5. #255
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я тут опробовал еще такой вариант, вроде как даже стабильнее работает
    Код:
    INT0_Handler:
    	in	YL,PinD		; PinD -> YL receive data from bus							; 1 cycle
    	
    	// ------- 2 cycle both -------------
    	sbic	PinC,0x03	; if (PinC.3=0) skip next line (IF KA10=0)				; 1/2 cycle, 2 byte instruction
    	bld 	YL,2		; move bit 3 of port C to bit 2 of data from port D		; 1 cycle, 2 byte instruction
    	// ----------------------------------
    
    	sbic	PinD,0x02	;if PinD.2=0 skip rjmp
    	rjmp	release_bus	; release data bus if no kbd interrupt
    
    
    	ldd	r20,Y+0x00	; put data to r20 from SRAM key table at 0x100+YL			; 2 cycles, 4 byte instruction
    	
    	//4+5 cycles before set data on port FE
    	out DDRB,r20																; 1 cycle, 2 byte instruction
    	reti																		; 4 cycles
    
    release_bus:
    	out DDRB,CONST00	; turn data bus to HI-Z state							; 1 cycle, 2 byte instruction
    	reti																		; 4 cycles
    и в _RESET нужно поменять
    Код:
    	//ldi r16,ISC01		; falling edge int 0
    	ldi r16,ISC00		; any logical change on int 0

  6. #256
    Junior Аватар для RW9UAO
    Регистрация
    19.07.2017
    Адрес
    г. Кемерово
    Сообщений
    19
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    привет.
    повторил вариант контроллера на мега328р 27мгц от внешнего генератора. компутер - ленинград2. не работает.
    клавиатура и джойстик в моем ленинграде опрашиваются через мультиплексоры КП11, выборка клава-джой сделана с шины адреса А5. выборка-чтение мультиплексора сделано из А0 и А5 диодным ИЛИ, IORQ и RD через ЛЛ1. вижу 8 четких импульсов.
    подключал в разъем клавиатуры, шину адреса после диодов подтягивал на +5в резисторами. не работает, некрасивый сигнал на входе мультиплексора, подтянул на +5в. все красиво. не работает.
    брал шину адреса от процессора - не работает.
    брал шину адреса и данных от процессора - не работает.
    засинхронизировался по чтению порта клавы, на втором канале осц смотрю, что происходит на шине данных. после falling edge через примерно 350-400ns появляется низкий уровень от атмеги. я решил, что это долго. поставил генератор на 32мгц. ничего не изменилось особо. не работает.
    мультиплексор родной клавиатуры особо не мешает появлению низкого уровня от атмеги. на всякий случай оторвал RDFE от него и посадил на лог 1. теперь мультик точно не мешает. не работает.
    собрал сигнал чтения из А0, IORQ и RD через ЛЛ1. не работает.
    обратил внимание, что при нажатии на кнопку механической клавиатуры в штатном режиме лог 0 на шине данных появляется только в одном из 8 импульсов чтения. после этого импульса следующий приходит с некоторой задержкой, это отрабатывает процедура чтения. от атмеги лог 0 появляется в каждом импульсе RDFE и самих импульсов может быть не 8, а 6 или 4 или 2.
    к сожалению только одна из 3х клавиатур вообще завелась с этим контроллером, т.е. проходит инит и загораются 2 лампочки. реагирует на numlock, capslock.
    мужики, куда копать?

  7. #256
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #257
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если на NumLock CapsLock реагирует, значит контроллер работает, подтягивать ничего не нужно, нужно проверить правильно ли ШД/ША подключены и попробовать прошивки под другие частоты, вроде как уже на предыдущих страницах у кого-то заработало с прошивкой под другую частоту. Тут как лотерея

  9. #258
    Junior Аватар для RW9UAO
    Регистрация
    19.07.2017
    Адрес
    г. Кемерово
    Сообщений
    19
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    перепробовал все прошивки, пересобирал сам с разными к-тами. не летит.
    пока отложил, может еще какие мысли появятся. или придет клавиатура от "корвета".

  10. #259
    Veteran
    Регистрация
    15.07.2009
    Адрес
    Череповец
    Сообщений
    1,747
    Спасибо Благодарностей отдано 
    149
    Спасибо Благодарностей получено 
    53
    Поблагодарили
    39 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Воспользовался куском прошивки для зажигания индикаторов в другом контроллере (DATA - PD2, CLOCK - PD3, Atmega48), но почему-то индикаторы не реагируют никак. Что я делаю не так?


    Определения

    Код:
    .def    ps2_parity_cnt    = r13         ; счетчик единиц в байте с PS/2 клавиатуры для контроля четности
    .def    temp              = r16         ; временный регистр для основной программы и подпрограмм
    .def    cnt               = r20         ; регистр для счетчиков циклов
    .def    KBD_IND	 	 = r23         ; состояние индикаторов клавиатуры
    [свернуть]


    Подпрограмма

    Код:
    ; Set keyboard staus indicators
    KBD_SEND_INDICATORS:
    	ldi		temp,0xED		; keyboard command Set status indicators
    	rcall		KBD_SEND		; subroutine send command to keyboard
    	mov		temp,KBD_IND	; indicatoes value
    ;---------------------------------------------------------------------------------------
    ; Запись байта в клавиатуру
    ;---------------------------------------------------------------------------------------
    KBD_SEND:
    	rcall		KBD_SEND_BYTE
    	ret
    	
    ;-------------------------------------------------------------------------------------------
    KBD_SEND_BYTE:
    	sbi		DDRD,0x03			; set CLK pin as output (=0)
    	rcall		Delay100mS			; Wait 100ms
    	sbi		DDRD,0x02			; 1->DDRD.2 DATA (=0)
    	rcall		Delay5mS			; 5ms
    	cbi		DDRD,0x03			; set CLK pin as input (=1)
    	rcall		Delay100uS
    ; начинается тактирование CLK от клавиатуры
    	rcall		WAIT_CLK0
    	rcall		Delay100uS
    ; цикл отправки 8 бит данных -------------------------------
    	ldi		cnt,0x08
    	clr		ps2_parity_cnt
    	rjmp		L02A5
    
    READ_LOOP:
    	rcall		WAIT_CLK0
    L02A5:	
    	ror		temp 		; KBD_BYTE>> (сдвиг вправо, выдвинутый бит помещается в C)
    	brcs		SEND_1			; если C=1
    
    ;Отправка бита = 0
    	sbi		DDRD,0x02		; 1->DDRD.2 (в режим записи, на пине 0, т.к. PortD.2 = 0)
    	rjmp		L02AB
    
    SEND_1:	; Отправка бита = 1
    	cbi		DDRD,0x02		; 0->DDRD.2 (в режим чтения) вроде как отправляется 1
    	inc		ps2_parity_cnt			; вычисление бита четности
    
    L02AB:
    	rcall		WAIT_CLK1
    	dec		cnt
    	brne		READ_LOOP
    ; конец цикла отправки ---------------------------------------
    
    ; отправка бита четности
    	rcall		WAIT_CLK0
    	cbi		DDRD,0x02
    	sbrc		ps2_parity_cnt,0x00
    	sbi		DDRD,0x02
    	rcall		WAIT_CLK1
    
    ; стоповый бит 
    	rcall		WAIT_CLK0
    	cbi		DDRD,0x02
    	rcall		WAIT_CLK1
    
    ; ACK
    	rcall		WAIT_CLK0
    	rcall		WAIT_CLK1
    	ret
    ;---------------------------------------------------------------------------------------
    
    ;----------------------------------------------------------------------------------------
    ; Подпрограммы ожидания смены уровня CLK
    ;
    ; Проверка переполнения таймера и CLK: цикл пока таймер не переполнится или CLK не станет равно 1
    ; Если таймер переполнился, значит таймаут и бит не принят
    WAIT_CLK1:
    	sbis		PinD,0x03			; CLK=1 пропускаем jmp
    	rjmp		WAIT_CLK1			; loop
    	ret
    
    ; Проверка переполнения таймера и CLK: цикл пока таймер не переполнится или CLK не станет равно 0
    WAIT_CLK0:
    	sbic		PinD,0x03				; CLK=0 пропускаем jmp
    	rjmp		WAIT_CLK0
    	ret
    [свернуть]


    Инициализация

    Код:
    ; init indicators
    	ldi		KBD_IND,0				; 0 = все погашены
    	rcall		KBD_SEND_INDICATORS
    [свернуть]

    Вызов

    Код:
    	ldi		temp,0x02
    	eor		KBD_IND,temp		; XOR with indicator value for NumLock
    	rcall		KBD_SEND_INDICATORS
    [свернуть]
    ZX-Evo Rev. C4 (Double-config) / VDAC2 / ZiFi / NeoGS / ZXM-Soundcard Extreme

  11. #260
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А инициализация клавиатуры сделана в начале? Плюс, нужно учитывать привязку к частоте кварца
    Последний раз редактировалось EvgenRU; 30.09.2017 в 16:01.

Страница 26 из 53 ПерваяПервая ... 222324252627282930 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 112
    Последнее: 03.08.2020, 16:24
  2. Ответов: 3
    Последнее: 16.10.2010, 14:04
  3. Продам плату "Пентагон-128K" + примочки
    от Atari в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 20.03.2010, 13:30
  4. Продам печатные платы: от "Львов-48" и клавиатуры
    от Tim0xA в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 27.12.2008, 16:41
  5. Ответов: 3
    Последнее: 23.07.2007, 19:10

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •