
Подключаем к ПЛИС клавиатуру PS/2 и ПК по интерфейсу RS232
JackKatch 9 минут назад Подключаем к ПЛИС клавиатуру PS/2 и ПК по интерфейсу RS232 Простой 5 мин 239 FPGA * Не большой пример для начинающих ПЛИСоводов, как подключить к ПЛИС (ALTERA Cyclon 4) клавиатуру с интерфейсом...
Значимый прорыв формирует отрасль ИИ: JackKatch 9 минут назад Подключаем к ПЛИС клавиатуру PS/2 и ПК по интерфейсу RS232 Простой 5 мин 239 FPGA * Не большой пример для начинающих ПЛИСоводов, как подключить к ПЛИС (ALTERA Cyclon 4) клавиатуру с интерфейсом PS/2, а так же компьютер по интерфейсу RS232 (он же COM-порт). Начнём с главного, необходимо обеспечить правильное аппаратное подключение, что бы ничего не спалить. Мне в этом отношении повезло, наши друзья китайцы, всё сделали за меня.
Далее привожу схему, которую вам следует всё же проверить, так как это как раз то место, где вас может ждать сюрприз (может ещё где то, но не фатальный). Так как я сам начинающий в этом вопросе, будьте внимательны. Схема сопряжения клавиатуры и микросхемы ПЛИС.
Технические детали
В настройках программы Quartus 2, настроить соответствующие ножки микросхемы как 3. Программа выдаёт предупреждение, но в документации указано, что при таком конфигурации (пишу по памяти) ограничительные диоды подключены, то есть всё правильно. Точно так же настраиваются ножки микросхемы идущие на приёмопередатчик.
Сразу привожу схему для приёмопередатчика. (Смотрите документацию на ваши микросхемы и будьте внимательны. )Схема подключения приемопередатчика к ПЛИС.
Алгоритм работы устройства следующий. Принимаемые данные от клавиатуры записываются в буфер. Если заполнение буфера превышает некий предел, и все данные из буфера прочитаны, то начинаем заполнение буфера с начала.
Отраслевые последствия
По готовности данных инициируем отправку этих данных в компьютер, где в любой программе, например гипертерминал или Геркулес, можно увидеть принятый от клавиатуры скан-код. Устройство работает на частоте 50МГц, приёмопередатчик настроен на частоту обмена 19200 бит/сек. Код достаточно простой и короткий, с комментариями.
Кстати да, код писал не я, а Никлаус Вирт (см. проект Оберон), я позаимствовал для обучения. Так же код для кнопки я взял из видео-уроков ютуб-канала ПЛИСоводство.
Схему для кнопки не привожу, этого добра хватает в интернете. Да и кнопка эта (сброс) не очень нужна. `timescale 1ns / 1ps /* Модуль для проверки подключения клавиатуры и ПК по интерфейсу RS232 */ module KlMon((* chip_pin = "114" *) output TxD, (* chip_pin = "115" *) input RxD, // не используется (* chip_pin = "25" *) input Res, (* chip_pin = "23" *) input clk, // 50МГц (* chip_pin = "119" *) input wire PS2C, // клавиатура (* chip_pin = "120" *) input wire PS2D); wire dataTx, dataKbd, eventKbd; wire startTx, rdyTx, rdyKbd, doneKbd, rst; reg temp; reg Q0, Q1, fRdyKbd, fTx; // синхронизация и детектор фронта assign eventKbd = ~Q1 & Q0; assign dataTx = temp; assign doneKbd = fRdyKbd; /* Начнём передачу, если передатчик готов и есть данные.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





