Disque dur horloge - persistance rétinienne (7 / 13 étapes)

Étape 7: Bootloader - se débarrasser des PicKit

1. Pourquoi faut-il un chargeur de démarrage ?

Avoir un PicKit autour est nécessaire, cependant avoir traîner notre espace de travail avec sans aucune raison valable n’est pas. Au départ je n’ai pas voulu compliquer ma vie avec des bootloaders, mais plus tard je suis venu à réaliser la vérité : ce projet est mieux sans PicKit. Avoir un seul câble pour la programmation est agréable, surtout si c’est un extrêmement fréquent câble mini USB, chaque amateur a un tas de. Heureusement pour moi, erreurs devaient être fixés sur les deux PCB donc il y avait une bonne occasion d’ajouter des fonctionnalités et du matériel de bootloader. L’en-tête du PDCI cinq broches a été écarté de la conception intentionnellement, et j’ai eu à souder des fils d’envelopper le bootloader-Flash. Bien sûr - que le câblage ne peut pas y rester, il lèverait tout sur la table une fois que le rotor tourne - heureusement la fente USB est compacte et peut rester. Branchez lors de la programmation, prise dehors lors de l’essai et la filature.


2. USB chargeur de démarrage, simple et bon

En regardant la fiche technique du processeur que j’ai décidé d’utiliser un peut voir qu’il y a UART et USB disponible. Si je prends UART, j’ai encore besoin d’un USB-UART convertisseur et un tas de fils - défait le but. Alors le choix de la meilleur, la plus simple et la plus belle est USB. Microchip propose toutes sortes d’exemples de code pour les photos, les chargeurs de démarrage aussi. Si vous téléchargez et installez "Bibliothèques Microchip pour les Applications", il y aura un dossier entier sur toutes sortes d’USB applications, bootloaders, outils et autres choses utiles. Dans le sous-dossier "Bootloaders" J’ai choisi "USB HID Bootloader" et l’ouvrit dans MPLAB X. Après avoir lu à travers elle une couple de fois pour comprendre sa logique, j’ai commencé à mettre en œuvre les modifications pour s’adapter parfaitement les conseils que j’avais l’intention de l’utiliser pour.


3. quelques mots sur les chargeurs de démarrage

Un bootloader est une section spéciale du code qui est écrit dans les microcontrôleurs une fois et offre un moyen de télécharger le firmware sans avoir besoin d’un programmeur (haute tension) spécial, comme le PicKit dans notre cas. Malheureusement, il n’y a aucun moyen d’éviter complètement l’utilisation de la PicKit, le chargeur de démarrage doit entrer dans le PIC en quelque sorte. Le bon côté : vous pouvez emprunter un PicKit, ICD2 ou clignotant PIC d’un ami, et donner à nouveau une fois le bootloader est inscrit dans le microcontrôleur. Après que - selon quel type de programme d’amorçage a flashé, vous pouvez télécharger firmware sur mémoires programmables par UART, USB, CAN ou que ce soit.

L’utilisation de chargeurs de démarrage est simple, mais il est livré avec l’inconvénient de perdre la mémoire programme précieux. Certains chargeurs de démarrage mangent moins de place, certains mangent plus - celui-ci que j’ai décidé de l’utiliser est d’environ 1K. Au démarrage de chaque commandant de bord s’allume à l’adresse 0 et commence l’exécution de tout code le programmeur a écrit là. Si c’est le bootloader = le PIC de circuit le bootloader. Si c’est le code utilisateur = le PIC exécute le code utilisateur. Assez simple !

Afin d’utiliser les deux, nous devons passer en quelque sorte ces deux programmes. Ce passage peut se faire selon une condition, événement ou quoi que - il sera très semblable à une instruction énorme « si ». J’ai choisi cette condition est le niveau de tension sur une broche d’entrée, IO RD3 du Registre PORTD. Cette broche a été connectée à la broche de 5V du connecteur USB à travers une résistance. Si la broche est à 5V, au démarrage, le commandant de bord doit s’exécuter la branche du bootloader de l’énorme « si », si elle est à 0V, le code d’application utilisateur a dû être exécuté. J’ai placé le code utilisateur juste après le code de programme d’amorçage, à adresse 1000h. Le PIC18F4550 vérifie la broche RD3 à plusieurs reprises, donc lorsque le câble USB est supprimé et le 5V disparaît de la RD3, le PIC va sauter le code placé à 1000h, le code d’application utilisateur. Dans le code d’application utilisateur je vérifie à nouveau le niveau de tension sur la RD3, si le programme voit 5V là-dessus, le câble USB est branché à nouveau et le commandant de bord a de sauter pour le chargeur de démarrage. Je fais ce saut en mode bootloader avec une instruction de « RESET » assembly inline.

Puisque le commandant de bord commence à s’exécuter à partir de l’adresse 0, la chose la plus simple et la plus courante à faire est de placer le code de programme d’amorçage là et le code utilisateur juste après le programme d’amorçage. Le code de programme d’amorçage peut être modifié pour vérifier si oui ou non il y a un firmware valide rédigé dans le PIC. Cela se fait en vérifiant le contenu de la mémoire sur adresse h 1006-1007h. Après chaque programmation réussie, les inserts de bootloader "600D » (leet pour le « bien ») à cet endroit, ce qui signifie que le code a été écrit dans le PIC avec succès - c’est ce qu’il obtient vérifié pour la validité. Nous devons spécifier dans les paramètres de projet d’application utilisateur que cet endroit ne devraient pas être remplacés, voir les images pour voir comment c’est fait (les plages ROM sont spécifiées pour ignorer cet emplacement lorsque le code utilisateur de l’application est compilé). Faute de quoi se traduira par des erreurs vraiment difficiles à détecter par la suite. La section où les mensonges du chargeur de démarrage doivent être protégés ainsi : cela se fait en décalant le code d’application utilisateur entière de 1000h (Code décalage paramètre options de l’éditeur de liens). Bootloaders trouvent habituellement au début ou à la fin de la mémoire programme - il faut ne pas vouloir le remplacer !

Je voulais ajouter quelques paramétrage pour cet appareil, c’est pourquoi la gamme 3000-3100 est ainsi protégée. Vous n’avez pas besoin de cela, juste d’un !

4. les problèmes que j’ai touché lorsque vous travaillez avec le bootloader

La compilation du projet se traduira par un fichier hex qui est généré - cela doit être flashé dans le PIC avec un PicKit ou que ce soit. Mine n’a pas voulu démarrer pendant un certain temps, l’outil de chargeur de démarrage USB ne pouvait pas détecter quoi que ce soit. J’ai décidé de faire des mesures sur la broche VUSB du PIC à ma portée et au moment où que j’ai touché la cheville avec la sonde portée le bien connu son USB joué et le jury a reconnu ! J’ai pensé que le problème a disparu, mais dès que j’ai enlevé la sonde, la chose a cessé de fonctionner à nouveau. J’ai réalisé que tout fonctionne quand la sonde de champ d’application est activé, même écrit, réinitialisations - le problème devait être quelque chose qui fixe de la sonde. Puis j’ai pensé : qu’ont portée sondes ? Capacité parasite. Le condensateur sur la broche VUSB a été énorme en valeur et ne pouvait pas filtrer les bruits de haute fréquence. Un condensateur de 100nF fut ajouté en parallèle, et le jury a reconnu immédiatement. Problème résolu !

Articles Liés

Artsy recyclé disque dur horloge

Artsy recyclé disque dur horloge

j'ai vu beaucoup d'horloges hdd recyclé, mais j'ai pensé que je peux lui donner l'air plus artsy:) 
Recyclé horloge disque dur - FuneLab

Recyclé horloge disque dur - FuneLab

Bonjour à tous !Il s'agit de ma cinquième projet sur Instructables & merci tout le monde aimé cela.Vous avez un disque dur cassé ? Vous mettre dans la Corbeille ou le vendre sur Ebay pour quelques dollars ? Oh non !Préparez-vous à transformer votre d
Persistance des disque dur de Vision (HDPOV)

Persistance des disque dur de Vision (HDPOV)

le plateau d'un disque dur tourne plus de soixante fois par seconde. Si une fente étroite a été coupée dans le plateau afin de permettre à LEDs pour briller à travers, nous pouvons atteindre scintiller fusion et tromper l'oeil en voyant une image sta
Double-face horloge de disques durs recyclés

Double-face horloge de disques durs recyclés

Avez-vous déjà eu un disque dur n'est pas sur votre ordinateur portable ? Ce que je pensais, bien sûr vous avez.Qu'avez-vous avec le morceau inutile de métal après il remplacé ? Probablement juste il jeté à la poubelle.Eh bien, pourquoi ne pas recycl
Disque dur NeoPixel 3D imprimés horloge

Disque dur NeoPixel 3D imprimés horloge

Affiche l'horloge disque durle temps par l'intermédiaire de la NeoPixels qui se trouvent sur la zone de plateau de disque dur. Ce projet est conçu autour d'utilisant un ordinateur portable mis au rebut 2,5" disque dur.Le disque est monté sur un boîti
HORLOGE de vieux disques durs murale

HORLOGE de vieux disques durs murale

Voici Instructable sur le recyclage des vieux ordinateurs disques durs dans horloge de mur à la recherche très original.Étape 1: Matériaux et outils nécessaires Les outils dont vous aurez besoin pour ce projet sont :1. Percer - je dirais un petit for
Horloge disque dur (HDD horloge avec Arduino Uno)

Horloge disque dur (HDD horloge avec Arduino Uno)

Il s'agit d'un amusant projet qui peut être fait facilement et également à moindre coût. Dans ce instructable nous allons expliquer étape par étape comment faire cette belle horloge POV.Matériel utilisé :Arduino Uno,Minuscule CCF modul,ULN 2003,Diode
Horloge disque dur commémorative

Horloge disque dur commémorative

cette instructable a été inspirée par ces horloges fantaisies qui ressemblent à des livres de bois. Vous pouvez les ouvrir et voir un peu félicitation et une horloge. Ce projet permet d'obtenir le même effet, mais avec un disque dur mort.Étape 1: piè
Horloge disque dur : le moyen le plus facile !

Horloge disque dur : le moyen le plus facile !

Vous voulez une horloge disque dur sur votre bureau ?Vous ne voulez pas passer des heures, ce qui en fait ?Vous avez une montre de poche ?Très bien!!Étape 1: vous avez déjà terminé ! OK, vous devez juste un disque dur, un trombone et votre montre de
Horloge de plateau de disque dur simple

Horloge de plateau de disque dur simple

Eh bien, voici mon premier Intructable. Nous avons voulu faire une windbelt dans une classe d'école, donc nous avons pris à part certains disques durs. J'ai obtenu les plateaux et fait une horloge !La plupart de ceci était juste improvisation, mais t
Support magnétique pour appareil photo ou un projecteur de vieux disques durs

Support magnétique pour appareil photo ou un projecteur de vieux disques durs

J'ai récemment acheté un pico projecteur (Étang de Pico toucher) et je cherchais un moyen pratique de le monter pour pointer vers le bas sur une table ou divers autres surfaces pour créer un "smart board" où je voulais. J'avais déjà créé un supp
KlockFun : Coucou réveil du disque dur

KlockFun : Coucou réveil du disque dur

Salut tous,Il s'agit de mon premier Instructable et c'est un réveil coucou de disque dur : KlockFun.J'adore les horloges et je veux, que j'ai commencé à concevoir un meilleur réveil d'un vieux disque dur, les premiers afficheurs à LED et un coucou. J
Faire un boîtier de disque dur Portable Steampunk

Faire un boîtier de disque dur Portable Steampunk

faire un boîtier de disque dur Portable SteampunkDonc déjà avoir un steampunked écran et du clavier et déteste que votre disque dur portable ne correspond pas, Eh bien, voici une façon de faire qui est importante pièce d'équipement correspondent et p
Recyclé pendulette de bureau disque dur

Recyclé pendulette de bureau disque dur

il s'agit d'une idée que je suis venu avec tout en démontant des vieux disques durs pour le plaisir. Il est devenu une chose ordinaire, et maintenant j'ai le processus vers le bas pour une science. Voici comment je le fais. J'ai aussi de les vendre à