Shop OBEX P1 Docs P2 Docs Learn Events
PPDB Troubles with pin30 / 31 to TX and RX — Parallax Forums

PPDB Troubles with pin30 / 31 to TX and RX

nomadnomad Posts: 276
edited 2010-04-15 09:51 in Propeller 1
hi,
today i become a new PPDBoard
now want a serialConnection to a linux-laptop
via the RS232 port of the board

now my problem:

1) board are on (blue led on)
2) testing: - no connections to rx/tx-pin
- F7: Propeller chip version 1 found on
COM 4

3) the normal connection to the RS232-Port
is:
Rx = chipPin31
Tx = chipPin30
when i make this and press F7:
--> No Propeller chip found on any serialPort
Scanned COM4
Scanned COM1
Scanned COM2
Unable to open COM11

4) if i connected only
chipPin30 with TX
F7: Propeller chip version 1 found on COM4

then i have download the newest FTDI USB-Driver
Version 2-0.4.16 fron parallax
the same fault.

with a multimeter p30 / p31 == 3.3Volt

now i dont know what i should do.
its urgent for me that i can handle the RS232-Port
last year with a another PPDB no troubles with this
port

Any help, hints and suggestions would be great.
please help me

excuse my i bad english.
regards
nomad

here my little testprogram in spin

{
   SERIAL_10.spin
   --------------
   dd. 14. April 2010 16.00:00 GMT 2010

   For         : SerialControl from Linux to the NewPropellerProfessionalDevelopmentBoard
                 PPDB
    
**************************************************************************
NOTES:
   - SoftWare-Development with PPDB:
     - Serial Communications with the LinuxSystem
       - serialReceive BigNumbers from linuxsystem
       - serialSend ACK
       
 TESTING RS232
1) without connection to RX / TX -> comport found at 4
2) p31 connected with RX         -> no chip found
                                    unable to open comport11
3) only p30 connected with TX    -> OK
  
4) p30 -> TX
   p31 -> RX
   unable to open comport11
                                      
   p30 TX = comport 7 ok
   p31 RX = comport 7 NOK
   
5) Install USBDriverInstallerVersion-2.0.4.16
2) Test ComPort found on ComPort4 (no connections to rs232 (rx,tx))
3) connections  Rx = p31            '                 
                       Tx = p30
   testing NOK
   no con = ok
   rx = 31 NOK
   tx = 30 OK           
**************************************************************************
}
CON
  _clkmode = xtal1 + pll16x
  _xinfreq = 5_000_000

  Rx   = 31            '                 
  Tx   = 30            '                                  
  baud = 9600

  ' nicht benutzt direktes Set
  LED_1 = 7 ' extern LED14            
  LED_2 = 8 ' TO extern LED15
                                 '
    
OBJ                                              
   Serial : "Extended_FDSerial"
                  
VAR
  LONG myInput     ' SerialInput   
  
{*************************************************************************}
PUB Main
      
   Serial.Start(Rx,Tx,0,baud)   

   ' debuging Help Leds
   DIRA[noparse][[/noparse]7]~~   ' set chipPin7 to output to extern blueLed_1 ex intern LED 14
   DIRA[noparse][[/noparse]8]~~   ' set chipPin8 to output to extern blueLed_2 ex intern LED 15

   repeat
      outa[noparse][[/noparse]7]~~   'set chipPin7 Led1 HIGH
     
      myInput := Serial.rxDec       ' receive bigNumbers as ServoCommands
      waitcnt(clkfreq / 10 + cnt)

      ' EXIT PROGRAMM AND CENTER ALL SERVOS        
      IF myInput == 1
         QUIT

      IF myInput > 1
         Serial.str(string("5"))
         waitcnt(clkfreq / 10 + cnt)     
        
                
      outa[noparse][[/noparse]7]~                    ' set chipPin7 blueLed 1 LOW 

{*************************************************************************}


Comments

  • mctriviamctrivia Posts: 3,772
    edited 2010-04-14 15:02
    Are you trying to program the device? If so you need to connect the reset pin.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    stock.gif
  • nomadnomad Posts: 276
    edited 2010-04-14 15:20
    hi,
    mctrivia,
    no can't programming the device with this programm.

    excuse: what you mean with
    "Are you trying to program the device? If so you need to connect the reset pin."

    ->you mean right from pin31 BOEn-pin RESn-pin??

    how i can connected this pin ???

    in the meantime i have tested the usb-driver with a
    - propeller-Demo Board
    - propellerRobotControlBoard
    F7 is OK

    thanks for your answer
    regards nomad
  • hover1hover1 Posts: 1,929
    edited 2010-04-14 16:02
    I don't think you can use Pins 30/31 as they are always connected to the USB-to-Serial chip.

    For RS-232 you would not use the FTDI USB-Driver.
    763 x 645 - 171K
  • hover1hover1 Posts: 1,929
    edited 2010-04-14 16:04
    Is this with the USB cable plugged in?
    nomad said...


    1) board are on (blue led on)
    2) testing: - no connections to rx/tx-pin
    - F7: Propeller chip version 1 found on
    COM 4
  • nomadnomad Posts: 276
    edited 2010-04-15 04:04
    hi hover1,
    thanks for your answer

    the PPDB have an extra RS232-Port (female)
    with a MAX3232E chip.

    with following ports:

    RTS (in)
    TX (out)
    CTS (out)
    RX (in)

    i have additional a older PPDBoard buy into 2009
    with this board the RS232-stuff is ok
    and no Problem with the detection of
    the Board

    USB-Connection to winXP with Parallax-IDE
    and a serialConnection to my LinuxLaptop
    chipPin 30 to TX (out)
    chipPin 31 to RX (in)

    have parallax changing this stuff with a newer
    Revision of the Board???

    you wrote "i can't use the Pins 30/32"
    "For RS-232 you would not use the FTDI-USB-DRIVER"

    I handle the RS232-communications with
    "Extended_FDSerial - object" this have nothing to do
    with usb.

    what should i do???

    On the Parallax-Staff please give me some hints

    Regards nomad
  • AribaAriba Posts: 2,690
    edited 2010-04-15 04:31
    It may be that Parallax has added the serial resistors on th Tx and Rx line to the FT232 to protect the Propeller
    and the FT232 from prgramming errors.
    And that was not a bad decision, if I look what you try to do.

    You connect the Tx output of the FT232 and Tx output of the MAX3232 to the same pin on the Propeller (P31).
    The MAX3232 has prority because of the 150 Ohm resistor, so the PC can not find the Propeller with F7.
    Either you use another Pin for receiving from the RS232 port, or you add a Diode, like I show in the attached
    schematic.

    Andy
    500 x 322 - 9K
  • nomadnomad Posts: 276
    edited 2010-04-15 06:44
    hi
    thanks ariba for the hints,

    is this right
    original connections
    P31 to RX (incoming)
    P30 to TX (outcoming)

    if i understand you:
    new:
    P30 to TX (outcoming)
    P29 to RX (incomming)

    is this right???

    but the next question is:

    i make the serialStuff with: Extended_FDSerial.spin (object)
    and in this code is :

    "Serial.Start(31,30,0, 9600)"

    hardcoded,
    can i change this p31 to p29 ?

    please help me.
    thanks
    regards nomad
  • AribaAriba Posts: 2,690
    edited 2010-04-15 09:22
    OK, from the PPDB schematic, I see the RX/TX labels of the RS232 connector are swapped. IMHO a bit weird because the RTS, CTS are not swapped.

    But that means for you:
    P30 to TX (MAX input, Propeller output)
    P27 to RX (MAX output, Propeller input)

    don't use P28 and P29, they are used for the EEPROM.

    For sure you can change the pin numbers of the serial.Start methode (thats why they are in the parameters):
    Serial.Start(27,30,0, 9600)

    If you have enough free pins, it's better to use also another pin for the TX line, perhaps 26 instead of 30:
    Serial.Start(27,26,0, 9600)
    So the USB port is free for debuging.

    Andy
  • nomadnomad Posts: 276
    edited 2010-04-15 09:32
    hi ariba,
    thanks for the good answer:

    in the meantime on switzerland its now 12.00 (time for lunch)
    i now testing:

    Rx = 29 ''31 '
    Tx = 30 '
    baud = 9600

    and its ok
    F7 == detect propeller on com4
    program is download ok
    serial-communications with my laptop
    aka
    linux send 12345
    prop sendback 12345
    should be ok
    only linux makes some hicks but this is not the problem

    now i test your suggestions:
    P30 to TX (MAX input, Propeller output)
    P27 to RX (MAX output, Propeller input)

    if the test ok -> i call back
  • nomadnomad Posts: 276
    edited 2010-04-15 09:51
    hi ariba
    now i have tested the stuff as follows:
    Rx = 27 ''29 ''31 '
    Tx = 30 '
    baud = 9600

    the whole stuff are running
    if i send from linux <1234>
    prop sends: <1234>

    i think the problem is solved ???

    what you are thinking ?
    thanks for verry helpful answers: you are great
    tongue.gif

    regards nomad

    the prop-code:
    {
      Serial10.spin
    **************************************************************************************
    }
    **************************************************************************************
    }
    CON
      _clkmode = xtal1 + pll16x
      _xinfreq = 5_000_000
    
      Rx   = 27    ''29    ''31            '                 
      Tx   = 30            '                                  
      baud = 9600
    
      ' nicht benutzt direktes Set
      LED_1 = 7 ' extern LED14            
      LED_2 = 8 ' TO extern LED15
                                      '             
        
    OBJ                                              
       Serial : "Extended_FDSerial"
                      
    VAR
      LONG myInput     ' SerialInput
      LONG myOutput     ' SerialOutput
      
    {******************************************************************************************}
    PUB Main
    
       myOutput := 12345
             
       Serial.Start(Rx,Tx,0,baud)   
    
       ' debuging Help Leds
       DIRA[noparse][[/noparse]7]~~   ' set chipPin7 to output to extern blueLed_1 ex intern LED 14
       DIRA[noparse][[/noparse]8]~~   ' set chipPin8 to output to extern blueLed_2 ex intern LED 15
       repeat
          outa[noparse][[/noparse]7]~~   'set chipPin7 Led1 HIGH
                          
          myInput := Serial.rxDec       ' receive bigNumbers as ServoCommands
          waitcnt(clkfreq / 10 + cnt)
                        
          ' EXIT PROGRAMM AND CENTER ALL SERVOS        
      '    IF myInput == 1
      '       QUIT
                             
       '   IF myInput == 2
       '      Serial.str(string("5"))
             'Serial.dec(myInput)     
        '     waitcnt(clkfreq / 10 + cnt)
    
         ' IF myInput > 3
         
         Serial.dec(myInput)     
         waitcnt(clkfreq / 10 + cnt)  
            
                    
          outa[noparse][[/noparse]7]~                    ' set chipPin7 blueLed 1 LOW 
    {***********
    
    
Sign In or Register to comment.