Auteur Sujet: [TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)  (Lu 803 fois)

Hors ligne Solkan

  • ✌(◕‿◕)✌ Donateur 2018
  • Hardcore Gamer
  • *
  • Messages: 1963
  • Localisation: Braives - Belgique
    • Voir le profil
    • MountyHall
[TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)
« le: Mercredi 14 Mars 2018, 22:34:07 pm »
  • 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/#!ziwS1ZhK - clé !qJzdPseIjBa4LLLjDj5HcbMlaIX6edUjJMM8ucklXmE).

    Enfin, il vous faudra le code HEX de ce PIC ZeroKey.
    Là, c'est facile, je vous le fourni : https://mega.nz/#!jiYDkZSC (clé : !UOTefGAFlOlcEW0_oUZm7KiJWNeACVACc6nudSVjQ-8).
    (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.


    « Modifié: Jeudi 15 Mars 2018, 21:28:27 pm par Solkan »
    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

    Hors ligne olschool

    • ✌(◕‿◕)✌ Donateur 2018
    • Level Buster
    • *
    • Messages: 2709
    • Localisation: nice
    • Le JR's est Immortel
      • Voir le profil
      • Le JR's
    [TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)
    « Réponse #1 le: Mercredi 14 Mars 2018, 23:00:22 pm »
  •  ^-

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


    Recherche Bornes: Space  Invader/ Rolling Thunder/Dragon's Lair/Kung Fu Master et Karateka Champ et Lethal Enforcer.

    Hors ligne funkycochise

    • Team
    • Dieu de l' Arcade
    • *****
    • Messages: 6430
    • Localisation: Nancy
    • 8 bits generation
      • Voir le profil
    [TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)
    « Réponse #2 le: Jeudi 15 Mars 2018, 00:30:54 am »
  •  ^-^

    Hors ligne Iro

    • Alias le Rouston Masqué
    • Staff
    • Dieu de l' Arcade
    • *****
    • Messages: 100301
    • Localisation: Chilly Mazarin
    • Iro, chevalier Judaï
      • Voir le profil
    [TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)
    « Réponse #3 le: Jeudi 15 Mars 2018, 09:21:21 am »
  • - 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)


    (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

    LES TUTOS DE GAMO   

    Hors ligne Solkan

    • ✌(◕‿◕)✌ Donateur 2018
    • Hardcore Gamer
    • *
    • Messages: 1963
    • Localisation: Braives - Belgique
      • Voir le profil
      • MountyHall
    [TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)
    « Réponse #4 le: Jeudi 15 Mars 2018, 10:03: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

    Hors ligne f4brice

    • ✌(◕‿◕)✌ Donateur 2018
    • Arcade Kingmaster
    • *
    • Messages: 4098
    • Localisation: Besançon (prononcez "B'zançon")
    • « Matériel inconnu ? Touche à ton cul ! »
      • Voir le profil
    [TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)
    « Réponse #5 le: Jeudi 15 Mars 2018, 18:18:17 pm »
  • 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.

    Hors ligne Cali_955

    • alias Tac
    • Scotché
    • *
    • Messages: 402
    • Localisation: Le Mans
    • Got arcade fire...
      • Voir le profil
    [TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)
    « Réponse #6 le: Jeudi 15 Mars 2018, 19:35:47 pm »
  • Merci à toi pour ce tuto.

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

    Hors ligne Solkan

    • ✌(◕‿◕)✌ Donateur 2018
    • Hardcore Gamer
    • *
    • Messages: 1963
    • Localisation: Braives - Belgique
      • Voir le profil
      • MountyHall
    [TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)
    « Réponse #7 le: Jeudi 15 Mars 2018, 21:32: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.


    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 ?

    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 :)
    « Modifié: Jeudi 15 Mars 2018, 22:32:35 pm par Solkan »
    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

    Hors ligne f4brice

    • ✌(◕‿◕)✌ Donateur 2018
    • Arcade Kingmaster
    • *
    • Messages: 4098
    • Localisation: Besançon (prononcez "B'zançon")
    • « Matériel inconnu ? Touche à ton cul ! »
      • Voir le profil
    [TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)
    « Réponse #8 le: Vendredi 16 Mars 2018, 07:22:33 am »
  • 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.

    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.

    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.
     ;)

    Hors ligne Iro

    • Alias le Rouston Masqué
    • Staff
    • Dieu de l' Arcade
    • *****
    • Messages: 100301
    • Localisation: Chilly Mazarin
    • Iro, chevalier Judaï
      • Voir le profil
    [TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)
    « Réponse #9 le: Vendredi 16 Mars 2018, 07:40:32 am »
  • @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

    LES TUTOS DE GAMO   

    Hors ligne Solkan

    • ✌(◕‿◕)✌ Donateur 2018
    • Hardcore Gamer
    • *
    • Messages: 1963
    • Localisation: Braives - Belgique
      • Voir le profil
      • MountyHall
    [TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)
    « Réponse #10 le: Vendredi 16 Mars 2018, 07:51:40 am »
  • 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

    Hors ligne kidicarus

    • Grand Pilier
    • *
    • Messages: 770
    • Localisation: Bruxelles Belgique
    • Fan de flippers de nintendo et retro gaming
      • Voir le profil
    [TUTO] Programmateur K150 et Naomi Zero Key (PIC 16F628A)
    « Réponse #11 le: Vendredi 16 Mars 2018, 12:00:30 pm »
  • 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