насчет CPLD как выяснилось в таком же корпусе есть чип с большим количеством ячеек - не намного ячейки на 32 всего - но ето тоже чтото уже.
EPM7160S
Usable Gates 3,200
Macrocells 160
Maximum User I/O Pins 100
IO pins 84-Pin PLCC 64
вот только ног доступных на 4 меньше![]()
Последний раз редактировалось balu_dark; 14.02.2008 в 14:04.
Уф, тут уже вовсю модифицирует =)
У меня вопрос попроще. Ну как диод, показывающий питание припаять - совершенно понятно.
А можно ли как-то индикатор обмена с флешкой прикрутить ? Ну как на кардридере например.
Заранее спасибо.
Ну раз товарищ syd не обижается, вставлю и я свои 5 копеек :-)
Помнится давно, когда у меня был ещё "нормальный железный спек", у меня была расширенная клавиатура. Это где всякие служебные команды были вынесены на отдельные кнопки.
Клава PC имеет целую кучу кнопочек. Вот и захотелось сделать из нее что то подобное.
Дописал немного программу для AVR. Наклеил наклейки. Получилось прикольно.
Добавил кнопки:
Edit,Graphics,CapsLock,ExtMode,
+ - / * ; " , . :
Понравилось от denisv - Reset на "power" и смену ромов на "PrintScreen".
Можно ещё на ESC CS+BREAKSPACE заделать.
В key_matrix.c размер массива увеличиваем с 72 до 73 и в конце перед элементом со всеми нулями добавляем
{ 0, 0x76, 0x0, 0x1, 0x7, 0x1 }
denisv, я правильно понял, что беру ТЕКУЩИЙ исходник с первой страницы, подкладываю эти патчи (плюс патч для ESC), собираю, и должно быть счастье с A4Tech клавиатурой ?
Да, все правильно. Только обратите внимание - в моё патче ROM4_PRESENT установлен в 1, а если 4-ая страница FLASH-а пустая, при переключении после ROM-турбо спек подвиснет и надо будет ещё раз переключить ром, либо просто ROM4_PRESENT установить в 0.
Да и ещё, после проделывания вышеперечисленных действий желательно в main.c
подправить размер массива key_matrix:
extern byte PROGMEM key_matrix[59][6];
59 изменить на 73.
Совсем закопался в сигналах, тупо не могу понять.
Суть вот в чем (привожу кусок кода VHDL из прошивки CPLD):
TRDOS_ENTRY <= '1' when M1 = '0' and MREQ = '0' and IOREQ = '1' and VideoRead = '1' and (A15 = '0' and A14 = '0' and VA(13 downto 8) = "111101") else '0';
Данный сигнал выведен наружу в CPLD-шке:
По идее когда процессор производит исполняет команду с адресов 0x3d00-0x3dff, этот сигнал должен быть в единице, и в 0 в противном случае. На деле же получается, что сигнал периодически устанавливается в 1, даже когда команды оттуда не выбираются.
Подскажите это я туплю или так и должно быть?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)