On Mon, Feb 7, 2011 at 6:12 PM, Michael Plante <michael.pla...@gmail.com>wrote:

> Rodrigo Rosa wrote:
> >> // write
> >> numBytesToSend = 0;
> >> output_buff[numBytesToSend++]=0x6E;
> >> output_buff[numBytesToSend++]=0x01;
> >> output_buff[numBytesToSend++]=0x80;
> >> output_buff[numBytesToSend++]=0x6E;
> >> output_buff[numBytesToSend++]=0x01;
> >> output_buff[numBytesToSend++]=0x00;
> >> numBytesSent = ftdi_write_data(&ftdic, output_buff, numBytesToSend);
>
> I am not as sure on the 0x6E as I could have been on the 0x1A and 0x2E.
> You'll note the docs say that 0x1A's length is actually length-1, and
> measured in bits, rather than bytes.  Ditto 0x2E.   But it's not clear on
> 0x6E what "length" represents in the docs.  Did you ever go look at AN108?
> You really need to read that before you go any further; MPSSE is not as
> straightforward on the host side as some other modes are.
>

I've been taking the commands (0x6E, etc) from AN108.


>
> Anyway, you'll need to experiment some.  And synchronize by intentionally
> sending bad commands periodically (FTCSPI does this, and so does my code).
> I will sometimes send 0xAA and expect 0xFA,0xAA, and then the same with
> 0xAB.  Then you just read until you can't read anymore, and make sure you
> find where it told you "bad command".  In any case, try calling
> ftdi_read_data() and ask for more data than you expect back, at least until
> you get the hang of what to ACTUALLY expect.
>
>
i was doing the sync, but not correctly. I was only reading once. Now i
write 0xAA and read a lot, check through what was read to see if i find what
i wanted. if not i write again and repeat. seems to work ok.


>
> >> returns: input_buff = [0xcc, 0x33, 0x0, 0x0, 0x0 ...]
>
> After how many iterations through the loop?  Did the read ever time out,
> maybe just sometimes?  Have you checked that there isn't more data
> available?  Do you know that it's not returning what it should?  Why is it
> in a loop, and how do you know there's not more data waiting to be read at
> the end of each loop (or less)?
>
>
i put in a loop to make the scope work easier, i was just testing if the
code had any effect on the TDI pin.


>
> >> i don't understand what this means. is there any doc regarding return
> codes?
>
> input_buff cannot properly be called a return code, so maybe that's why
> you're having trouble finding it?  However many bytes numBytesRead is
> (which
> you STILL haven't told me) is how many bytes of input_buff was read out of
> the FTDI's FIFO, which in turn come off the wire.  But how that corresponds
> to the number of bits is something I'm not as familiar with because I
> always
> ran MPSSE such that it counted bytes rather than bits (it was still serial,
> but only granular to the nearest 8 bits).
>
>
ok, my bad, i'm just getting started with this.
the code above returns numBytesRead == 3, with all the reading set to 0xFF
(the other values of input_buff are not modified during reading).
from AN108 describing 0x6E "The TDO/DI pin is sampled for the duration of
TMS and a byte containing the data is passed back at the end of TMS
clocking"
shouldn't i get at least one reading different from 0xFF?
the scope shows that TDI goes 0 1 0

i haven't found a smart way to do this, i use an entire byte just to clock
out one bit on TDI. I do this by running one clock on TMS (setting clock to
zero clocks out 1, as you marked) with the value I wanted on TDI. this way I
think i can manage to drag the JTAG state machine around. not very happy,
but may work.



>
> >> i hooked up a scope to TDI and i'm getting what i expected, sort of...
> it
> a square wave with 25% duty cycle, i expected 50%...
>
> You need to measure period, too.  And also say how you configured the
> divisor.
>
>
i'm working at 20kHz, verified that.

i wanted to send the IDCODE instruction to the JTAG port of my device, in
order the verify that the connection is up and working... i think i got the
"send and execute JTAG instruction" part, but I still haven't found out how
to read a response.

thanks again, i truly appreciate your help.

Regards,
-- 
Rodrigo.


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

Reply via email to