Bricolez en USB

Posté par  . Modéré par Amaury.
Étiquettes :
0
23
avr.
2002
Matériel
Le magazine d'électronique et de micro-informatique "Elektor" n°287 est arrivé dans la boite aux lettres des abonnés, prochainement en kiosques.

Dans le numéro 267 de Septembre 2000, un article décrivait la mise en oeuvre d'un micro-controleur (un ordinateur entièrement embarqué dans une unique puce) disposant d'une interface USB 1.1 faible vitesse (le CY7C63000 de Cypress) le tout en VB5.

Ce numéro décrit en deux pages comment utiliser le montage d'exemple sous Linux 2.2 et 2.4: insérer le module (les fichiers sont disponibles sur le site d'Elektor), créer le pseudo-fichier dans /dev, utiliser la bibliothèque qui masque les ioctls. Tcl/Tk et Gtk sont même cités.

Les applications sont multiples pour qui sait manier le fer à souder : Afficheurs LCD, capteurs de température, lecteurs de carte, capteurs, actionneurs... tout ça sur un port USB.

Aller plus loin

  • # Alors ça c'est cool

    Posté par  (site web personnel) . Évalué à 10.

    Maintenant je vais pouvoir brancher mon canard mécanique via l'USB sur wmcoincoin et il fera Coin ! Coin ! quand ça trolle sur la tribune ! Vite, vite, où est mon fer à souder ? :-)
  • # Les temps changent

    Posté par  (site web personnel) . Évalué à 10.

    Elektor était plutôt un magazine "pro-windows", pas beaucoup de place à Linux. Mais depuis environ un an, on peut y trouver quelques allusions à Linux, et maintenant, c'est carrement un article spécifique à Linux. Linux entre dans les moeurs et c'est tant mieux.
    • [^] # Re: Les temps changent

      Posté par  (site web personnel) . Évalué à 6.

      Juste une remarque, dans la version allemande de ce numéro (j'ai pas encore la version française), dans la rubrique "Marché", ils parlent de Labview sous Linux. C'est la première fois que je vois Linux nommé dans cette rubrique. Par contre, il y a aussi moins bien, il y a un bel article qui parle de Windows XP dans le même numéro.
  • # Demande d'info indus

    Posté par  (site web personnel) . Évalué à 10.

    Bonjour, Je cherche une solution pour piloter un four à bronze. Il me faudrait donc une sonde qui supporte ~1000°C qui puisse être reliée à un PC. Qq'un a des idées ?
    • [^] # Re: Demande d'info indus

      Posté par  . Évalué à 10.

      Pour mesurer de telles températures le plus simple est d'utiliser soit des sondes à termocouple, soit des thermometres qui mesurent le rayonnement infrarouge, donc sans contact. Le moins cher étant les thermocouples.
    • [^] # Re: Demande d'info indus

      Posté par  . Évalué à 8.

      ce post n'est pas completement hors sujet, pourquoi les gens s'acharnent-ils a scorer negativement une personne qui attend qu'un article a forte connotation electronique et processus industriel pour passer une annonce ? proposez des liens ou des embryons de solutions au lieu de scorer en negatif !
      • [^] # Re: Demande d'info indus

        Posté par  (site web personnel) . Évalué à 6.

        Bon, j'admet que c'est un peu hors sujet. ça ne me dérange pas d'être scoré -1 ; ce n'est pas encore pris en compte pour le calcul de mon salaire... -oups je m'enfonce dans le hors-sujet, désolé- par contre merci pour le thermocouple, c'était le terme qu'il me manquait pour effectuer de fructueuses recherches...
  • # Ouch!

    Posté par  . Évalué à 10.

    C'est quand même 42€ le bitonio, qui fonctionne en low speed. Au boulot, j'ai travaillé sur un chip USB de cypress egalemenne, le EZ-USB. Bien plus performant, il dispose d'un coeur USB complet (hi-speed, cad 12Mbit/s) et d'un microcontrolleur de type 8051 et d'un nombre d'IO conséquent. Le seul pb est qu'il existe seulement en CMS, et est indisponible en france. Mais a savoir que certain adaptateurs USB<->IDE utilisent ce chip, en ayant leurs IO sur un port type IDE... Moyennant un remplacement d'eeprom (ou sa suppression), on récupère une carte de dev... J'ai fait tout le developpement sous linux, pour le microcontrolleur j'ai utilisé SDCC http://sdcc.sourceforge.net , qui bien que pas très optimisé est tout de même largement fonctionnel. Du coté USB sous linux, la libusb fait tout le boulot, en user-mode (c'est la que l'on voit l'avantage des micro-kernels). Le code du µC est chargé via l'USB, le tout etant géré par le hotplug. Il ne faut pas oublier que normalement il faut se procurer un vendorID auprès de l'usbif (1500$), ce qui interdit de fait la diffusion d'un tel montage/programme sans en avoir un officiel. Il faut quand même une petite expérience de blind debug (parent du malloc spéculatif) pour commencer le dev sur le µC...
    • [^] # Re: Ouch!

      Posté par  . Évalué à 10.

      Si on parle bien de la meme chose, a savoir un simple client USB, ya des dizaines de micro qui integrent ca de nos jours, et on doit meme pouvoir en trouver chez Farnell (le distributeur de Composant). Je conseillerais les PIC pour faire ce genre de ptit bricolage c'est ideal... seul soucis pas de compilo C non commercial... Ou alors des micro de chez ST, tres bien aussi... avec le compilo C en version d'evaluation gratos... Mais ya des dizaines d'autres constructeurs (NEC, Hitachi...)
      • [^] # Re: Ouch!

        Posté par  . Évalué à 5.

        Il me semble que les PIC sont en low-speed seulement. Il y a aussi philips qui en a un pas mal (PID11 ou un truc du genre). Mais le pb reste le support du µC sous linux. La seule entorse que j'ai fait pour le cypress, c'est de décompresser l'archive du kit (un .exe) sur un win, afin de récuperer les examples de code. Enfin le(s) EZUSB(s) il(s) ro><e(nt)
    • [^] # Re: Ouch!

      Posté par  . Évalué à 2.

      J'ai utilisé il y a environ 1 an une carte de dév. de chez ActiveWire Inc (http://www.activewireinc.com) pour $59, ce qui n'est pas trés cher payé vu le temps qu'on gagne à utiliser une platine "propre" sur lequel l'Ez-USB est soudé proprement. Il en existe d'autres aux alentours de 49$. Excellent site pour tout ça : http://www.circuitcellar.com , cherchez les annonceurs...
    • [^] # Re: Ouch!

      Posté par  (site web personnel) . Évalué à 3.

      Sinon, plutôt que d'utiliser un microcontrôleur USB, il y a toujours moyen d'utiliser des moteurs USB externes, tout en continuant d'utiliser son µC préféré. Pour ça, il y a chez National Semiconductors les USBN9602 et USBN9604, et chez Philips les PDIUSB11 et PDISUB12. Enfin, pour ceux de chez Philips, j'ai bien pu trouver la datasheet, mais pas moyen de trouver les composants. Si quelqu'un a une adresse, je suis preneur.
      • [^] # Re: Ouch!

        Posté par  . Évalué à 3.

        Y'a aussi FTDI http://www.ftdichip.com/ qui fait une FIFO sur port USB, l'avantage est qu'il n'y a plus de driver ni de firmware a developper, ni de pb de vendorID. Mais c'est une boite relativement jeune (en fait ce sont des pourvoyeurs d'IP), dont les produits sont peu distribués.
        • [^] # Re: Ouch!

          Posté par  (site web personnel) . Évalué à 3.

          Merci beaucoup, en fait, c'est exactement ce que je cherchait ! En plus, les boitiers utilisés sont corrects (pas de TSOP ou autre µmax à souder au microscope) Il reste plus qu'a trouver un distributeur... et le prix !
  • # Master ou slave?

    Posté par  . Évalué à 10.

    Le microcontroleur ne marche qu'en tant que slave (à brancher sur un PC forcement), ou il peut etre master (et "piloter" des peripheriques "slaves")?
    • [^] # Re: Master ou slave?

      Posté par  (site web personnel) . Évalué à 10.

      On pourait avoir plus de précision sur l'article ? En général, ce genre de montage était toujours accompagné de binaire Windows inutile sous linux. Et je ne me sentais pas du tout au niveaux de réaliser le truc et de me demerder à la main pour les drivers. Concrètement que fait le montage et que peut-on en faire sous linux (reprogrammation du chip par usb sans ce prendre la tête,...) ? 1 Mo de bandepassante est suffisante pour des milliers d'applications ! nicO

      "La première sécurité est la liberté"

    • [^] # Re: Master ou slave?

      Posté par  . Évalué à 10.

      L'usb est très limité de ce coté la, d'ailleurs on parle de host/peripheral et pas de master/slave. Le traffic est initié par le host seulement (aucun moyen pour un periph d'initier ou d'interrompre un host). Il existe un mode INT, qui est en fait une forme de polling. A savoir qu"il est seulement possible d'envoyer 1000 frames/s (toute les 1ms seulement). Ce qui limite très sérieusement la BP quand on travaille avec des petits paquets et en mode bulk (64 bytes par paquets). Pour utiliser toute la BP il faut passer en isochrone (cad sans controle de flux, un peu comme tcp et udp). Ensuite il ne peut y avoir qu'un seul host sur un bus (du moins la spec ne parle pas de multi host). Ce qui fait qu'il n'y a pas de periphs qui peuvent se comporter en host. Toute ces limitations ont été faite pour le coût et la simplicité de dev des periphériques. Sinon le pb d'elektor c'est qu'ils fournissent très rarement le code des microcontrolleurs. Ca limite sérieusement les possibilité de réalisation (sachant qu'assez vite ce n'est plus dispo chez eux).
      • [^] # Re: Master ou slave?

        Posté par  . Évalué à 3.

        ca ne me dit pas si ya moyen de programmer un host avec ces chips. Un bricolage qui pourrait etre sympa (mais peut etre un peu difficile) est un bidule qui ferait la liaison entre un appareil photo numerique et un DD portable usb, pour sauvegarder les photos. ya des trucs qui existe deja mais c'est encore assez cher.
  • # ST7263

    Posté par  . Évalué à 6.

    Salut, comment peut-on programmer un firmware de microcontroleur sous linux ??? c'est peut-etre con comme question, mais je veux utiliser le microcontroleur de STM pour faire une interface HW qui se branchera sur le port USB. Je n'ai ni trouve de compilateur, ni le moyen qui me permettrait de charger le programme dans la puce. PS : Je n'y connais rien en microcontroleur, mais ce que je veux faire n'ai pas trop complique (qq boutons et des potentiometres (entre 4 et 8) dont le microcontroleur devra calculer la vitesse de rotation). si vous avez des conseils, une experience dans ce domaine, je suis preneur.
    • [^] # Re: ST7263

      Posté par  . Évalué à 6.

      Hélas pas vraiment le choix, a part peut etre wine ou wmware (mais ce n'est toujours pas du linux). sdcc (lien plus haut) supporte pas mal d'architectures, mais pas toute. GCC supporte surtout les 16/32 bits. Donc on fait comme on a toujours fait sous linux: on choisi en fonction de la compatibilité. Ce qui ajoute déja un problème sachant qu'on choisi a 50% les µC en fonction de leur dispo. Coté programateur, il y a ponyprog http://www.lancos.com/prog.html , je crois pas qu'il supporte le STM. Mais tu as les atmels risc ou 8051 (un bon choix le 8051) et les pics. Il tourne sous linux. Y'a aussi les 68hc(8)11 qui se programment via port série (mais ils commencent a etre sérieusement obsolètes). Le gros problème que tu vas rencontrer c'est l'absence d'outils de debug. Une fois démarré (partie en blind debug), tu peux utiliser les ports avec une led ou un oscillo, et ensuite un port série avec un embryon de printf().
      • [^] # Re: ST7263

        Posté par  . Évalué à 4.

        mdr, un printf sur un oscillo !!! ca me rappelle le temps ou on avait des Mitra 125. les resultats de compilation, on se savait les sortir que sur du papier ! bonjour l'ecologie. finalement, c'est confortable les IHM. une fois le debugger intégré au module electronique, tu devrait pouvoir faire fonctionner gdb, mais en attendant, bon courage.
        • [^] # Re: ST7263

          Posté par  . Évalué à 5.

          gdb c'est généralement du gcc, donc du 16/32bits (y'a des exceptions), je sais j'ai écris des stubs (et patchs) pour gdb. Et c'est hachement mieux DDD que l'analyseur logique (autre missile thermonucléaire a tuer les moustiques, surtout sur un bus 32bits). Le printf c'est sur ligne série quand même, ca peux se mettre sur une RS232, donc sous minicom. Mais souvent c'est la seule méthode que l'on a, comme par exemple faire bagotter une sortie pour savoir combien de temps on passe dans une routine d'interruption, sans rajouter trop d'overhead.
  • # 'tite question au sujet d'un 8052 + Phytec

    Posté par  . Évalué à 3.

    Bon, je débute avec un 8052 ... Le problème vient surtout des environements de développement ... ... et de la documentation qui va avec ... Phytec + Keil Y'a-t-il quelqu'un qui connaisse flashtools de Phytec ? Parce que j'ai visiblement pas la documentation adéquate :-{ La documentation parle de FlashTools98, et il me semble que je ne dispose que de l'utilitaire sous dos ... Donc le problème est de savoir comment charger le *.hex sur le microcro ... et de savoir si ça marche ... J'ai bien essayé de charger les démos de style "Hello" et "blinky" ... mais c'est pas franchement un réussite ... Ce message n'est pas un appel au secours vu que le matériel n'est installé que depuis hier, mais vue que l'occasion se présentait ... J'ai pas pu résisté .... Et pis la tribune me manque .... voili,voila

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.