WikiElectronique

Wiki sur l'électronique et l'informatique

Outils pour utilisateurs

Outils du site


projets:charon_2:charon_2

Charon 2

:projets:charon_2:charon2.jpg

Caractéristiques

  • Full duplex IEEE 802.3 10 Mb/s Ethernet
  • Microcontrôleur AVR ATmega 128 RISC
  • Nut/OS (système d'exploitation temps réel) avec pile TCP/IP (compatible avec AVR-GCC, ImageCraft ICCAVR, CodeVision AVR)
  • 2xRS232
  • Interface JTAG
  • Interface SPI
  • De 4 à 8 entrées ADC
  • De 2 à 6 sorties PWM
  • 1 Comparateur analogique
  • 1 RTC
  • Alimentation 5V - 80mA max
  • Le Charon 2 est compatible avec l'Ethernut 1.3F du projet Ethernut

Brochage

:projets:charon_2:charon2_brochage.png

Brochage du Charon 2
1TP0+Sortie Ethernet INT0/SCLPD01325PB3SPI MISO
2TP0-Sortie Ethernet INT1/SDAPD11426PB2SPI MOSI
3TPI+Entrée Ethernet INT2/RxD1 serial 1PD21527PB1SPI SCK
4TPI-Entrée Ethernet INT0/TxD1 serial 1PD31628PB0SPI /SS
5LINKLED de transmission IC1PD41729PF7ADC7 /TDI
6GNDMasse XCK1PD51830PF6ADC6 /TDO
7PE0RxD0 serial 0 T1PD61931PF5ADC5 /TMS
8PE1TxD0 serial 0 T2PD72032PF4ADC4 /TCK
9PE2AIN+/XCK0 OC1BPB62133PF3ADC3
10PE3AIN-/OSC3A OC1CPB72234PF2ADC2
11PE4INT4/OSC3B RESETRST2335PF1ADC1
12VCC+5V/max 80mA MasseGND2436PF0ADC0

Achat

Achat du module Charon 2 et du connecteur Ethernet intégrant le transformateur d'isolement chez Lextronic :
http://www.lextronic.fr/charon/PP4.htm

Si vous pensez commander le connecteur RJ45 chez Lextronic, lisez la_mesaventure_lextronic:"la mésaventure Lextronic"

06/06/2006: Commande envoyée
09/06/2006: Commande reçue

Quelques photos

:projets:charon_2:charon2_lextronic.jpg :projets:charon_2:charon2_lextronic2.jpg :projets:charon_2:charon2_lextronic3.jpg

Carte de développement

:projets:charon_2:carte_dev_charon2.jpg

Schéma

Typon

Face soudures

Face composants

Implantation

Module RJ45 + Transformateur

Suite à la_mesaventure_lextronic:la mésaventure Lextronic, j'ai du réaliser un module pouvant remplacer le connecteur LFS1022 et pouvant s'enfficher sur son implantation. Donc si vous arrivez à trouver un LFS1022, tant mieux, sinon vous avez un autre solution utilisant du matériel “plus standard”.

Etape 1 : Trouver une carte réseau

Trouver un carte réseau ayant un transformateur compatible avec celui que j'ai utilisé, le TA140-12B. Pas de panic, les brochages semblent standardisés donc si vous trouvez une carte avec un transformateur en format DIL16 c'est déjà presque gagné. Vérifiez quand même le brochage avant de le monter sur son support.

Si vous n'avez pas de vielle carte réseau sous la main, faites les magasins d'informatique et demandez leurs s'ils n'ont pas de cartes réseau RJ45 10Mbit d'occasion. J'en ai trouvé plusieurs de cette manière à 2.5€ pièce.

Les transformateurs testés et compatibles

Etape 2 : Dessouder le connecteur RJ45 et le transformateur

Rien à rajouter

Etape 3 : Réaliser le module

Schema
Typon

Le Charon 2 sur votre réseau

Votre réseau

Le Charon 2 fonctionne de la même manière qu'un nouvel ordinateur sur votre réseau. Il a sa propre IP et sa propre adresse mac. Donc pour que les données soient correctement aiguillées entre votre PC, le charon 2 et internet, il est nécessaire d'avoir au minimum un routeur sur votre réseau.

:projets:charon_2:reseau_charon.jpeg

Certains modems permettent la fonction routeur, référez vous à votre manuel d'utilisation.
Si vous avez en switch connecté à votre routeur, vous pouvez connecter le charon 2 dessus.

Le câble RJ45

Utilisez un câble RJ45 droit sauf si votre routeur/switch accepte les câbles droits et croisés.

Accès depuis Internet (optionnel)

Pour que votre Charon 2 soit accecible depuis internet avec votre adresse IP internet, configurer votre routeur pour qu'il assigne le port 80 (http) à votre Charon 2 (IP 192.168.1.20) (cf le manuel d'utilisation de votre routeur)

Configuration du module

  1. Connectez la fiche d'alimentation
  2. Connectez le cable droit RS232 - La carte de développement de HWgroup utilise un cable null modem avec RX/TX et RTC/CTS croisé, ce n'est pas notre cas.
  3. Téléchargez le logiciel Hercules
  4. Démarrez Hercules
  5. Allez dans l'onglet Serial
    1. Name : le port que vous utilisez
    2. Baud : 9600
    3. Data size : 8
    4. Parity : none
    5. Handshake : OFF
    6. Mode : Free
  6. Mettez le cavalier “SETUP”
  7. Mettez la carte sous tension
    :projets:charon_2:hercules.jpg

Le charon 2 vous affiche ses paramètres par défaut :

  • Mac adresse : L'adresse MAC de votre charon 2 - C'est une adresse physique donc elle ne changera pas
  • IP adress : L'adresse IP du votre charon 2
  • IP mask : Masque du réseau - Ca sera toujours 255.255.255.0
  • Gateway address : L'IP de votre routeur

IP adress

Pour modifier l'IP tapez simplement “i” ou “I”
Tapez ensuite l'IP, ne tapez pas les points, ils sont rajoutés automatiquement.
Donc pour entrer l'IP 192.168.1.20, par exemple.
Tapez :

192168001020

Gateway address

Pour modifier l'IP de votre routeur tapez simplement “g” ou “G”
En suivant la même procédure que pour l'IP, pour entrer 192.168.1.254, tapez : Tapez :

192168001254

Sauvegarde

Sauvegardez en tapant “s” ou “S”

Tester le serveur web de démo

Maintenant que le module est correctement configuré:

  1. Enlevez le cavalier “SETUP”
  2. Branchez le connecteur RJ45
  3. Redémarrez la carte

La led rouge (alimentation) , la led orange (trafic réseau) et la led sur votre switch doit s'allumer.

Tapez dans votre navigateur internet “http:\\” suivit de l'IP de votre module.
Dans notre exemple :

http:\\192.168.1.20

:projets:charon_2:ie_charon2.jpg

Firmware

Les logiciels nécessaires

  • WinAVR 20040720. - A l'heure actuelle, il y a quelques bugs avec les nouvelles versions donc je vous conseille plutôt celle-ci.

Installez les différents logiciels et copiez le répertoire /app/db_demo du firmware du HWgroup dans le répertoire C:\ethernut\nut\app

Configuration

  1. Cliquez sur le menu “démarrer” de windows puis sur “Tous les programmes”, “Ethernut”, “Configure Development Environment”, sélectionnez Charon2.conf, puis “ouvrir”
    1. Cliquez sur le menu “Edit” puis sur “settings…“
    2. Cliquez sur l'onglet “Build”
      1. Dans “Source Directory”, sélectionnez le répertoire “C:\ethernut\nut”
      2. Dans “Platform” “avr-gcc”
      3. Dans “Build Directory”, sélectionnez le répertoire “C:\ethernut\nut” puis cliquez sur “Créer un répertoire”, nommez le “firmware” et validez
      4. Dans “Install directory”, sélectionnez le répertoire “C:\ethernut\nut\firmware” puis cliquez sur “Créer un répertoire”, nommez le “lib” et validez
    3. Cliquez sur l'onglet “Tool”
      1. Dans “Tool Paths”, entrez “C:\ethernut\nut\tools\win32;C:\WinAVR\bin;C:\WinAVR\utils\bin”
    4. Cliquez sur l'onglet “Samples” et entrez “C:\ethernut\nut\firmware” dans “Application Directory”
    5. Cliquez sur “Build”, sélectionnez “Generate Build Tree” et validez.
    6. Cliquez sur “Build”, sélectionnez “Build Nut/OS” et validez. - Vous ne devriez avoir aucun message d'erreur.

Si une erreur se produit, exécutez CMD (ligne de commande DOS) et entrez

set PATH=c:\ethernut\nut\tools\win32;%PATH%

Ce qui doit vous donner :

----- Running 'make clean' -----
----- 'make clean' terminated successfully -----
----- Running 'make all' -----
avr-ar: creating libnutarch.a
avr-ar: creating libnutos.a
avr-ar: creating libnutdev.a
avr-ar: creating libnutc.a
avr-ar: creating libnutcrt.a
avr-ar: creating libnutnet.a
avr-ar: creating libnutpro.a
avr-ar: creating libnutfs.a
avr-ar: creating libnutcpp.a
----- 'make all' terminated successfully -----
----- Running 'make install' -----
----- 'make install' terminated successfully -----

Compiler sa 1ere application

Il ne faut pas modifier les programmes d'exemples donc pour cela nous allons copier le répertoire “C:\ethernut\nut\app” vers “C:\ethernut\firmware” avec la commande “Buil” “Create Sample Directory”

Editez avec le “Progammers Notepad” de WinAVR le fichier “C:\ethernut\firmware\httpd\httpserv.c”

Modifiez l'adresse MAC et l'IP de votre module :

/* These values are used if there is no valid configuration in EEPROM. */
#define MYMAC   0x00, 0x0A, 0x59, 0x03, 0x04, 0x68
#define MYIP    "192.168.1.20"
#define MYMASK  "255.255.255.0"

Dans le menu Tools, cliquez sur Make Clean puis sur Make all.

Si vous avez l'erreur suivante :

crurom -r -ourom.c sample
process_begin: CreateProcess((null), crurom -r -ourom.c sample, ...) failed.
make (e=2): Le fichier spécifié est introuvable.

make.exe: *** [urom.c] Error 2

Remplacez la ligne

CRUROM=crurom

par

CRUROM=C:\ethernut\nut\tools\win32\crurom.exe

dans le fichier C:\ethernut\firmware\NutConf.mk. Sauvegardez et relancez la compilation.

Voilà ce que ca me donne :

> "make.exe" all
avr-gcc -c -mmcu=atmega128 -Os -Wall -Wstrict-prototypes -Wa,-ahlms=httpserv.lst -D__HARVARD_ARCH__ -IC:/ethernut/firmware/include -IC:/ethernut/nut/include  httpserv.c -o httpserv.o
httpserv.c: In function `ShowSockets':
httpserv.c:299: warning: assignment discards qualifiers from pointer target type
httpserv.c:302: warning: assignment discards qualifiers from pointer target type
httpserv.c:305: warning: assignment discards qualifiers from pointer target type
httpserv.c:308: warning: assignment discards qualifiers from pointer target type
httpserv.c:311: warning: assignment discards qualifiers from pointer target type
httpserv.c:314: warning: assignment discards qualifiers from pointer target type
httpserv.c:317: warning: assignment discards qualifiers from pointer target type
httpserv.c:320: warning: assignment discards qualifiers from pointer target type
httpserv.c:323: warning: assignment discards qualifiers from pointer target type
httpserv.c:326: warning: assignment discards qualifiers from pointer target type
httpserv.c:329: warning: assignment discards qualifiers from pointer target type
httpserv.c:332: warning: assignment discards qualifiers from pointer target type
C:\ethernut\nut\tools\win32\crurom.exe -r -ourom.c sample
avr-gcc -c -mmcu=atmega128 -Os -Wall -Wstrict-prototypes -Wa,-ahlms=urom.lst -D__HARVARD_ARCH__ -IC:/ethernut/firmware/include -IC:/ethernut/nut/include  urom.c -o urom.o
avr-gcc httpserv.o urom.o -mmcu=atmega128 -Wl,--defsym=main=0,-Map=httpserv.map,--cref -LC:/ethernut/firmware/lib  C:/ethernut/firmware/lib/nutinit.o  -lnutnet -lnutpro -lnutfs -lnutos -lnutdev -lnutnet -lnutcrt -o httpserv.elf
avr-objcopy -O ihex httpserv.elf httpserv.hex
rm httpserv.elf

Dans le répertoire C:\ethernut\firmware\httpd vous devriez trouver le fichier httpserv.hex près à être programmé dans votre ATmega.

Programmer le module

Le module Charon 2 peut être programmé avec un programmateur ISP (In-System Programming) comme le Dongle AVR 2 ou un autre programmateur compatible.

Sauvegarder le programme d'origine

  • Mettez le cavalier sur la position PROG
  • Branchez le Dongle AVR 2 sur le connecteur ISP.

Lancez votre logiciel de programmation, par exemple ponyprog, et faites une sauvegarde de la flash,de l'eeprom et des fuse bits.

:projets:charon_2:ponyprog.jpg

Programmer sa 1ere application

  • Effacez l'ATmega128
  • Programmez le fichier C:\ethernut\firmware\httpd\httpserv.hex
  • Retirez la nappe du connecteur ISP
  • Coupez l'alimentation de la carte
  • Retirez le cavalier PROG
  • Mettez la carte sous tension
  • Patientez quelques secondes (40-50s) le temps que le serveur se démarre.
  • Tapez dans votre navigateur internet “http:\\” suivit de l'IP de votre module.

Dans notre exemple:

http:\\192.168.1.20

:projets:charon_2:ie2_charon2.jpg

Félicitation ;-)

Annexes

Schémas annexes

Schéma du module Charon 2

:projets:charon_2:schema2.jpg

SV3 est inversé par rapport à l'implantation réelle du module

Librairie pour Eagle

HW group fournit une librairie pour Eagle intégrant : le Charon 1, le Charon 2, le connecteur Ethernet LF1S022 avec et sans LED.

Comment créer la librairie

Pour être exact, HW group fournit un script (.scr) qui permet de générer la librairie.

Donc pour créer cette librairie suivez les étapes suivantes :

  1. Téléchargez et dézipez le fichier Charon_Eagle_Lib.zip
  2. Ouvrez une nouvelle librairie. Donc le control Panel d'Eagle : File → New → Library
  3. Executez le script Charon_modules.scr contenu dans le fichier Charon_Eagle_Lib.zip. File → Script … Sélectionnez le fichier Charon_modules.scr → Ouvrir Votre librairie est créée :
    :projets:charon_2:charon_librairie_eagle1.jpg
  4. Enregistrez votre librairie : File → Save AS … Dans le répertoire lbr d'Eagle : Nom du fichier : Charon2.lbr → Enregistrer
  5. Activez la librairie : Dans le Control Panel → Librairies → Charon2.lbr Cliquez sur la “LED” blanche à droite de Charon2.lbr pour qu'elle devienne verte.
    :projets:charon_2:charon_librairie_eagle2.gif

Votre librairie est maintenant fonctionnelle.

Liens à voir

Serveur Web avec le module Charon 2
Charon 2 - Site du constructeur
Carte de development - Site du constructeur
Ethernut Projet complet : Carte + OS avec pile TCP/IP compatible avec le Charon 2

Datasheet Charon 2
Schéma de la carte de développement

Datasheet du RTL8029AS Si vous voulez directement récupérer les signaux sur une carte réseau PCI

La mésaventure Lextronic

Lors du 1er test de la carte de développement :
Liaison série : OK
Programmation ISP : OK
Connexion Ethernet : PAS OK :-( La led du switch ne s'allume pas à la mise sous tension de la carte

Le connecteur Ethernet que j'ai recu n'est apparemment pas identique/compatible avec celui présenté sur le site de lextronic.

Le connecteur que j'ai reçu : :projets:charon_2:ube_rd1-1d5b1a1a.pdf
Celui visible sur le site lextronic et le site HWgroup : :projets:charon_2:lf1s022.pdf

J'ai essayé de récupérer directement les signaux TPI et TPO sur une carte réseau fonctionnant avec un RTL8029 et de les connecter au Charon 2 :

:projets:charon_2:carte_reseau_charon2.jpg

Et là ca fonctionne …

Je vais téléphoner à lextronic pour savoir si leur connecteur est vraiment compatible et s'ils l'ont testé.

A suivre — JP 2006/06/21 08:41

Ca y est, un technicien de lextronic m'a répondu, ils se sont trompés de référence et je dois leur renvoyer les 2 connecteurs, à mes frais bien sur …
La suite d'ici une semaine quand j'aurai récupéré les bons connecteur :-\JP 21/06/2006 16:34
Lextronic m'a envoyé le datasheet du nouveau connecteur que je devrais recevoir la semaine prochaine.

Et c'est toujours un connecteur qui n'est apparemment pas compatible avec celui affiché sur leur site. :-o

Je retéléphone lundi pour leur dire que ce n'est pas la peine de me l'envoyer… :-\ :-\ :-\
A suivre … — JP 25/06/2006 10:43
Nouvelle référence proposée par lextronic, nouveau brochage différent … :(

Je leur ai donc indiqué que j'avais déjà réalisé la carte et qu'il n'était pas question d'utiliser un connecteur dont le brochage est différent de celui indiqué sur leur site.


En réponse, ils vont contacter HW-Group pour voir s'il est possible de leur commander des LF1S022, par contre il risque d'y avoir du delais et le prix sera différent ! 8-O


Sur leur site :

Nous vous recommandons de respecter les schémas ci-dessous. Vous pouvez choisir un transformateur séparé en boîtier “DIL14” (type YCL 20F001N ou FS2022). Si vous ne disposez que peu de place, vous pouvez utiliser un connecteur RJ45 avec transformateur intégré (LF1S022).


Je respecte le schéma et ensuite ils me disent qu'en fait ils n'ont pas cette référence et que si je la veux ça m'en coûtera plus cher !

Donc si vous commandez chez lextronic attendez d'avoir le composant pour faire la carte … — JP 27/06/2006 12:02

Programmation

Le module Charon 2 peut être programmé avec un programmateur ISP (In-System Programming) comme le Dongle AVR 2 ou un autre programmateur compatible.
Les pattes du programmateur doivent être connectées comme ceci :

  • MOSI → Pin 7: PE0 RxD0 serial 0 /!\ Il n'est pas connecté à la Pin 26: PB2 SPI MOSI
  • MISO → Pin 8: PE1 TxD0 serial 0 /!\ Il n'est pas connecté à la Pin 25: PB3 SPI MISO
  • SCK → Pin 27: PB1 SPI SCK
  • RST → Pin 23: RST
  • GND → Pin 6 et Pin 24: Masse
  • +5V → Pin 12: +5V

Un multiplexeur est utilisé dans la carte de développement de HWgroup pour pouvoir utiliser MOSI/MISO et RxD0/TxD0

projets/charon_2/charon_2.txt · Dernière modification: 2014/10/25 03:01 (modification externe)