A retenir

From Eric

(Difference between revisions)
Jump to: navigation, search
m
m
Line 1: Line 1:
-
Toutes les bonnes choses dont il faut se souvenir...
+
Toutes les bonnes choses dont il faut se souveni
 +
r...
== Checklist ==
== Checklist ==
Line 19: Line 20:
puis installer la nouvelle configuration :  
puis installer la nouvelle configuration :  
   sudo update-grub
   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
 +
** Une solution consiste
* 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 [http://www.mathworks.fr/support/compilers/R2010b/win64.html ici]. Par exemple, installer Microsoft Visual C++ 2010 Express et Windows SDK 7.1 1. Un 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é) :  
* 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 [http://www.mathworks.fr/support/compilers/R2010b/win64.html ici]. Par exemple, installer Microsoft Visual C++ 2010 Express et Windows SDK 7.1 1. Un 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\
   set LINKERDIR=C:\Program Files\Microsoft SDKs\Windows\v7.1\

Revision as of 15:17, 9 May 2013

Toutes les bonnes choses dont il faut se souveni r...

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

  • Comment démarrer Ubuntu en mode texte ("headless")?
    • Une solution consiste à configurer grub :
      • Modifier le fichier /etc/default/grub
 # GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
 GRUB_CMDLINE_LINUX_DEFAULT="text"

puis installer la nouvelle configuration :

  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
    • Une solution consiste
  • 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. Un 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\
  • "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 
  • 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.
  • 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]
  • 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é?
  • 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")

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".
Personal tools