Un jour j’ai eu un professeur de collège s’apprête à nous élèves apprendre un truc mathématique puissant en EE101 - analyse de circuit je pense que de la maille. Avant il a commencé, a-t-il dit, « Aujourd'hui, mes élèves, je vous donne un gros canon. » Il a obtenu notre attention et je me souviens de la citation, mais malheureusement, je serais mal à mailler analyse aujourd'hui.
Aujourd'hui, mes lecteurs Instructible, je vous donne gros canons !
Pour tout ce que vous les programmeurs de logiciels embarqués de hardcore hot-shot, le temps de l’étape jusqu’au prochain niveau en apprenant à utiliser un temps réel embarqué OS sur votre prochain projet. Non seulement vous obtenez une priorité basée en temps réel préemptif OS, vous obtenez également toutes les bonnes choses qui vont avec le temps réel embarqué OS comme : tâches, files d’attente, les sémaphores binaires, sémaphores, récursif sémaphores et Mutex pour la communication et synchronisation entre tâches, ou entre les tâches et les interruptions de comptage. Me donne la chair de poule juste à y penser ! Toute la puissance de ce logiciel est livré par le biais de FreeRTOS qui existe depuis longtemps.
Oh, et le matériel que nous allons exécuter sur fait ma tête tourner. Nous ne parlons pas peu une micro Pic ou Atmel. Non, non, nous allons courir cet OS sur un nouveau 24MHz 32 bits ARM® Cortex™-M3 de ST Micro. Les gens de ST Micro ont fait une carte de développement, appelée la découverte de VL STM32 (VL est abréviation de valeur ligne), disponible pour 12 dollars! Ils vendent probablement le jury à perte. À titre de comparaison, cette planche est à environ 1/3 le coût d’une carte Arduino standard.
Le micro STM32F100RBT6B 24MHz qui est utilisée sur la carte découverte est probablement le plus lent qu’ils vendent. La plupart de ces puces course beaucoup plus vite ! Cependant, la puce elle-même n’est pas trop cher - transporteurs de Digi-Key la puce pour 3,50 $ sur commande plus de 100 pièces. Pour 3,50 $, vous n’obtenez 128 k flash et 8 k RAM - aucun EEPROM nécessaire depuis le micro peut écrire à son propre flash.
Voici les spécifications juste derrière la page web de Mouser pour la puce de STM32F100RBT6B :
- Noyau : ARM Cortex M3
- Largeur de Bus de données : 32 bits
- Programme Type de mémoire : Flash
- Taille de la mémoire programme : 128 KB
- Données RAM taille: 8 KB
- Type d’interface : I2C, SPI, USART
- Fréquence d’horloge maximale : 24 MHz
- Nombre d’entrées/sorties programmables : 51
- Nombre de minuteries: 6
- Tension d’alimentation: 2 V à 3,6 V
- Température maximale: + 85 C
- Paquet / cas : LQFP-64
- 3 rd party OCDS : ULINK2 MDK-ARM, RL-bras, EWARM, EWARM-BL,
- Outils de développement par fournisseur : STM32100B-EVAL
- Minimum de température de fonctionnement:-40 ° C
- ADC sur puce : 12 bits, 16 canaux
- On-Chip DAC : 12 bits, 2 canaux
Juste au cas où vous pensez que le bras n’est pas bon pour les petits projets, j’ai fait une autre recherche sur Digi-Key et retroussé une puce ARM encore moins cher de NXP. Le micro NXP (Digi-Key partie numéro 568-5142-ND) est une autre puce ARM Cortex-M0. Toutefois, les pistes de puce NXP à 50MHz (je reçois plus de chair de poule à nouveau), a 8k de flash / 2k de RAM, 28 e/s sur 32 broches, I²C, SPI, USART pour (roulement de tambour s’il vous plaît) 1,46 $ @ 100pcs. J’adore la Loi de Moore en action.
Apprendre ce genre de choses a application réelle dans le marché du travail aussi. Baragouiné sur tout votre Arduino dernier projet ne va pas obtenir beaucoup d’attention dans un entretien avec un employeur. Cependant, expliquant comment vous avez résolu un problème d’inversion de priorité sur embarqué temps réel QU'OS sera ! Croyez-moi, j’ai interviewé / embauché beaucoup de programmeurs embarqués au fil des ans comme un ancien employé de Motorola.
Voici un lien pour acheter la découverte STM32 pour 12 millions de dollars de Mouser. Acheter deux juste au cas où - le coût d’expédition est fou alors vous pourriez aussi bien obtenir deux. Oh, et l’écran LCD sur la photo provient aussi de Mouser (12,50 $ chaque).
http://www.Mouser.com/stm32discovery/
Le système d’exploitation que nous allons utiliser s’appelle FreeRTOS et leur adresse web est ensuite répertorié.
http://www.FreeRTOS.org/
Ne vous inquiétez pas, vous pouvez utiliser cet OS dans votre produit commercial sans exposer votre code source. Le système d’exploitation utilise une licence GPL modifiée et est aussi libre de droits. Pour un démontage complet des termes de la licence, voici un autre lien :
http://www.FreeRTOS.org/index.html?http:// www.freertos.org/a00114.html
L’en temps réel FreeRTOS OS a été autour depuis longtemps et est très stable. L’OS a été porté à 26 différentes architectures et est très bien documenté. J’ai d’abord utilisé FreeRTOS sur un produit pour GM. Mon code, couplé avec FreeRTOS, tourne en quelques dizaines de milliers de véhicules. En ce temps-là, j’ai utilisé FreeRTOS sur une puce de Freescale Star12 (beaucoup moins puissant). Je crois vraiment que ce projet à l’aide de FreeRTOS sauvé mon bacon.
Avoir le système d’exploitation capable de fonctionner sur 26 différentes architectures, comme je le disais avant, ne signifie pas votre liée à une partie spécifique du matériel. J’aime la liberté de choix. Si vous souhaitez vraiment plonger, je suggère d’acheter le livre « En utilisant le FreeRTOS temps réel du noyau – un Guide pratique ». La version de l’eBook est seulement $25 dollars - acheter le livre contribue au développement de FreeRTOS trop. Vous pouvez facilement trouver le livre à FreeRTOS.org. Remarque, je n’ai aucun intérêt financier dans FreeRTOS ou ST - j’aime tout les deux.
Pour rester sur les développements futurs, que je travaille sur vous pouvez toujours lier à mon flux RSS depuis mon site web. J’ai essayer de poster des étapes intermédiaires avant j’ai rassembler assez de choses ensemble pour un instructible. Mon adresse de site web (électronique de puissance) est répertoriée suivant :
Pour les flux RSS, ajouter un signet « en direct » :
www.pH-ELEC.com/RSS.Xml