Clignotant à diode sur le contrôleur de crête. Le circuit de microcontrôleur le plus simple. Sélection du mode stroboscopique LED

Les microcontrôleurs PIC sont basés sur l'architecture Harvard et sont fabriqués par Microchip Technology Inc. Le nom PIC est une abréviation de l'expression anglaise "peripheral interface controllers" - en traduction pour les grands et puissants « contrôleurs d'interface périphérique ». Les contrôleurs PIC de marque Microchip offrent des microcontrôleurs 8, 16 et 32 ​​bits ainsi que des contrôleurs de signaux numériques DSC. Les microcontrôleurs PIC présentent les avantages significatifs suivants : bonne continuité des différentes familles : compatibilité logicielle complète et outils de développement communs, dont l'IDE MPLAB gratuit, bibliothèques communes, piles communes de protocoles de transfert courants, compatibilité à la périphérie, broches, tensions d'alimentation. La gamme de contrôleurs comprend plus de 500 types différents avec toutes sortes de périphériques, différentes tailles de mémoire, performances, nombre de broches, plages de tension d'alimentation, températures de fonctionnement, etc.


Considérez le contrôleur de la série PIK le plus simple PIC16C84 ou PIC16F84.

La présence de la mémoire FLASH permet de la reprogrammer en quelques secondes. Le nombre de cycles de réécriture du microcontrôleur est de 1000. Sur ses 18 broches, 13 peuvent être utilisées comme bits d'E/S à usage général. Lorsqu'ils sont câblés en sortie, ils autorisent un courant du niveau d'une unité logique "1" jusqu'à 20mA et un courant d'un niveau de zéro logique "0" jusqu'à 25mA (plus que suffisant pour connecter, par exemple, LED). Cela permet de développer des dispositifs électroniques simples et bon marché sur ce contrôleur et en fait un candidat idéal pour ceux qui souhaitent apprendre et comprendre les principes de travail avec un microcontrôleur PIC. Le brochage des microcontrôleurs 8 bits est indiqué ci-dessous :


Les broches RA * et RB * sont des entrées et sorties associées aux registres du contrôleur PORTA et PORTB, respectivement (RA4 peut être utilisé comme entrée de minuterie interne et RB0 peut être utilisé comme source d'interruption). VDD et VSS - alimentation (+ Usup et GND). La série 16x84 de microcontrôleurs fonctionne sur une large plage de tension, mais VSS est généralement connecté à 0V et VDD est connecté à + 5V. La broche principale de réinitialisation / MCLR est généralement connectée au VDD (soit directement, soit via une résistance), car le MCU contient un circuit de réinitialisation fiable lorsque la tension d'alimentation est appliquée. Les broches OSC1 et OSC2 se connectent à l'oscillateur d'horloge et peuvent être configurées pour différents types d'oscillateur, y compris les modes résonateur et oscillateur RC. Un circuit simple utilisant un contrôleur PIC 16C84 est illustré dans la figure ci-dessous :


Le circuit, en plus du microcircuit, n'a qu'un générateur RC et une broche RB4 est connectée à la LED. Pour cela, il y a un programme étonnamment court (6 mots) pour MPASM en assembleur - LED clignotante.

Tapez ce code dans n'importe quel éditeur de texte, enregistrez-le avec l'extension ASM (LIGHTS.ASM), puis réassemblez-le à l'aide du programme MPASM (utilisez la commande "MPASM LIGHTS.ASM") pour obtenir un fichier HEX pouvant être téléchargé sur le microcontrôleur à l'aide du programmateur.

Après la mise sous tension du circuit, la LED clignotera.

Tout ce que vous devez savoir sur le microcontrôleur PIC16F628A afin d'y assembler avec succès des conceptions de radio amateur, de nombreuses documentations de référence et des circuits intéressants.

Alors, nous avons décidé et décidé d'assembler notre premier produit fait maison sur un microcontrôleur, il ne reste plus qu'à comprendre comment le programmer. Par conséquent, nous avons besoin d'un programmeur PIC et vous pouvez assembler son circuit de vos propres mains, en considérant, par exemple, quelques conceptions simples.

Cet utilitaire propriétaire et gratuit est un excellent environnement de développement et de débogage pour tous les microcontrôleurs PIC de Microchip Technology. MPLAB se compose d'applications distinctes, mais connectées les unes aux autres et se compose d'un compilateur en langage assembleur, d'un éditeur de texte, d'un simulateur du fonctionnement du firmware du contrôleur.De plus, un compilateur CI peut être utilisé.

L'auteur Tavernier K. a présenté des informations techniques sur les outils de développement logiciel basés sur des microcontrôleurs PIC. Les applications contiennent une collection de solutions de circuits et de logiciels basées sur des microcontrôleurs PIC, des interfaces standard sont implémentées. Le livre contient de nombreux exemples d'implémentation logicielle de diverses fonctions : organisation des interruptions, routines arithmétiques étendues, arithmétique en virgule flottante, etc. Pour consolider la théorie dans la pratique, des dispositifs simples sont fournis, notamment un réveil et un voltmètre numérique multivoies.

Alimentation et synchronisation des microcontrôleurs PIC
Développement d'applications. Quel microcontrôleur choisir
Solutions schématiques d'interfaces de microcontrôleurs
Contrôle de LED et optocoupleurs, relais, indicateurs numériques, ADC
Interaction avec les périphériques via une interface série
Multiplication non signée de nombres à 8 bits
Multiplication signée et non signée de nombres 16 bits
Division, addition et soustraction de nombres 16 bits
Opérations en virgule flottante
Conversion BCD en binaire
Solutions de circuits prêts : réveil, implémentation de l'interface i2ts, voltmètre avec indication LED
Commande de moteur pas à pas

Qu'est-ce qu'un microcontrôleur et comment ça marche
Jeu d'instructions PIC16F84A
Qu'est-ce qu'un programme et les règles pour sa compilation. Un exemple de création d'un programme pour un multivibrateur auto-oscillant. Directives.
Environnement de développement intégré MPLAB IDE et travailler dans celui-ci
Un exemple de création d'un programme
Travail sur simulateur. Déboguer un programme
Un exemple de développement d'un programme avec des interruptions
Organisation d'une transition calculée.
Travailler avec la mémoire de données EEPROM
Comment fonctionne un comparateur numérique
Changement cyclique. Opération de multiplication
Introduction au principe de construction d'un sous-programme d'indication dynamique. Adressage indirect
Convertir des nombres binaires en BCD. La formation finale du texte du sous-programme d'indication dynamique
Le principe de comptage. Travailler avec la minuterie TMR0. Le principe de paramétrage des groupes de commandes de comptage dans le texte du programme

Les quatre livres, en plus, toutes les sources des programmes décrits et d'autres informations de référence supplémentaires sont ajoutés aux archives. Dans l'archive, vous trouverez également les codes sources des programmes et le "firmware" des contrôleurs. Documents de référence sur tous les micro-contrôleurs discutés dans les quatre livres (PIC12c67x PIC16c432 PIC16c433 PIC16c505 PIC16c54_58 PIC16c554_558 PIC16c620_622 PIC16c623_625 PIC16c62B_72A PIC16c63a_65b_73b_74b PIC16c64x_66x PIC16C6X PIC16c717_77x PIC16C71xx PIC16c72 PIC16c72_77 PIC16c745_765 PIC16c77x PIC16c781_782 PIC16c92x PIC16F630_676 PIC16f7x PIC16F84A PIC16f85_86 PIC16F87xA PIC16hv540 PIC16Lc74b PIC17c4x PIC17c752_756 PIC17c7xx PIC17LC752P16 PIC18c601_801 PIC18cXX8)
Introduction à l'interface CAN 2.0
Module CAN dans les microcontrôleurs PIC
Implémentation logicielle de l'interface I2C et un bref aperçu de celle-ci
Puces de code de saut KeeLoq
Bus série universel USB dans les microcontrôleurs PIC et logiciel pour travailler avec USB
Modules ADC X-bit dans les microcontrôleurs PIC
Recommandations pour travailler avec les CAN dans les microcontrôleurs PIC
Ainsi que des logiciels de programmation des PIC-Microcontrollers IC-Prog et PonyProg2000 décrits dans les livres

Les développeurs traitent les problèmes de débogage différemment. Certains pensent qu'il suffit d'analyser soigneusement le code source du programme, de vérifier la formation de signaux sur les broches du MCU et de corriger toutes les erreurs. D'autres utilisent un ensemble de sous-programmes spéciaux qui sont appelés aux points d'arrêt et fournissent des informations sur l'état des ressources MC d'une certaine manière (par exemple, en émettant vers un indicateur ou un canal de communication série). Soit dit en passant, c'est la base de la technologie ICD (In-Circuit Debugger - débogage en circuit), qui est implémentée dans certains MC de Motorola et Microchip. Mais avec l'une des méthodes de débogage ci-dessus, un problème important se pose - la nécessité de reprogrammer le MC après avoir apporté des modifications même mineures au programme. Ce problème est particulièrement pertinent pour les MCU programmables une seule fois. Certes, dans ce dernier cas, le débogage peut être effectué, disons, sur un MK avec mémoire FLASH, mais le temps consacré à la programmation est tout de même assez important et atteint parfois plusieurs minutes. De plus, le MK, en règle générale, doit être retiré du circuit en cours de débogage, connecté au programmeur, puis réinséré. Ceux qui ont eu affaire à la programmation PC ressentent particulièrement la différence. Par exemple, lors de la programmation dans l'environnement Borland C ++ 3.1 (BC ++), pour exécuter le programme en cours de débogage, il suffit d'appuyer sur la combinaison de touches Ctrl + F9, et après quelques secondes cela fonctionnera déjà (sauf si, bien sûr, il contient des erreurs). J'aimerais obtenir un résultat similaire lors de l'écriture de programmes de contrôle pour MK. Et cela est possible grâce à l'utilisation de VSE, qui est un outil logiciel et matériel capable de remplacer un MC émulé dans un appareil réel, auquel il est connecté avec un câble avec une tête d'émulation spéciale. L'utilisation d'un tel émulateur n'est pas différente de l'utilisation d'un vrai MK, sauf que le programme modifié est rechargé presque instantanément dans le VSE.

Cours 1 - introduction

Microchip est connu depuis longtemps des ingénieurs en électronique domestique en raison de la large gamme de microcontrôleurs 8 bits bon marché, qui ont trouvé une grande application dans divers appareils pour les contrôleurs de température, les petits appareils d'automatisation, les capteurs, etc. Afin de suivre ses principaux concurrents, Microchip a introduit ses nouveaux microcontrôleurs PIC32 32 bits dans le monde électronique en 2007.

La gamme PIC32MX comprend un grand nombre d'appareils de PIC32MX1 ** à PIC32MX7 ** avec différentes capacités de mémoire (de 16 Ko de flash et 4096 octets de RAM à 512 Ko de flash et 131 Ko de RAM), des capacités périphériques et des conceptions de boîtiers. En général, il existe des modèles pour presque toutes les applications.

La version complète de la conférence avec une description d'une connexion MK typique et un exemple de sa programmation peut être prise ici :

Cours 2 - Microcontrôleurs de la famille PIC32. Travailler avec des minuteries.

À l'aide de minuteries, la synchronisation est réalisée, les interruptions sont organisées, des signaux avec modulation de largeur d'impulsion sont générés, etc. Il existe deux types de temporisateurs dans les contrôleurs PIC-32 - les temporisateurs A (en fait, cela semble être comme un - TMR1) et les temporisateurs de type B (TMR2, TMR3, TMR4, TMR5). Tous les temporisateurs sont de 16 bits, cadencés à partir d'une source externe ou interne et déclenchent des interruptions.

Cours 3 - Microcontrôleurs PIC32 - interruptions. Il s'agit d'une sorte d'événement externe ou interne qui nécessite que le contrôleur y réponde immédiatement. Dans ce cas, l'exécution du code du programme en cours est temporairement interrompue, le MC enregistre les valeurs des registres de service et entre dans le gestionnaire d'interruption, puis traite cette interruption et, en sortant, il restaure les registres de service et revient à nouveau au lieu d'exécution du code.

Les microcontrôleurs de la série Microchip PIC16 sont capables d'exécuter des instructions arithmétiques simples avec des opérandes 8 bits, car leur cœur est lui-même 8 bits. Mais certains projets nécessitent beaucoup plus de ressources de calcul, donc dans de tels moments, il est utile d'utiliser une bibliothèque spéciale d'opérations arithmétiques. La bibliothèque présentée sur le lien ci-dessus vous permettra d'effectuer des multiplications, divisions, soustractions et additions de nombres 16 bits, vous pouvez convertir des nombres sous différentes formes, vérifier l'uniformité, mettre un nombre au carré et même un tas technique de petites choses utiles.

Pendant les vacances du Nouvel An, et pas seulement, il y a un grand besoin d'éclairage lumineux.

Cet appareil peut être appelé de différentes manières: une lampe d'ambiance, une lampe RVB, une lampe du Nouvel An, une balise LED, etc. Comment l'utiliser - votre imagination vous le dira.

Voici un schéma de principe d'un luminaire RGB multicolore basé sur un microcontrôleur PIC12F629 (ou PIC12F675). Cliquez sur l'image pour l'agrandir.

L'apparence de la lampe RVB assemblée.

Vidéo de la lampe fonctionnant en mode "Mood Lamp".

Le schéma de l'appareil proposé est très simple, mais il comporte de nombreux modes de fonctionnement. Voici quelques-uns d'entre eux:

    Changement de couleur lent. Les lueurs vertes, rouges et bleues de différentes intensités sont mélangées, ce qui vous permet d'obtenir une recherche fluide des couleurs de l'arc-en-ciel;

    Clignotement rapide alterné du rouge, du vert et du bleu ;

    Une augmentation douce de la lumière blanche puis 4 flashs. Puis le cycle se répète ;

    Clignotement net alterné et décroissance lente des couleurs primaires (bleu, rouge, vert). Ensuite, le cycle se répète.

    Rouge lueur solide ;

    Bleu lueur solide ;

    Lueur verte continue ;

    Bleu clignotant ;

    Changement de couleur accéléré;

    Lueur blanche douce;

    Lueur blanche solide avec une luminosité réduite ;

    Lueur blanche solide avec une luminosité minimale;

    Lueur violette douce (rouge + bleu);

    Lueur orange solide (rouge + vert).

Ce sont les principaux modes de fonctionnement du luminaire. Tous les autres sont des options pour changer en douceur les couleurs de l'arc-en-ciel à différentes vitesses.

Pour apprécier toute la riche palette de modes et les performances de l'appareil, mieux vaut d'abord l'assembler sur une maquette sans soudure. La soi-disant "planche à pain" (Breadboard).

Pour que la lueur des différentes LED se mélange et forme une nuance de couleur uniforme, les LED doivent être placées aussi près que possible les unes des autres. De plus, après avoir prototypé le schéma, vous pouvez prendre une feuille A4 blanche, l'enrouler dans un cylindre et la fixer sur les côtés avec des trombones. Placez le cylindre de papier obtenu sur une planche à pain sans soudure - fermez les LED. En conséquence, nous obtenons une sorte de teinte mate. Voici ce qui peut en sortir.

Le microcontrôleur doit être flashé avant d'être scellé dans la carte. J'ai déjà décrit comment faire cela sur les pages du site. Que flasher est une question distincte. Si vous n'avez rien, vous devez d'abord assembler votre propre programmeur de microcontrôleur USB PIC ou en acheter un prêt à l'emploi. Il vous sera utile plus d'une fois.

Lorsque vous flashez un PIC12F629 ou un PIC12F675, vous devez faire attention à la constante d'étalonnage. Il ne sera pas superflu de considérer d'abord ( "Lire") des données d'un microcontrôleur pur et écrivez la valeur constante quelque part sur un morceau de papier. Après avoir flashé le microcontrôleur, vous devez vérifier si la valeur de la constante dans la cellule 0x3FF la valeur précédemment lue. S'il est différent, changez la constante. J'ai déjà parlé de ce qu'est une constante de jauge.

Liste des pièces radio nécessaires au montage d'une lampe RGB.

Nom La désignation Paramètres / Évaluation Marque ou type d'article
Microcontrôleur DD1 Microcontrôleur 8 bits PIC12F629 ou PIC12F675
Stabilisateur intégral DA1 pour une tension de sortie de 5 volts 78L05, MC78L05ACP (tout analogique)
transistors MOSFET VT1 - VT3 - 2N7000 ou KP501A ( Attention! KP501A a un brochage différent !)
Diode semi-conductrice VD1 (non requis) 1N4148, 1N4007 ou similaire
LED HL1 - HL4 rouge couleurs éclatantes tout brillant d'un diamètre de 5 mm.
HL5 - HL7 vert couleurs éclatantes
HL8 - HL10 bleu couleurs éclatantes
Résistances R1 120 ohms MLT, MON (pour la dissipation de puissance - 0,125 W)
R2, R3 68 ohms
Condensateurs C2 220 nF (0,22 F) Céramique multicouche ou analogues
C3 100 nF (0,1 F)
Condensateur électrolytique C1 47 uF * 16 volts tout aluminium (K50-35 ou analogues étrangers)
Bouton SB1 - n'importe quel bouton tactile (par exemple, KAN0610-0731B)
Sauteur J1 (pas installé) -

Après la mise sous tension, l'appareil commence à fonctionner immédiatement. En appuyant sur le bouton SB1, vous pouvez changer le mode de fonctionnement de la lampe RGB. Le bouton peut être enfoncé au moins indéfiniment - les modes de commutation se produisent dans un cercle.

Le PCB est facile à réaliser avec un marqueur PCB. C'est ce que j'ai fait. S'il n'y a pas de marqueur pour les planches, vous pouvez utiliser la méthode du "crayon" ou le zaponlak. Savoir faire des planches avec LUT - encore mieux.

Eh bien, s'il n'y a rien de ce qui précède et que vous voulez vraiment faire un produit fait maison, alors au lieu de la fibre de verre, vous pouvez utiliser du carton épais, un morceau de plastique mince ou de contreplaqué. En général, tout ce sur quoi on peut monter le circuit par montage en surface. Les connexions peuvent être faites avec du fil de cuivre à l'arrière de la base.

Maintenant, ce conseil va sembler fou, mais quand j'ai commencé à faire de l'électronique, j'ai essayé toutes sortes de façons d'installer des circuits. Ces derniers temps, les consommables et les pièces détachées étaient achetés sur les marchés de la radio, qui se trouvaient uniquement dans les grandes villes. À cette époque, nous ne pouvions que rêver de commander des pièces radio en ligne.

Explications du schéma.

Les transistors 2N7000 peuvent être remplacés par des KP501A. Mais il vaut la peine de considérer que KP501A un autre brochage ! C'est ça.

La diode de protection VD1 n'a pas besoin d'être soudée dans le circuit. Il sert à protéger le circuit en cas de mauvaise connexion électrique - inversion de polarité. Si une telle protection n'est pas nécessaire, la diode VD1 n'est pas non plus nécessaire.

Les résistances peuvent être sélectionnées avec des calibres proches de ceux indiqués sur le schéma (tolérance standard ± 20%). Par exemple, j'ai réglé R1 sur 130 ohms et R2, R3 sur 82 ohms.

Pour alimenter le circuit, vous aurez besoin d'une alimentation stabilisée avec une tension de sortie de 12 volts. Convient, par exemple, une alimentation réglable dont le circuit est décrit. Vous pouvez également utiliser pour alimenter l'appareil

Ce schéma est un simple stroboscope construit sur le microcontrôleur PIC12f629. Le stroboscope dispose de 4 cavaliers avec lesquels vous pouvez sélectionner l'une des options de fonctionnement des LED.

Il existe les modes suivants : intervalle d'impulsion (30 ms et 10 ms), taux de répétition (1, 2, 3 et 4 s), création de flashs simples ou doubles.

Étant donné que la sortie du microcontrôleur PIC12F629 est capable de supporter une charge maximale de l'ordre de 25 mA, un transistor est inclus dans le circuit du stroboscope qui peut décharger la sortie du microcontrôleur et augmenter le courant traversant la LED. Ce transistor a un courant de collecteur maximum de 100mA, suffisant pour alimenter la plupart des types de LED de 5 mm.

La résistance R4 agit comme un limiteur de courant pour la LED. Lorsque le stroboscope est alimenté à 5 volts et que la tension aux bornes de la LED est de 1,8 volts, le courant traversant la LED est limité à 47 mA.

La tension d'entrée ne doit pas dépasser 5 volts. Le circuit stroboscopique LED est capable de fonctionner à 3 volts, mais vous devrez réduire la résistance de la résistance R4. Il faut prendre en compte lors du calcul de la résistance R4 que certaines LED créent une chute de tension jusqu'à 3 volts, en particulier une LED blanche et certaines LED bleues et vertes.

La largeur d'impulsion, l'intervalle et le mode stroboscopique peuvent être sélectionnés par l'utilisateur à l'aide du bloc de cavaliers. Comme mentionné ci-dessus, le schéma implémente deux modes : flashs simples et doubles (la pause par défaut entre les doubles flashs est de 175 ms).

L'intervalle de salve est mesuré à partir de la fin d'une salve d'une salve jusqu'au début de la salve suivante.

Sélection du mode stroboscopique LED

Le temps de largeur d'impulsion, l'intervalle et le mode double sont tous configurables en modifiant la valeur dans l'EEPROM du microcontrôleur PIC12F629, avant de la flasher. Cela rend l'édition des valeurs beaucoup plus facile, car vous n'avez pas besoin de recompiler le code source du programme. Il vous suffit de flasher le HEX dans la mémoire du microcontrôleur.

Exemples de changement de valeurs dans la mémoire du microcontrôleur PIC12F629

Modifiez la durée du flash. Supposons que vous vouliez une largeur d'impulsion de flash (au lieu des 30 ms par défaut) de 40 ms. Ensuite, la valeur qui doit être écrite dans l'EEPROM est déterminée comme suit : 40 ms / 1 ms = 40. Maintenant, nous traduisons 40 en système hexadécimal, nous obtenons 28, qui doivent être écrits à l'adresse 00 EEPROM.

Calculons la variation de l'intervalle entre les doubles flashs de 0,2 sec (au lieu de 175 ms par défaut). Pour cela 200 msec / 1 msec = 200. On traduit dans le système hexadécimal on obtient C8 que l'on écrit à l'adresse 02.

Pour modifier l'intervalle entre une série de flashs de 1,3 seconde (au lieu de 1 seconde par défaut), il faut procéder comme suit : 1,3 seconde/100 ms = 13. On traduit sous forme hexadécimale, on obtient 0D. Nous écrivons cette valeur dans l'adresse 03 EEPROM.

Il convient de noter que 255 est la valeur maximale pouvant être écrite sur une adresse mémoire.

Le moyen le plus simple de convertir un nombre décimal en hexadécimal (par exemple, le nombre 40) est de taper dans le moteur de recherche google.com : 40 en HEX. Nous obtenons la réponse : 0x28. Le préfixe 0x dans le résultat nous indique simplement que la valeur est en hexadécimal.

Dans le circuit du stroboscope, vous pouvez utiliser le microcontrôleur du PIC12F629 et du PIC12F675.

Modification du circuit stroboscopique LED (code Morse - SOS)

Il s'agit d'une version modifiée du stroboscope qui permet au signal SOS d'être transmis dans le système de code Morse. La longueur du point peut être définie dans l'une des quatre périodes, et le temps entre deux séquences « SOS » peut également être ajusté.

Alors, il est temps d'étudier les microcontrôleurs, puis de les programmer, et je voulais aussi y assembler des appareils dont les circuits sont désormais sur Internet, enfin juste la mer. Bon, on a trouvé un circuit, acheté un contrôleur, téléchargé le firmware... et avec quoi flasher ??? Et puis un radioamateur qui commence à maîtriser les microcontrôleurs est confronté à la question : le choix d'un programmeur ! J'aimerais trouver la meilleure option, en termes de polyvalence - simplicité du schéma - fiabilité. Les programmeurs "propriétaires" et leurs homologues ont été immédiatement exclus en raison d'un circuit assez complexe, qui comprend les mêmes microcontrôleurs qui doivent être programmés. C'est-à-dire qu'il s'avère un "cercle vicieux": pour faire un programmeur, vous avez besoin d'un programmeur. Alors la recherche et les expérimentations ont commencé ! Au départ, le choix s'est porté sur le PIC JDM. Ce programmeur fonctionne à partir du port com et est alimenté à partir de là. Cette option a été testée, j'ai programmé en toute confiance 4 contrôleurs sur 10, avec une alimentation séparée, la situation s'est améliorée, mais pas de beaucoup, sur certains ordinateurs, elle a refusé de faire quoi que ce soit, et elle n'a pas fourni de protection contre le "fou ". Ensuite, le programmeur Pony-Prog a été étudié. En principe, presque le même que JDM. Le programmeur Pony-prog représente un circuit très simple, alimenté par un port com d'ordinateur, et donc, sur les forums, sur Internet, on se pose très souvent des questions sur les échecs de programmation. , ou un autre microcontrôleur. Du coup, le choix s'est porté sur le modèle "Extra-PIC". J'ai regardé le diagramme - très simple, avec compétence! L'entrée est MAX 232, qui convertit les signaux du port série RS-232 en signaux adaptés à une utilisation dans des circuits numériques avec des niveaux TTL ou CMOS, ne surcharge pas le port COM de l'ordinateur par le courant, car il utilise la norme de fonctionnement RS232, ne ne présente pas de danger pour le port COM .Voici le premier plus !
Il fonctionne avec tous les ports COM, à la fois les ports COM standard (± 12v ; ± 10v) et non standard de certains modèles d'ordinateurs portables modernes qui ont des tensions de ligne de signal réduites, jusqu'à ± 5v - un autre avantage ! Pris en charge par les programmes communs IC-PROG, PonyProg, WinPic 800 (WinPic800) et autres - le troisième plus !
Et tout est alimenté par sa propre source d'alimentation !
C'était décidé - nous devons collecter! Ainsi, dans le magazine Radio 2007 №8, une version modifiée de ce programmeur a été trouvée. Il a permis aux microcontrôleurs d'être programmés dans deux modes.
Il existe deux manières connues de mettre les microcontrôleurs PICmicro en mode programmation :
1.Lorsque la tension d'alimentation Vcc est activée, augmentez la tension Vpp (à la broche -MCLR) de zéro à 12V
2. Avec la tension Vcc éteinte, augmentez la tension Vpp de zéro à 12 V, puis activez la tension Vcc
Le premier mode est principalement destiné aux appareils de développement précoce, il impose des restrictions sur la configuration de la broche -MCLR, qui dans ce cas ne peut servir que d'entrée au signal de réglage initial, et dans de nombreux microcontrôleurs, il est possible de tourner cette broche dans une ligne régulière de l'un des ports. C'est un autre plus de ce programmeur. Son schéma est présenté ci-dessous :

Plus grand
Tout a été assemblé sur une maquette et testé. Tout fonctionne bien et de manière stable, aucun problème n'a été remarqué !
Un sceau a été tiré pour ce programmeur.
depositfiles.com/files/mk49uejin
tout a été rassemblé dans un étui ouvert, dont la photo est ci-dessous.




Le câble de connexion a été réalisé indépendamment à partir d'un morceau de câble à huit conducteurs et de connecteurs Komov standard, aucun null modem ne fonctionnera ici, je vous préviens tout de suite ! L'assemblage du câble doit être considéré avec soin, éliminez immédiatement les maux de tête à l'avenir. La longueur du câble ne doit pas dépasser un mètre et demi.
Photo du câble


Alors, le programmateur est monté, le câble aussi, le moment est venu de vérifier toute cette économie d'opérabilité, de rechercher les pépins et les erreurs.
Tout d'abord, nous installons le programme IC-prog, qui peut être téléchargé à partir du site Web du développeur www.ic-prog.com, Décompressez le programme dans un répertoire séparé. Le répertoire résultant doit contenir trois fichiers :
icprog.exe - fichier shell du programmeur.
icprog.sys est un pilote nécessaire pour fonctionner sous Windows NT, 2000, XP. Ce fichier doit toujours se trouver dans le répertoire du programme.
icprog.chm - Fichier d'aide.
Installé, il faudrait maintenant le configurer.
Pour ça:
1. (Windows XP uniquement) : Cliquez avec le bouton droit sur le fichier icprog.exe. Propriétés >> onglet Compatibilité >> Cochez la case à côté de Exécuter ce programme en mode de compatibilité pour : >> sélectionnez Windows 2000.
2. Exécutez le fichier icprog.exe. Sélectionnez "Paramètres" >> "Options" >> onglet "Langue" >> définissez la langue sur "Russe" et cliquez sur "Ok".
Acceptez l'énoncé « Vous devez redémarrer IC-Prog maintenant » (cliquez sur « Ok »). Le shell du programmeur va redémarrer.
Paramètres ">>" Programmeur

1.Vérifiez les paramètres, sélectionnez le port COM que vous utilisez, cliquez sur "Ok".
2.Ensuite, "Paramètres" >> "Options" >> sélectionnez l'onglet "Général" >> cochez l'élément "Activé". Pilote NT / 2000 / XP ">> Cliquez sur" Ok ">> si le pilote n'a pas été installé sur votre système auparavant, dans la fenêtre " Confirmer " qui apparaît, cliquez sur " Ok ". Le pilote sera installé et le shell du programmeur redémarrera.
Noter:
Pour les ordinateurs très "rapides", il peut être nécessaire d'augmenter le paramètre "I/O Delay". L'augmentation de ce paramètre augmente la fiabilité de la programmation, cependant, le temps passé à programmer le microcircuit augmente également.
3. "Paramètres" >> "Options" >> sélectionnez l'onglet "I2C" >> cochez les cases : "Activer MCLR en tant que VCC" et "Activer l'enregistrement en bloc". Cliquez sur "Ok".
4. "Paramètres" >> "Options" >> sélectionnez l'onglet "Programmation" >> décochez la rubrique : "Vérification après programmation" et cochez la rubrique "Vérification lors de la programmation". Cliquez sur OK.
Alors on l'a mis en place !
Nous aimerions maintenant tester le programmeur en place avec IC-prog. Et ici tout est simple :
Ensuite, dans le programme IC-PROG, dans le menu, exécutez : Paramètres >> Test du programmeur

Avant d'effectuer chaque étape de la méthodologie de test, n'oubliez pas de remettre tous les "champs" à leur position d'origine (toutes les "coches" sont décochées), comme le montre la figure ci-dessus.
1.Sélectionnez la « coche » dans le champ « On. Data Output », dans ce cas, une « coche » doit apparaître dans le champ « Data Input » et un niveau de journalisation doit être défini sur le contact (DATA) du connecteur X2. "1" (pas moins de +3,0 volts). Maintenant, fermez le contact (DATA) et le contact (GND) du connecteur X2 entre eux, tandis que la marque dans le champ "Data Input" devrait disparaître pendant que les contacts sont fermés.
2. Lors de la mise en place d'une "coche" dans le champ "On. Clocking », sur le contact (CLOCK) du connecteur X2, le niveau de journalisation doit être réglé. "1". (pas moins de +3,0 volts).
3.Lors de la mise en place d'une « coche » dans le champ « On. Reset (MCLR)", sur le contact (VPP) du connecteur X3, le niveau doit être réglé sur + 13,0 ... +14,0 volts, et la LED D4 (généralement rouge) doit être allumée. Si le commutateur de mode est réglé sur la position 1, alors la LED HL3 sera allumée
Si pendant le test, un signal ne passe pas, vous devez vérifier soigneusement le chemin complet de ce signal, y compris le câble se connectant au port COM de l'ordinateur.
Test du canal de données du programmateur EXTRAPIC :
Pin 1.13 du microcircuit DA1 : tension de -5 à -12 volts. En cochant la case : de +5 à +12 volts.
2. 12 sortie du microcircuit Da1 : tension +5 volts. Lorsque coché : 0 volt.
3. 6 sortie du microcircuit DD1 : tension 0 volt. En cochant la case : +5 volts.
3.1 et 2 sortie du microcircuit DD1 : tension 0 volt. En cochant la case : +5 volts.
broche 4.3 du microcircuit DD1 : tension +5 volts. Lorsque coché : 0 volt.
5.14 sortie du microcircuit DA1 : tension de -5 à -12 volts. En cochant la case : de +5 à +12 volts.
Si tous les tests sont réussis, le programmateur est prêt à l'emploi.
Pour connecter le microcontrôleur au programmateur, vous pouvez utiliser des prises appropriées ou fabriquer un adaptateur basé sur des prises ZIF (avec une force de pression nulle), par exemple, comme ici radiokot.ru/circuit/digital/pcmod/18/.
Maintenant quelques mots sur ICSP - Programmation In-Circuit
contrôleurs PIC.
Lors de l'utilisation d'ICSP sur la carte de l'appareil, il est nécessaire de prévoir la possibilité de connecter un programmateur. Lors de la programmation à l'aide d'ICSP, 5 lignes de signaux doivent être connectées au programmateur :
1. GND (VSS) - fil commun.
2. VDD (VCC) - plus tension d'alimentation
3. MCLR "(VPP) - entrée de réinitialisation du microcontrôleur/entrée de tension de programmation
4. RB7 (DATA) - bus de données bidirectionnel en mode programmation
5.RB6 (CLOCK) Entrée de synchronisation en mode programmation
Les autres broches du microcontrôleur ne sont pas utilisées dans le mode de programmation en circuit.
Option pour connecter ICSP au microcontrôleur PIC16F84 dans le boîtier DIP18 :

1. La ligne MCLR est découplée des circuits de l'appareil par le cavalier J2, qui s'ouvre en mode ICSP, transférant la broche MCLR au contrôle exclusif du programmeur.
2. La ligne VDD en mode de programmation ICSP est déconnectée du circuit de l'appareil avec un cavalier J1. Ceci est nécessaire pour éliminer la consommation de courant de la ligne VDD par le circuit de l'appareil.
3. La ligne RB7 (bus de données bidirectionnel en mode programmation) est isolée du courant du circuit de l'appareil par la résistance R1 d'une valeur nominale d'au moins 1 kOhm. Par conséquent, le courant de puits/puits maximum fourni par cette ligne sera limité par la résistance R1. S'il est nécessaire de fournir le courant maximum, la résistance R1 doit être remplacée (comme dans le cas du VDD) par un cavalier.
4. La ligne RB6 (entrée de synchronisation PIC en mode programmation) ainsi que RB7 est isolée par le courant du circuit de l'appareil par la résistance R2, avec une valeur nominale d'au moins 1 kOhm. Par conséquent, le courant de puits / puits maximum fourni par cette ligne sera limité par R2. S'il est nécessaire de fournir un courant maximum, la résistance R2 doit être remplacée (comme dans le cas du VDD) par un cavalier.
Brochages ICSP pour les contrôleurs PIC :


Ce schéma est pour référence seulement, il est préférable de clarifier les conclusions de programmation de la fiche technique sur le microcontrôleur.
Examinons maintenant le micrologiciel du microcontrôleur dans le programme IC-prog. Nous le considérerons sur l'exemple d'une construction d'ici rgb73.mylivepage.ru/wiki/1952/579
Voici un schéma de l'appareil


voici le firmware
Nous flashons le contrôleur PIC12F629. Ce microcontrôleur pour son travail utilise la constante osccal - c'est une valeur hexadécimale de l'étalonnage du générateur interne du MK, avec lequel le MK compte le temps lors de l'exécution de ses programmes, qui est enregistré dans la dernière cellule des données de crête. Nous connectons ce microcontrôleur au programmateur.
La capture d'écran ci-dessous montre la séquence d'actions dans le programme IC-prog en chiffres rouges.


1. Sélectionnez le type de microcontrôleur
2. Appuyez sur le bouton "Lire le microcircuit"
Dans la fenêtre "Code du programme" dans la toute dernière cellule sera notre constante pour ce contrôleur. Chaque contrôleur a sa propre constante ! Ne l'effacez pas, notez-le sur un morceau de papier et collez-le sur le microcircuit !
Aller plus loin


3. Appuyez sur le bouton "Ouvrir le fichier ...", sélectionnez notre firmware. Le code du micrologiciel apparaîtra dans la fenêtre du code du programme.
4. Descendez jusqu'à la fin du code, sur la dernière cellule, faites un clic droit et sélectionnez "zone d'édition" dans le menu, dans le champ "Hexadécimal", entrez la valeur de la constante que vous avez notée, cliquez sur "OK ".
5. Appuyez sur "programmer le microcircuit".
Le processus de programmation ira, si tout s'est bien passé, le programme affichera une notification correspondante.
Nous sortons le microcircuit du programmeur et l'insérons dans le schéma assemblé. Nous mettons le courant. On appuie sur le bouton de démarrage et hourra ça marche ! Voici une vidéo du clignotant
video.mail.ru/mail/vanek_rabota/_myvideo/1.html
Avec ça réglé. Mais que se passe-t-il si nous avons un fichier de code source dans l'assembleur asm et que nous avons besoin d'un fichier de firmware hexadécimal ? Un compilateur est nécessaire ici. et c'est - c'est Mplab, dans ce programme, vous pouvez à la fois écrire un firmware et le compiler. Voici la fenêtre du compilateur


Installer Mplab
Nous trouvons dans le programme Mplab installé MPASMWIN.exe, généralement situé dans le dossier - Microchip - MPASM Suite - MPASMWIN.exe
Nous le lançons. Dans la fenêtre (4) Parcourir, nous trouvons notre source (1) .asm, dans la fenêtre Processeur (5) sélectionnez notre microcontrôleur, cliquez sur Assembler et votre firmware apparaîtra dans le même dossier où vous avez indiqué la source. HEX C'est tout ce qu'il y a à ça !
Espérons que cet article aidera les débutants à apprendre les contrôleurs PIC ! Bonne chance!

1 circuit
Je vous suggère de répéter un schéma des effets d'éclairage réalisés sur la base du populaire microcontrôleur Pic12f629. Le schéma présente 15 effets d'éclairage différents, dont l'effet de simuler un signal clignotant de police. Pour agrandir - cliquez sur l'image.

Ce circuit est très facile à monter et ne nécessite aucun réglage. Lorsque vous appuyez sur le " Début"le mode de lecture automatique est activé.


Le mode de lecture automatique est lorsque tous les effets d'éclairage sont joués en séquence. Appuyez à nouveau sur le bouton Démarrer pour arrêter la lecture des effets.


En appuyant sur les boutons " Effronté" ou " Arrière"lorsque la lecture est arrêtée, le premier effet s'activera et fonctionnera en continu.


Pour changer d'effet, appuyez sur la touche " Arrière"- pour aller à l'effet de lumière précédent," Effronté"- pour passer au suivant.


L'appareil est assemblé sur une carte de circuit imprimé, le dessin et le firmware du contrôleur sont dans les archives. Un simple stabilisateur 5V est également monté sur la carte pour alimenter le contrôleur (il n'est pas représenté sur le schéma). Le corps est une petite boîte en plastique. Nous choisissons des LED de tout type et de toute couleur, adaptées à la tension et au courant. Nous les avons sous n'importe quelle forme - ici, vous pouvez utiliser votre imagination. Et si vous avez besoin de faire des effets pour une discothèque sur la base de cet appareil, nous amplifions simplement les sorties du microcontrôleur avec de puissants transistors à effet de champ comme l'IRF. Auteur de la conception : Pelekh.M
Partie 2
Cet article propose 2 circuits d'effets LED sur microcontrôleurs. PIC et AVR.

1) PIC12F629

Il y a 4 fonctions :

* MODE chasseur
* MODE de freinage
* MODE chasseur/frein
* DÉSACTIVÉ

Les modes sont commutés en appuyant successivement sur le bouton.

2) Attiny2313

Guirlande LED sur le microcontrôleur ATtiny231320PI

Ce projet de chaîne LED de microcontrôleur est bon pour les débutants. Le circuit se distingue par sa simplicité et contient un minimum d'éléments.

Cet appareil contrôle 13 LED connectées aux ports du microcontrôleur. Un ATtiny231320PI MK est utilisé comme microcontrôleur. En raison de l'utilisation d'un générateur interne, les broches 4 et 5 sont utilisées comme ports supplémentaires du microcontrôleur PA0, PA1. Le circuit permet l'exécution de 12 programmes d'effets, dont 11 sont des combinaisons individuelles, et le 12ème programme est une répétition séquentielle unique des effets précédents. Le passage à un autre programme s'effectue en appuyant sur la touche SB1. Les programmes d'effets incluent l'exécution d'un seul tir, la croissance d'un feu, l'exécution d'une ombre et bien plus encore.

L'appareil a la possibilité de régler la vitesse de changement de combinaisons lorsque le programme est en cours, ce qui s'effectue en appuyant sur les boutons : SB2 - augmenter la vitesse et SB3 - diminuer la vitesse, à condition que le commutateur SA1 soit en position "Vitesse du programme ". s'allume jusqu'à un léger scintillement), ce qui s'effectue en appuyant sur les boutons : SB2 - diminuer (jusqu'au scintillement) et SB3 - augmenter, à condition que le commutateur SA1 soit en position "Flicker Frequency". Pour le commutateur SA2, la position fermée correspond au mode de réglage de la vitesse d'exécution du programme, et la position ouverte correspond au mode de réglage de la fréquence des LED.
L'ordre de numérotation des LED du circuit correspond à leur ordre d'allumage lors de l'exécution du programme. Si nécessaire, la broche RESET peut être utilisée pour la réinitialisation, mais elle n'est pas utilisée comme port PA2. L'appareil sélectionné lors de la programmation de la fréquence d'horloge de 8 MHz à partir du générateur interne (fusibles CKSEL3..0 - 0100). Bien qu'il soit possible d'utiliser une fréquence de 4 MHz (fusibles CKSEL3..0 - 0010) avec des changements correspondants dans le intervalles de temps du circuit.
Le type de LED indiqué dans le schéma a été utilisé dans le prototype, toutes les LED avec une tension d'alimentation de 2-3 volts conviennent au circuit, la luminosité des LED peut être ajustée avec les résistances R1-R17.

Vous avez aimé l'article ? A partager avec des amis :