collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: PIC_VGA  (Lida 12168 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.733
  • 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.733
  • 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: 798
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.733
  • 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.947
  • 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.733
  • 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.531
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: 577
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.947
  • 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.733
  • 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.947
  • 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: 2.189
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