libftdi Archives

Subject: Re: ftdi_convert_baudrate bug ?

From: Thomas Jarosch <thomas.jarosch@xxxxxxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Cc: Pierre Molinaro <pcmolinaro@xxxxxxx>
Date: Fri, 16 May 2014 17:19:47 +0200
Hi Pierre,

On Sunday, 4. May 2014 18:51:45 Pierre Molinaro wrote:
> I use libftdi 1-1.1 (last release) with interface B of an Olimex
> ARM-USB-OCD JTAG. All is working fine, but change baud rate.
> ftdi_set_baudrate () does not fail, it returns 0, but has no effect on
> baud rate.
> 
> I have found this message in libftdi archives :
>       
> http://developer.intra2net.com/mailarchive/html/libftdi/2013/msg00207.htm
> l
> 
> It suggested the following change in ftdi_convert_baudrate () function:
> ------
> if (ftdi->type == TYPE_2232H ||
>         ftdi->type == TYPE_4232H ||
>         ftdi->type == TYPE_232H )
>     {
>         *index = (unsigned short)(encoded_divisor >> 8);
>     }
>     else
>     {
>         *index = (unsigned short)(encoded_divisor >> 16);
>     }
>     *index &= 0xFF00;
>     *index |= ftdi->index;

hmm, I prefer not touching this in a too generic way
since I don't have AM type chips around to test it.

What chip is used on your ARM-USB-OCD JTAG interface? FT2232C?
May be we can narrow down what's happening.

Does this code change work for you:

$ git diff
diff --git a/src/ftdi.c b/src/ftdi.c
index b6caf6c..3e2ebfd 100644
--- a/src/ftdi.c
+++ b/src/ftdi.c
@@ -1200,7 +1200,7 @@ static int ftdi_convert_baudrate(int baudrate, struct 
ftdi_context *ftdi,
     }
     // Split into "value" and "index" values
     *value = (unsigned short)(encoded_divisor & 0xFFFF);
-    if (ftdi->type == TYPE_2232H || ftdi->type == TYPE_4232H || ftdi->type == 
TYPE_232H)
+    if (ftdi->type == TYPE_2232C || ftdi->type == TYPE_2232H || ftdi->type == 
TYPE_4232H || ftdi->type == TYPE_232H)
     {
         *index = (unsigned short)(encoded_divisor >> 8);
         *index &= 0xFF00;


?

Cheers,
Thomas


--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx   

Current Thread