Comment la présence de l'écran est-elle détectée ?

General discussion forum - for all that doesn't fit in any other category.
Post Reply
rewk
Posts: 11
Joined: Sun Jul 04, 2010 11:24 am

Comment la présence de l'écran est-elle détectée ?

Post by rewk »

Bonjour Jeff.
J'étais en train de réfléchir à rediriger la sortie LCD du HxC SD en la mélangeant à du texte provenant d'un autre microcontrôleur. (2 lignes pour le HxC et 2 autres pour moi en dessous.) Je me suis rendu compte que les sorties data et les clocks ne s'activent pas quand l'écran n'est pas branché.
Comment détecte-t-il la présence de l'écran ?

En outre, savez vous si ce serait difficile de faire afficher 20 caractères au lieu de 16 ? L'afficheur que je voudrais utiliser est un peu plus large. Les caractères supplémentaires sont juste ignorés par le contrôleur de l'afficheur, donc ça ne devrait pas poser de problèmes de compatibilité. Et ça donnerait un peu plus de visibilité aux noms des disquettes dans les slots.

Merci Jeff.
Attachments
HxC plugged on a wider screen.
HxC plugged on a wider screen.
HxC_wide_screen.jpeg (66.29 KiB) Viewed 3866 times

Jeff
Site Admin
Posts: 8092
Joined: Fri Oct 20, 2006 12:12 am
Location: Paris
Contact:

Re: Comment la présence de l'écran est-elle détectée ?

Post by Jeff »

rewk wrote:Bonjour Jeff.
J'étais en train de réfléchir à rediriger la sortie LCD du HxC SD en la mélangeant à du texte provenant d'un autre microcontrôleur. (2 lignes pour le HxC et 2 autres pour moi en dessous.) Je me suis rendu compte que les sorties data et les clocks ne s'activent pas quand l'écran n'est pas branché.
Comment détecte-t-il la présence de l'écran ?

En outre, savez vous si ce serait difficile de faire afficher 20 caractères au lieu de 16 ? L'afficheur que je voudrais utiliser est un peu plus large. Les caractères supplémentaires sont juste ignorés par le contrôleur de l'afficheur, donc ça ne devrait pas poser de problèmes de compatibilité. Et ça donnerait un peu plus de visibilité aux noms des disquettes dans les slots.

Merci Jeff.
La détection se fait par écriture puis relecture dans l'écran au démarrage.
Pour 20 caractères pas de pb. Par contre ça sera un firmware spécial.

Par rapport a ce que vous voulez faire (2 cpu maître pour le même lcd) je pense que la mise au point va être difficile : je ne vois pas de solution synchroniser cela.
La seule possible pour moi est que votre cpu récupères les accès du hxc pour les envoyer par la suite sur le lcd.

rewk
Posts: 11
Joined: Sun Jul 04, 2010 11:24 am

Re: Comment la présence de l'écran est-elle détectée ?

Post by rewk »

Jeff wrote:La détection se fait par écriture puis relecture dans l'écran au démarrage.
Pour 20 caractères pas de pb. Par contre ça sera un firmware spécial.
C'est en continu ? J'ai l'impression que la patte RW passe régulièrement à high ? J'ai un peu de mal à voir, car je n'ai pas d'oscilloscope. J'ai juste programmé l'Arduino pour qu'il me dumpe ce qui provient du HxC.
Et puis je voudrais effectivement bien volontiers un firmware spécial, oui ! Pas de soucis. :)
Jeff wrote:Par rapport a ce que vous voulez faire (2 cpu maître pour le même lcd) je pense que la mise au point va être difficile : je ne vois pas de solution synchroniser cela.
La seule possible pour moi est que votre cpu récupères les accès du hxc pour les envoyer par la suite sur le lcd.
Oui, c'est ce que je prévois de faire. Ça me semble un peu compliqué, mais je trouve ça intéressant.
En fait, j'ai fait un adaptateur pour contrôler un CPC à partir d'une manette de PS2. Il me permet d'émuler n'importe quelle touche ou combinaison de touches du clavier. J'ai aussi branché des sorties sur le port 2 du HxC pour pouvoir le contrôler directement à partir de la manette. Ça marche bien, mais maintenant, j'aimerais bien avoir une petite IHM pour gérer des presets.

Je pense qu'il est possible de faire une sorte d'IHM sur le CPC en programmant astucieusement la sortie du PIO du CPC de façon à envoyer des nombres autres que 1 à 9 dessus, mais je ne sais pas faire. (Un peu comme c'est fait pour le sélecteur de fichier du HxC qui sélectionne la piste 255)

Du coup, je me suis dit que quitte à intégrer le HxC dans le CPC, ça pourrait être intéressant de partager l'écran avec mon dispositif.
Je pensais utiliser un second microcontrôleur qui communiquerait avec le premier en SPI (comme la manette de PS2) et qui me servirait à mélanger ce qui vient du HxC et de mon adaptateur. Evidemment, ça c'est juste un projet, mais bon, vu que le reste fonctionne plutôt bien, je me suis dit que je pourrais tenter.

Voici une photo que j'avais prise lorsque je faisais mes premiers essais avec un Arduino...
Attachments
premiers_essais.jpg
premiers_essais.jpg (123.71 KiB) Viewed 3857 times

rewk
Posts: 11
Joined: Sun Jul 04, 2010 11:24 am

Re: Comment la présence de l'écran est-elle détectée ?

Post by rewk »

Bonjour Jeff.
Je reviens à la charge sur ce sujet.
Après avoir fait l'intégration du HxC dans le CPC, ainsi que de mon interface pour manette PS2, je m'attelle à récupérer ce que le HxC transmet à l'écran pour pouvoir le mélanger à la sortie de l'ATMega. Mais j'ai bien l'impression que ça ne va pas être possible.

Quelques essais plus tard, j'aurais deux ou trois questions :

- Combien de temps s'écoule lors de l'envoi des deux nibbles de données à l'écran ? La capture que j'ai fait ne montre que des paquets d'un seul write en DATA. J'ai l'impression que l'interruption que j'ai mise en place n'attrape que le premier.

- Si c'est bien le cas, est-ce qu'il y a un signal qui indique que le HxC est en train d'écrire sur l'écran ? Je m'étais dit que je pourrais éventuellement utiliser l'éclairage de l'écran. Est-ce qu'il est allumé par le HxC avant l'envoi des données ou après ? Avec un buffer, je devrais pouvoir m'en sortir pour "déconnecter" le HxC de l'écran pendant que mon MCU s'en sert.

- Et sinon, je vais mettre deux afficheurs sur mon CPC. Mais c'est dommage... :D

Jeff
Site Admin
Posts: 8092
Joined: Fri Oct 20, 2006 12:12 am
Location: Paris
Contact:

Re: Comment la présence de l'écran est-elle détectée ?

Post by Jeff »

C'est la ligne CE (front montant) de l'écran sur laquelle il faut se synchroniser, WE indique la lecture ou l'écriture.

Voici comment est faite l'écriture (100ns par instruction, a vous d'estimer le temps entre les accès ;) ):

Code: Select all

void WriteLCD_D(char c)
{
	LCD_CE=0;
	LCD_RS=1;
	LCD_WRRD=0;

	TRISD=0x00;

	PORTD=(c&0xF0)|(PORTD&0x0F);
	
	LCD_CE=1;
	Delay10TCY();
	LCD_CE=0;

	Delay1TCY();
	Delay1TCY();
	Delay1TCY();

	PORTD=(c<<4)|(PORTD&0x0F);
	LCD_CE=1;
	Delay10TCY();
	LCD_CE=0;

	LCD_RS=0;

	Delay10TCY();
	PORTD=(PORTD&0x0F);
}

rewk
Posts: 11
Joined: Sun Jul 04, 2010 11:24 am

Re: Comment la présence de l'écran est-elle détectée ?

Post by rewk »

Merci, Jeff.
Je vois effectivement que je rate un des deux accès aux data, du coup. Me voilà donc bien embêté, car la technique que je voulais employer ne fonctionne pas. Je vais tenter avec un peu d'assembleur embedded dans le traitement de l'interruption, mais j'ai l'impression que ça ne suffira pas. C'est probablement trop rapide pour un ATMega à 16 MHz.

Lorsque le l'affichage change sur le HxC (lecture piste/changement disquette...), est-ce que tout l'écran est effacé ? Ou alors est-ce qu'il n'y a que les caractères concernés qui le sont ? Et est-ce que l'éclairage de l'afficheur se fait avant ou après l'envoi des données ? Si c'est avant, je devrais pouvoir partager l'accès entre HxC et mon microcontrôleur.

Voici le montage que je suis en train de faire :

http://cpcrulez.fr/hardware-non_commerc ... ck-CPC.htm

Post Reply