Adaptateur TurboGrafx-16/PC-Engine/Duo à USB

Introduction

Cette page contient l'information nécessaire pour fabriquer un adaptateur ou convertir une manette TurboGrafx-16/PC-Engine à USB. Ce projet a beaucoup en commun avec les projets Adaptateur Atari/SMS/Genesis/Multi-tap Genesis à USB et Manette SNES/NES (et souris SNES) à USB. Le logiciel du micro-contrôleur commun à ces projets supprote les manettes TurboGrafx-16/PC-Engine depuis la version 1.7.

Caractéristiques:
  • Supporte les manettes avec prises DIN et Mini-DIN.
  • La fonction "Turbo" à deux vitesses fonctionne.
  • Pas de pilotes spéciaux requis. L'adaptateur respecte le standard USB HID.



Photos

Exemple d'adaptateur construit avec le circuit montage en surface et un connecteur DIN en ligne:


Schema

Voici le schéma et quelques photos de connecteurs (DINs à gauche, MINI-DINs à droite) pour clarifier:
schema

Liste des composantes:
RefDescription
U2Un micro-contrôleur ATmega8. ATMEGA8-16PC, ATMEGA8-16PI, ATMEGA8-16PJ ou ATMEGA8-16PU. Ne pas utiliser un ATMEGA8L-*, car l'horloge de 12Mhz dépasserait la limite.
R1Résistance de 1.5k. Ordinaire au carbone 1/4 watt.
R2, R3Résistance de 68 ohms. Ordinaire au carbone 1/4 watt.
D2, D3Diodes Zener de 3.6 volts.
Y1Crystal de 12 mhz
C2, C3Condensateurs de 18 pf. Si votre cristal recommande une autre valeur, utilisez la.
C1Condensateur de 1 uf. Installer près du ATmega8.
J2Connecteur 2x3 (6 broches), espacement 2.54mm. Pour la programmation du ATmega8.

Pour la connection USB, simplement dénuder un cable USB et souder les fils directement sur le circuit. USB utilise des couleurs de fils standardisés, mais faites attention, il y a parfois des exceptions.
Couleur Description
  Rouge +5 volts
  Noir Ground
  Vert D+
  Blanc D-



Programmation

Les microcontroleurs sont des composantes qui doivent être programmés pour qu'elles fassent quelque chose d'utile. Voici donc le fichier .hex qu'il faut programmer dans le microcontroleur:
FichierCommentaires
nes_snes_db9_usb-1.7.hex
  • Support des manettes TGFX16/PC-Engine
  • Amélioration de l'auto-détection des manettes Genesis à 6 boutons
  • Le bouton 'MODE' des manettes Genesis à 6 boutons est maintenant utilisable.
  • Support du multi-tap Sega (testé avec le modèle MK-1654 seulement!)(informations techniques)

Plusieurs micro-contrôleurs possèdent ce qu'on appelle 'Fuse bytes'. Dans le cas du ATmega8, il y en a deux: Le 'high byte' et le 'low byte'. Ces deux octets servent à configurer certains paramètres du microcontroleur. Quel type d'horloge? Crystal? Résonateur? Oscillateur RC interne? Permettre la programmation par ISP? Il est très important de configurer les fuse bytes avec les bonnes valeurs. L'utilisation de mauvaises valeurs peut rendre le micro-contrôleur inutilisable.

Pour ce projet, voici les bonnes valeurs:
high byte = 0xc9, low byte = 0x9f

Pour de l'information sur la programmation d'un AVR, visitez ma page sur la programmation d'AVR



Source code

Pour ceux qui aimeraient modifier le comportement de l'adaptateur ou supporter d'autres types de manettes, voici le code source. Depuis la version 1.5, le code est publié sous la license GPLv2. Les version antérieures était sous la license d'Objective Development, qui est en fait GPL avec quelques extensions pour couvrir le matériel (le circuit). Voir le fichier License.txt pour plus d'information.
FichierCommentaires
nes_snes_db9_usb-1.7.tar.gz
  • Amélioration de l'auto-détection des manettes Genesis à 6 boutons
  • Le bouton 'MODE' des manettes Genesis à 6 boutons est maintenant utilisable.
  • Support du multi-tap Sega (testé avec le modèle MK-1654 seulement!)(informations techniques)
  • Support des manettes TGFX

Contactez moi à l'addresse raph@raphnet.net si vous faites des modifications intéressantes.

Combinaison Vendor ID/Product ID USB:
Veuillez ne pas réutiliser ma combinaison VID/PID pour des projets dérivés ou autres. Obtenez-en un vous-même (ou inventez-en un à vos risques). J'ai acheté les miens chez mecanique, et ça coute beaucoup moins cher que de devenir membre du forum des implémenteurs USB (2000$ US)...


Circuit imprimé

Une partie de ce projet peut être réalisé en montage en surface à l'aide de mon circuit Multiuse PCB2. Voici une photo de ce circuit:
Multiuse PCB2:


Avertissement

Je ne saurais être tenu responsable pour les dommages que l'utilisation des informations ou la mise en œuvre des instructions présentées sur cette page pourrait causer à votre équipement, à vous-même ou à autrui. Aussi, je ne donne aucune garantie quant à l'exactitude des informations et à leur fonctionnement.