Go Down

Topic: [résolu] Comment mettre l'ICSP en E/S standard ? (Read 2975 times) previous topic - next topic

DetourbetX

Mar 31, 2014, 10:00 am Last Edit: Mar 31, 2014, 12:32 pm by DetourbetX Reason: 1
Bonjour,

Je possède une carte pour contrôler une imprimante 3d basée sur un Atmega 1284P.
Cette carte ne propose pas beaucoup d'E/S extérieure et j'aurais voulu utiliser le port ICSP en E/S standard pour avoir quelques pins supplémentaires à programmer.
Le problème c'est que je n'arrive pas à programmer ce port ICSP en E/S standard via l'IDE Arduino.
Je m'orienterais donc vers un fusible à configurer car d'un point de vue électronique le port ICSP va directement sur les broches du microcontrôleur.
Pouvez-vous me confirmer que le problème vient bien d'un fusible à configurer et si oui lequel ?

En vous remerciant par avance  :)

Xavier

B@tto

Salut,

Tu parles d'une Arduino programmé en "Arduino as ISP programmer" ?
Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

DetourbetX

#2
Mar 31, 2014, 11:13 am Last Edit: Mar 31, 2014, 11:17 am by DetourbetX Reason: 1
L'ISP en fait ne m'intéresse pas en fait, je veux juste récupérer les broches pour faire autre chose avec.
Mais sinon oui, si je dois recharger le bootloader je devrais passer par l'ISP via "Arduino as ISP programmer".
Merci par avance.

fdufnews

Il y a un fusible pour autoriser la reprogrammation par le SPI mais il n'y a pas de fusible qui interdise l'utilisation des signaux utilisés par le port de programmation.
Le problème doit être ailleurs.
La description de cette carte dans board.txt expose-t-il les broches en question?

B@tto

Normalement le pin mapping est celui de cette article :
http://maniacbug.wordpress.com/2011/11/27/arduino-on-atmega1284p-4/

Donc logiquement il n'y a aucune impossibilité à utiliser les pins du port ICSP
Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

DetourbetX

Merci de vos réponses, j'avais un doute, je n'ai jamais potasser l'utilisation des fusibles.
Je vais faire quelques tests supplémentaires sinon le fichier boards.txt relatif à ma carte est celui-ci.

Code: [Select]
atmega1284.name=Sanguino W/ ATmega1284p 16mhz

atmega1284.upload.protocol=stk500
atmega1284.upload.maximum_size=131072
atmega1284.upload.speed=57600

atmega1284.bootloader.low_fuses=0xD6
atmega1284.bootloader.high_fuses=0xDA
atmega1284.bootloader.extended_fuses=0xFD
atmega1284.bootloader.path=atmega
atmega1284.bootloader.file=ATmegaBOOT_168_atmega1284p.hex
atmega1284.bootloader.unlock_bits=0x3F
atmega1284.bootloader.lock_bits=0x0F

atmega1284.build.mcu=atmega1284p
atmega1284.build.f_cpu=16000000L
atmega1284.build.core=arduino
atmega1284.build.variant=standard

icare

Bonjour,
En fin de l'article cité par B@tto, tu as le lien vers les solutions alternatives dont la Sanguino.
J'utilise cette carte pour mon imprimante 3D et je peux te dire qu'il ne reste aucune pin dispo, je passe même par des I/O déportés via I2C pour répondre à mes besoins.
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

DetourbetX

#7
Mar 31, 2014, 12:29 pm Last Edit: Mar 31, 2014, 12:31 pm by DetourbetX Reason: 1
Merci pour vos réponses.
Je suis désolé j'aurais du tester les broches une à une avant de poster ce topic.
J'ai bien accès à tous les signaux SPI, sauf le Slave Select cablé directement en hardware sur le reset de la carte.
Cependant j'ai bien un soucis, le but est d'intégrer un LCD sur l'imprimante, l'écran fonctionne sur les autres pins mais impossible de le faire fonctionner sur le port ICSP.

Je marque le problème résolu et vous remercie de votre aide.

@ Icare : Je suis sur une carte Melzi basée sur Sanguino, je possède, port ICSP compris, 11 pins d'E/S. Cela est correct avec un écran en SPI. Le principal défaut est l'absence de signal PWM sur ces pins disponibles. L'i2c est une excellente solution en effet  :)

icare

Re,

@ Icare : Je suis sur une carte Melzi basée sur Sanguino, je possède, port ICSP compris, 11 pins d'E/S. Cela est correct avec un écran en SPI. Le principal défaut est l'absence de signal PWM sur ces pins disponibles. L'i2c est une excellente solution en effet  :)

Mon afficheur fonctionne en I2C
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

DetourbetX

Quote
Mon afficheur fonctionne en I2C

C'est vrai que ça peut être plus simple si dans le futur il faut rajouter d'autres circuits à piloter.

Sinon mon problème vient du firmware Marlin. Ce dernier lance la lecture de la carte SD via SPI alors que le support SD n'est pas activé dans le fichier configuration.h, ce qui explique pourquoi je n'accède pas au port SPI . J'ai donc la constante SDSUPPORT qui est surchargée quelque part au fin fond de l'univers.  =(

icare

Re,
Lorssqu'on explore Marlin, il ne faut pas oublier son fil d'Ariane sinon "on n'en reviens pas"
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

fdufnews

Si le SPI est actif tu n'as besoin que d'une pin libre pour piloter le CS d'un afficheur ayant une interface SPI

DetourbetX

C'est vrai fdunews mais le problème était tout autre finalement.
En fait en activant la librairie de l'écran je surchargeais une variable qui réservait le port spi pour le lecteur de carte SD ce qui explique pourquoi mon port ne fonctionnait pas sur l'imprimante 3d où du moins que je n'y avais plus accès.
Je rédige un article sur mon wordpress pour expliquer les modifications à apporter pour faire fonctionner tout ça, je posterai le lien à l'issu.

Merci encore pour votre aide.  :)

Go Up