Question:
Modification des broches utilisées dans l'exemple ArduinoISP
user1092
2014-04-18 01:33:48 UTC
view on stackexchange narkive permalink

J'ai construit mon propre programmeur ATTiny, mais j'ai fait une petite erreur en cours de route - je n'ai pas aligné les en-têtes correctement, et maintenant au lieu de les brancher sur les broches 10, 11, 12 et 13 selon ArduinoISP exemple - ils se connectent maintenant aux broches 8, 9, 10 et 11.

Si j'utilise des câbles de démarrage pour câbler les broches pour correspondre à l'exemple ArduinoISP, tout fonctionne bien, ce qui signifie le câblage sur la carte réelle est OK, cependant, je veux pouvoir simplement brancher ma carte que j'ai créée directement, et j'ai donc besoin de faire fonctionner le chargeur de démarrage et le téléchargement via les broches 8, 9, 10 et 11 à la place.

J'ai essayé de modifier moi-même l'exemple en remplaçant les références à RESET, MOSI, MISO et SCK par mes propres numéros de broches, mais cela ne semble pas suffire. Quand j'essaye de graver le bootloader maintenant, j'obtiens l'erreur suivante:

  avrdude: stk500_program_enable (): erreur de protocole, expect = 0x14, resp = 0x50avrdude: l'initialisation a échoué, rc = -1 Double vérifiez les connexions et réessayez, ou utilisez -F pour remplacer cette vérification.avrdude: stk500_disable (): erreur de protocole, expect = 0x14, resp = 0x51  

Si j'essaye de télécharger un croquis en utilisant ma version qui a les numéros de broches personnalisés, j'obtiens cette erreur:

  avrdude: stk500_getsync (): not in sync: resp = 0x00  

Le câblage de mon programmeur est le même que celui que vous pouvez trouver ici: http://highlowtech.org/?p=1706 sauf que je veux que l'esquisse du programmeur fonctionne avec des broches différentes.

Merci

Deux réponses:
Craig
2014-04-18 01:48:53 UTC
view on stackexchange narkive permalink

Vous ne pouvez pas changer les broches.

ArduinoISP utilise l'interface SPI sur les broches 10-13 qui est fournie par le matériel AVR sous-jacent.

microtherion
2014-04-18 04:28:19 UTC
view on stackexchange narkive permalink

En pratique, il vaut mieux corriger les choses afin d'utiliser les broches d'origine, qui correspondent au SPI matériel.

Cependant, il n'est pas très difficile d'implémenter SPI dans un logiciel (avec des performances inférieures, bien sûr):

  static uint8_t SPITransfer (uint8_t out) {uint8_t in = 0 ; pour (int i = 0; i<8; ++ i) {digitalWrite (MOSI, (out & 0x80)! = 0); out << = 1; DigitalWrite (SCK, HIGH); dans = (dans << 1) | digitalRead (MISO); DigitalWrite (SCK, LOW); } return in;}  

Il existe plusieurs modes SPI, mais cela implémente celui utilisé pour ISP.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...