Escolar Documentos
Profissional Documentos
Cultura Documentos
construdo por Grant Searle, que por sua vez baseado em um design anterior da Daryl
Rictor .
Esta abordagem teve duas vantagens: requer muito menos circuitos do que o nosso
circuito TTL previsto e foi A oportunidade para eu ter alguma experincia com
AVR-processadores. A idia desta interface de vdeo brilhante: gere todo o tempo no no
hardware, o que pesado devido estranha coluna e s contagens de linhas, mas no
software que est sendo executado em um processador AVR. Usando um processador AVR
suficientemente grande, existe uma RAM suficiente no chip para a RAM de vdeo. Portanto,
uma configurao muito bsica exigiria apenas o processador AVR, um registro de
deslocamento de oito bits, um oscilador de 16 MHz e dois resistores para gerar o sinal de
vdeo a partir de um sinal de sincronizao TTL gerado pelo processador e a sada TTL do
registro de deslocamento.
DESEMPENHO
Os nmeros de desempenho de tempo real so mostrados aqui (tela de 80
caracteres x 25 linhas - velocidades muito semelhantes para todos os modos)
Caso de teste PAL PAL NTSC NTSC
interface Interface 2 fios Interface interface 2 fios
de 8 bits PAL 4 bit NTSC de de 4 bits
8 bits
Notas: o
desempenho de 2 fios para o relgio de 400KHz, a menos que indicado. Isso pode
ser melhorado significativamente ao aumentar a velocidade do relgio de 2 fios.
O desempenho do PAL superior ao NTSC porque uma proporo maior do tempo
livre para PAL do que o NTSC, devido s taxas de atualizao da tela.
Cada conjunto de pixels grficos / reset requer 3 bytes para serem enviados, razo
pela qual a transferncia de 8 bits visivelmente mais rpida do que 2 fios.
Condies de teste:
Controlador de host: ATmega88 executando a 16MHz (desempenho idntico ao
Arduino Uno ou Nano, etc.)
Interface de 2 fios: velocidade de clock padro de 400KHz, a menos que
especificado.
Temporizao: Externamente cronometrado eletronicamente usando um
temporizador universal * Black * Star Apollo 100.
Para ilustrar a fiao para as trs opes de interface, veja abaixo ...
8 bits (adequado para conectar a exibio a microcontroladores ou
microprocessadores usando 10 pinos):
4 bits (adequado para conectar a exibio a microcontroladores ou
microprocessadores usando 6 pinos):
PROTTIPO
As duas partes do esquema acima (interface de 8 bits, modo PAL) so construdas
como mostrado aqui. Um resistor liga cada reincio energia porque eu programa
os chips no circuito.
Nota: esta imagem para a verso 2.1. Mudanas de fiao menores para a verso 2.2
O sistema que exigiu a interface (meu design CP / M) mostrado direita. As
conexes TX, RX, / RTS e de energia so feitas entre a interface e o computador
host.
A fiao do barramento de dados entre a tela e as partes da interface do circuito
pode ser vista em azul, aperto de mo entre elas em laranja.
Para interagir a exibio com um microcontrolador sem o teclado ou a interface
serial, requer apenas a parte da mo esquerda. O controlador precisa de 4 ou 8
pinos de sada para os dados, um pino de sada para o "sinal de dados disponveis"
e um pino de entrada para o pino de "confirmao".
DETALHES DE INTERFACE
Transferncia de dados entre o host (ou interface) e os controladores de
exibio (aplicvel ao modo de 4 bits ou 8 bits).
Os dois processadores devem poder se comunicar entre si e devem aguardar o
outro processador conforme necessrio.
A transferncia de dados feita atravs de uma porta paralela de 4 ou 8 bits.
O aperto de mo entre os processadores alcanado com duas linhas - a linha
"Dados disponveis" e a linha "Confirmar".
O processador serial / teclado usa as duas linhas de handshake para ver se os
dados podem ser enviados para a tela.
O processador de exibio usa as duas linhas de handshake para ver se os dados
foram enviados .
O aperto de mo o mesmo para transferncias de 4 ou 8 bits, embora o
significado seja ligeiramente diferente ...
Transferncias de 8 bits
Controlador de host:
o host (processador serial / teclado) aguarda at que a linha "Confirmar"
corresponda linha "Dados disponveis". Uma vez que o faz, os dados so
colocados na porta de sada e a linha "Dados disponveis" invertida (ou seja, 0 a 1
ou 1 a 0).
Processador de exibio:
se o "Dados disponveis" NO coincida com a linha "Reconhecer", os dados foram
enviados para que a entrada de dados seja lida e a linha "Reconhecer" ativada.
ONCE DATA FOI LEI. Portanto, uma vez que a transferncia de dados esteja
completa, as linhas "Confirmar" e "Dados disponveis" tero o mesmo valor.
Esses dados so ento processados.
Transferncias de 4 bits
Controlador de host:
(O host ( processador serial / teclado ) tem AVAIL definido como baixo quando
inicializado. Isso permanecer baixo quando inativo no modo de 4 bits)
Espera at que a linha "Confirmar" corresponda linha "Dados Disponveis" (LOW).
Uma vez que o faz, os ALTO 4 BITS dos dados so colocados na porta de sada e a
linha "Dados Disponveis" est configurada ALTA.
Espera at que a linha "Confirmar" corresponda linha "Dados Disponveis" (HIGH).
Uma vez que o faz, o LOW 4 BITS dos dados colocado na porta de sada e a linha
"Dados disponveis" est definida como BAIXA.
Processador de exibio:
se o "Dados disponveis" NO coincida com a linha "Reconhecer", os dados foram
enviados para que a entrada de dados seja lida e a linha "Confirmar" seja ativada
ONCE DATA IS READ. Se o AVAIL estiver alto, os 4 bits lidos so armazenados
nos 4 bits altos de um byte de buffer, mas no processados (porque a transferncia
de dados ainda no est completa). Se o AVAIL estiver baixo, os 4 bits lidos so
armazenados nos 4 bits baixos de um byte de buffer que, em seguida, completa a
transferncia de bytes. Este completo valor de 8 bits processado.
Para demonstrar isso, consulte o seguinte:
A crystal (XT) clock (must be rail to rail for the display controller)
No watchdog timer
No clock divider
JTAG disabled
OCD disabled
No boot program
Deve usar o relgio XT rail-to-rail para o processador de vdeo, pois isso tambm
acende o 74HCT166 (conforme permitido na folha de dados ATMEL).
As configuraes de fusvel adequadas para os dois controladores so as seguintes
(consulte as folhas de dados para informaes)
The 328P display chip must be set to rail-to-rail crystal operation, so the fuse bytes for that
would be:
Low: 0xF7 (ie. CKSEL3 = 0)
High: 0xD9
Extended: 0xFF
Remova o ";" Comente caracteres do incio das linhas "ldi" e "mov" e configure os
bits conforme necessrio. Isso ir substituir completamente os resistores pull-down
para que nenhum deles seja necessrio.
Ento, para imprimir "Ol" na coluna 18, a linha 10 no monitor em BASIC seria a seguinte:
IMPRIMIR CHR $ (14); CHR $ (17); CHR $ (15); CHR $ (9); "OL"
Algumas seqncias de escape ANSI / VT100 foram implementadas para permitir que
programas como o Wordstar etc. sejam executados na mquina CPM. Os implementados
so mostrados abaixo (Esc = caractere 1B Hex, 27 decimal):
O exemplo acima tambm pode ser implementado usando seqncias de escape em vez disso ...
IMPRIMIR CHR $ (27); "[18; 10H"; "OL"
A fonte de caracteres no a mesma fornecida por Daryl. Recriei as fontes completas e negritas de
um bitmap de 8x8 caracteres para uma exibio de PC CGA (usando um pequeno programa VB). A
maioria parece ser idntica, ento eu suponho que usamos uma fonte similar. No entanto, eu inclu
todos os caracteres, incluindo aqueles normalmente reservados para cdigos de controle.
Os cdigos ASCII de 00 a 1F (e 7F) so reservados para o controle. No entanto, o mapa de
caracteres tambm possui caracteres de exibio com esses valores. Esses caracteres podem ser
exibidos enviando o cdigo 1A (26 decimal) antes de enviar o cdigo para o personagem. Este
prefixo diz ao processador de exibio para armazenar o personagem real na tela e no trat-lo
como um cdigo de controle.
por exemplo. Em BASIC, para exibir o smbolo do corao (em 03) voc pode usar o seguinte ...
IMPRIMIR CHR $ (26); CHR $ (3)
GRFICOS
Os grficos 160max bitmapped completos so suportados. Duas funes so includas para definir e
redefinir os pixels.
Sempre que um comando de pixel ou reset de pixel emitido, as coordenadas X / Y determinam qual
linha de exibio precisa ser usada para grficos. Isso automtico, portanto, no necessrio
definir atributos de linha grfica. Se a linha estiver configurada para o texto, a linha ser
automaticamente apagada antes de configurar o pixel.
As coordenadas de pixels so X = 0..159, Y = 0..100
Parte de uma tela mostrada aqui:
Ento, Y = 0..3 ocupar o espao onde a linha de texto superior normalmente apareceria, 4..7 a
prxima linha de exibio, etc. A linha horizontal completa se tornar modo grfico.
Para definir um pixel, envie 0x05, X, Y como trs bytes.
Para redefinir um pixel, envie 0x06, X, Y como trs bytes.
Internamente, os grficos so mantidos como blocos de caracteres com cada bit atribudo da
seguinte forma
0 1
2 3
4 5
6 7
Assim, em vez de definir / redefinir pixel, o cursor pode ser posicionado na linha, o atributo ento
ajustado para 0x80 (grficos) e caracteres individuais enviados como seria feito para linhas de texto.
por exemplo. Um bloco com pixels 0,4,5 e 7 set seria 0b10110001, ou 0xB1
Certifique-se de que o cursor est desligado ou no est posicionado em uma linha grfica, caso
contrrio, os pixels piscaro onde o cursor est posicionado.
CONJUNTO DE CARACTERES
O conjunto de caracteres completo (mostrando PC CGA 80 char bold), exatamente como mostrado,
mostrado aqui:
Um close-up de uma exibio de exemplo (executado no meu computador CP / M projetado em casa
) em um monitor PAL CRT de tela verde mostrado aqui:
(Brilho voltado para que voc possa ver as linhas de digitalizao - fundo normalmente preto)