Communication 9600 bauds- 16 MHz pas possible?

Bonjour,

J'essaie de faire communiquer un module GSM avec la carte arduino duemilanove, apparemment j'ai un problème de synchronisation. J'utilise l'atmega328 fourni d'origine et je l'ai laissé à sa fréquence d'origine, c'est-à-dire 16 mega. Voici ce que l'IDE m'affiche à la compilation

avrdude : stk500_getsync() : not in sync: resp=0x00 avrdude : stk500_disable : protocol error, expect 0x14, resp0x51

Je suppose bien que le module et le µC ne sont pas synchronisés, mais comment faire pour qu'ils soient synchronisés? Dois-je utiliser le stk500 pour changer le µC de fréquence?

Merci d'avance

Salut sur quel port uart as tu connecté ton module GSM à l'arduino ?

n'oublie pas que l'IDE arduino utilise l'USB en port com.

@+

Par les broches 0 ( RX ) et 1 (TX). Oui je sais que ça passe par l'usb, j'ai mis un max232 pour convertir les signaux TTL en RS-232

Par les broches 0 ( RX ) et 1 (TX). Oui je sais que ça passe par l'usb, j'ai mis un max232 pour convertir les signaux TTL en RS-232

Ton module GSM doit être en conflit avec l'USB ce qui doit poser le problème de synchro lorsque l'IDE essaye de communiquer avec l'arduino

darkduino:
Par les broches 0 ( RX ) et 1 (TX).
Oui je sais que ça passe par l’usb, j’ai mis un max232 pour convertir les signaux TTL en RS-232

mais ils sont d’un aplomb !!

le mot conflit n’a aucun sens pour toi ???
circuit A (ex usb) veux mettre un 0 le circuit B (ex max232) veux mettre à 1 le tout sur RX de l’arduino par ex.

quand j’avance tu recule comment veux tu que je …

Je ne te suis pas du tout , que veux-tu dire par aplomb? Logiquement à 9600 bauds c'est stable grâce au quartz, je suis sûr de mon soft, c'est avec ma connectique qu'il y a un problème

Ce qu'on te dit c'est que l'USB utilise aussi les broches 0 et 1 et donc tu peux avoir un conflit. Le TX qui vient de l'USB est connecté sur le TX qui vient de ton GSM. Cela dit il y a généralement une résistance en série entre le TX de l'USB et l'entrée du processeur. Mais cela dépend de la carte Arduino que tu utilises. Tu peux utiliser d'autres entrées/sorties avec cette librairie http://arduino.cc/en/Reference/SoftwareSerial

Enfin la pièce est tombée, j'y ai effectivement pensé mais je me suis dit que ça pouvait passer. J'utilise la carte duemilanove, je vais aller regarder si ça pose problème ou pas d'utiliser les broches 0 et 1,

merci

J'ai en partie résolu mon problème, j'ai utilisé la pin 10 pour tx et 11 pour rx. Donc j'utilise la bibliothèque SoftwareSerial.h, mais apparement le Serial.available() ne fonctionne pas avec mySerial.available(). Je m'explique, quand j'utilise les ports rx et tx " normaux" ( rx=0 et tx=1), j'utilise la formule suivante pour savoir si un caractère a été reçu :

if(Serial.available()>0){// si des données entrantes sont présentes // lit le 1er octet arrivé incomingByte = Serial.read(); }

mais lorsque j'utilise mes " propres" tx et rx, on ne peut pas faire mySerial.available(), qu'est-ce que je peux faire à la place?

Merci d'avance

Tout est expliqué ici http://arduino.cc/en/Reference/SoftwareSerial * Only speeds up to 9600 baud work * Serial.available() doesn't work * Serial.read() will wait until data arrives * Only data received while Serial.read() is being called will be received. Data received at other times will be lost, since the chip is not "listening".

Ce qui est assez limitant.

Si tu veux pouvoir utiliser les broches 0 et 1, il faudrait prévoir un mécanisme pour déconnecter ton interface vers le GSM lorsque tu veux télécharger. A la limite tu peux faire la même chose que ce qui est fait sur la carte arduino avec l'interface USB à savoir mettre une résistance en série entre les RX/TX venant de ton max232 et les entrées du processeur. Sur la Duemilanove il y a une 1K en série.

J'ai déjà été voir tout ça et j'ai pris le choix d'utiliser les broches 10 ET 11 pour tx et rx. Envoyer des données ça va mais c'est en recevoir que je n'arrive pas à faire. J'avais d'abord utilisé la bibliothèque softwareserial maintenant j'utilsie newsoftwareserial, que ce soit l'un ou l'autre pas moyen de lire ce que je reçois sur le port série