Параллельный адаптер порта LPT на ПЛИС Altera


         

После программирования ПЛИС, остается только


После программирования ПЛИС, остается только проверить работу адаптера. Для этого на выходы шины Out удобно подключить светодиоды, не забыв про нагрузочные резисторы, а на шину In подавать сигналы c тумблеров или кнопок, подключенных к Vcc или GND. Для удобства приведу назначение контактов разъема Centronics на стороне принтера.

  















































#SLCT_IN


width="105">

#STROBE


width="66">

D0


width="48">

D1


width="71">

D2


width="71">

D3


width="71">

D4


width="71">

D5


width="71">

D6


width="71">

D7



36



1



2



3



4



5



6



7



8



9



Чтобы проверить правильность функционирования устройства, можно воспользоваться следующим алгоритмом. Цикл обмена с портом состоит из двух фаз: фаза адреса и фаза данных. Во время фазы данных происходит настройка адаптера на режим работы (генерация сигналов cs1 или cs2). Во время фазы данный происходит ввод/вывод данных. Если необходимо выполнить несколько циклов чтения/записи подряд, то можно выполнить только одну фазу адреса.

Текст программы.

.MODEL TINY

.CODE

       ORG 100H

START:

;ввод данных (фаза адреса)

       mov dx,37Ah

       mov al,0f8h

       out dx,al

;ввод данных (фаза данных)

       mov dx,378h

       in     al,dx

       mov ah,al

;вывод данных (фаза адреса)

       mov dx,37Ah

       mov al,00fh

       out dx,al

;ввод данных (фаза данных)

       mov dx,378h

       mov al,ah

       out dx,al

       jmp START

       ret

END       START

В заключении можно отметить, что данная схема использует только 26% площади кристалла. Кстати, я заметил интересную особенность: чем больше используется выводов, тем больше занимаемая площадь, т.е.  если сейчас добавить дополнительные блоки обработки входных/выходных сигналов, при этом, оставив неизменным число использованных выводов, то процент использованной площади изменится незначительно. При высоком проценте заполнения уже невозможно свободно назначить выводы микросхемы (MAX+PLUS II не может развести схему).


Содержание  Назад