PDA

View Full Version : USB Connection Issue



mynet43
11-16-2010, 01:09 AM
I'm using a Propeller board with the FT232RL USB interface. This works fine when connected to a PC running Windows.

I'm talking to it running an exe file, compiled by RobotBasic, on the PC. This also works fine and allows serial I/O at 115200 baud.

When I try to run multiple instances of the PC program, with each Propeller board connected to a different USB port on the PC, I have a problem.

When I do this, the first one I launch finds a USB port and works. The second one is unable to locate a USB port.

Does anyone know why this would occur?

Is the Propeller with the FT232RL locked into a single USB ID? Or is it something else.

Any solution would be really appreciated.

Thank you for your help.

Jim

Rayman
11-16-2010, 03:50 PM
Which Prop board is it?

I think it should work. Every FTDI chip has an individual ID code and should show up as a different serial port. But, it is possible that somebody programmed the FTDI chips with the same ID code. That might be a problem...

mynet43
11-16-2010, 05:09 PM
Good answer. I wasn't aware that the FTDI chips have individual ID's. Mine are new, from a supplier, so I don't think anyone has messed with them. By the way, this is my own prop board.

I also got a good answer back from the RB forum. I think I'll be able to do it. I have an answer from them, showing how to connect three PC programs to three propeller boards, all running at the same time.

Let me know if anyone wants to know how to do it.

Thanks!

Jim

blittled
11-16-2010, 05:19 PM
Jim,

I use RobotBasic so I would be interested in knowing how multiple boards could be connected. Thanks!

mynet43
11-16-2010, 05:43 PM
hi blittled,

Here's the response posted by Samuel, the author of RB:


I think the fault is on your PC or setup. RB can run as many instances of the IDE as you want

However two instances cannot use the same comm port.... a comm port is an UN-SHAREABLE resource.
So as long as each instance of the IDEs is using a different port then you can have as many Propellers
as you want.

I tried this just to make sure I am not wrong; it has been known to happen on very rare occasions }:-))

It worked perfectly well with THREE IDEs running the program below and THREE Propellers
uploaded with the program below....I used two Propeller Professional Development boards (PPDB)
and one Propeller Demo Board (PDB)

Compile the Spin program to EEPROM using F11....this is needed since using RB on the same
port as the programming port will cause a reset due to the DTR signal....so use F11 to compile
the program below to each board in turn.... the Propeller Tool will use the first Propeller it finds
so you need to not have the other connected while you program the one....program them one
at a time then connect both simultaneously and then run open two (or more) instances of RB
and load the program below and run it...you will be able to see the two instances running simultaneously

Oh... I forgot.... set the value of n to 1 for the first instance 2 for the next etc.

Here are the programs:




'========================
'Spin program works on the Demo Board
'compile into the EEPROM using F11
CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
D_TX = 30
D_RX = 31
D_BAUD = 115200

OBJ
D : "FullDuplexSerial" 'serial driver

PUB Main
dirA[23..16]~~
D.Start(D_RX,D_TX,0,D_BAUD) 'start the serial driver
repeat 5
outA[23..16] := %10101010
waitcnt(clkfreq/4+cnt)
outA[23..16] := !(%10101010)
waitcnt(clkfreq/4+cnt)
outA[23..16]~
repeat
OutA[23..20] := InA[7..5] 'output = input
D.Tx(InA[7..5]) 'transmit the value to RB

'================================================= ========

//-----------------RB Program
n=1 //change this on the other instance to 2
serports s
Port = tonumber(extract(s,crlf(),n),0)
print Port
setcommport Port,br115200
while true
repeat
checkserbuffer x
until x
serin s
print getstrbyte(s,length(s))
wend


Let me know if you have any comments or questions.

Jim