Autor Tema: Hardware Serial y Software Serial  (Leído 5786 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Hardware Serial y Software Serial
« en: 27 de Octubre de 2008, 20:24:55 »
Hola compañeros del foro.

Es la primera vez que posteo en el lado oscuro de los micros ATMEL, así que espero perdonen mis preguntas tontas  :P :P :P

La primera de ellas es que al darle la velocidad al HardwareSerial, esta sigue poniendo la que tiene por defecto (9600), para ejemplo un botón:

Código: [Seleccionar]
void setup()
{
  Serial.begin(19200);
}
void loop()
{
Serial.print("Hola");
delay(100);
}

Con esta tontería de código, conecto correctamente mi micro a un chip FTDI para monitorearlo en el ordenador y veo que mi sorpresa que al monitorearlo a 19200 en el PC salen carácteres extraños, en cambio configuro el PC a 9600 sale Hola cada 100 ms que es lo que tiene que aparecer.

¿Qué está pasando aquí? :shock: :shock: :shock:

Despues me dije...vamos a simular un HW serial como hago con los pic y ccs que es muy sencillo. Bueno pues me pongo a ello con la librería libre AFSoftSerial, esta supuestamente emula muchos SS(a partir de ahora SS=Software Serial), pero a la hora de implementarlo los datos que envía el micro son erroneos, apareciendo carácteres que no tenían que aparecer.

El código es el sigiuente

Código: [Seleccionar]
#include "AFSoftSerial.h"

#define RXPIN 3
#define TXPIN 2
#define RFRXPIN 5
#define RFTXPIN 4

AFSoftSerial mySerial = AFSoftSerial(RXPIN,TXPIN);
AFSoftSerial mySerialRF = AFSoftSerial (RFRXPIN,RFTXPIN);

void setup()
{
pinMode(RXPIN, INPUT);
pinMode(TXPIN, OUTPUT);
mySerial.begin(9600);


pinMode(RFRXPIN, INPUT);
pinMode(RFTXPIN, OUTPUT);
mySerialRF.begin(19200);
}

void loop()
{
mySerial.print("Hola");
delay(100);
mySerialRF("Hola");
delay(100);
}

mySerial funciona a la perfección, pero no pasa lo mismo con mySerialRF...esto es lo que yo llamo caso fantasma porque no sabes que carajo está sucediendo.

Hay alguna forma de "forzar" la velocidad de la USART.

Muchas gracias por todo

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Hardware Serial y Software Serial
« Respuesta #1 en: 28 de Octubre de 2008, 14:16:44 »
Bueno vamos acotando los probemas  :) :) :), pero de forma que no nos ayuda en absoluto.

Por lo que hemos leido las librerias del estilo AFSoftSerial o SoftwareSerial para el manejo de USART por software están limitadas en varios aspecto muuuuyyyy importantes.

    * Sólo funcionan velocidades de hasta 9600 baudios
    * Serial.available() no funciona
    * Serial.read() esperará hasta que los datos le llegue.
    * No tiene buffer por lo que si no se leen los datos cuando lleguen mediante Serial.Read(), estos se perderán.

Vamos lo que se llama un chollo esto del SS de lo malo que es  :D :D :D

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Hardware Serial y Software Serial
« Respuesta #2 en: 28 de Octubre de 2008, 17:18:36 »
Citar
La primera de ellas es que al darle la velocidad al HardwareSerial, esta sigue poniendo la que tiene por defecto (9600), para ejemplo un botón:

Código:

void setup()
{
  Serial.begin(19200);
}
void loop()
{
Serial.print("Hola");
delay(100);
}


Con esta tontería de código, conecto correctamente mi micro a un chip FTDI para monitorearlo en el ordenador y veo que mi sorpresa que al monitorearlo a 19200 en el PC salen carácteres extraños, en cambio configuro el PC a 9600 sale Hola cada 100 ms que es lo que tiene que aparecer.

¿Qué está pasando aquí? Shocked Shocked Shocked

Respecto al primer problema, las librerias que usa el micro le ocurre exactamente igual que antes, es decir, parace que usa el serial del hardware pero en realidad está usando el serial del SW por lo que tiene por defecto 9600 siempre...

Vamos es una pena que ocurra esto con los micros ATMEL, hace tiempo que quería echarles mano pero me estoy llevando muchas desilusiones con ellos, no veo porqué se usan tanto en aplicaciones en vez de usar PICs que son más fáciles de programar y por lo que veo son más potentes...aunque hablo un poco sin fundamente sólo de la poco experiencia que poseo.

Desconectado Micro23

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 226
Re: Hardware Serial y Software Serial
« Respuesta #3 en: 28 de Octubre de 2008, 19:56:29 »
Hola c4_esp_VR, por lo que contas parese ser un problema de la libreria y no del micro
no tenes otra libreria?

Citar
por lo que veo son más potentes...aunque hablo un poco sin fundamente sólo de la poco experiencia que poseo.
Sin ofender seguí experimentando no valla a ser que se te de vuelta la torta  :mrgreen:

Saludos
El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Hardware Serial y Software Serial
« Respuesta #4 en: 29 de Octubre de 2008, 04:51:42 »
Hola Micro23:

Si tienes alguna librería que funcione sería de agradecer que compartieses dichas líneas de código con la comunidad  :mrgreen: :mrgreen: :mrgreen:

Un saludete.

Desconectado Micro23

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 226
Re: Hardware Serial y Software Serial
« Respuesta #5 en: 29 de Octubre de 2008, 12:24:35 »
Yo programo en C y uso el compilador CodeVision que es bastante intuitivo y tiene un buen Wisard con lo cual se te hace muy facil setear la velocidad y varias cosillas mas.
Saludos
El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Hardware Serial y Software Serial
« Respuesta #6 en: 29 de Octubre de 2008, 21:20:02 »
Hola Micro23:

Desde luego que por lo que he visto CodeVision hace la comunicación serial pero sólo mediante Hardware y no mediante software como hace CCS con los pics o al menos en el user manual de este no pone nada de como implementarlo via software.

Un saludete.

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: Hardware Serial y Software Serial
« Respuesta #7 en: 30 de Octubre de 2008, 04:28:58 »
Hola Micro23:

Desde luego que por lo que he visto CodeVision hace la comunicación serial pero sólo mediante Hardware y no mediante software como hace CCS con los pics o al menos en el user manual de este no pone nada de como implementarlo via software.

Un saludete.
Te equivoca amigo, si busca en la Web y en AVRFREAKS encontrara un monton de cosas hecha, mira aqui http://www.hpinfotech.ro/html/download.htm
Saludo


 

anything