Pages: [1]   Go Down
Author Topic: [Résolu]programmer un 168 stand alone via IDE  (Read 1661 times)
0 Members and 1 Guest are viewing this topic.
Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1398
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui, on est à fond dans l'arduino en ISP, mais là, je voudrais aller plus loin :

J'ai acheté deux écrans LCD graphiques "GLCD160128"



Ils sont interfacés par un module sparkfun qui contient les algorithmes pour dessiner sur l'écran. le coeur de ces modules, c'est un ATMEGA168, et j'ai soudé un connecteur ISP sur le module, puisque c'était prévu. Un petit coup d'arduino-isp + avrdude, le 168 est reconnu. Je peux donc transférer un nouveau programme dans le 168! Youpi! Le prog qui est actuellement dedans est vraiment pourri, je veux le remplacer.

Je peux sûrement le bootloader, puisque l'IDE propose de bootloader les 168.

Mais voilà, pour des sombres histoires de fainéantise, j'aimerais programmer le 168 depuis l'IDE arduino, comme on le fait avec nos cartes arduino.

Pour ça, je possède une carte UNO avec le 328 en DIP, donc enlevable, pour mettre des fils aux bons endroits et piquer les signaux nécessaires pour les mettre sur mon 168 (j'ai moyen de souder des fils sur presque toutes les pattes).

Donc en disposant de ma UNO "DIP" et d'un 168, croyez-vous que je puisse arriver à quelque chose?
« Last Edit: October 25, 2011, 05:30:01 am by Jean-François » Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Plusieurs personnes sur le forum sont sur un sujet identique, regarde ce lien il devrait te permettre de faire ce que tu veux :
http://arduino.cc/forum/index.php/topic,76120.0.html
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1398
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

oui, j'ai tout lu, mais une fois bootloadé, je fais comment pour programmer mon 168 juste en cliquant sur "upload" dans l'IDE?
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

soit tu clique sur burn bootloader > with arduino-isp

ou sinon en ligne de commande :
Code:
avrdude -p m168 -c avrisp -b <vitesse du port série dans le sketch> -P <nom du port série> -U flash:w:<fichier .hex du bootloader>

tu trouvera le .hex du bootloader dans arduino/hardware/core/arduino/bootloader
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Forum Moderator
Toulouse / France
Offline Offline
Full Member
*****
Karma: 5
Posts: 241
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Une fois que tu as chargé le BL dans le 168, soit tu le piques sur la board de ton UNO pour le programmer avec l'IDE, soit (si il possede déja une horloge externe) tu interfaces un FTDI entre ses pins Tx/Rx et le port USB de ton ordinateur et tu le programmes à partir de l'IDE.

-----
Stéphane.

Logged

- Distributeur officiel Arduino - France

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1398
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dans mon idée :
le module à reprogrammer :


Je booload mon 168 via arduino-ISP. Je retire le 328 DIP de ma carte arduino UNO, facile. Je relie le module sparkfun via son connecteur série (pins Rx/Tx, GND, Vcc) et le reset par son connecteur ICSP comme si-dessous :


Et ça marcherait? C'est assez le bazar, car je sais pas trop comment ça se passe, la prog au niveau hard...
Logged

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1398
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

RESOLU!

En effet, après avoir longtemps galéré pour brancher l'UNO en ISP sur le module sparkfun, et au final m'apercevoir que j'avais modifié serial.cpp pour une autre application, j'ai donc réussi à bootloader mon 168 via IDE en lui disant de me le bootloader en Arduino diecimila W/ ATmega168 (il y a d'autres possibilités, mais j'ai pris celle là). Pour info, je n'ai pas eu besoin de la résistance de 120 ohms, ça a marché sans.
- Ensuite, j'ai fait le câblage comme sur mon bout de papier.
- J'ai enlevé le chip 328 de ma carte UNO (pour qu'il n'interfère pas sur la liaison série),
- j'ai fait un shield qui me récupère les lignes 5V, GND, Reset, Rx et Tx et les relies à un connecteur ISP et au connecteur série du module (en mettant des connecteurs de carte son, c'est nikel, voir photo).


de gauche à droite : le module sparkfun ATmega168 sur LCD, la carte UNO modifiée avec son shield, le 328 retiré, le sield ISP.

- une fois le tout câblé, j'ai fait un petit "blink" (le 168 contrôle le back-light du LCD sur la pin 10), clic sur Upload, et hop, le rétro-éclairage du LCD clignote!!! J'ai eu une légère érection du coup...

Donc pour ceux qui veulent programmer un ATmega stand alone via l'IDE arduino, il suffit juste d'avoir une carte UNO avec un chip au format DIP, les plus motivés mettront un coup disqueuse sur le chip smd pour le virer s'ils ne trouvent pas de carte Rev2.

Et je récupère un 328 en arduino pour un prochain montage stand-alone... smiley-twist
Logged

Offline Offline
Sr. Member
****
Karma: 0
Posts: 451
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nikel ça  smiley-wink

tu les à eu ou tes "gros" LCD ?
Logged

Mon Blog sur l'environnement Arduino ... Tutos fait par un débutant pour les débutants ^^

http://chicowebsite.free.fr/

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1398
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Chez Lextronic, à 55.28€ HT. Mais c'était en connaissance de cause, je savais avant de les acheter qu'il faudrait certainement les reprogrammer.
Par la suite, j'ai eu la belle surprise de voir que le soft tournant sur le 168 utilisait un buffer série (rotatif) de 416 octets avec un "if (index > 409) index = 0;", donc les octets reçus entre 410 et 416 sont perdus... pourquoi??? alors qu'un programmeur sait très bien qu'il est beaucoup plus facile et simple d'indexer un buffer "rotatif" de 256 octets avec un byte... Il y a plein de bugs, comme le tracé des lignes qui se fait sur une incrémentation verticale, du coup, les lignes horizontales ne sont que deux points aux extrémités du segment...

Dans mon idée d'utilisation, c'est pour afficher des jauges, des valeurs de mesure... donc autant que ce soit le 168 qui dessine tout seul une jauge à partir d'une valeur reçue en série plutôt que de lui envoyer une série interminable de commandes genre "set_pixel(x, y);"...

Ecran à recommander uniquement aux bidouilleurs de code, car en utilisation normale, c'est archi-nul pour le prix.

http://www.sparkfun.com/products/8884
Logged

Offline Offline
Sr. Member
****
Karma: 0
Posts: 451
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ah oui chère la bestiole quand même  smiley-eek
Logged

Mon Blog sur l'environnement Arduino ... Tutos fait par un débutant pour les débutants ^^

http://chicowebsite.free.fr/

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu pourrais nous démarrer un petit post uniquement pour ce p'tit gros lcd  smiley-wink
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1398
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

genre comment le reprogrammer? ben là, je gère très bien le back-lighting, mais pas moyen d'obtenir le moindre pixel... car chez toshiba, les datasheets sont pas très claires... mais j'y planche... Quand à vous expliquer comment il marche... fiou! pas gagné, je n'ai fait que recopier du code car je comprends rien dans les docs (j'en ai 50 pages imprimées qui se promènent sur mon bureau, et toujours rien..., mais rien ne se passe!)

J'en avais déjà parlé (description) dans le topic des LCD, où chacun devait parler de son expérience... Mais je ne le retrouve plus...

EDIT à 0h30 : finalement, j'aivais juste oublié de mettre le port C en OUTPUT, donc l'écran LCD ne recevait pas les signaux de contrôle... pfff, le boulet... Maintenant, il marche, il fait des pixels, des lignes, des rectangles... reste encore la gestion de texte à voir...
« Last Edit: October 25, 2011, 05:33:14 pm by Super_Cinci » Logged

Pages: [1]   Go Up
Jump to: