
Inspiré il y a quelque temps par l'article "Montres intelligentes de vos propres mains pour 1500r." , J'ai également décidé d'essayer de fabriquer un appareil similaire.
Cet article n'est pas positionné comme un guide d'action ou d'instruction, mais plutôt comme une indication des points clés que j'ai rencontrés. Peut-être que pour quelqu'un, il servira de source d'inspiration et d'informations utiles.
Sélection des composants, disposition des circuits imprimés, soudure dans des conditions difficiles, boîtier imprimé en 3D et JavaScript sur la montre - sous la coupe. Bienvenue!
Prérequis
- Vous devez connaître l'heure sans avoir à entrer dans votre poche derrière votre téléphone
- Il devrait y avoir une réception des notifications d'appels entrants, des SMS et des notifications des messageries instantanées
- La durée de vie de la batterie doit être d'au moins une semaine
- Soyez aussi compact que possible
Déjà sur la base de cette petite liste d'exigences, vous pouvez commencer à sélectionner les composants et clarifier les caractéristiques techniques de la mise en œuvre. Le budget du projet pour le temps et les finances n’était pas particulièrement limité, la production de masse n’était pas prévue, vous pouviez donc vous permettre de faire une promenade et ne pas vraiment vous soucier d’économiser chaque centime.
En plus du plan général, il y avait aussi des plans purement techniques:
- Création et exécution d'applications personnalisées sur l'horloge. Comme Pebble . En général, ci-après, l'horloge ressemblera de plus en plus à un clone de Pebble, mais pourquoi pas
- Mémoire pour les applications et leurs données
- Contrôle adéquat du niveau de charge afin que la montre ne s'éteigne pas soudainement lorsque la batterie est déchargée, mais affiche des «bâtons» et avertit à l'avance
- Accéléromètre, gyroscope et magnétomètre pour un suivi complet des mouvements de l'utilisateur. Pour pouvoir faire un podomètre ou un réveil intelligent qui surveille les phases de sommeil par la présence de mouvement
Tout cela s'est finalement cristallisé dans un petit diagramme:

Le microcontrôleur combine BLE 4.x pour la communication avec un smartphone, les bus I²C et SPI pour les capteurs et un écran avec mémoire, contrôle les vibrations et répond aux pressions sur les boutons, tout est alimenté par une batterie Li-Po.
Vous pouvez maintenant commencer le processus de sélection des puces et des pièces. En termes de travail et de temps passé, c'était le processus le plus difficile et le plus long, il fallait comparer beaucoup de choses, chercher et plonger tête baissée là où je n'avais pas nagé auparavant.
Sélection des composants
Microcontrôleur
La première étape consiste à choisir un contrôleur qui sera le "cerveau" de l'appareil et tout le reste sur la carte lui servira pour le bien.
Pour rendre l'appareil plus compact, il est nécessaire d'utiliser le moins de composants et de modules possible. Ici, divers systèmes sur puce viennent à la rescousse, qui combinent les fonctionnalités d'un module Bluetooth et d'un microcontrôleur.
Que nous offre le marché?
Source: www.argenox.com
- Cypress PSoC BLE core ARM Cortex-M0, BLE 4.2, 256kB FLASH, 32kB RAM, un tas de périphériques et un balun intégré, une large gamme de tension d'alimentation: 1,9-5 volts
- Texas Insturments CC2541 - BLE 4.0 et 8051-core, 256kB FLASH, 8kB RAM
- Texas Instruments CC2640 - BLE 4.1, Cortex-M3, FLASH 128 Ko, RAM 20 Ko
- Dialog DA-14580 - Cortex-M0, BLE 4.1, 16 MHz, 42 + 8 Ko de RAM, 32 Ko OTP (mémoire programmable unique, mais il est possible d'exécuter du code à partir d'un SPI FLASH externe), la puce la plus petite et la moins consommatrice de ce qui précède
- SiLabs EFR32 - Cortex-M4F, 40 MHz, BLE 4.x, Bluetooth 5, jusqu'à 1 Mo de FLASH, jusqu'à 256 Ko de RAM
- Nordic nRF52832 - Cortex-M4F, 64MHz, BLE 4.x, Bluetooth 5, 512kB FLASH, 64kB RAM, émulation d'étiquette NFC, ballon intégré
Dans le tas de décisions savoureuses et peu engageantes , le choix s'est porté sur le nRF52832 , cette puce s'est avérée être la plus productive et la plus pratique en termes de boîtier (QFN 6x6mm 48 broches). Une option chic qui simplifie considérablement le câblage de la carte est également la possibilité d'affecter par programme n'importe quel périphérique à l'une des broches GPIO. C'est quelque chose qui manque à de nombreux microcontrôleurs. Grâce à la prise en charge NFC, vous pouvez ajouter la fonctionnalité d'un émulateur NFC à la montre et coudre toutes vos cartes de passe dans la montre.

La fiche technique indique qu'il y a un RTC (horloge en temps réel) intégré, c'est pratique. Mais plus tard, il s'est avéré que ce n'est pas une horloge, mais un compteur en temps réel, c'est-à-dire Il s'agit de la minuterie la plus courante, fonctionnant à partir de quartz à 32 768 kHz, y compris en mode veille. Par conséquent, dans la prochaine révision de l'appareil, j'utiliserai une puce distincte pour RTC, par exemple, STMicroelectronics M41T62LC6F . Il a un quartz intégré à 32,768 kHz et fonctionne sur l'interface I²C.
La carte de débogage nRF52-DK coûte assez bon marché , environ 4 mille. roubles. Sur Aliexpress peut être trouvé pour ~ 3tys.
Au faitÉtant donné que l'appareil n'implique pas de production de masse ni de vente sur le marché, dessiner votre propre planche et construire votre solution sur BLE SoC est une tâche plutôt fascinante sans conséquences graves. Pour ceux qui souhaitent entrer rapidement sur le marché, il est recommandé d'utiliser des modules pré-certifiés prêts à l'emploi.
Il y a plusieurs raisons à cela et elles sont associées à la radio: pour tout nouvel appareil électronique sur le marché, il est nécessaire d'obtenir l'autorisation et de passer la certification de régulateurs tels que CE et FCC .

Les joies qui l'accompagnent incluent une disposition spéciale de la carte, prenant en compte les caractéristiques de propagation des signaux avec une fréquence de 2,4 GHz, le blindage, les mesures dans une chambre anéchoïque, l'adaptation d'impédance et d'autres magies micro-ondes. Dans les modules finis, tout ce travail a déjà été fait par leurs développeurs, l'utilisateur a juste besoin d'intégrer le module dans sa solution et il n'y a rien à certifier.
Résonateurs à quartz
Les résonateurs à quartz sont connectés à la puce nRF52832 sélectionnée:
- À 32 MHz pour cadencer le cœur et la radio, requis
- À 32,768 kHz pour synchroniser le minuteur et les intervalles de temps BLE en mode veille. En option, mais sa connexion réduit la consommation d'énergie (les intervalles de temps peuvent être raccourcis) et augmente la précision de l'horloge RTC.
Les deux types de quartz sont commandés dans un boîtier de montage en surface avec Aliexpress:
Affichage
Pour que l'horloge tourne sans se recharger pendant au moins une semaine, il est nécessaire de résoudre le problème que la matrice d'affichage consomme beaucoup de courant en mode de fonctionnement. Si je comprends bien, les fabricants de montres résolvent ce problème de deux manières:
- Allumez l'écran et affichez le contenu uniquement lorsqu'un mouvement de la main se produit et que l'écran de la montre tombe dans le champ de vision de l'utilisateur, ou lorsque l'attention de l'utilisateur a déjà été attirée, par exemple par une notification ou un réveil
- Affichez le contenu en permanence, en utilisant des écrans qui ne consomment pratiquement pas de courant pour afficher l'image et ne le consommez que pour mettre à jour le contenu. Vous n'avez pas besoin d'aller loin pour des exemples: il s'agit de l' e-ink , du Memory LCD ou de l' IMOD / mirasol
Que nous offre le marché?Pour l'option lorsque l'affichage est la plupart du temps l'œuvre de Malevitch, il existe de telles options sur le marché: OLED, TFT, Amoled, modules téléphoniques LCD (Nokia, Siemens, etc.). Reste à trouver un affichage avec une diagonale adaptée.
Exemples:
- Les petits écrans OLED , comme sur Ali Express, coûtent un sou.
Un tas d'inconvénients: petite diagonale, monochrome, consommation 10-20mA, module encombrant. Sans carte de module - une large boucle et une mer de cerclage, qui absorbera une partie importante de la zone sur la carte. - LCD TFT, par exemple ILI9341 . Des inconvénients: consommation, boucle large
Les écrans de l'E-Ink ont disparu immédiatement, car la vitesse de mise à jour de l'écran est trop lente, le monochrome et, très probablement, il est difficile de trouver un écran E-Ink assez petit sur le marché libre.
Si vous regardez Pebble , vous pouvez voir qu'il utilise l'affichage «Always on». Pebble Classic utilise un écran LCD monochrome SHARP Memory , Pebble Time utilise un écran couleur (64 couleurs) utilisant une technologie similaire, mais produit par JDI , il n'est pas en vente.
En ce qui concerne IMOD / Mirasol, Qualcomm n'a pu trouver que des brochures marketing et des montres Toq de Qualcomm .
Je voulais prendre un écran couleur comme le Pebble Time. L'analogue le plus proche, qui est en vente libre, était SHARP LS013B7DH06 ( sa fiche technique ).

CARACTÉRISTIQUES
- Diagonale 1,33 "
- Résolution: 128x128, 8 couleurs (3 bits par pixel)
- Dimensions: 26,82 x 31,3 mm
- Interface: SPI
- Tension d'alimentation: 5 V, mais niveaux logiques SPI à partir de 2,7 V
L'embuscade s'est avérée avec la tension d'alimentation, car la batterie Li-Po n'obtient pas la tension 5V requise sans convertisseurs supplémentaires. Mais le courant à l'écran est faible et obtenir le 5 V dont vous avez besoin est assez simple avec une pompe de charge comme Linear LTC1754-5 :

Une autre caractéristique était la nécessité de changer l'état de la broche EXTCOMIN (inversion COM externe) au moins une fois par seconde d'un niveau élevé à un niveau bas et vice versa, afin que la charge ne s'accumule pas sur le panneau de l'écran et que l'image ne se fige pas à un moment donné. À ces fins, vous pouvez utiliser le PWM (PWM) intégré du microcontrôleur, réglé sur un rapport cyclique de 50% (onde carrée) et une fréquence de 1 Hz ou plus, ou tout autre générateur d'ondes carrées (y compris externe).
L'écran est connecté à la carte à l'aide d'un petit câble, il est très pratique d'utiliser un connecteur FPC à 10 broches par incréments de 0,5 mm, par exemple, Hirose FH12-10S-0.5SH :

Le module d'affichage n'a pas son propre rétro-éclairage et ne brille pas à travers les LED comme un écran LCD ordinaire, donc pour l'instant nous n'avons pas le temps de regarder l'horloge sans rétro-éclairage. Si quelqu'un connaît le processus de création d'un module de rétroéclairage pour ce type d'écrans, veuillez répondre.
La batterie
J'ai dû passer du temps à choisir la bonne taille de batterie dans la gamme standard de tailles. Je cherchais une batterie lithium-polymère d'une tension de 3,7V et d'une capacité d'environ 100mAh.
La batterie était prévue pour être placée sous la carte, connaissant la taille de la carte, vous pouvez facilement ramasser une batterie qui s'adaptera et ne dépassera rien.
Qu'offre le marché?Sur Aliexpress, vous pouvez commander tout un tas de batteries pour presque toutes les tailles, l'essentiel est de connaître le système de codage de leurs noms. Et c'est comme ceci: HHWWLL, où HH est l'épaisseur (hauteur) de la batterie en dixièmes de millimètre, WW est sa largeur et LL est sa longueur en millimètres.
Exemple: 402025 - batterie d'une épaisseur de 4 mm et d'une taille de 20x25 mm

302025 batteries (3x20x25mm) d'une capacité de 110mAh ont été sélectionnées et commandées sur Aliexpress.

La nutrition
Étant donné que les batteries au lithium-polymère ont un sens de ne décharger que jusqu'à 3 volts, il a été décidé d'alimenter l'ensemble du circuit à partir de 3V stabilisé et si la tension sur la batterie tombait en dessous de 3V, puis de couper le régulateur de puissance principal pour la puce de protection ( Maxim MAX809TEUR + T ).
La tension d'alimentation totale de 3 V s'intègre dans les plages de puissance de tous les éléments du circuit, à l'exception de l'écran, qui a besoin de 5 V. Par conséquent, l'affichage est alimenté via le convertisseur boost linéaire LTC1754-5 directement à partir de la batterie.
Si vous regardez la courbe de décharge de ce type de batterie,

on peut voir que toute la capacité de la batterie tombe sur la plage de tension de ~ 4V à 3V, donc un convertisseur abaisseur 3V conventionnel sera suffisant pour fournir au système une tension stable et en même temps aspirer efficacement toute l'énergie de la batterie sans rien laisser, mais sans la décharger excessivement .
Texas Instruments TPS78230DRVT a été choisi comme convertisseur abaisseur, il a un petit courant de fonctionnement de 500nA et un courant maximum de 150mA, ce qui est tout à fait suffisant. Le boîtier SON-6 est compact et tout à fait payant:

Charge de la batterie
Il a été décidé de charger la batterie via un port microUSB standard ( Molex 47346-0001 ), mais il ne suffit pas de connecter la batterie directement au bus USB 5V et de la charger comme ça, il est nécessaire d'assurer le bon processus de charge, divisé en plusieurs phases: préconditionnement, courant constant, constant tension.
Profil de charge typique pour une batterie de 180 mAh Bonne explication du processus de facturation sur EEVBlog La puce Microchip MCP73831 est une solution populaire pour charger des batteries de petite capacité (jusqu'à 500mAh). Le courant de charge (en fonction de la capacité de la batterie) est programmé par une résistance, il y a une sortie à trois états ou à drain ouvert pour vous informer du début et de la fin du processus de charge.
J'ai également choisi une autre puce - Maxim MAX1555EZK-T . Il a un courant de charge fixe de 100mAh et a le même boîtier que la puce à puce, et en même temps nécessite un minimum de composants externes et a une sortie à drain ouvert pour informer sur le processus de charge:

Dans la prochaine révision de la carte, je passerai toujours à la puce à puce, car le courant de charge de 100mA pour une batterie de 110mAh est probablement un peu trop.
Contrôleur de capacité de batterie
Il existe plusieurs techniques pour surveiller le degré de charge de la batterie qui sont quelque peu différentes dans l'exécution et la précision du résultat final (dans les sources anglaises, cela s'appelle State of Charge):
ListeMesurer le soi-disant tension en circuit ouvert / OCV (tension sur les plaques) de la batterie via l'ADC et tirer une conclusion sur la capacité de la batterie. Le plus souvent, il est nécessaire de transférer la plage de tension dans une zone acceptable pour le fonctionnement de l'ADC à l'aide d'un diviseur de tension. Les inconvénients de cette approche sont que le graphique de la tension en fonction de la capacité des batteries au lithium-polymère est assez plat, et les lectures elles-mêmes changent avec chaque cycle et sont sujettes au bruit et à l'incapacité de mesurer la tension réelle sur les plaques en raison de l'influence du courant de charge
Une autre façon consiste à mesurer le courant qui entre et sort de la batterie au lieu de mesurer la tension aux bornes des plaques. C'est le dénommé comptage de Coulomb. Une solution typique consiste à intégrer la valeur de la chute de tension à travers une petite résistance de shunt de résistance (environ 100 mOhm). Connaissant la capacité de la batterie, par le courant qui en a coulé pendant un certain temps, nous pouvons conclure combien il reste d'énergie dans la batterie (en négligeant l'autodécharge). Les inconvénients de cette approche sont que l'autodécharge n'est pas prise en compte, ainsi que le fait que la capacité réelle de la batterie change à chaque cycle de charge-décharge. En gros, moins de courant s'écoule de la batterie que celui-ci lors de la charge. Pour cette raison, au fil du temps, une erreur dans les lectures s'accumulera inévitablement
- La combinaison des première et deuxième méthodes: mesure et tension sur les plaques et courant circulant. Une combinaison compétente des deux approches aidera à construire un modèle qui évaluera la capacité de la batterie avec une bonne précision. Pour que cette approche fonctionne, il est nécessaire de produire au moins un cycle charge-décharge pour collecter des données sur la dépendance de la tension aux bornes des plaques de la capacité. De plus, chaque cycle suivant devra apporter des modifications au modèle de batterie afin que l'erreur ne s'accumule pas. Il y a des articles dans lesquels les gens racontent comment, en utilisant le filtre de Kalman, les données de différentes mesures ont été combinées pour prédire la charge restante ( [1] , [2] )
Que nous offre le marché?- Maxim MAX17043 - en utilisant un algorithme propriétaire pour la tension sur les plaques, construit un modèle de batterie à l'intérieur de lui-même. Promet la précision de mesure de la charge restante de 3%. Interface I²C. Joli et petit corps
- OnSemi LC709203F - mesure l'OCV, l'interface I²C, une précision de 2,8%, il y a une compensation de température via une thermistance externe. Cher et mauvais en Russie
- Texas Instruments BQ27621 - mesure la tension sur les plaques, I²C, précision non spécifiée, cher, boîtier BGA
- Texas Instruments BQ27421 - mesure simultanément la tension et le courant circulant. Interface I²C, précision non spécifiée, cher, boîtier BGA
- LTC2941 linéaire - mesure le courant circulant, interface I²C, précision 1%, nécessite en outre une résistance de shunt externe (elle est intégrée au LTC2941-1), boîtier: 2x3mm DFN-6
Parmi les options disponibles, la puce LTC2941 linéaire a été choisie pour le boîtier le plus petit, mais payant, et un algorithme de travail clair. Commandé sur Aliexpress.
Image de fiche technique
Source: Technologie linéaire
Le microcircuit utilise la technique du compteur coulomb et compte le courant circulant avec une précision de 1%, fonctionne via l'interface I²C (SMBus) et dispose d'un boîtier petit mais pratique: 2x3mm DFN-6:

Grâce à I²C à l'intérieur du microcircuit, vous pouvez définir la valeur de l'homologue du compteur actuel, ainsi que définir ou lire la valeur du compteur lui-même. Le compteur est de 16 bits et augmente lorsque le courant circule dans la batterie et diminue lorsque le courant s'écoule de la batterie. La valeur maximale du compteur (0xFFFF) peut être considérée comme une batterie complètement chargée, et la valeur minimale (0x0000) comme une batterie complètement déchargée. Avec un présélecteur de compteur bien choisi, il est possible d'obtenir que le compteur atteigne son maximum pendant la charge et atteigne zéro lorsque la batterie est complètement déchargée. Il est possible de définir la limite de la valeur du compteur, en dessous de laquelle le microcircuit déclenchera une alarme et déclenchera une interruption.
Accéléromètre
Parmi le tas d'options sur le marché, une puce assez populaire a été choisie: InvenSense MPU-9250 . Il s'agit d'un système dans un boîtier (SiP), combinant un accéléromètre MEMS, un gyroscope MEMS et une puce de magnétomètre.

CARACTÉRISTIQUES- Tension d'alimentation de 2,4 V à 3,6 V
- Accéléromètre MEMS à trois axes 16 bits avec des plages de mesure de ± 2g, ± 4g, ± 8g, ± 16g
- Gyroscope MEMS 16 bits à trois axes jusqu'à 2000 ° / sec
- Magnétomètre à trois axes 16 bits avec plage de mesure jusqu'à ± 4800 μT
- Filtres numériques intégrés
- Interfaces I²C et SPI
- Interruptions programmables
- Coprocesseur de lecture DMP (Digital Motion Processor)
La puce est excellente, mais au final, il semblait que c'était une surpuissance et un simple accéléromètre suffit pour une utilisation dans une montre. Par exemple, Analog ADXL362 - selon le fabricant, il s'agit de l'accéléromètre MEMS à trois axes le plus économique.
Mémoire flash
Il a été décidé d'utiliser une mémoire SPI-FLASH externe pour les applications et les données. Parmi une variété d'options, la puce Winbond W25Q256FV dans le boîtier compact WSON-8 a été choisie:

La quantité de mémoire flash est de 256 mégaoctets (ou 32 mégaoctets), c'est suffisant. La mémoire est divisée en pages de 256 octets, regroupées en secteurs de 4 kilo-octets et en blocs de 32 kilo-octets. En mode actif (lecture ou écriture), il consomme jusqu'à 20mA, en mode veille - moins de 1μA.
Comme avec l'accéléromètre, plus tard, il a semblé que 32 mégaoctets étaient également une surpuissance et vous pouvez utiliser la mémoire FLASH intégrée du microcontrôleur à la place, il a déjà 512 kilo-octets. .
Boutons
, ( Pebble, ). . , :
Wealth Metal TD-26EA :

: &
, .
Omron B3U-3000P :
.
, , .
Aliexpress , 3V (HxWxL) 3x3x12mm:
, 100mA .
- , - . , , . , . , .
- 2.4GHz Johanson 2450AT18B100 :

, , Johanson , , Nordic. nRF52 Johanson Johanson 2450FM07A0029 , - LC- .
Les antennes ont été commandées sur Aliexpress avec du ruban de 10 pièces. pour 214r / tape.
Tout le reste
Les composants passifs pour bretelles et cerclage sont principalement des puces de tailles 0402 et 0603 et commandées en Elitan . En plus des composants passifs, il y a deux transistors et une paire de diodes sur la carte. Ils participent au contrôle du moteur de vibration, ainsi qu'au circuit de puissance, découplant l'alimentation USB et la batterie .
Circuit et carte
L'apparence de la carte dans les captures d'écran est légèrement différente de celle commandée et est présente sur les photos de l'appareil. Les captures d'écran de la carte sont juste une révision un peu plus tard avec des changements mineurs.
Ayant décidé d'essayer quelque chose de nouveau, j'ai dessiné le circuit et la carte non pas dans le DipTrace habituel, mais dans le cloud EDA Upverter: un lien vers le design .
Upverter vous permet d'effectuer la conception de bout en bout de la carte et du circuit en même temps, de sorte que certains des éléments de câblage ont été réalisés conformément au schéma, et une partie du circuit a été conçue en tenant compte des caractéristiques de câblage.
Une autre caractéristique qui tue Upverter est une énorme bibliothèque de composants, soigneusement générés par des robots et un tas d'Indiens. Il s'est avéré très pratique de prendre la partie déjà dessinée et de vérifier simplement que tout est plus ou moins correct, au lieu de dessiner complètement le symbole et l'empreinte vous-même.
Tout d'abord, j'ai décidé d'arranger les composants, dont la position sera fixée avec précision: boutons, port microUSB et connecteur pour l'écran. Je n'ai pas fait de trous de montage, dans l'espoir que la planche sera bloquée par le boitier et que rien ne pendra.
Après l'emplacement des éléments fixes, suivez la "règle d'or" et nous reproduirons la radio en premier. L'antenne à puce a une petite zone de conservation près d'elle, à l'intérieur et en dessous de laquelle il n'est pas recommandé de placer des pistes et des polygones sur toutes les couches, donc la règle de bonne tonalité est de placer l'antenne au bord de la planche, de préférence plus près de l'un des coins. En fait, l'emplacement de l'antenne a dicté l'emplacement du microcontrôleur. Pour que la longueur du conducteur entre le port de sortie de l'antenne sur la puce et l'antenne elle-même soit aussi petite que possible (en tenant compte des composants correspondants), nous plaçons le contrôleur plus près du bord sur lequel l'antenne sera située.
Tous les autres composants peuvent être localisés (sans oublier le bon sens) assez librement. Cela est dû au fait que la position des ports pour les périphériques numériques du microcontrôleur nRF52 peut être déterminée par programme.
D'après ma petite expérience, un arrangement mutuel réussi des composants est un succès à 90% et il dicte la qualité du câblage supplémentaire, donc ce processus doit faire l'objet d'une attention particulière.
Capture d'écran du tableau (les polygones ne sont pas inondés, vue de dessous) Pour plus de clarté, j'ai peint une topologie approximative des domaines clés:

La carte est à quatre couches, placer les composants sélectionnés sur la carte et diluer leurs connexions a été une question de plusieurs nuits, puis il a fallu environ une semaine pour rester coincé dans la carte, trouver des erreurs, vérifier sans relâche et relire les fiches techniques pour éviter les surprises soudaines.
La carte a été dessinée en tenant compte des normes technologiques du fabricant de cartes, devenu l' OSHPark.com américain:
- Conducteur / Dégagement: 5/5 Mil
- Vias: 10/4 mil trou / pad
- Matériel: FR408
- Finition: or d'immersion avec une sous-couche de nickel (ENIG)
- Les vias aveugles et les transitions de couche interne (vias enterrés) ne sont pas pris en charge. Et nous n'avons pas besoin
En même temps, le prix est de 10 $ le sq. pouces et le nombre de planches dans l'ordre - 3pcs. Ce sont des cartes mères de très haute qualité et peu coûteuses (pour les prototypes) avec un masque violet reconnaissable, je recommande à tous ceux qui ne sont pas critiques d'attendre deux semaines pour leurs cartes mères bilatérales ou à quatre couches pendant un mois.
Commander une capture d'écran En conséquence, pour trois frais, j'ai dû payer 14 $ et un mois plus tard les récupérer par la poste.
Photos de la carte sans composants Tous les composants sont situés sur le côté inférieur de la carte, sur le côté supérieur de la carte se trouve le module d'affichage, sous lequel se trouve une bobine NFC plate, qui vous permet d'économiser plusieurs millimètres de hauteur et assure un ajustement lisse et serré de l'écran.
Il s'avère qu'un tel sandwich Sur le côté supérieur de la carte, il y a également un tas de points de test, de tampons de test, auxquels I²C, des lignes de bus SPI, des lignes d'interruption et certains signaux de contrôle sont connectés. Un oscilloscope ou un analyseur logique peut être connecté à ces plates-formes et cette fonctionnalité simplifie considérablement l'écriture des pilotes et le débogage du micrologiciel. Sur le côté supérieur de la carte se trouve également l'interface de débogage JTAG (SWD) pour le clignotement et le débogage via Segger JLink, qui est incluse dans le kit nRF52-DK, et des plots pour souder la bobine d'antenne NFC.
Assemblage et soudure
Si vous suivez l'ensemble du processus de montage en surface, vous devez commander un pochoir smd (pochoir smd) et une pâte à souder, appliquer la pâte à souder à travers le pochoir, organiser les composants et les envoyer au four de refusion .
Mais je n'avais pas de four, ni de pochoir. Et le désir de jouer avec lui et de la pâte à souder aussi. Je voulais assembler rapidement un prototype et commencer à tester et à écrire un logiciel. Par conséquent, j'ai soudé manuellement tous les composants, dont les plus petits sont des copeaux de taille 0402, en appliquant de la pâte avec une aiguille, en plaçant les composants avec une pince à vide et en les soudant avec un sèche-cheveux.
Le résultat peut être vu sur la photo:

Les boutons ne sont pas soudés, et au lieu de plusieurs puces à trois pattes - des cavaliers.Je m'excuse pour les photos de mauvaise qualité, prises sur une brique.Photo par loupe x30
Vous pouvez voir des composants légèrement tournés et par endroits un excès de soudure. Cela est inévitable avec l'installation et l'application manuelles de la pâte.
Dès que la carte a été assemblée, j'ai pris le testeur dans mes mains et j'ai commencé à faire sonner tout ce que je pouvais atteindre pour les courts-circuits. Après s'être assuré qu'il ne semblait pas être petit, il a connecté un câble USB. Il n'y a pas de fumée, les puces ne chauffent pas, la tension sur le port USB est de 5 volts, la sortie de charge est de 4,2 V, la tension après LDO est exactement de trois volts. Cela semble fonctionner.
Même lorsqu'il est entièrement alimenté, l'appareil ne montre bien sûr aucun signe de vie. Maintenant, vous devez y insuffler de l'âme - firmware (ou "système d'exploitation", comme certains fabricants de montres: WatchOS, PebbleOS, etc.).
L'étape suivante du test a été de connecter le débogueur JLink intégré au nRF52-DK via l'interface SWD. Nous connectons le câblage, exécutons JLinkExe et voyons notre puce! Vous pouvez commencer à écrire le firmware et à tester les blocs de fer restants par programmation.
"Système d'exploitation" pour montres
Pour les travaux périphériques de bas niveau, Nordic propose son nRF5-SDK , qui convient aux séries nRF51 et nRF52.

SDK , , NFC . Makefile arm-none-eabi-gcc
. , .
.hex-, nRF52-DK . nRF52-DK , Mass Storage Device (), .hex .
JLinkExe
GDB- nrfjprog
.
, . , , , , .
, .

, -, , .
, , - . API X-Lib . , .
:

, API , JavaScript (ES 5), . , .
JerryScript, , API , , . , , : Date .., JSON-, ..
JS :

API GUI, , Bluetooth, ..
( -O0
):

106kB FLASH, 12.8kB RAM. 8kB RAM — (heap) JavaScript . . , FLASH nRF52832 512kB, RAM — 64kB.
FLASH (120kB) RAM BLE- SoftDevice.
— 3D- . TinkerCad 3D-. :
- 3D-, !
, . , , , . , , , .
, API- JS-, JS-, - Android. , . , , , Android- .
: https://upverter.com/EP/cdbd8b9abc72b7cd/nRF52-smart-watch/
, Github.
, , - , .
!
P.S.: .