Barebones Propeller not Found using Simple IDE and Prop Plug

Hey everyone, I'm fairly new at using parallax processors and have run into a problem trying to program a P8X32A-Q44 on a PCB I designed. I started out just trying to program the propeller without much else on the board except the bypass caps on the power pins and two LEDs to test my program and a 10MHz Oscillator (which I believe should not affect the chips ability to have programs downloaded onto it since it uses internal RC for the boot up) and currently no EEPROM, but every time I try to upload my program using the Prop Plug and SimpleIDE I get the same error message: ERROR: Propeller not Found on COM5.

The troubleshooting I have done so far as been testing all my traces for continuity, apply power and measuring the voltages on the VCC pins to verify they were getting 3.3V, measured the current draw of the chip (~2mA) to make sure it was drawing the correct amount of power and tested the prop plug with a propeller mini to verify it wasn't the Prop Plug. I'm fairly certain it's not my computer since all my drivers are properly installed and the Prop Plug is correctly identified in the device manager. I've also reinstalled drivers, restarted my computer, and unplugged and plugged the prop, but nothing changed.

When I do try to upload the program with Prop Plug, the blue light on the plug flashed once after it tries to load the program for a while, and then I get the error.

I also tried messing around with the reset settings, switching between DTR and RTS, but from what I've read it seems that the prop plug is designed to use DTR.

At this point I'm wondering if the Propeller went bad for some reason, maybe I accidentally shorted it or something, but I'd really like to try everything before deciding if that's the case. Does anyone have other suggestions of what to check/try? Let me know if you need any pictures of my schematic of physical board.

Comments

  • Welcome to the forum!

    Double check that old "txd rxd mislabeling" thing. In some diagrams the txd from the prop plug was labelled rxd to show that it connected to rxd. Silly way to label it and it would have been much clearer if it said "txd to Prop rxd" for instance.
    Post a schematic and photos of the actual board if you still have troubles.
  • Since you are using SimpleIDE I would assume you are coding in C. I have found it is not possible to program a propeller chip without a 5 MHZ crystal installed. The C program only works at that speed and is hard coded under the covers.

    I found this out after trying to program a Propeller without a crystal installed and found it did not work.

    The load program installs a stub program to actually do the loading of the program at a higher baud rate and since you don't have a standard clock it will fail.

    Mike

  • Try changing the board type to "spinstamp". The spinstamp.cfg file sets the clkmode to XTAL1+PLLX8, which should work with a 10MHz crystal.
  • Thanks for the fast responses!
    Dave Hein wrote: »
    Try changing the board type to "spinstamp". The spinstamp.cfg file sets the clkmode to XTAL1+PLLX8, which should work with a 10MHz crystal.

    I did make my own .cfg file with the clkmode to XTAL1+PLLX8 settings and that did not seem to change anything, but I also tried the spinstamp.cfg but get the same error.
    Double check that old "txd rxd mislabeling" thing. In some diagrams the txd from the prop plug was labelled rxd to show that it connected to rxd. Silly way to label it and it would have been much clearer if it said "txd to Prop rxd" for instance.
    Post a schematic and photos of the actual board if you still have troubles.

    I'm fairly certain I wired it correctly but I also tried switching the tcx and rx pins, but I still get the same error.

    3024 x 4032 - 2M
    540 x 562 - 99K
    692 x 717 - 179K
  • Maybe stupid question, are you sure it's on COM5?
  • JonnyMacJonnyMac Posts: 6,737
    edited 2020-06-29 - 16:09:31
    Your PropPlug connector is wired incorrectly (you're in good company, I promise) -- the RX and TX pins are swapped.

    Should be:
    PropPlug          Propeller
    VSS               Ground               
    RES\              Reset  (pin  7)
    TX                RX     (pin 31)
    RX                TX     (pin 30)
    
    After getting it wrong I created a PropPlug schematic symbol for myself so that I didn't do it again. :)
    692 x 495 - 15K
  • DaveJenson wrote: »
    Maybe stupid question, are you sure it's on COM5?

    Yes I checked it in the device manager and COM5 is what I used to program the propeller mini to verify the Prop Plug was working correctly.
  • Just an observation, Your quote says:
    I started out just trying to program the propeller without much else on the board except the bypass caps on the power pins and two LEDs to test my program and a 10MHz Oscillator (which I believe should not affect the chips ability to have programs downloaded onto it since it uses internal RC for the boot up) and currently no EEPROM, but every time I try to upload my program using the Prop Plug and SimpleIDE I get the same error message: ERROR: Propeller not Found on COM5.

    Eliminating the bypass caps could cause the PLL to fail and subsiquentley kill the clock circuit. Any program that was looking for 80 MHz would fail.

    Can you see if the Prop identifies with the Propeller Tool?

    https://www.parallax.com/downloads/propeller-tool-software-windows-spin-assembly



  • jamitchell wrote: »
    DaveJenson wrote: »
    Maybe stupid question, are you sure it's on COM5?

    Yes I checked it in the device manager and COM5 is what I used to program the propeller mini to verify the Prop Plug was working correctly.

    That just says the software see the Prop Plug and not the Prop.
  • Publison wrote: »

    Eliminating the bypass caps could cause the PLL to fail and subsiquentley kill the clock circuit. Any program that was looking for 80 MHz would fail.

    Can you see if the Prop identifies with the Propeller Tool?

    https://www.parallax.com/downloads/propeller-tool-software-windows-spin-assembly

    Eureka! So the Propeller Tool does identify it and I was able to upload a program to it, so it seems like it may have had something to do with the settings for SimpleIDE. So even through I changed the .cfg file to use the 10MHz crystal, does simpleIDE still look for 80MHz sourced from a 5MHz crystal? Why is the SimpleIDE not working with the 10MHz crystal while the Propeller Tool is?

  • jamitchell wrote: »
    Publison wrote: »

    Eliminating the bypass caps could cause the PLL to fail and subsiquentley kill the clock circuit. Any program that was looking for 80 MHz would fail.

    Can you see if the Prop identifies with the Propeller Tool?

    https://www.parallax.com/downloads/propeller-tool-software-windows-spin-assembly

    Eureka! So the Propeller Tool does identify it and I was able to upload a program to it, so it seems like it may have had something to do with the settings for SimpleIDE. So even through I changed the .cfg file to use the 10MHz crystal, does simpleIDE still look for 80MHz sourced from a 5MHz crystal? Why is the SimpleIDE not working with the 10MHz crystal while the Propeller Tool is?

    Did you try Dave's suggestion to:
    Try changing the board type to "spinstamp". The spinstamp.cfg file sets the clkmode to XTAL1+PLLX8, which should work with a 10MHz crystal.
  • Yes I tried the spintstamp and making my own .cfg file but neither work.

    I have noticed now that I get a slightly different error now:

    Opening file 'cmm/testing_configurations.elf'
    ERROR: Download failed: -1
  • BTW Welcome to the forums!
  • PublisonPublison Posts: 11,430
    edited 2020-06-29 - 18:30:11
    SimpleIDE has not had any upgrade in the last few years as far as I can see.

    I would suggest a new programming environment FlexGUI.

    http://forums.parallax.com/discussion/170730/flexgui-a-complete-programming-system-for-p2-and-p1/p1

    Supports P1/P2 SPIN/C/BASIC.
    I think it will be the environment for the future. I am not a Parallax employee, but a user.
  • PublisonPublison Posts: 11,430
    edited 2020-06-29 - 18:38:06
    Did you download the latest and greatest?

    https://www.parallax.com/downloads/simpleide-software-windows-propeller-c

    I use FlexGUI myself.
  • Publison wrote: »
    BTW Welcome to the forums!
    Thanks!
    Publison wrote: »
    Did you download the latest and greatest?

    https://www.parallax.com/downloads/simpleide-software-windows-propeller-c

    I use FlexGUI myself.

    Yes I have V1.1.2 for SimpleIDE

    Publison wrote: »
    SimpleIDE has not had any upgrade in the last few years as far as I can see.

    I would suggest a new programming environment FlexGUI.

    http://forums.parallax.com/discussion/170730/flexgui-a-complete-programming-system-for-p2-and-p1/p1

    Supports P1/P2 SPIN/C/BASIC.
    I think it will be the environment for the future. I am not a Parallax employee, but a user.

    I'll have to give it a go, thanks for suggesting it and all your help!

    One other thing I was trying was to use the internal fast RC oscillator so that it would ignore the 10MHz oscillator but it still gives me the same sort of error, but it doesn't make sense to me why this wouldn't work.

  • SimpleIDE uses propeller-load to upload binaries to the prop chip. The "-P" option for propeller-load will list Propeller Chips that it can see from USB ports. If you are able to execute propeller-load -P (probably propeller-load.exe on Windows) from a command line on Linux or macOS or Windows Command window, you'll get a list of props that it can see... It's a starting point to know if the loader can see your chip at all.

    propeller-load options:
    % propeller-load
    usage: propeller-load
             [ -b <type> ]     select target board (default is 'default:default')
             [ -p <port> ]     serial port (default is to auto-detect the port)
             [ -P ]            list serial ports with Propeller chips
             [ -Q ]            list available serial ports
             [ -I <path> ]     add a directory to the include path
             [ -D var=value ]  define a board configuration variable
             [ -e ]            write the program into EEPROM
             [ -r ]            run the program after loading
             [ -g ]            set up the program for debugging after loading
             [ -s ]            write a spin .binary file for use with the Propeller Tool
             [ -x ]            write a .pex binary file for use with the SD loader or SD cache
             [ -l ]            write a program to the sd card and use the SD loader
             [ -z ]            write a program to the sd card and use the SD cache
             [ -f ]            write a file to the SD card
             [ -t ]            enter terminal mode after running the program
             [ -t<baud> ]      enter terminal mode with a different baud rate
             [ -T ]            enter pst terminal mode after running the program
             [ -T<baud> ]      enter pst terminal mode with a different baud rate
             [ -q ]            quit on the exit sequence (0xff, 0x00, status)
             [ -v ]            verbose output
             [ -S ]            slow down the loader by adding 5 microseconds delay
             [ -S<n> ]         slow down the loader by adding <n> microseconds delay
             [ -? ]            display a usage message and exit
             <name>            elf or spin binary file to load
    
    Target board type can be either a single identifier like 'propboe' in which case the subtype
    defaults to 'default' or it can be of the form <type>:<subtype> like 'c3:ram'.
    
    Variables that can be set with -D are:
      clkfreq clkmode baudrate reset rxpin txpin tvpin
      cache-driver cache-size cache-param1 cache-param2
      sd-driver sdspi-do sdspi-clk sdspi-di sdspi-cs
      sdspi-clr sdspi-inc sdspi-start sdspi-width spdspi-addr
      sdspi-config1 sdspi-config2 eeprom-first
    
    Value expressions for -D can include:
      rcfast rcslow xinput xtal1 xtal2 xtal3 pll1x pll2x pll4x pll8x pll16x k m mhz true false
      an integer or two operands with a binary operator + - * / % & | or unary + or -
      all operators have the same precedence
    
    The -b option defaults to the value of the environment variable PROPELLER_LOAD_BOARD.
    The -p option defaults to the value of the environment variable PROPELLER_LOAD_PORT
    if it is set. If not the port will be auto-detected.
    
    The 'sd loader' loads AUTORUN.PEX from an SD card into external memory.
    It requires a board with either external RAM or ROM.
    
    The 'sd cache' arranges to run AUTORUN.PEX directly from the SD card.
    It can be used on any board with an SD card slot.
    

    dgately
Sign In or Register to comment.