¿Cómo configurar la velocidad en baudios 57600 con CH340G?

0

Estoy trabajando en los controladores de Android (código nativo) para el chip USB a serie CH340G. Lo he probado con éxito con baudrate 115200 y Arduino Uno CH340G, pero por alguna razón no funciona con baudrate 57600 y Arduino Nano CH340G.

He consultado los controladores de Linux code :

static int ch341_set_baudrate(struct usb_device *dev,
121                               struct ch341_private *priv)
122 {
123         short a, b;
124         int r;
125         unsigned long factor;
126         short divisor;
127 
128         if (!priv->baud_rate)
129                 return -EINVAL;
130         factor = (CH341_BAUDBASE_FACTOR / priv->baud_rate);
131         divisor = CH341_BAUDBASE_DIVMAX;
132 
133         while ((factor > 0xfff0) && divisor) {
134                 factor >>= 3;
135                 divisor--;
136         }
137 
138         if (factor > 0xfff0)
139                 return -EINVAL;
140 
141         factor = 0x10000 - factor;
142         a = (factor & 0xff00) | divisor;
143         b = factor & 0xff;
144 
145         r = ch341_control_out(dev, 0x9a, 0x1312, a);
146         if (!r)
147                 r = ch341_control_out(dev, 0x9a, 0x0f2c, b);
148 
149         return r;
150 }

¿Qué pasa? ¿Hay alguna diferencia entre 340 y 341 en cuanto a la configuración de la velocidad en baudios? Se agradece cualquier sugerencia.

    
pregunta 4ntoine

1 respuesta

1

No estoy seguro de lo que está mal, pero he encontrado valores mágicos listos para la velocidad de baudios 57600 aquí: enlace

    
respondido por el 4ntoine

Lea otras preguntas en las etiquetas