Go Down

Topic: Problème: avrdude: stk500_getsync(): not in sync: resp=0x00 (Read 2564 times) previous topic - next topic

Monstercrunch

Hello, après de longs mois sans toucher à ma carte arduino (mon précédent projet étant un avertisseur de mail), j'ai décider de m'y remettre pour faire de la musique avec un lecteur disquette. J'ai suivi les instructions de cette vidéo: http://www.youtube.com/watch?feature=player_embedded&v=w6tuMn5sPyM avec une aide pour l'installation logicielle ici: http://www.youtube.com/watch?src_vid=w6tuMn5sPyM&v=hiE9OaTB-eU&annotation_id=annotation_920210&feature=iv

Le problème, c'est qu'au moment de transférer le code sur la carte arduino, enfin, à la fin du transfert, j'ai ce message qui s'affiche:
Code: [Select]
avrdude: stk500_getsync(): not in sync: resp=0x00

Bien sûr, rien ne fonctionne par la suite (je veux dire pour mon montage)  =(.
Je possède une arduino uno SMD R2 et j'ai utilisé la version 1.0.1 du logiciel arduino. Voilà, si vous pouviez m'aider, je vous en serai reconnaissant  :)

Heloderma-kris

as tu vérifier dans le menu le choix de ta carte et éventuellement teste avec un autres cable usb , chez moi c'est ce qui planter au debut!

Snootlab

Bonjour,

peux-tu détailler ton programme ici ?
Quelle est la configuration de ton système ?

-----
Stéphane.
- Distributeur officiel Arduino - France

Monstercrunch

Euh, windows 7 64bits, le programme est le suivant (je ne l'ai pas lu, dans le tuto on demande de le mettre sur la carte, c'est ce que je me contente de faire):

Code: [Select]
#include <TimerOne.h>

boolean firstRun = true; // Used for one-run-only stuffs;

//First pin being used for floppies, and the last pin.  Used for looping over all pins.
const byte FIRST_PIN = 2;
const byte PIN_MAX = 17;
#define RESOLUTION 40 //Microsecond resolution for notes


/*NOTE: Many of the arrays below contain unused indexes.  This is
to prevent the Arduino from having to convert a pin input to an alternate
array index and save as many cycles as possible.  In other words information
for pin 2 will be stored in index 2, and information for pin 4 will be
stored in index 4.*/


/*An array of maximum track positions for each step-control pin.  Even pins
are used for control, so only even numbers need a value here.  3.5" Floppies have
80 tracks, 5.25" have 50.  These should be doubled, because each tick is now
half a position (use 158 and 98).
*/
byte MAX_POSITION[] = {
  0,0,158,0,158,0,158,0,158,0,158,0,158,0,158,0,158,0};
 
//Array to track the current position of each floppy head.  (Only even indexes (i.e. 2,4,6...) are used)
byte currentPosition[] = {
  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

/*Array to keep track of state of each pin.  Even indexes track the control-pins for toggle purposes.  Odd indexes
track direction-pins.  LOW = forward, HIGH=reverse
*/
int currentState[] = {
  0,0,LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW
};
 
//Current period assigned to each pin.  0 = off.  Each period is of the length specified by the RESOLUTION
//variable above.  i.e. A period of 10 is (RESOLUTION x 10) microseconds long.
unsigned int currentPeriod[] = {
  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};

//Current tick
unsigned int currentTick[] = {
  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};



//Setup pins (Even-odd pairs for step control and direction
void setup(){
  pinMode(13, OUTPUT);// Pin 13 has an LED connected on most Arduino boards
  pinMode(2, OUTPUT); // Step control 1
  pinMode(3, OUTPUT); // Direction 1
  pinMode(4, OUTPUT); // Step control 2
  pinMode(5, OUTPUT); // Direction 2
  pinMode(6, OUTPUT); // Step control 3
  pinMode(7, OUTPUT); // Direction 3
  pinMode(8, OUTPUT); // Step control 4
  pinMode(9, OUTPUT); // Direction 4
  pinMode(10, OUTPUT); // Step control 5
  pinMode(11, OUTPUT); // Direction 5
  pinMode(12, OUTPUT); // Step control 6
  pinMode(13, OUTPUT); // Direction 6
  pinMode(14, OUTPUT); // Step control 7
  pinMode(15, OUTPUT); // Direction 7
  pinMode(16, OUTPUT); // Step control 8
  pinMode(17, OUTPUT); // Direction 8

  Timer1.initialize(RESOLUTION); // Set up a timer at the defined resolution
  Timer1.attachInterrupt(tick); // Attach the tick function

  Serial.begin(9600);
}


void loop(){
 
  //The first loop, reset all the drives, and wait 2 seconds...
  if (firstRun)
  {
    firstRun = false;
    resetAll();
    delay(2000);
  }

  //Only read if we have
  if (Serial.available() > 2){
    //Watch for special 100-message to reset the drives
    if (Serial.peek() == 100) {
      resetAll();
      //Flush any remaining messages.
      while(Serial.available() > 0){
        Serial.read();
      }
    }
    else{
      currentPeriod[Serial.read()] = (Serial.read() << 8) | Serial.read();
    }
  }
}


/*
Called by the timer inturrupt at the specified resolution.
*/
void tick()
{
  /*
  If there is a period set for control pin 2, count the number of
  ticks that pass, and toggle the pin if the current period is reached.
  */
  if (currentPeriod[2]>0){
    currentTick[2]++;
    if (currentTick[2] >= currentPeriod[2]){
      togglePin(2,3);
      currentTick[2]=0;
    }
  }
  if (currentPeriod[4]>0){
    currentTick[4]++;
    if (currentTick[4] >= currentPeriod[4]){
      togglePin(4,5);
      currentTick[4]=0;
    }
  }
  if (currentPeriod[6]>0){
    currentTick[6]++;
    if (currentTick[6] >= currentPeriod[6]){
      togglePin(6,7);
      currentTick[6]=0;
    }
  }
  if (currentPeriod[8]>0){
    currentTick[8]++;
    if (currentTick[8] >= currentPeriod[8]){
      togglePin(8,9);
      currentTick[8]=0;
    }
  }
  if (currentPeriod[10]>0){
    currentTick[10]++;
    if (currentTick[10] >= currentPeriod[10]){
      togglePin(10,11);
      currentTick[10]=0;
    }
  }
  if (currentPeriod[12]>0){
    currentTick[12]++;
    if (currentTick[12] >= currentPeriod[12]){
      togglePin(12,13);
      currentTick[12]=0;
    }
  }
  if (currentPeriod[14]>0){
    currentTick[14]++;
    if (currentTick[14] >= currentPeriod[14]){
      togglePin(14,15);
      currentTick[14]=0;
    }
  }
  if (currentPeriod[16]>0){
    currentTick[16]++;
    if (currentTick[16] >= currentPeriod[16]){
      togglePin(16,17);
      currentTick[16]=0;
    }
  }
 
}

void togglePin(byte pin, byte direction_pin) {
 
  //Switch directions if end has been reached
  if (currentPosition[pin] >= MAX_POSITION[pin]) {
    currentState[direction_pin] = HIGH;
    digitalWrite(direction_pin,HIGH);
  }
  else if (currentPosition[pin] <= 0) {
    currentState[direction_pin] = LOW;
    digitalWrite(direction_pin,LOW);
  }
 
    //Update currentPosition
  if (currentState[direction_pin] == HIGH){
    currentPosition[pin]--;
  }
  else {
    currentPosition[pin]++;
  }
 
  //Pulse the control pin
  digitalWrite(pin,currentState[pin]);
  currentState[pin] = ~currentState[pin];
}


//
//// UTILITY FUNCTIONS
//

//Not used now, but good for debugging...
void blinkLED(){
  digitalWrite(13, HIGH); // set the LED on
  delay(250);              // wait for a second
  digitalWrite(13, LOW);
}

//For a given controller pin, runs the read-head all the way back to 0
void reset(byte pin)
{
  digitalWrite(pin+1,HIGH); // Go in reverse
  for (byte s=0;s<MAX_POSITION[pin];s+=2){ //Half max because we're stepping directly (no toggle)
    digitalWrite(pin,HIGH);
    digitalWrite(pin,LOW);
    delay(5);
  }
  currentPosition[pin] = 0; // We're reset.
  digitalWrite(pin+1,LOW);
  currentPosition[pin+1] = 0; // Ready to go forward.
}

//Resets all the pins
void resetAll(){
 
  // Old one-at-a-time reset
  //for (byte p=FIRST_PIN;p<=PIN_MAX;p+=2){
  //  reset(p);
  //}
 
  // New all-at-once reset
  for (byte s=0;s<80;s++){ // For max drive's position
    for (byte p=FIRST_PIN;p<=PIN_MAX;p+=2){
      digitalWrite(p+1,HIGH); // Go in reverse
      digitalWrite(p,HIGH);
      digitalWrite(p,LOW);
    }
    delay(5);
  }
 
  for (byte p=FIRST_PIN;p<=PIN_MAX;p+=2){
    currentPosition[p] = 0; // We're reset.
    digitalWrite(p+1,LOW);
    currentState[p+1] = 0; // Ready to go forward.
  }
 
}


Et comme j'ai un nouveau pc, je vais tester sur l'ancien voir si j'ai le même problème.
Dans le gestionnaire des périphériques, le com1 est reconnu comme cela:
Code: [Select]
Emplacement: sur Intel(R) Z68 Express Chipset Family LPC Interface Controller - 1C44

Voilà voilà

skywodd

Bonjour,


Et comme j'ai un nouveau pc, je vais tester sur l'ancien voir si j'ai le même problème.
Dans le gestionnaire des périphériques, le com1 est reconnu comme cela:
Code: [Select]
Emplacement: sur Intel(R) Z68 Express Chipset Family LPC Interface Controller - 1C44

Tu est sur d'avoir choisi le bon port série ?
D'aprés le nom du port COM il s'agirait plutôt d'un port RS-232 intégré à l'ordi que d'un port série usb.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Artouste




Et comme j'ai un nouveau pc, je vais tester sur l'ancien voir si j'ai le même problème.
Dans le gestionnaire des périphériques, le com1 est reconnu comme cela:
Code: [Select]
Emplacement: sur Intel(R) Z68 Express Chipset Family LPC Interface Controller - 1C44

Voilà voilà

même réponse que skywodd
plutôt que d'aller dans le gestionnaire de périphérique
déconnecter l'arduino du PC
sous  l'IDE arduino dans le menu selectionner tools --->serial board et noter les com listés
sortir de l'IDE
connecter l'arduino au PC
relancer l'IDE
menu tools --->serial board et selectionner le com qui n'était précédemment pas listé, si la liste n'a pas bougée (pas de nouveau com)
soit il y a un probleme de driver (pas installé) soit le hard entre le usb arduino et le usb pc pose probleme.
usb arduino cuit, cable usb defectueux, usb/connecteur sur le pc  HS (la là levée de doute est simple, connecter n'importe quoi sur le connecteur du pc = clef usb ou autre "machin" usb et voir si le pc le reconnait)

Monstercrunch

#6
Jul 02, 2012, 01:43 pm Last Edit: Jul 02, 2012, 01:49 pm by Monstercrunch Reason: 1
Bah, j'ai que le choix du port com1, donc je pense pas m'être trompé... Et j'ai essayé sur mon ancien pc -> pas de soucis. Donc ça doit bien venir de celui ci, et il doit pas reconnaître ma carte (même en la débranchant, le menu "Port série" ne se grise pas).
J'ai un autre souci: je ne sais pas si ça vient du fait que le pc est neuf et que j'ai oublié d'installer un truc, mais j'ai de graves problèmes graphiques avec le logiciel arduino ! Quand je bouge ma souris ou que j'écris quelques lignes, voilà ce qui arrive:



ça doit venir du java car ça me fait pas ça dans les autres logiciels, mais je vois pas ce que j'ai fait/pas fait pour en arriver là...

[edit] Avec le gestionnaire de périphériques, j'ai essayé de mettre a jour le pilote du port com1 avec les drivers du dossier arduino mais ça me dit qu'il est déjà a jour. De plus, quand je connecte ou déconnecte la carte, il n'y a que com1 dans l'éditeur (que la carte soit branchée ou non, il y a le com1).

skywodd

C'est surement un probléme de driver alors.

Va voir dans le gestionnaire de périphérique (démarrer -> recherche -> gestion -> gestionnaire de périph...).

Dans la section Port série et parallèle -> click droit sur le port en question -> mettre à jour le driver -> choisir un fichier sur mon ordi -> C:\.....\arduino\drivers -> installer.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !


magnatik

As tu bien rien de connecter sur tes PIN Tx et Rx lors de ta compilation et de ton upoload?

Monstercrunch


skywodd

#11
Jul 04, 2012, 05:50 pm Last Edit: Jul 04, 2012, 10:18 pm by Jean-François Reason: 1

Désolé du retard, J'étais passé en mode "solde" 8)

Télécharge usbdeview : http://www.nirsoft.net/utils/usb_devices_view.html
Et envoi nous la ligne qui correspond à la carte, ça permettra de voir si il y a un probléme de drivers ou autre ;)

Si c'est pas les drivers je te donnerai une procédure à suivre pour tenter de forcer l'upload d'un programme bidon genre blink.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !


skywodd


ça ?:

Oui mais tu as du te tromper de ligne, en tout cas ce n'est pas le descriptif d'une carte arduino ;)
D'après le PID ce que tu nous as posté serait plutôt une webcam logitech ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Monstercrunch

Mince, en fait ça doit être ma souris logitech. Et je viens de voir que quand je branche ou débranche l'arduino, rien ne change sur l'interface :/ Enfin, c'est comme si il n'était pas détecté... (je n'ai que 2 périphériques reconnus par le logiciel et le nombre ne change pas quand je branche ou débranche).

Go Up