Table des matières:

Programmeur ATTiny HV : 4 étapes
Programmeur ATTiny HV : 4 étapes

Vidéo: Programmeur ATTiny HV : 4 étapes

Vidéo: Programmeur ATTiny HV : 4 étapes
Vidéo: Programmer un attiny85 - EP03 Projet Dé Electronique 2024, Juillet
Anonim
Programmeur ATTiny HV
Programmeur ATTiny HV
Programmeur ATTiny HV
Programmeur ATTiny HV

Cette instructable est destinée à un utilitaire de programmation ATTiny utilisant un ESP8266 et une interface utilisateur basée sur un navigateur. Elle fait suite à un précédent éditeur de fusibles instructable pour lire et régler les fusibles, mais prend désormais en charge l'effacement, la lecture et l'écriture des mémoires flash et EEPROM.

Le support de fusible permet de modifier les paramètres contrôlés par les 2 octets de fusible une activité très simple.

Les supports de mémoire permettent de sauvegarder et de restaurer le contenu de la mémoire flash et de l'EEPROM. Un nouveau contenu à partir de fichiers hexadécimaux peut également être écrit. Cela rend la restauration ou l'écriture de nouveaux chargeurs de démarrage micronucleus très simple.

L'appareil a les caractéristiques suivantes.

  • Serveur Web prenant en charge la lecture et l'écriture des données de fusible et une page d'éditeur donnant un accès facile aux options de fusible
  • Puce d'effacement (nécessaire avant d'écrire un nouveau matériel)
  • Lecture et écriture de données de programme Flash à partir de fichiers hexadécimaux
  • Lecture et écriture de données EEPROM à partir de fichiers hexadécimaux
  • Prise en charge des variantes ATTiny 25, 45 et 85
  • Alimenté par USB avec générateur 12V interne pour la programmation haute tension
  • Configuration du réseau Wifi à l'aide du point d'accès wifiManager Accès par navigateur au système de fichiers ESP8266 SPIFFS pour le téléchargement et le téléchargement de fichiers
  • Mise à jour OTA du firmware ESP8266

Étape 1: Composants et outils

Composants

  • Module ESP-12F
  • Module d'amplification 5V à 12V
  • prise micro USB avec connecteur soudable
  • Condensateur au tantale 220uF
  • Régulateur LDO 3,3 V xc6203
  • Transistors MOSFET 3x canal n AO3400 1 x canal p AO3401
  • Résistances 2 x 4k7 1x 100k 1x 1K 1x470R 1x 1R27
  • bloc d'en-tête de broche
  • Petit morceau de planche à pain pour les circuits de support
  • brancher wireEnclosure (j'ai utilisé une boîte imprimée en 3D sur

Outils

  • Fer à souder à pointe fine
  • Pince à épiler
  • Pinces coupantes

Étape 2: Électronique

Électronique
Électronique

Le schéma montre que toute l'alimentation est dérivée d'une connexion USB 5V. Un régulateur fournit 3,3V au module ESP-12F. Un petit module boost produit le 12V nécessaire à la programmation haute tension.

L'ESP GPIO fournit les 4 signaux logiques utilisés dans la programmation haute tension (horloge, entrée de données, sortie de données et entrée de commande).

Un GPIO est utilisé pour allumer et éteindre un transistor MOSFET alimenté par le rail 12V via une résistance 1K. Lorsque le GPIO est haut, le tMOSFET est activé et son drain est à 0V. Lorsque le GPIO est réglé bas, le drain monte à 12 V nécessaire pour définir le mode de programmation haute tension. Un deuxième GPIO peut être utilisé pour abaisser le haut 12V à 4V afin qu'il puisse être utilisé comme un signal de réinitialisation conventionnel. Cette fonction est actuellement inutilisée mais pourrait être utilisée pour prendre en charge la programmation SPI plutôt que la programmation haute tension.

Un GPIO est utilisé pour allumer et éteindre un pilote MOSFET à 2 étages pour l'alimentation 5V de l'ATTiny. Cet arrangement est utilisé pour répondre à la spécification selon laquelle lorsque le 5V est allumé, il a un temps de montée rapide. Ceci n'est pas satisfait en pilotant l'alimentation directement à partir d'un GPIO, en particulier avec le condensateur de découplage 4u7 présent sur la plupart des modules ATTiny. Une résistance de faible valeur est utilisée pour amortir le pic de courant provoqué par la mise sous tension rapide des transistors MOSFET. Il n'est peut-être pas nécessaire, mais il est utilisé ici pour éviter tout problème pouvant être causé par ce pic d'activation.

Notez que le schéma diffère un peu de la version précédente de l'éditeur de fusibles. Les broches GPIO sont réaffectées pour rendre la programmation SPI possible bien que le logiciel ne l'utilise pas pour le moment. Les broches de lecture des signaux de l'ATTiny ont une protection supplémentaire pour les signaux 5V utilisés.

Étape 3: Assemblage

Assemblée
Assemblée
Assemblée
Assemblée

La photo montre les composants assemblés dans un petit boîtier. Une petite planche à pain se trouve au-dessus du module ESP-12F et contient le régulateur 3,3 V et les 2 circuits de commande de tension.

Le module boost 12V est sur la gauche et reçoit son alimentation d'entrée de l'USB. Le boîtier a un emplacement pour le bloc d'en-tête à 7 broches pour permettre les connexions à l'ATTiny. Après le câblage et le test, l'USB et le bloc d'en-tête sont fixés sur le boîtier avec de la colle résine.

Une étiquette peut être imprimée à partir de l'image à coller sur la boîte pour aider à raccorder les signaux.

Étape 4: Logiciel et installation

Le logiciel pour le programmeur est dans un croquis Arduino ATTinyHVProgrammer.ino disponible sur

Il utilise une bibliothèque contenant des fonctions Web de base, une prise en charge de la configuration wifi, des mises à jour OTA et un accès au système de classement basé sur un navigateur. Ceci est disponible sur

La configuration du logiciel se trouve dans un fichier d'en-tête BaseConfig.h. Les 2 éléments à modifier ici sont les mots de passe pour le point d'accès de configuration wifi et un mot de passe pour les mises à jour OTA.

Compilez et téléchargez sur l'ESP8266 à partir d'un IDE Arduino. La configuration IDE devrait permettre une partition SPIFFS, par exemple l'utilisation de 2M/2M permettra l'OTA et un grand système de fichiers. D'autres mises à jour peuvent ensuite être effectuées en utilisant OTA

Lors de la première exécution, le module ne saura pas comment se connecter au wifi local et mettra donc en place un réseau AP de configuration. Utilisez un téléphone ou une tablette pour vous connecter à ce réseau, puis accédez à 192.168.4.1. Un écran de configuration wifi apparaîtra et vous devrez sélectionner le réseau approprié et saisir son mot de passe. Le module va redémarrer et se connecter en utilisant ce mot de passe à partir de maintenant. Si vous passez à un autre réseau ou si vous modifiez le mot de passe du réseau, le point d'accès sera à nouveau activé, suivez donc la même procédure. Lorsque vous entrez dans le logiciel principal après la connexion au wifi, téléchargez les fichiers dans le dossier de données en naviguant jusqu'aux modules ip/upload. Cela permet de télécharger un fichier. Une fois tous les fichiers téléchargés, un accès supplémentaire au système de fichiers peut être effectué en utilisant ip/edit. Si l'ip/ est accédé, alors le index.htm est utilisé et fait apparaître l'écran principal du programmeur. Cela permet de voir, d'éditer et d'écrire les données du fusible, d'effacer la puce et de lire et d'écrire la mémoire flash et EEPROM.

Il existe un certain nombre d'appels Web utilisés pour atteindre cet objectif

  • ip/readFuses obtient les données de fusible actuelles
  • ip/writeFuses écrit de nouvelles données de fusible
  • ip/erasechip.efface la puce
  • ip/dataOp prend en charge les fonctions de lecture et d'écriture de la mémoire, il fournit les paramètres suivants

    • dataOp (0=lecture, 1=écriture)
    • dataFile (nom du fichier hexadécimal)
    • eeprom (0= Flash, 1 = eeprom)
    • version (0=25, 1=45, 2=85)

en outre, un paramètre AP_AUTHID peut être défini dans l'esquisse avant la compilation. S'il est défini, il doit être entré dans la page Web pour autoriser les opérations.

ip/edit donne accès aux fichiers; ip/firmware donne accès aux mises à jour OTA.

Le format de fichier hexadécimal est un enregistrement de style Intel compatible avec ceux produits par Arduino IDE. Si un enregistrement d'adresse de début est présent, cela déclenchera l'insertion d'une instruction RJMP à l'emplacement 0. Cela permet aux fichiers du chargeur de démarrage de micronoyau d'être programmés dans une puce effacée et de fonctionner. Pour plus de commodité, des fichiers hexadécimaux simples constitués d'une adresse hexadécimale à 4 caractères suivie de 16 octets de données hexadécimales peuvent également être lus et utilisés.

Conseillé: