collapse

* Links de Robótica

* Posts Recentes

RN42 e TP-Link MR3020 por doiga
[Hoje às 19:22]


Ajuda Projecto IR / RF por senso
[Hoje às 13:15]


Recomendação de um opamp para um DAC r2r por Njay
[Hoje às 12:33]


Ideias para construir um quadrúpede simples por dropes
[Ontem às 22:43]


Ajuda com TRIAC por senso
[17 de Novembro de 2017, 18:00]


TV LG White Screen por almamater
[15 de Novembro de 2017, 08:37]


Pergunta sobre prototipagem ( Pesquisa ) por luisjustin
[14 de Novembro de 2017, 23:22]


Medir Agua que está no Poço por Njay
[14 de Novembro de 2017, 13:28]


Amplificador audio por beirao
[12 de Novembro de 2017, 23:43]


Power_OK Enermax por edeweld
[12 de Novembro de 2017, 17:15]

Autor Tópico: PIC_VGA  (Lida 4025 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline nunosilvarocha

  • Mini Robot
  • *
  • Mensagens: 337
PIC_VGA
« em: 30 de Setembro de 2014, 11:14 »
Preciso mostrar as corres RGB e a mistura delas num ecrã por VGA.

A ideia é ligar a ficha VGA a um Pic 18f4550 e conseguir reproduzir as cores numa resolução 800x600.
Já procurei no google, existem projetos muito parecidos, mas não é bem o que quero.

Depois quero poder mudar a cor através do USART.

Seria bom conseguir ainda mostrar as cores RGB e a sua mistura numa imagem composta por listas/barras de cores.

Alguém já fez algo semelhante?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.402
  • Helpdesk do sitio
Re: PIC_VGA
« Responder #1 em: 30 de Setembro de 2014, 11:24 »
Com AVR's conheço alguns projectos desses, mas penso que nenhum é capaz de gerar VGA com uma resolução de 800x600, se é para meter um ecrã cheio de cores e pouco mais, para quê tanta resolução?
Avr fanboy

Offline nunosilvarocha

  • Mini Robot
  • *
  • Mensagens: 337
Re: PIC_VGA
« Responder #2 em: 30 de Setembro de 2014, 11:27 »
Com AVR's conheço alguns projectos desses, mas penso que nenhum é capaz de gerar VGA com uma resolução de 800x600, se é para meter um ecrã cheio de cores e pouco mais, para quê tanta resolução?

Também já vi alguns projetos com AVR, mas não estou muito à vontade com AVR
Que resolução aconselhas? Não conheces nenhum protejo do género com PIC?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.402
  • Helpdesk do sitio
Re: PIC_VGA
« Responder #3 em: 30 de Setembro de 2014, 11:40 »
Em PIC provavelmente terás de saltar para um dsPIC ou PIC24, um 18f é provavelmente demasiado lento.
Avr fanboy

Offline msr

  • Mini Robot
  • *
  • Mensagens: 795
Re: PIC_VGA
« Responder #4 em: 30 de Setembro de 2014, 11:41 »
Com AVR ou PIC é irrelevante, usas naturalmente o que te for mais familiar.
O que precisas de saber é como gerar os sinais VGA e depois implementar isso no microcontrolador:
http://lmgtfy.com/?q=generate+vga+signals

Mais fácil e educativo do que ires olhar para código já feito :)

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.402
  • Helpdesk do sitio
Re: PIC_VGA
« Responder #5 em: 30 de Setembro de 2014, 11:44 »
Tipicamente é tudo em assembly, dado que tens de ser cycle accurate, a imprecisão de tempo de chamada a uma interrupção é fatal, nos AVR's dependendo de onde estás saltar para uma ISR demora 3 ou 4 ciclos, basta isso para te chatear a gerar VGA ou video composto.
É simplesmente uma questão de instruções por segundo, dado que o PIC corre no máximo a 48Mhz, e que internamente divide o clock por 4 devido á sua arquitectura, diria ser lento demais.
Avr fanboy

Offline nunosilvarocha

  • Mini Robot
  • *
  • Mensagens: 337
Re: PIC_VGA
« Responder #6 em: 30 de Setembro de 2014, 12:58 »
Com AVR ou PIC é irrelevante, usas naturalmente o que te for mais familiar.
O que precisas de saber é como gerar os sinais VGA e depois implementar isso no microcontrolador:
http://lmgtfy.com/?q=generate+vga+signals

Mais fácil e educativo do que ires olhar para código já feito :)

Esse link de 'ajuda' eu já utilizei.
Neste momento estou com dificuldades do vertical front porch, pois estão a aparecer umas falhas no lado esquerdo do ecrã e a cor não aparece totalmente perfeita.

Por isso estava a tentar encontrar algum exemplo para solucionar o meu problema.

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.166
  • NERD!
Re: PIC_VGA
« Responder #7 em: 30 de Setembro de 2014, 14:45 »
Se é do lado esquerdo onde começa o varrimento, deves estar com jitter na geração do sync.
Como disse o senso, tens de ser preciso ao ciclo e só com assembly é que te safas.
Quanto às cores não estarem corretas, confirma se os níveis estão corretos nos sinais RGB.


Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.402
  • Helpdesk do sitio
Re: PIC_VGA
« Responder #8 em: 30 de Setembro de 2014, 16:52 »
Como é que estás a gerar a as cores, dac r-2r discreta?
Não esperes muito mais que 6-7 bits de resolução efectiva.
Avr fanboy

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.493
Re: PIC_VGA
« Responder #9 em: 30 de Setembro de 2014, 20:58 »
Eu ja fiz isso mas foi numa FPGA, numa cadeira de licenciatura, ha uns tres anos...

Pelo que me lembro, o varrimento VGA é a 25MHz, certo? Se fores para um PIC, utiliza um que vá até 64MHz. Tipicamente os das séries "K" podes utilizar um cristal de 16Mhz e depois fazes PPL para os 64MHz (18F46k22 por exemplo)
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline Tech_JA

  • Mini Robot
  • *
  • Mensagens: 539
Re: PIC_VGA
« Responder #10 em: 01 de Outubro de 2014, 07:15 »
encontrei este projecto na net, pode ser que ajude para a geração dos sincronismos:
http://tinyvga.com/pic-vga

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.166
  • NERD!
Re: PIC_VGA
« Responder #11 em: 01 de Outubro de 2014, 10:07 »
Eu ja fiz isso mas foi numa FPGA, numa cadeira de licenciatura, ha uns tres anos...

Pelo que me lembro, o varrimento VGA é a 25MHz, certo? Se fores para um PIC, utiliza um que vá até 64MHz. Tipicamente os das séries "K" podes utilizar um cristal de 16Mhz e depois fazes PPL para os 64MHz (18F46k22 por exemplo)

25Mhz é o pixel clock (1/duração do pixel). Isso é um exagero se só quer gerar barras (que tem vários pixeis de largura). Se usar barras de 25 pixeis de largura , pode baixar o pixel clock para 1MHZ e ainda consegue desenhar 25 barras.
Tens exemplos de pessoal a gerar VGA com a velhinha PIC 16f84 a 4MHz (4 ciclos por instrução, 8 para  jumps): http://tinyvga.com/pic-vga, mas quase não sobram instruções para pôr um led a piscar, pelo que algo mais recente com um clock maior não é má ideia ;)
« Última modificação: 01 de Outubro de 2014, 10:17 por jm_araujo »

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.402
  • Helpdesk do sitio
Re: PIC_VGA
« Responder #12 em: 01 de Outubro de 2014, 15:17 »
E tens o outro extremo:
http://www.linusakesson.net/scene/craft/

Avr a gerar som e video VGA, demoscene porn  ;D
Avr fanboy

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.166
  • NERD!
Re: PIC_VGA
« Responder #13 em: 01 de Outubro de 2014, 16:11 »
Muito doido... mas vindo da demoscene não é de admirar. Esses gajos são gurus da otimização.
Houve uma altura que seguia e as demos de 4k(bytes) eram alucinantes ( , 3D todo feito em SW, as graficas 3D ainda estavam a começar) , e hoje fazem-se coisas doidas com 256bytes e tamanhos do género:
http://www.theverge.com/2013/12/1/5162414/p01-demo-fits-minecraft-flyby-into-256-bytes-of-data

E há quem comece a olhar para os 16 bytes  :o
http://countercomplex.blogspot.com/2011/06/16-byte-frontier-extreme-results-from.html?_sm_au_=i5FsvZLqLnS44SRs

Offline dropes

  • Mini Robot
  • *
  • Mensagens: 1.930
Re: PIC_VGA
« Responder #14 em: 02 de Outubro de 2014, 00:19 »
Conheço o projecto Uzebox à uns anos e o atmega644 funciona a 8bits com som e imagem, de vez em quando lá aparece um jogo novo.
Também existem uns vídeos pelo youtube com essa "consola"
http://belogic.com/uzebox/index.asp