-
03/10/2006 - 11h01 zapoutix Signal PAL
salut a tous,
j'aimerais generer un signal PAL (ecran blanc pour commencer sur mon tunner TV) par le port composite.
j'ai trouve un site tres interessant a ce sujet http://www.rickard.gunee.com/project.../pic/howto.php
j'utilise a un PIC 16F84A a 4Mhz donc un cycle est egal a une microseconde.
J'ai repris le meme convertisseur numerique/analogique que le site cite precedement, et bien sur modifier le programme du pic pour un 4 Mhz. Code: list p=16f84A
#include "P16f84.inc"
__config _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
w equ 0
f equ 1
SYNC equ B'00000000'
BLACK equ b'00000001'
GREY equ b'00000010'
WHITE equ b'00000011'
_D equ h'12'
org 0x00
goto Main
org 0x04
goto Main
_2NOP macro
nop
nop
endm
_6NOP macro
nop
nop
nop
nop
nop
nop
endm
Main
bsf STATUS,5
movlw h'00'
movwf TRISB
bcf STATUS,5
Line
;;0
movlw SYNC ;
movwf PORTB ;2µs unused
_2NOP ;Start 4µs SYNC
movlw BLACK ;
movwf PORTB ;
_6NOP ;Start 8µs BlackLevel
;;12
movlw WHITE
movwf PORTB
;;14
_6NOP
;;20
_6NOP
_2NOP
_2NOP
;;30
_6NOP
_2NOP
_2NOP
;;40
_6NOP
_2NOP
_2NOP
;;50
_6NOP
_2NOP
_2NOP
;;60
_2NOP
goto Line
;;64
end donc voila le programme tres simple qui normalement devrait afficher un ecran blanc.
les 64 microsecondes sont bien prespectee.
alors mon probleme c'est que qand j'allume mon circuit l'ecran de mon tunner TV devient blanc (normal) mais que 0.5 seconde apres l'ecran perd la sycro ..., et si je debranche le le cable RCA et que je le rebranche, l'ecran devient blanc 0.5 seconds et paf plus de syncro ...
pour l'oscillation du pic j'utilise un Quartz 4Mhz.
quelqu'un a t'il une idee ?
Merci
Math
-
Poursuivez votre recherche
-
03/10/2006 - 11h06
Re : Signal PAL
Hello,
tu as sans doute activé le watchdog du PIC !
A+,
Bruno
-
03/10/2006 - 11h09 zapoutix
Re : Signal PAL
non, le watch dog est deactive ...
-
03/10/2006 - 11h17
Re : Signal PAL
Ok, je ne vois pas de synchro trame mais juste la synchro ligne ?
-
03/10/2006 - 11h20 zapoutix
Re : Signal PAL
oui, pour le moment je veux faire un truc tres simple.
y a un truc qui est "marrant" 'est que kand je pose mes doigts sur le quartz et que je les eleve, ca se remet a marcher .5 seconde..
-
03/10/2006 - 11h26
Re : Signal PAL
Ton téléviseur décroche en l'absence de synchro trame, il faut la générer si tu veux une image stable
-
03/10/2006 - 11h28 zapoutix
Re : Signal PAL
a non erreur de ma part c'est kand je decharge les condos de 27pF qui sont relier du qurtz a la masse
oki pour la syncro trame je vais voir ca .
j'utilise un tunner TV sur mon PC.
Merci
-
03/10/2006 - 12h56 f6bes
Re : Signal PAL
 Envoyé par zapoutix a non erreur de ma part c'est kand je decharge les condos de 27pF qui sont relier du qurtz a la masse
oki pour la syncro trame je vais voir ca  .
j'utilise un tunner TV sur mon PC.
Merci Bjr zapou....
Ben oui, tu supprimes TOUTE oscillation du qartz.
Forçément tout passe en rideau !!
Cordialement
"Bonjour" et "Merci" (pour ceux qui oublient!!) -
03/10/2006 - 14h39 jiherve
Re : Signal PAL
Bonjour
Comme Brunog l'as deja écrit pas de synchro trame , en plus il va falloir penser à l'entrelacement.
Mais de toute façon c'est condamné a l'echec en dehors d'images simplissimes et en N et B car je vois mal un pic generer les signaux de chrominance.
La porteuse couleur c'est 4,43Mhz et il faut moduler en phase, rien que du bonheur!
JR
-
03/10/2006 - 15h06 zapoutix
Re : Signal PAL
merci de vos response, pour le moment je ne cherche pas a faire une image complique,
juste un ecran blanc serait deja tres bien.
Apres rien ne m'empeche d'utiliser des PICs plus rapide.
donc sans prendre en compte la gestion du temps, normalement pour afficher un ecran blanc je dois avoir un code de ce style. Code: #define CSYNC 0b00000000
#define CBLACK 0b00000001
#define CWHITE 0b00000011
#define _2NOP nop(); nop();
#define _6NOP nop();nop();nop();nop();nop();nop();
#define _10NOP nop(); nop(); nop();nop();nop();nop();nop();nop();nop();nop();
//white line
void NormalDraw(char i)
{
while (--i)
{
PORTB = CSYNC;
_2NOP
PORTB = CBLACK;
_6NOP
PORTB = CWHITE;
_10NOP
_10NOP
_10NOP
_10NOP
//_10NOP
_6NOP
}
}
//black line
void NormalFillDraw(char i)
{
while (--i)
{
PORTB = CSYNC;
_2NOP
PORTB = CBLACK;
_6NOP
PORTB = CBLACK;
_10NOP
_10NOP
_10NOP
_10NOP
//_10NOP
_6NOP
}
}
// |-|_|-|
void CamelDraw(char i)
{
while (--i)
{
PORTB = CSYNC;
nop();
PORTB = CBLACK;
_10NOP
_10NOP
_6NOP
nop();
PORTB = CSYNC;
nop();
PORTB = CBLACK;
_10NOP
_10NOP
_6NOP
nop();
}
}
// |_|-|_|
void InvCamelDraw(char i)
{
while (--i)
{
PORTB = CSYNC;
_10NOP
_10NOP
_6NOP
PORTB = CBLACK;
_2NOP
PORTB = CSYNC;
_10NOP
_10NOP
_6NOP
PORTB = CBLACK;
_2NOP
}
}
//ligne 3
void Trame3Draw()
{
PORTB = CSYNC;
_10NOP
_10NOP
_6NOP
PORTB = CBLACK;
_2NOP
PORTB = CSYNC;
nop();
PORTB = CBLACK;
_10NOP
_10NOP
_6NOP
nop();
}
//ligne 313
void Trame313Draw()
{
PORTB = CSYNC;
nop();
PORTB = CBLACK;
_10NOP
_10NOP
_6NOP
nop();
PORTB = CSYNC;
_10NOP
_10NOP
_2NOP
_2NOP
PORTB = CBLACK;
_2NOP
}
void Trame318Draw()
{
}
void DrawScreen()
{
InvCamelDraw(2);
Trame3Draw();
CamelDraw(2);
NormalFillDraw(15);
//20
NormalDraw(100);
NormalDraw(100);
NormalDraw(90);
//310
CamelDraw(2);
//312
Trame313Draw();
//313
InvCamelDraw(2);
//315
CamelDraw(2);
//317
NormalFillDraw(10);
//327
NormalDraw(100);
NormalDraw(100);
NormalDraw(95);
//622
CamelDraw(3);
//625
}
void main(void)
{
RA0 = 0;
TRISB = 0b00000000;
PORTB = CSYNC;
while (1)
{
DrawScreen();
}
} C'est du C, mais c'est juste pour voir si j'ai bien compris
Merci.
Math
-
03/10/2006 - 15h27
Re : Signal PAL
Hello,
je n'ai pas regardé en détail, mais il faudra que tu tiennes compte des temps d'appel et de retour des fonctions, cela dépend des compilateurs : il faudra examiner le code ASM produit.
le maxi que j'ai pu obtenir avec un pic18 (en assembleur) c'est 240x192 pixel en PAL N&B, avec une DRAM externe de 64Kbits et le même principe de convertisseur à 2 bits.
pour obtenir de la couleur en PAL, le problème est surtout de générer le 'burst', le codage de phase de la chrominance peut ensuite se faire avec quelques astuces très simples.
en envoyant un 'pseudo burst', tu pourras obtenir de très beaux effets colorés moirés !
sinon les pages web de Rickard Gunee sont un modèle du genre, il est à classer avec Bob Blick et ses propeller clocks.
A+,
Bruno
-
03/10/2006 - 15h47 zapoutix
Re : Signal PAL
oki, c'est bon ca marche a peu pres, j'ai plus de desyncro, j'ai encore une gros barre noir qui se deplace verticalemement mais c'est moi qui est mal calcule.
En tout ca, merci a tous de votre aide.
-
03/10/2006 - 16h31 f6bes
Re : Signal PAL
Bjr zapou....
Voiçi un lien pour VISUALISER des mires pal couleur à base
de pic (en grande majorité) http://anta67.free.fr/
Peux éventuemment faire une recherche sur les différents programmes.
Cordialement
"Bonjour" et "Merci" (pour ceux qui oublient!!) -
03/10/2006 - 17h20
Re : Signal PAL
Houla pas facile de trouver une description des mires à base de PICs dans cette galerie !
Il me semble que certaines mires sont obtenues par incrustation ou par un encodeur RGB => PAL, dans ce cas le PIC ne gère pas la synchro ni le burst.
A+,
Bruno
| | |