Gamoover

Vous aimez GAMOOVER ? Vous avez trouvé la perle rare grâce à notre forum ?
Alors pourquoi pas nous soutenir en effectuant un petit don Paypal sur : contribution@gamoover.net
C'est peut être un détail pour vous, mais nous, ça nous aiderait beaucoup !

[TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)

Démarré par Solkan, Mercredi 14 Mars 2018, 22:34:07 PM

Solkan

Tu as une Naomi, une Chihiro ou une Triforce et tu as envisagé d'acquérir une netdim ?
Alors ce tuto est pour toi qui as besoin d'un PIC Zero key.  :-)=

A quoi sert ce PIC ? Il permet de forcer la Naomi a accepter le jeu que tu vas injecter comme si il y avait un PIC de sécurité officiel (différent pour chaque jeu).
Tu pourras ainsi débrancher ton Raspberry dès la fin du chargement du jeu sur la Naomi ou même booter directement à l'allumage sur le dernier jeu chargé si ta Netdimm a une batterie valable.


Voici la liste du matos indispensable pour faire son propre PIC ZeroKey :
- un programmateur de PIC
- un PIC 16F628A en boitier DIP (moins de 5 euros sur le net, peut-être meilleur marché dans un magasin d'électronique local)

Et c'est tout :)

Chers amis, je propose donc d'étudier cette réalisation sous Windows et avec un programmateur très courant, simple à utiliser et super bon marché : le K150


Vous allez voir que la partie la plus difficile n'est pas la programmation à proprement parler mais la configuration/installation du K150 (et ca relève du niveau CM1 :) ).

Le K150 se trouve à une dizaine d'euros sur le net (https://fr.aliexpress.com/item/PIC-USB-Microcontroller-Development-Programmer-ICSP-k150-USB-cable-ICSP-cable/592033253.html), difficile de faire plus accessible.
Au total donc, pour 1 PIC, celà ne vous coûtera pas plus de 15 euros; soit le même prix (hors FDP) que l'on peut trouver sur ebay pour la solution clé en main (PIC déjà programmé).
Ce n'est donc pas vraiment meilleur marché (ni plus cher) de le faire soit même (sauf s'il en faut plusieurs ou que vous voulez utiliser le K150 pour programmer d'autres PIC) mais au moins vous aurez la satisfaction de l'avoir fait de vos propres mimines.

Pour faire fonctionner votre K150, il vous faut 2 programmes :
- Les drivers : PL2303_Prolific
- Le programmeur : microbrn
Vous trouverez un package de ces 2 softwares : https://buyhere22.com/components/K150%20Software.zip
Le hic, c'est que ces drivers officiels ne fonctionnent pas avec Windows 10 et il vous faudra un Windows plus ancien.
Breaking news : Il existe une version officieuse pour Windows 10 - je viens de la tester et ca fonctionne (https://mega.nz/file/ziwS1ZhK#qJzdPseIjBa4LLLjDj5HcbMlaIX6edUjJMM8ucklXmE).

Enfin, il vous faudra le code HEX de ce PIC ZeroKey.
Là, c'est facile, je vous le fourni : https://mega.nz/file/b6RBwapK#ARV3IOgUd3yfrjLQPg5lnV8-9cq-uoTf7n0apJfveqw.
(Attention qu'il semble différent de celui diffusé par IRO dans son tuto CF sur Naomi).

Quand tout ca est regroupé, on attaque.
1. Installation du soft.
- on installe les drivers avec reboot de la machine conseillé

2. Connexion du K150
- on branche le K150 sur son PC via un cable USB
- on ouvre le Gestionnaire de périphériques de Windows et, dans le groupe "Ports", on trouve le numéro de port du PIC (Prolific USB-to-Serial).


3. Lancer le soft
- on lance microbrn
- on impose le port relevé précédemment dans le gestionnaire de périphériques (Menu File -> Port)
- on choisi le modèle du PIC dans la dropdown "Chip Selector" : 16F628A


4. Placer le PIC
- on place physiquement le PIC dans le connecteur ZIF (le gros connecteur vert du K150) en respectant le positionnement donné par le schéma de microbrn (i.e. à partir du 2e rang et avec le petit "trou" du PIC côté levier)
- on verrouille le PIC avec le levier
- on clique sur le bouton "Read" de microbrn pour vérifier l'état du PIC (normalement ca doit marquer une suite de 3FFF)


5. Programmer le PIC
- on charge le HEX du ZeroKey dans microbrn (bouton "Load")
- on clique sur le bouton "Program" de microbrn pour programmer le PIC
- on clique sur le bouton "Verify" de microbrn pour vérifier le bon enregistrement de notre programme


6. Dans la Naomi
- on relève le levier et on enlève le PIC du K150
- on le place dans la Netdimm sur le socket prévu à cet effet (il sera peut-être nécessaire de dévisser le capot métallique) également en respectant l'orientation (le petit trou doit être placé du côté indiqué sur la netdim)


Et c'est tout.
Pour peu que votre Netdimm soit bien configurée pour le netboot (Bios récent, Firmware netboot et dip switches bien positionnés), le PIC que l'on vient de programmer vous permettra de netbooter sans tracas.


Solkan
"There is too much blood in my Coca-Cola System"

Mes Recherches : Marquee et PCB MK2, Konami Gyruss/Pooyan/Time Pilot/Yie Ar Kung Fu/Commando/Track & Field

olschool

Winner's Don't Use Drug mais ça aide quand même pour finir Ghost & Goblins.



Citation de: ducatman1098 le Lundi 05 Novembre 2018, 22:45:37 PM
En rentrant le camion au garage,  je me suis aperçu que j avais récupérer une after burner  ;D


Iro

Citation de: Solkan le Mercredi 14 Mars 2018, 22:34:07 PM
- un PIC 16F628A en boitier DIP (moins de 5 euros sur le net, peut-être meilleur marché dans un magasin d'électronique local)

Y'a encore moins cher en commandant des samples chez Microchip (c'est gratuit :D sans FDP)


Citation de: Solkan le Mercredi 14 Mars 2018, 22:34:07 PM
(Attention qu'il semble différent de celui diffusé par IRO dans son tuto CF sur Naomi).
C'est ce qu'il me semble. Mais j'ai jamais compris pourquoi.
"Jet set 2, c'est avec Robert Garcia ?" Kaneda, Lapsus de sac Vol.1
Peter Shou Owner' Club

WIPs : Naomi - SEGA Rally - AB Cop - Lethal Enforcers - COMPUMI - Terminator 2 - Space Invaders - Artworks pour Boitiers K7 Naomi CF - Ma collec' de panels

LES TUTOS DE GAMO   

Solkan

Citation de: Iro le Jeudi 15 Mars 2018, 09:21:21 AM
C'est ce qu'il me semble. Mais j'ai jamais compris pourquoi.



Si j'utilise ton .HEX, microbrn me pose des problèmes avec les "fuses". Je dois changer le fuse "LVP" en Enable à la place du Disable configuré par ton .HEX



Sur le .HEX que j'ai fourni, pas besoin de changer les "fuses", "LVP" est déjà en Enable.

Mais je n'y connais rien (je ne sais même pas à quoi servent les "fuses")
Solkan
"There is too much blood in my Coca-Cola System"

Mes Recherches : Marquee et PCB MK2, Konami Gyruss/Pooyan/Time Pilot/Yie Ar Kung Fu/Commando/Track & Field

f4brice

Les "fuses" sont une sorte de "fusibles" électroniques programmables.
Ils sont reprogramables plusieurs fois, donc pas d'inquiétude.

Lorsque la puce est mise sous tension, et avant d'exécuter le 1er octet qui a été programmé dedans, la puce va procéder à quelques initialisations très importantes pour elles, avant de commencer à exécuter le .hex qu'on a flashé dedans.
Il s'agit (entre autres) :

  • comment est configurée la clock : est-elle interne ? externe ? quartz ? oscillateur ? RC ?
  • est-il possible de relire les données flashées pour les dumper ?
  • que doit-il se passer si l'alim déconne et fluctue de trop
  • etc...

Ces réglages sont stockés dans des "fusibles" appelés aussi "octets de config".
Le programmateur doit les écrire en même temps qu'il écrit le code exécutable dans la puce.
Ainsi, la puce sait si telle ou telle option est active ou inactive.

L'option "LVP" correspond à "Low Voltage Programming".
Ca permet de se passer d'une "haute tension" (on parle de +12V) à balancer sur une pin pour forcer la puce à passer en mode "je me fais programmer".

Ici, il est préférable de ne pas l'activer, ça ne servirait à rien sauf à provoquer un blocage de la puce dans certaines situations merdiques.

Cali_955

Merci à toi pour ce tuto.

Il manque les clés de déchiffrement dans tes liens Mega  <:)
Ranger du risque !

Solkan

#7
Citation de: Cali_955 le Jeudi 15 Mars 2018, 19:35:47 PM
Il manque les clés de déchiffrement dans tes liens Mega  <:)
Sorry, c'est la première fois que j'utilise Mega. C'est corrigé dans le tuto.


Citation de: f4brice le Jeudi 15 Mars 2018, 18:18:17 PM
L'option "LVP" correspond à "Low Voltage Programming".
Ca permet de se passer d'une "haute tension" (on parle de +12V) à balancer sur une pin pour forcer la puce à passer en mode "je me fais programmer".

Ici, il est préférable de ne pas l'activer, ça ne servirait à rien sauf à provoquer un blocage de la puce dans certaines situations merdiques.
Merci pour cette explication. Ces "fuses" font partie du HEX ?
Tu pourrais peut-être me détailler pourquoi, dans le HEX de IRO, le LVP est disabled et pourquoi je n'arrive pas à programmer le PIC (cf erreur en capture d'écran) alors que dans "mon" HEX ou quand je change la valeur vers enable dans celui de IRO, celà fonctionne ?

Citation de: f4brice le Jeudi 15 Mars 2018, 18:18:17 PM
Ils sont reprogramables plusieurs fois, donc pas d'inquiétude.
A ce sujet, les PIC sont reprogrammables à l'infini ? Je viens de faire une vingtaines de reprogrammations après mise à blanc d'un PIC pour les tests, je m'inquiète pour lui :)
Solkan
"There is too much blood in my Coca-Cola System"

Mes Recherches : Marquee et PCB MK2, Konami Gyruss/Pooyan/Time Pilot/Yie Ar Kung Fu/Commando/Track & Field

f4brice

Citation de: Solkan le Jeudi 15 Mars 2018, 21:32:47 PM
Merci pour cette explication. Ces "fuses" font partie du HEX ?

C'est au choix du développeur d'inclure la valeur des "fuses" dans le fichier HEX.
C'est une bonne pratique, c'est recommandé, mais tout le monde ne le fait pas.

Citation de: Solkan le Jeudi 15 Mars 2018, 21:32:47 PM
Tu pourrais peut-être me détailler pourquoi, dans le HEX de IRO, le LVP est disabled et pourquoi je n'arrive pas à programmer le PIC (cf erreur en capture d'écran) alors que dans "mon" HEX ou quand je change la valeur vers enable dans celui de IRO, celà fonctionne ?

Certains modèles de PIC nécessitent d'être 100% effacés (commande "bulk erase") avant de pouvoir reprogrammer certains fuses.
C'est le cas par exemple quand on active le fuse "Code Protec" qui empêche le dump du contenu du PIC.
Le fuse LVP est un peu traitre.
Quand on le désactive, on ne peut le ré-activer qu'avec le mode de programmation 12V (vu que justement on avait désactivé la programmation low-voltage).
Je suppose que c'est une limite de ton programmateur low-cost.

Citation de: Solkan le Jeudi 15 Mars 2018, 21:32:47 PM
A ce sujet, les PIC sont reprogrammables à l'infini ? Je viens de faire une vingtaines de reprogrammations après mise à blanc d'un PIC pour les tests, je m'inquiète pour lui :)

La page 1 du datasheet va te rassurer :

Citation de: Datasheet PIC16F628A
100,000 write Flash endurance

Si tu reprogrammes la même puce 20 fois par jour tous les jours, du lundi au dimanche, il te faudra environ 13 ans pour le cramer.
Si tu fais ça 40 fois par jour, mais que les samedis et les dimanches, il te faudra environ 24 ans pour le tuer.
;)

Iro

@Solkan. Je parlais pas des fuses mais bien deux HEX différents qui n'auraient pas la même fonctionnalité
Un pour le CF et un pour le netboot. Le CF faisant les deux.
Mais j'ai jamais trouvé d'explications clairs. (ou c'est moi qui ai mal interprété  :D )
:)
"Jet set 2, c'est avec Robert Garcia ?" Kaneda, Lapsus de sac Vol.1
Peter Shou Owner' Club

WIPs : Naomi - SEGA Rally - AB Cop - Lethal Enforcers - COMPUMI - Terminator 2 - Space Invaders - Artworks pour Boitiers K7 Naomi CF - Ma collec' de panels

LES TUTOS DE GAMO   

Solkan

ok, j'avais mal compris :) Mais c'est vrai que j'avais lu également plusieurs fois que le PIC était différent entre les solution CF et Netboot

Je n'ai pas de lecteur de CF (pour l'instant) mais je me ferai un plaisir de tester les deux HEX sur les dexu config (Netbootet CF) dès que possible.
Solkan
"There is too much blood in my Coca-Cola System"

Mes Recherches : Marquee et PCB MK2, Konami Gyruss/Pooyan/Time Pilot/Yie Ar Kung Fu/Commando/Track & Field

kidicarus

Merci pour ce tuto qui v am'etre bien utile prochainement ^- ^-
Je cherche une playchoice 10 et une pcb super system nintendo un playfield skateball ; evel knievel

jplfb

Bonjour à tous,
Nouveau sur ce forum, je recherche des infos pour pouvoir programmer un programmateur de pic k150, que je viens d'acheter.
Lorsque que je l'installe sur monpc sous win10, j'ai dans le gestionnaire de périf: phase out since 2012.
Par contre dans les propriétés: ce périf fonctionne correctement!

Merci si vous avez des infos pour que je puisse le faire fonctionner correctement, c'est pour programmer un pic 16f84 monté sur un fréquencemtre digital
Merci à vous et bonne journée,
Jean-Pierre

Iro

Yep ce programmateur ne fonctionne que sous 7.
Il existe des drivers pour W10 officieux. Google te donnera des tutos
Par contre, je ne sais plus si cela fonctionne correctement. Je ne sais plus si j'ai programmé sous W10 ou 7 la derniére fois.
"Jet set 2, c'est avec Robert Garcia ?" Kaneda, Lapsus de sac Vol.1
Peter Shou Owner' Club

WIPs : Naomi - SEGA Rally - AB Cop - Lethal Enforcers - COMPUMI - Terminator 2 - Space Invaders - Artworks pour Boitiers K7 Naomi CF - Ma collec' de panels

LES TUTOS DE GAMO   

jplfb

Merci Iro,
En haut de ce fil, solkan donne une procédure d'installation et des liens pour Win  que j'ai téléchargé mais winzip me dit fichiers corrompus,
Comment je vais pouvoir m'en sortir,
Cordialement,
Jean-Pierre

Solkan

Je confirmez que ca fonctionne sous Windows 10 avec les drivers officieux donnés dans le sujet initial.
Si tu as des problèmes de décompression, vérifie que ton outil de décompression soit bien à jour (winrar par exemple)
Solkan
"There is too much blood in my Coca-Cola System"

Mes Recherches : Marquee et PCB MK2, Konami Gyruss/Pooyan/Time Pilot/Yie Ar Kung Fu/Commando/Track & Field