mettre du code arduino dans une carte tuxgraphics

Bonjour à tous, j'ai dans un de mes tiroirs une carte à base d'un atmega 168 + EN28J60 du site tuxgraphics.org: Fast realtime communication over ethernet , est ce qu'il y aurai moyen de faire tourner du code arduino dessus afin que je puisse recyclé cette carte ?

Arduino peut produire du code pour Mega 168 et des librairies enc28J60 existent
C'est à priori possible avec peut être quelques précautions ou petites adaptations hard ou soft (Arduino 16MHz contre carte à 12,5MHz d'origine) Le plus simple consiste sans doute passer la carte en 16MHz en coupant la piste venant du CLKOUT du enc28j60 et en mettant comme horloge du Mega 168 un résonnateur 16MHz ou un Quartz et ses deux condensateurs.

Le schéma de la carte est il identique à celui que je joins ?

Il faudrait ensuite regler le cas de la programmation , par bootloader ou directement en ISP

Pour info Guido Socher (tuxgraphic) est l'auteur de la librairieAVR initiale pour enc28j60, librairie reprise et adaptée ensuite pour les shields arduino utilisant cette puce ('nuelectronics'). Il a continué à améliorer sa librairie et présente des applications intéressantes .... non Arduino :frowning:
Ce serait dommage de ne pas exploiter cette petite carte !!

eth-remote-device.pdf (14.5 KB)

merci beaucoup pour ta réponse à ma question al1fch, oui le schéma est bien le même que ma carte, je pense que je vais procédé comme tu me préconise

Le plus simple consiste sans doute passer la carte en 16MHz en coupant la piste venant du CLKOUT du enc28j60 et en mettant comme horloge du Mega 168 un résonnateur 16MHz ou un Quartz et ses deux condensateurs.

, par contre je n'y connais pas grand chose en matière d’électronique est ce que ce type de résonateur peu correspondre http://radiospares-fr.rs-online.com/web/p/resonateur/5265987/ ?
sinon je la programmerais directement en ISP avec mon arduino ou mon programmateur d'AVR

gnomathibus:
sinon je la programmerais directement en ISP avec mon arduino ou mon programmateur d'AVR

Pose toi pas trop de question et fait le directement avec ton programmateur Avr..

ok j'utiliserais alors le programmateur d'avr, mais pour le résonateur 16Mhz http://radiospares-fr.rs-online.com/web/p/resonateur/5265987/ est ce que celui fera l'affaire ?

je pensais à un résonateur à 3 broches avec ses condensateurs intégrés (3 soudures à faire !)
http://radiospares-fr.rs-online.com/web/p/resonateur/5266154/

Le modèle cité en référence, 2 broches a besoin comme un quartz de 2 condensateurs externes. (6 soudures à faire). Si tu optes pour la solution '6 soudures' autant mettre un quartz à la place du résonateur pour avoir une fréquence plus précise.

Il y a probablement une solution 'soft' sans modification de la carte tuxgraphics :
ajouter au fichier 'board.txt' un paragraphe décrivant la carte tuxgraphics.

Cette carte nouvelle , "tux168" par exemple, figurerait alors dans le menu 'boards' de l'IDE.
-> Prendre modèle sur la partie décrivant une carte à ATMega168 et mettre comme fréquence 12500000L

diecimila.name=Arduino Diecimila, Duemilanove, or Nano w/ ATmega168

diecimila.upload.protocol=stk500
diecimila.upload.maximum_size=14336
diecimila.upload.speed=19200

diecimila.bootloader.low_fuses=0xff
diecimila.bootloader.high_fuses=0xdd
diecimila.bootloader.extended_fuses=0x00
diecimila.bootloader.path=atmega
diecimila.bootloader.file=ATmegaBOOT_168_diecimila.hex
diecimila.bootloader.unlock_bits=0x3F
diecimila.bootloader.lock_bits=0x0F

diecimila.build.mcu=atmega168
diecimila.build.f_cpu=16000000L 12500000L
diecimila.build.core=arduino

C'est peut être à tester avant de passer au cutter et au fer à souder !!
Un utilisateur passant sur ce fil de discussion a peut être déjà une expérience d'ajout de cartes au menu.

merci pour le tuyau al1fch, je vais testé ça dès que possible, sinon j'ai passé commande pour le résonateur 16Mhz je le reçois demain

en attendant de recevoir le resonateur 16Mhz j'ai essayé de compiler un bootloader custom pour la carte mais j'ai une erreur a la compilation dans le fichier make j'ai rajouté ceci :

tux168: TARGET = tux168
tux168: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1'
tux168: AVR_FREQ = 12500000L
tux168: $(PROGRAM)_tux168.hex

tux168_isp: tux168
tux168_isp: TARGET = tux168
tux168_isp: HFUSE = DD
tux168_isp: LFUSE = FF
tux168_isp: EFUSE = 00
tux168_isp: isp

et comme erreur lors du lancement de la compil :

make tux168 avr-gcc -g -Wall -O2 -mmcu=atmega168 -DF_CPU=12500000L '-DMAX_TIME_COUNT=F_CPU

4' '-DNUM_LED_FLASHES=1' -c -o ATmegaBOOT_168.o ATmegaBOOT_168.c
ATmegaBOOT_168.c: In function 'main':
ATmegaBOOT_168.c:586: error: 'EEWE' undeclared (first use in this function)
ATmegaBOOT_168.c:586: error: (Each undeclared identifier is reported only once
ATmegaBOOT_168.c:586: error: for each function it appears in.)
make: *** [ATmegaBOOT_168.o] Error 1

l'erreur est identique sur windows que sous ubuntu et de même si j'essaye de compilé diecimila =(

après de multiples tentatives j'ai réussi à faire tourner du code arduino avec ma carte "Tuxgraphics" XD, la librairie de "nuelectronics" fonctionne bien avec le enc28j60 intégré, je veux me servir de cette carte comme compteur d'impulsion qui met à jour une base de données via un script php, l'exemple de la librairie fournis "web client" fonctionne bien mais si il n'y pas d'impulsion au bout d'une minute environ la carte ne répond plus obligé de la rebootée si quelqu'un à une idée au pb

j'ai attaché le fichier pour plus de détail

etherShield_client.pde (11.5 KB)