A retenir

From Eric

Revision as of 07:30, 31 August 2016 by Ejenn (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Toutes les bonnes choses dont il faut se souvenir...

Contents

Checklist

  • Ai-je bien connecté le + au + et la masse à la masse? (grossière erreur aussi fatale que facile à éviter...)
  • Le régulateur est-il bien orienté? Attention, un LM317 n'a pas le même brochage qu'un 78XX ! De même un 7805 (TO220) n'a pas le même brochage qu'un 78L05ACZ (TO92).
  • Le transistor est-il bien orienté (surtout en TO92)?
  • Me suis-je bien assuré de la tension en sortie du régulateur avant d'insérer le micro-contrôleur ou le composant coûteux?
  • Ai-je bien mis de la graisse à souder sur les connexions après avoir soudé un composant par refusion? Sinon : soudures très laides.
  • Ai-je bien mis la bonne porte logique ? (par ex. : un 74HC00 remplacé par un 74HC08... vécu)
  • Ai-je mis des capas de découplage?
  • Ai-je bien songé au fait qu'une diode représente une capacité (parasite). Voir le générateur BF à base d'XR2206 pour un exemple de problème lié à cette capacité.

A retenir

Divers

  • Comment télécharger une série de podcasts?
    • Sous Linux, utiliser "gPodder"... Il suffit de saisir l'adresse du flux RSS et hop...
  • Comment extraire la bande son d'un film mp4?
    • On peut utiliser la fonction "convert" de VLC. Pour ma part, cela se solde en général par un "crash" de VLC...
    • On peut aussi utiliser "ffmpeg", un outil en ligne de commande. On le trouve ici, pour Linux et Windows. Une fois l'archive décompressée, il suffit d'ouvrir un shell windows et de saisir la commande suivante dans le répertoire qui contient tous les fichiers mp4 à traiter : "for /r %i in (*.mp4) do c:ffmpeg -i "%i" "%i.mp3" "
  • Comment mesure un courant sans perturber le circuit : utiliser un miroir de courant et faire passer le courant miroir dans une résistance et mesurer la DDP avec un multimètre.
    Currentmirror.jpg
  • Sous Arduino...
    • Comment créer une bibliothèque ("library")?
      • Il faut créer le ".cpp" et son ".h" dans un répertoire portant le nom de la library et placer le tout sous "Mes document/Arduino/libraries". La "bibliothèque" apparaît alors dans la liste sous le menu "Croquis/Importer bibliothèque".
  • Comment calibrer un ESC?
    • Pour un ESC du type Turnigy : si la valeur est différente de 0 lors de l'allumage de l'ESC, celui-ci considère que la valeur indiquée etst le max de la gamme. AU bout de 2 secondes, si on envoie une deuxième valeur l'ESC va considérer qu'il s'agit de la valeur min. L'intervalle [min,max ) est ainsi défini. Pour d'autres détails, voir la page concernant le Quadcopter V1.
  • Pourquoi Matlab R2010b sous Windows 64 ne me permet pas d'exécuter un Stateflow ou de compiler une S-fonction? Il faut installer un compilateur compatible. Voir ici. Par exemple, installer Microsoft Visual C++ 2010 Express et Windows SDK 7.1 1. Une fois l'installation faite, faire "mex -setup" pour choisir le compilateur. Puis il convient de modifier le fichier "C:\Users\eric\AppData\Roaming\MathWorks\MATLAB\R2010b\mexopts.bat" pour changer la ligne suivante (la valeur "7.1" doit correspondre au SDK installé) :
 set LINKERDIR=C:\Program Files\Microsoft SDKs\Windows\v7.1\
  • Pour interconnecter des composants en 5V et 3.3V, voir la rubrique "interconnexion 5V / 3.3V".
  • Si un printf(...,"%f") affiche un "?" sur un Atmega, jeter un oeil à la rubrique concernant l'Atmega32...
  • Pour calculer les hfuse et lfuse de mon Atmega, utiliser le calculateur de configuration disponible ici.
  • La sortie de mon régulateur 78XX n'est pas à la bonne valeur...
    • As-tu pensé à mettre une capa en entrée et sortie du régulateur? (Problème rencontré sur un 7805 alimentant un 78L33. La tension mesurée en sortie du 7805 était d'environ 4.2 volts.)
  • La programmation SPI sur l'Atmega64 se fait ainsi : MISO est connecté à PDO / PE1 (pin 3) et MOSI est connecté à PDI/PE0 (pin 2). PEN est en l'air.
  • Lorsque j'observe la sortie de mon composant (par ex. un DAC) à l'oscilloscope, je ne vois rien d'autre que l'herbe qui verdoie...
    • Eric, mon brave, ta sortie ne serait-elle pas une sortie en courant et non en tension? Hein? Rappelle toi l'AD9850 qui refusait de sortir une quelconque fréquence jusqu'au jour où j'ai rajouté une résistance de charge de 100 ohms vers la masse...(la règle générale consiste à lire la doc...).
  • Mes tâches FreeRTOS ne se lancent pas... que pasa?
    • Met un point d'arrêt sur la ligne de code qui suit le lancement du scheduler. Cette ligne n'est normalement jamais exécutée, sauf si l'OS ne parvient pas à allouer suffisamment de mémoire dans le tas. Si le point d'arrêt est atteint, cela signifie qu'il faut redimensionner la taille du tas. Pour ce faire, il faut modifier la constante configTOTAL_HEAP_SIZE définie dans le fichier FreeRTOSCOnfig.h
  • J'essaie d'afficher un mot de 32 bits non signé (un "unsigned long" sur HITECH pour PIC16F) avec un appel à sprintf(msg,"%u",val), et ma valeur est tronquée à 65536. Arf.
    • Mon brave, il faut utiliser sprintf(msg,"%lu",val)!
  • Mon afficheur compatible HD44780 ne veut rien afficher !
    • Attention aux constantes de temps, et notamment celle concernant l'attente après initialisation. La rallonger si besoin.
    • N'aurais-tu pas essayé de connecter l'entrée R/W de l'afficheur à GND via une résistance de "pull-down" de 10K? Si oui, et bien replace 10K par une valeur plus faible (1K) ou supprime simplement la résistance... (2h sur ce problème... grrrrr)
  • Un programme qui fonctionnait bien jusqu'alors ne semble plus fonctionner après reflashage...
    • C'est un problème observé avec le programmateur de PIC simplifié.
    • Attention : si on utilise un programmateur alimenté par le bus USB, il est possible que la puissance fournie par le bus soit trop faible pour que la programmation se déroule correctement. Pire : le programmateur peut tout simplement n'indiquer aucune erreur. Le symptôme est (notamment) une programmation suivi d'une vérification bien trop rapide.
    • Le problème survient en particulier si on utilise un hub USB, car en l'absence d'alimentation externe, chaque port d'un hub à 4 ports (le plus courant) ne peut débiter que 100mA, de sorte que la consommation totale du hub soit 4x100mA+100mA (pour le hub lui-même) = 500mA, le maximum qu'un port USB est sensé pouvoir débiter.
    • La réponse à ce problème est d'utiliser un hub avec alimentation externe.
  • Je souhaite placer une constante en Flash sur mon AVR... comment puis-je faire.
    • Il faut utiliser la macro PROGMEM lors de la déclaration de la constante, puis utiliser les macros "pgm_read_byte" (entre autres) pour y accéder. La documentation d'avr-libs est assez claire. Voir [1] et [2].
  • Mon PIC ne semble pas fonctionner à 3.3V, alors que c'est écrit noir sur blanc dans la datasheet!...
    • Il faut inhiber la détection du brown-out! sinon le pauvre composant reste en reset. Il suffit de positionner le fusible BRODEN à faux.
  • Le compas ne semble pas donner de valeur correcte!
    • Ai-je attendu la durée spécifiée entre la requête de mesure et la lecture de la valeur?
    • A-t-il été correctement calibré?

LPC1768

  • Le LPC1768 fonctionne de manière erratique!
    • Je réduis la fréquence d'horloge interne en augmentant la valeur du diviseur : SC->CCLKCFG = 9; (fichier "main.c", fonction "prvSetupHardware")
    • Je réduis la fréquence de la sonde JTAG à 100KHz (voir fichier "openocd.cfg")
  • Je ne parviens pas à utiliser "graphics" avec ocaml 3.12.1... même avec une installation opam... Le problèmle est lié au nouvel emplacement des bibliothèquies x11 qui se trouvent désormais dans "/usr/lib/x86_64-linux-gnu". Il faut donc soit créer un lien symbolique avec un nom plus classique (à voir) avant de lancer opam. Ou recompiler ocaml avec l'option "-x11lib /usr/lib/x86_64-linux-gnu" lors du "./configure"

Linux

  • Je souhaite me connecter à l'ordinateur via une connexion RDP (par ex. terminal léger sous WindowsCE)
    • Il faut installer "tightvnc" et "xrdp". Si la connexion ne fonctionne pas, jeter un oeil au fichier "/var/log/xrdp-sesman.log". Il fau aussi installer un window manager (par ex. icewm).
  • J'ai une double connexion réseau, câblée et Wifi, avec l'accès internet via Wifi : la connexion Wifi ne fonctionne pas!
    • Dans l'éditeur de connexions, il faut cocher "Use this connexion only for resources on this network" pour la connexion câblée et cocher "Require IPv4 addressing for this connection to complete" pour les deux connexions, Wifi et câblée. Voir les copies d'écran ci-après :
Dual network 1.jpg
Dual network 2.jpg
Dual network 3.jpg
  • Comment démarrer Ubuntu en mode texte ("headless")?
    • Une solution consiste à modifier le fichier /etc/default/grub et à installer la nouvelle configuration, comme indiqué ci-dessous :
 # GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
 GRUB_CMDLINE_LINUX_DEFAULT="text"
 sudo update-grub
  • Et comment lancer l'interface graphique, si besoin?
 sudo lightdm 
  • Comment utiliser Ubuntu en allégeant la couche graphique?
 sudo apt-get install xfce

puis se déconnecter ("logout") et sélectionner la nouvelle interface graphique.

  • Comment activer la connection Wifi en ligne de commande?
 iwlist scan
 sudo ifconfig wlan0 up
 sudo iwconfig wlan0 essid "<nom_du_reseau>" 
 sudo iwconfig wlan0 key <clef_wifi>
 sudo dhclient
  • Comment activer ssh:
 sudo apt-get install openssh-server
  • Pour démarrer Ubuntu en mode texte (sans IHM graphique), il suffit de ne pas démarrer le display manager (lighhgdm dans la version 11). pour ce faire il suffit de rajouter la clause "never" à la condition de démarrage dans le fichier "/etc/init/lightdm.conf" (aucune des méthodes basées sur la modification de la configuration de grub n'a fonctionné chez moi...) :
start on ((never
          and filesystem
          and runlevel [!06]
          and started dbus
          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
               or stopped udev-fallback-graphics))
         or runlevel PREVLEVEL=S)
stop on runlevel [016]
  • "Customisation" d'Ubuntu 12.10
    • La carte graphique (NVidia) ne fonctionne pas :
      • Installer les headers Linux : sudo apt-get install linux-headers-generic
      • Désinstaller les drivers : sudo apt-get remove nvidia-current
      • Réinstaller les drivers: sudo apt-get remove nvidia-current-updates
    • Les polices sont floues...
      • Installer le paquetage de polices Microsoft: [apt://ttf-mscorefonts-installer]
      • Installer la police Tahoma : recopier les fichiers TTF d'une installation de Windows ; les déplacer dans un répertoire sous "/usr/share/fonts" (par ex. "usr/share/fonts/windows"), mettre à jour le cache (fc-cache -fv)
      • Installer l'outil "tweak tool" de GTK, à l'aide de cet outil remplacer la police par défaut (Ubuntu) par la police Tahoma 8, supprimer l'antialiasing et mettre le hinting à full.
      • On peut aussi modifier le thème courant (par ex. "Ambiance") pour que le texte soit en noir plutôt qu'en gris. Pour ce faire, remplacer "text_color:#3C3C3C" par "text_color:#000000" et "fg_color:#4c4c4c" par "fg_color:#000000" dans les fichiers  : "/usr/share/themes/Ambiance/gtk-2.0/gtkrc", "/usr/share/themes/Ambiance/gtk-3.0/settings.ini" et "/usr/share/themes/Ambiance/gtk-3.0/gtk.css".
    • Les icônes sont désagréables à regarder
      • installer "faenza" :
  sudo add-apt-repository ppa:tiheum/equinox
  sudo apt-get update
  sudo apt-get install faenza-icon-theme
  • Sous Ubuntu, je n'arrive pas à voir les répertoires partagés par Windows (8)...
 smbclient 
  • Sous Ubuntu, je n'arrive pas à me connecter à un partage SMB...
 sudo smbpasswd -a USERNAME

Windows

  • Onedrive ne cesse de se planter... Solution :
 C:\Users\Me\AppData\Local\Microsoft\SkyDrive\Update\OneDrive /reset

Raspberry Pi

  • Comment activer le SPI du Raspberry PI?
    • Il faut utiliser le menu de configuration du Raspberry: sudo raspi-config
    • Après reboot, on doit voir les périphériques SPI en faisant: ls /dev/spidev*
    • Je ne suis plus très sûr, mais avant de faire la modification précédente, j'ai supprimé le spi-bcm2708 de la liste des devices blacklistés (rasp-config le fait peut-être): sudo nano /etc/modprobe.d/raspi-blacklist.conf
  • Comment avoir accès à internet sur le RPi ? Ne pas oublier : sudo route add default gw 192.168.0.254
  • Comment compiler "opendds" sur Raspberry sans erreurs ? Il faut appliquer les indications données ici:
 nano $ACE_ROOT/ace/config-linux.h – insert after #define ACE_CONFIG_LINUX_H
 
 #define ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1
 
 nano $ACE_ROOT/include/makeinclude/platform_linux.GNU – insert:
 
 no_hidden_visibility ?= 1
 
 delete these files and try “make” again:
 
 rm $ACE_ROOT/ace/.shobj/Based_Pointer_Repository.o && rm $ACE_ROOT/ace/.shobj/MEM_Connector.o && rm $ACE_ROOT/ace/.shobj/MEM_Acceptor.o && rm $ACE_ROOT/ace/.shobj/MEM_IO.o && rm $ACE_ROOT/ace/.shobj/MEM_SAP.o && rm $ACE_ROOT/ace/.shobj/MEM_Stream.o && rm $ACE_ROOT/ace/.shobj/MMAP_Memory_Pool.o && rm $ACE_ROOT/ace/.shobj/Pagefile_Memory_Pool.o && rm $ACE_ROOT/ace/.shobj/PI_Malloc.o
 
 cd $DDS_ROOT && make

A noter que la compilation prend des lustres, même sur un Rpi2...

  • Comment activer la carte son sur le RPi: ajouter "dtparam=audio=on" au fichier "/boot/config.txt"
  • Comment donner la parole au RPi?
    • Installer "espeak".
    • Pour avoir une diction en français, faire : "espeak -v fr-fr"

A savoir

  • Quels sont les niveaux en CMOS, TTL, ECL?
    • CMOS [0V,VDD/2] = Low [VDD/2,VDD] = High VDD = supply voltage
    • TTL [0V,0.8] = Low [2V,VCC] = High VCC = 5 V ±10%
    • ECL [VEE,-1.4] = Low [-1.2V,0V] = High VEE # -5.2 V; VCC=Ground
  • Sur PIC32, où sont donc défini les types WORD, WORD_VAL, etc?
    • Va voir sous "C:\Program Files\Microchip\MPLAB C32 Suite\pic32-libs\include\proc\p32mx360f512l.h"!
  • Quelles sont les valeurs normalisées pour les résistances et les condensateurs?
    Series resistances.jpg
    (copié du site [3], voir aussi [4])
  • Montage "miroir de courant" permettant d'assurer le même courant dans deux branches d'un circuit. Voir [5]
  • Montage "amplificateur différentiel".