Shop OBEX P1 Docs P2 Docs Learn Events
SX48 want program at 3.3 volts — Parallax Forums

SX48 want program at 3.3 volts

ThomasthetankThomasthetank Posts: 12
edited 2007-09-18 01:02 in General Discussion
freaked.gif·Im using an SX48BD device in my system that runs at 3.3 volts. When trying to program the device I get a chip connection failure. I have the SXkey powered at 5V, and the SX48 at 3.3.
Ive donr the same with the SX28 and 52, never had this problem.

But it gets worse.!, when I run my board at 5 Volts, it works. Seems to me its either the SX48 or the SXkey, any ideas.!. I can't run my system at 5volts, my RF design will fry.!.

·

Comments

  • ThomasthetankThomasthetank Posts: 12
    edited 2007-09-12 04:23
    Another interesting thing Ive just found, After the SX48 is programmed at 5v, if I put the supply back to 3.3, and try to program again it works.!!!.
    Seems when the SX48 in new and unprogrammed, it want allow programming at 3 volts. Very strange problem, must be a register or somthing internal to the SX48.
  • Sparks-R-FunSparks-R-Fun Posts: 388
    edited 2007-09-12 05:08
    Check out these threads if you have not already.

    Running SX Prototype Board at 3.3 volts
    Trouble debugging at 3V
    Debugging 3.3v Project

    I am sorry I can not be of more help.

    - Sparks
  • ThomasthetankThomasthetank Posts: 12
    edited 2007-09-13 00:25
    Thanks Sparks

    This may be one to note for future referance. I have programmed 3 boards now, all works fine once you first program at 5 volts the first time.Given this problem is consistant with every new SX48 device, I would say their must be a config register or programming bit that needs to be set or cleared.

    when I get time will look into the problem deeper.
    ·
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2007-09-13 02:34
    Perhaps the new chips come configured with BOR set to a high voltage. This might have occurred during testing. You should be able to read a new chip before programming it to see how the fuses are set.

    -Phil
  • ThomasthetankThomasthetank Posts: 12
    edited 2007-09-13 04:45
    Hi Phil

    Thats a good point, next chip I solder, I will read the device before progrwmming.

    Thanks
  • ThomasthetankThomasthetank Posts: 12
    edited 2007-09-14 00:16
    Hi Phil

    I have read the fuses on the SX48 before programming and BOR = OFF. Im building 8 boards and so far all need to be programmed at 5V before they can be programmed at 3V

    Thanks
  • dkemppaidkemppai Posts: 315
    edited 2007-09-14 01:14
    Thomasthetank said...
    Hi Phil

    I have read the fuses on the SX48 before programming and BOR = OFF. Im building 8 boards and so far all need to be programmed at 5V before they can be programmed at 3V

    Thanks
    Just curious, what frequency are you running your SX at when at the 3.3Volt level?

    I'm having all sorts of trouble running a 48 at 3.3Volts. Some of my I/O lines refuse to
    toggle when they're supposed to.

    -Dan


    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

    "A saint-like quantity of patience is a help, if this is unavailable, a salty vocabulary works nearly as well." - A. S. Weaver
  • ThomasthetankThomasthetank Posts: 12
    edited 2007-09-14 01:22
    Hi Dan

    Im running at 4MHZ internal for now. I may have the same problem with IO but could be soldering, will know later.
  • ThomasthetankThomasthetank Posts: 12
    edited 2007-09-14 01:33
    Dan

    I had that problem with IO not toggeling before on an SX28 running at 50MHZ, I was using BSET and BCLR, I fixed the problem by OR or AND the IO lines. I use BSET and BCLR only at low frequancy. Hope that helps. I was running 5V on the SX28
  • dkemppaidkemppai Posts: 315
    edited 2007-09-14 01:34
    Thomasthetank said...

    Hi Dan

    Im running at 4MHZ internal for now. I may have the same problem with IO but could be soldering, will know later.



    Thomas,

    Please keep me posted on what you find. I'd be interested in knowing if others are having the same troubles I'm having.

    -Dan




    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

    "A saint-like quantity of patience is a help, if this is unavailable, a salty vocabulary works nearly as well." - A. S. Weaver
  • ThomasthetankThomasthetank Posts: 12
    edited 2007-09-14 01:42
    Ive just tried debug, wan't allow me to execute the programming, shows running. Whays interesting is reset signal drops to 2 volts from the 3.3Volt rail. Somthing the SX48 does not like 3.3 Volts, not looking good for me, have 27 boards [noparse]:([/noparse]
  • dkemppaidkemppai Posts: 315
    edited 2007-09-14 01:42
    Thomasthetank said...
    Dan

    I had that problem with IO not toggeling before on an SX28 running at 50MHZ, I was using BSET and BCLR, I fixed the problem by OR or AND the IO lines. I use BSET and BCLR only at low frequancy. Hope that helps. I was running 5V on the SX28
    Come to think of it, I am using a·SETB and CLRB commands on that I/O line.·I know there are some read modify
    write issues with the SX, but I thought the SETB and CLRB's were good.·I'll try And/Or to·modify the pins I need.·

    Thanks for the tip!

    -Dan


    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

    "A saint-like quantity of patience is a help, if this is unavailable, a salty vocabulary works nearly as well." - A. S. Weaver
  • pjvpjv Posts: 1,903
    edited 2007-09-14 23:56
    Hi Dan;

    Consecutive write/reads on the same port can be a problem at high speeds. You stated that you were doing read/writes on different ports; C and D, and that does not cause a problem.

    At high speeds such as 50 Mhz, you need to insert a NOP in between SETB and CLRB instructions on the same port, EVEN if they are different bits! With capacitive loads, this problem is exacerbated, and on occasion you may need 2 NOPs.

    This is well documented in the Parallax info.


    Cheers,

    Peter (pjv)
  • dkemppaidkemppai Posts: 315
    edited 2007-09-17 03:23
    pjv said...
    Hi Dan;

    Consecutive write/reads on the same port can be a problem at high speeds. You stated that you were doing read/writes on different ports; C and D, and that does not cause a problem.

    At high speeds such as 50 Mhz, you need to insert a NOP in between SETB and CLRB instructions on the same port, EVEN if they are different bits! With capacitive loads, this problem is exacerbated, and on occasion you may need 2 NOPs.

    This is well documented in the Parallax info.


    Cheers,

    Peter (pjv)
    Peter,

    My setb and clrb's happen well apart from each other. The comm speed for those pins is 19.2K.
    However, I do two setb's in a row...····...on different ports,

    ex...
    setb··PortC.somepin
    setb· PortD.somepin·
    .../ex

    However, I can try a few nop's between them for kicks.

    -Dan


    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

    "A saint-like quantity of patience is a help, if this is unavailable, a salty vocabulary works nearly as well." - A. S. Weaver
  • pjvpjv Posts: 1,903
    edited 2007-09-17 04:28
    Hi Dan;

    If they are on different ports, then it's not an issue.

    However, I should have explained better; and this only holds for activity on the same port, and with high clock rates........ that is if you change the level of a port bit in any manner (that is with any instruction or mechanism) and then immediately re-access the same port in any manner, the change being written may not have adequately proceeded through the system, and settled to the intended level before that next access occurred. The result is that the bit may revert back to what it was prior to your change. The time required for things to settle are in the order of one instruction at 50 MHz; 20 nanoSeconds. This time gets longer with capacitive loading on the port bit. Here is where the intervening NOPs are required.

    So in your case you may be doing consecutive writes, or a write followed by a read. Please remember that most port instructions are of the form read-modify-write, so even if you think you are only reading, you are in fact also re-writing.

    Have you had any luck in setting up a piece of code that exhibits your problem, yet is not frought with your confidentiality issues??

    Cheers,

    Peter (pjv)
  • ThomasthetankThomasthetank Posts: 12
    edited 2007-09-18 01:02
    Hi all, you may be able to help me here.
    Im trying to get 9600KHZ from the SX48 running at 4MHZ internal, given the RTC is divide by two minium, can't use it. But from the data sheet, Timer 1&2 have 1:1 divide, which means I should be able to get 9600 by the following.

    Timer1 prescaler = 1:1
    Compare R1 = 208
    Compare R2 = 0

    Should only need to test R1 interupt flag, When I run this code the frequancy = 4.35KHZ.!, should 9600.!! as 4000000/208 =19200

    Any Ideas
Sign In or Register to comment.