programmation microchip pic....

Aide, Dépannage et discussions relatives aux flippers DMD

Flipper concerné :

Si necessaire, merci de proposer un flipper en relation avec ce sujet.
Avatar du membre
clcl
Dept: 000
Rech/Achete: 0 flip
Messages : 1554
Enregistré le : 05/02/2008
Pas vu depuis 9 an(s)
Niveau : Débutant
Localisation : lyon paris blois

Message par clcl » ven. 08 05, 2009 10:48

flip78 a écrit :
g80panthera a écrit :Bonjour,

A l'époque il existait effectivement une astuce pour pomper le code. On se servait de la fonction de vérification du code après programmation. Le principe est le suivant: on réalise un programme qui entre dans la phase de vérification du code et on présente 00 pour le premier octet, le chip répond pas bon, donc on présente 01 etc jusqu'à 255 maxi quand le chip répond OK pour le premier octet, on passe au deuxième, et pareil pour les octets suivants.

A+
:x26:
Ah je vois que je ne suis pas le seul a avoir enployé cette methode ...
J'avais développé cet algorithme pour extraire le code d'un 68705P3 ... composant très utilisé a une certaine époque dans des petits boitiers placés à coté de la TV :-o:

A+


En ajoutant la ligne à retard et le quartz, Tonton toussait plus !
CLCL

Avatar du membre
g80panthera
Dept: 91
Collec Perso: 2 flips
Rech/Achete: 0 flip
Messages : 7883
Enregistré le : 31/01/2006
Niveau : Expert
Pro / revendeur : oui
Localisation : Longpont sur Orge/Essonnes
Contact :

Message par g80panthera » ven. 08 05, 2009 14:59

Bonjour,

Non, non je ne vois pas de quoi vous parlez.

Mes intentions étaient pures ........ :-o: ......enfin comme vous quoi 8)

A+
Flips: Stern ELVIS et Gottlieb Count Down; Vidéo: Table Cocktail TAITO 60en1;Flechette:Emeraude;Babyfoot: Jeutel (Sulpie)
Rock Ola:1455D;Jupiter: M96;Wurlitzer:2300;Seeburg:KD200;Ami:Continental1
Présentation de "ESSONNE LOISIRS AUTOMATIQUES" dans la rubrique PRO

Avatar du membre
flip78
Dept: 78
Rech/Achete: 0 flip
Messages : 1761
Enregistré le : 26/05/2008
Niveau : Expert
Localisation : Verneuil sur Seine
Contact :

Message par flip78 » ven. 08 05, 2009 23:00

Batforever a écrit :sinon,quel matos faut il pour programmer un pic de type 16c56..?
ou est il possible de faire un programme similaire a l origine par un programmeur...le programme n effectue que la fonction commande servo de la tete,gauche ,milieu,droite,droite 3/4,milieu...etc..?
Pour répondre à Batforever :
Oui il est possible de faire la même chose avec un micro-controleur PIC.
(Pas forcément avec un 16c56, d'autres modèles peuvent être utilisés).
Je ne connais pas la carte de commande dont tu parles, je n'ai pas ce flipper.
Mais si cette carte ne sert qu'a la gestion d'un ou plusieurs servo-mécanisme(s) de radio-commande, il faut juste savoir comment elle gère les contacts en entrée. (Supposition pour les contacts)
Je suppose qu'il y a un ensemble de contacts, et selon le ou les contacts en service, le(s) servo-mécanisme(s) se place(nt) dans une position déterminée.
Si c'est le cas ... ce n'est pas très compliqué à réaliser.
(Avec le schéma de la carte je pourrais en dire plus).
Par contre ... s'il s'avérait que la carte est pilotée par une liason série ... il faudrait connaitre le protocole employé ... Facile s'il est décrit ... Ou l'analyser avec un analyseur logique : faisable mais bien plus long et beaucoup plus compliqué.

A+

Avatar du membre
Batforever
BAN PERMANENT
Dept: 68
Rech/Achete: 0 flip
Messages : 602
Enregistré le : 28/08/2008
Pas vu depuis plus de 10 ans
Niveau : Débutant
Pro / revendeur : non
Localisation : Mulhouse

Message par Batforever » sam. 09 05, 2009 00:04

merci pour ta reponse... :wink:
non,ce ne sont pas des contacts pour les mouvement du servo moteur..,c est geré par la cpu principal du flipper et ensuite par la plus petite carte de gestion sur laquelle se trouve le pic16c56...cf photo;
les infos pour le clock et le data sont donné dans le tableau..ci apres..;

Avatar du membre
flip78
Dept: 78
Rech/Achete: 0 flip
Messages : 1761
Enregistré le : 26/05/2008
Niveau : Expert
Localisation : Verneuil sur Seine
Contact :

Message par flip78 » sam. 09 05, 2009 09:36

Bonjour,
D'après la doc, le protocole est simple mais pas assez détaillé ...
On peut supposer qu'il n'y a qu'un seul octet de data transmis, ce qui laisse donc 64 valeurs disponibles pour chaque servo.
Cela est très suffisant pour positionner le servo mécanisme.
Cependant cela n'est pas sur, il y a peut-être des routines internes qui répondent à un jeu de commande et qui effectuent des balayages d'une zone à l'autre, accellération, etc ...
A moins de posséder la carte en question et de lui fournir toutes les valeurs possibles et de regarder le fonctionnement ... ou de trouver une documentation technique sur le protocole employé ... cela reste difficile à faire.
Ce dont il faudrait être sur c'est s'il n'y a qu'un seul octet envoyé.
(Ca serait ensuite plus facilement réalisable)
a+

Avatar du membre
Papo06
Dept: 06
Collec Perso: 1 flip
Rech/Achete: 0 flip
Messages : 4905
Enregistré le : 30/03/2005
Pas vu depuis 1 an(s)
Niveau : Confirmé
Pro / revendeur : non
Localisation : Mougins

Message par Papo06 » sam. 09 05, 2009 10:43

Je veux pas être pessimiste mais si on lit ce qui est écrit sur ta doc:

"The CPU send 8 bit data words to the servo borad to trigger pre-recorded routines in the µC on the servo board itself"

Le CPU place le enable à l'état haut puis envoie donc simplement 1 octet au pic en série avec à 125 bits / seconde sur une horloge qui déclenche sur front montant et descendant, ensuite en fonction de cette valeur entre 0 et 255 le PIC exécute une routine pré-programmée, ce n'est donc pas le cpu qui commande directement la position des 4 servos ça passe par des routines internes.

Maintenant rien n'est impossible et il est tout à fait envisageable pour les plus courageux de faire du reverse engineering, et à partir d'une carte qui fonctionne, simuler avec un petit montage les 256 cas et voir ce que ça donne en sortie du PIC, si ça se trouve c'est tout bête par exemple (totalement fantaisiste parce que j'en sais rien) on peut imaginer que charque servo est commandé par 2 bits, 00 = ne pas changer l'ancienne valeur, 01= complètement à gauche, 11 = au milieu, 10 = à droite, probable qu'en interne le pic réalise une rampe, il ne passe pas le servo directement de gauche à droite par exemple il va certainement élargir / rétrécir progressivement l'impulsion pour éviter les a-coups.

Pour la commande des servos c'est par largeur d'impulsion c'est facile à programmer avec les timers internes, le plus compliqué c'est de faire l'analye de l'existant.

Pascal

Avatar du membre
Batforever
BAN PERMANENT
Dept: 68
Rech/Achete: 0 flip
Messages : 602
Enregistré le : 28/08/2008
Pas vu depuis plus de 10 ans
Niveau : Débutant
Pro / revendeur : non
Localisation : Mulhouse

Message par Batforever » sam. 09 05, 2009 11:12

ok,mais en fait le pic ne controle qu un seul servo,celui de la tete qui bouge,et uniquement sur la sortie n°1 de la carte de gestion du pic...
les 3 autres sorties sont inactives... :s1:
par contre je n ai pas de materiel de programmation ni software ou programmer chip,et pour les termes bits,ms et autres j avoue c est un peu confu.... :?

Avatar du membre
B_A_B_A_INC
Dept: 000
Rech/Achete: 0 flip
Messages : 120
Enregistré le : 01/03/2007
Pas vu depuis 6 mois
Niveau : Confirmé
Localisation : Marignane
Contact :

Message par B_A_B_A_INC » dim. 10 05, 2009 11:50

Salut,

Pour ce qui est du fonctionnement du code, je suis d'accord avec papo06,
Il y a clairement des routines pre-enregistrées qui controle le "franck".
La solution la plus longue serait de sortir l'analyseur logique et capturer tous ce qui entre et sort du chip afin de faire du reverse-engineering.

La solution la plus facile serait de copier le chip. Vu que c'est des vieux chip de 95, d'apres ce que j'ai lu sur le net y'a moyen de lire le contenu meme si les bits de code protect sont placés a ON. La technique est de replacer les bits de code protect a OFF en utilisant la tension alim VPP - 0.5v-1v je crois. J'ai vu un tuto detaillé la dessus. Une fois replacé on peut relire le code hexa. Bien sur, les nouveaux chips ne supporte plus ce type de hack, et microchip a vite fait un fix de ce probleme dans les années 2000 si mes souvenirs sont bon...

Il existe sinon des société qui moyennant finance, font le boulot de recuperation si on peut dire ca comme ca, mais tout cela a un cout ( www.mcucrack.com , www.break-ic.com, etc).

Pour ce qui est des outils, moi j'utilise le programmateur officiel de microchip et l'ICD (programmateur in situ low cost) et en compilo de CCS est vraiment top et simple d'emploi.

@+
Stef
AFM, MM

Répondre