Go Down

Topic: modificare impostazione comunicazione seriale cambiando il clock (Read 2 times) previous topic - next topic

leo72


Che supporta i 115kbps è un conto, che poi funzioni sul serio con un flusso dati a quella velocità è un altro paio di maniche.

Io non l'ho provata a 115200, ma se è come dici tu siamo allora di fronte ad un altro caso di documentazione da rivedere?  :smiley-sweat:

astrobeed


La SoftwareSerial integrata nell'IDE 1.0.x supporta velocità fino a 115200 bps:
http://arduino.cc/en/Reference/SoftwareSerial


Che supporta i 115kbps è un conto, che poi funzioni sul serio con un flusso dati a quella velocità è un altro paio di maniche.
La seriale software va bene solo per velocità molto basse, max 19200 bps, e con flussi dati molto leggeri, p.e. può andare bene per acquisire le sentenze NMEA di un GPS, tipicamente lavorano a 4800-9600 bps e trasmettono i dati solo una volta al secondo.

leo72

La SoftwareSerial integrata nell'IDE 1.0.x supporta velocità fino a 115200 bps:
http://arduino.cc/en/Reference/SoftwareSerial

Prova ad usare questa al posto della AltSoftSerial

aureliusss

Avevo penasato a questa soluzione ma la altsoftserial funziona affidabilmente fino ai 57600, mentre a quanto leggo dalla guida, la softserial funziona fino  a 9600

leo72

La SRAM di un Atmega328 è di 2048 byte (2 kB), lì dentro ci va tutto quello che serve al chip per eseguire il tuo programma, dallo stack alle variabili ecc..
Se metti 2 buffer da 256 byte l'uno hai già impiegato 512 byte. A questi devi aggiungerci i buffer della seriale software (che non so quanto siano, indaga guardando i codici della lib che usi, questa AltSoftSerial non la conosco).

Per provare ad ovviare al problema della saturazione dei buffer, prova a svuotarlo più velocemente di quanto si riempie.
Tu, da quel che ho capito, hai questa configurazione:
PC  <--57600 sw ser --> Arduino  <-- 57600 hw ser --> sensore

Se è così, prova a mettere la sw seriale a 115200, per vedere se riesci a star dietro ai dati in arrivo.

Go Up