Parallax Bs2P40 (SX48BD/TQ) Spontaneous Reboot

2»

Comments

  • Hi DgitialBob - thanks for the advice.

    The EEPROM appears to be correct 24FC 128i, and the CPU appears to be correct Parallax SX48 BD/TQ-G 0947. This part of the circuitry has not changed from my last fully functional prototype albeit I have moved fully to SMT parts. My guess is that i have an open somewhere on a surface mount component - the company I used assembled these by hand so likely used a heat gun and maybe one of the components did not reflow and i have a cold solder joint. I am hoping to understand what doe the basic stamp software need to be able to "see" the processor? I was hoping to understand the boot sequence, i.e., hold Pin 1 (RESET) low for 1 second, some kind of response on the CPU TX side to say "I'm here" and then attempt to download the code into the EEPROM. I guess i need to make sure the oscillator is connected and performing properly - no clock means a dead CPU for sure!

    Any other thoughts are always appreciated. I will triple check the parts too :)

    Thanks,
    chris.

  • It would be a good idea to check the reflow solder. You could have a pin not making contact or shorted. If it where my project I would take the BS2 off and solder it to a Schmartboard and test it like that to make sure the chip is good. It's trial and error going pin by pin. Did you try the identify F6 on the BS2 tokenizer and see if you get echoe and loop back?
    In my case I new the BS2 IC was good because it worked in another parallax OEM board. But it didn't work on the 2nd board that's when I tested it on the breadboard.
  • Hi DigitalBob,
    thanks for the quick response. I will try and beep out the leg of the pins to another point on the board. Doing it this way provides continuity through the solder joint. It is time consuming by it will accomplish the task of good solder joints...hopefully. I know that pressure, board torquing and other factors can break a weak joint too :(

    I don't have the tools to remove a SMT part but i do have a third CPU and a 48 pin breakout board (SMT to PTH) which i may use to test the CPU if it comes to that. I'll go with the most obvious scenarios - no clock, or bad solder joints....hopefully I find something :) Wish me luck! I hope it is not a defective chip(s) as this will be very painful...

    Chris.
  • Hi DigitalBob,

    the tokenizer F6 works ok when connected to my new board, loopback and echo are ok. I put an oscilloscope on the 20MHz oscillator and both sides (pins 1 and 3) shows a good quality waveform at approx. 20MHz, pin 2 is grounded properly - low band kHz noise and 0 VDC. Pins are connected properly into XI and XO.

    External reset is a solid 5VDC so it is not apparently resetting the chip.

    I will recheck the chip orientation and values as much as possible. I will send the boards back for a reflow to see if that helps.

    I'll keep at it!
    Thanks for the advice,
    Chris.
  • The F6 should show the stamp is present on the working com port. In my case it was the eprom oounce I disconnected the data lines it worked. F6 showed the stamp present. In your case it's anyone's guess I don't know who assembled the board etc. I use the parallax schematic with 3904, 3906 transistors etc. for a working system.
    You can disconnect the brownout detector just check to see if the MCLR line is pulled high to +5v. If you have a bare board check all of connections that they all go to the correct pin and no connections are missing. Look at your PCB design on your PC and check the connections.
    It's going to be a missing line, a connection in the wrong place or a bad IC caused by the bad connections.
    I was using a BS2 dip40 . It's a good idea to reference the Microchip data sheet PIC16cxx or fxx whatever IC it is.
  • Hi Digital Bob,
    i also used the schematic details provided by Parallax for the communication portion of the B2SP40 OEM IC. I will try to remove some of the EEPROM TX lines and see if i can get it to detect the CPU. The MCLR is not a pin i believe i have access to - only 48 pins on my module. I do have a RESET pin (Pin 1) and it is pulled high to +5VDC through some external logic. I will connect to it and look for a negative edge trigger, but i am fairly certain it is not involved from this logic.

    I spoke with a Parallax tech last night and they asked me to see if the ATN line goes high momentarily, resulting in a transistor activating and subsequently pulling BS2P Reset Pin 1 low for a few moments at the beginning of the boot cycle....this is needed to wake up the processor (this is connected to the same line that is connected to the +5VDC above) meaning that it needs to override the +5VDC momentarily....same circuitry as before so i don't think it is an issue...will check it out tomorrow after work.

    Also, I built a previous prototype board with just the "essential" parts and it detected and loaded the program just fine on first attempt - picture attached.

    Have a nice evening - more fun tomorrow!
    Chris.
    2448 x 3264 - 2M
  • Hi Kwinn,
    thanks for the advice. Yes, the oscillator looks great - a very nice 20 MHz sine wave. I checked that signals go where they are supposed to go, but not to the contrary...I'll ask my layout person for a list to check - this is a good idea! The board quality looks good, but you just never know....having two boards with identical issues is suspicious...maybe a bad lot or a design issues, but as i mentioned to Digital Bob, i did build up a basic board last night (previous prototype) with only minimal components to load the CPU and it loaded immediately - no change in circuitry between this prototype and the new one.

    I am going to ask the assembly house to build me two of my new prototypes with the same "minimal" components to load the board and will test - likely get that all back late next week if i'm lucky - need to ship stuff to them and also get it back. I'm hoping that when it comes back and i test, it works, but if it doesn't, it could mean that it either was a bad component(s) or an issue with design..but design hasn't really changed - this revision was to move to 100% SMT...so really only a packaging modification except for my earlier issue, i added a bunch of decoupling caps :)

    Thanks much for the input!
    Chris.
  • SMT is great its small compact and the parts are cheaper. But when it comes to troubleshooting it can be more time consuming. With through hole I use dip sockets so if something goes wrong I can just pop out the IC and test it.
    So you can go bare bones just run the BS2 with the crystal power up the Vdd lines and ground the pins that should be grounded. MCLR high and connect the Tx and Rx. Try F6. You can hookup your scope probes to Tx and Rx and see if you have pulses when you hit F6.
    I would just unsolder the bs2 and put it on a schmartboard test it. Or if you know all of the artwork on the board is good you could flux the crap out of the components. And just hit it with the hot air reflow work station.
    You have too many unknowns like the assembler. Sounds like your not too confident in the people that populated and soldered the board.
  • Hi Digital Bob,
    I have taken your advice here and asked the assembly house to use automated SMT equipment (not hand placed) and build two of my new prototype boards with only essential components to detect and load S/W and to procure the main components themselves - maybe lot code issues of my purchases? This is essentially what i believe you are suggesting when you speak of the breakout board for the CPU. This same concept was proven to work on my previous prototype board, but using the same 4 SMT components (BS2P48 OEM, 24FC128i EEPROM, Dual NPN Pre-biased transistor Pack, Single PNP Pre-biased Transistor Pack) so it should work here as well.

    Funny thing, when i went to test my previous prototype of the fully operational board, i connected the RS-232 serial cable and loaded the board a few times. Of course it detected the CPU, loaded all the code segments, etc. I put my Fluke 289 DVM on Min/Max setting for DC and monitored the CPU reset line (pin 1). I was expecting it to drop below 2.5VDC for a moment but it did not drop? I tested this multiple times. It stayed at around 4.6 min to 4.99 Max. but the board loaded the software and booted perfectly. My guess is that the pulse was such a short duration that the DVM did not even notice it. I may have to put the oscilloscope on negative edge trigger to pick this up.

    Thanks again Kwinn and DigitalBob for the help!
    Chris.

    PS. sharing the schematic from Parallax and my board (identical) for this segment
    1232 x 877 - 205K
    1310 x 756 - 195K
  • Hi DigitalBob and Kwinn,
    today is a good day. I have identified the problem which has allowed for the BS2P40 to be recognized and the software to be loaded. The issue was related to the RESET signal. My design has a separate IC ADM706T IC which provides a watch dog and brownout function. Both functions ultimately tie back to the BS2P40 RESET Pin 1. In normal circumstances, they remain at +5VDC. It seems that when the BS2P40 initially powers on, it generates a brief 16ms pulse (+5VDC to 0VDC to +5VDC) which is sent to the RESET pin and boots the CPU. The ADM706T IC prevented the pulse from being observed, holding the RESET pin at +5VDC...it did not drop as expected - possibly as the IC and other logic were able to sync the momentary drop to 0VDC.

    I am attaching a few screen grabs in case you are interested. The first shows Pin 4 (DTR) of the RS232 cable which shows the pulse varying between +5.5 to -5.5 VDC (BLUE) and spans about 16 ms, This in turn triggers the capacitors to charge and discharge into the base of a transistor (YELLOW). The transistor turns on and pulls the +5VDC RESET signal to 0 VDC momentarily.

    The last photo shows the RESET line (finally dropping) as the transistor turns on and connects the RESET line to GND.

    Thank-you both for your advice and help! I have said it before - I am very lucky to have folks like yourself on this forum to guide us.

    Sincerely,
    Chris.

    PS. now it time to figure out why the IC did not work as in my previous revision.
    772 x 623 - 251K
    800 x 480 - 67K
    800 x 480 - 92K
  • That's great glad you figured it out. I did suggest that you disconnect the brown out detector In one of my prevoius post. But the the most important thing is that the board works now.
  • Good morning - just a few comments to add....In my above post, the the first oscilloscope screen grab: the Yellow shows the DTR pulse (-5 to +5) and the Blue decaying traces reflect the capacitor charge/discharge (ATN). I had the colors backwards.

    As well, in my previous prototype i was using the MAXIM 706ESA supervisor IC and in my latest prototype i changed to a cheaper Analog device model ADM706T. When i modeled both on a breadboard, the circuit worked correctly with the MAXIM part but failed, as was the case - issues above, when using the ADM706T. This was "supposed" to be a "drop-in" but it was not the case. I am currently working with Analog Device's Tech team to understand why their IC does not function as expected.

    Regards,
    Chris.
  • Chris may I suggest the MCP809 for a brown out detector. You can choose various voltage levels and it mates well with PIC16XXX series.
Sign In or Register to comment.