This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

LED problems

Hi i am using the nordic nrf24e1 with combined 8051. I am very new to embedded and am just trying to blink an LED. For some reason it only works on pin 0 of port 0?? and on no other pin from ports 1 and 0. any ideas as to why this could be? i am using the correct header file (reg24e1.h) and it works on every pin in simulation, someone mentioned setting tri-states or as an output?? but i do not know how to do this. Any help will be greatly appreciated.

leigh

  • "any ideas as to why this could be?"

    1. Your code is wrong;
    2. Your hardware design is wrong;
    3. Your hardware implementation is wrong;
    4. Your hardware is faulty;
    5. Any combination of the above.

    With absolutely no details at all of your code or your hardware (other than it involves a LED and a nrf24e1), it's really rather tricky to be any more specific...!

    "someone mentioned setting tri-states or as an output?? but i do not know how to do this."

    The nrf24e1 Datasheet (or some other manufacturer documentation) should tell you this.

    Note that this depends entirely on the chip and has nothing to do with the Keil tools. You need to consult the manufacturer documentation (and other support materials - app notes, helpline, etc) first to determine what needs to be done; if you then need help with how to do it in Keil C51, then this would be the place to ask!

    • From glancing at the datasheet, it seems as though the I/O ports on this variant are a bit non-standard.

      www.nordicsemi.no/.../Product_Specification_nRF24E1_1_3.pdf


      3 I/O PORTS
      The nRF24E1 have two IO ports located at the default locations for P0 and P1 in standard 8051, but the ports are fully bi-directional CMOS and the direction of each pin is controlled by a _DIR and an _ALT bit for each bit as shown in the table below.

      Since you say it works in simulation, presumably you've already carefully read the datasheet and written code that configurations the directions and alternate functions of the port port pins.

      If the code is correct, then the question is why that same code doesn't work on the actual target hardware. The clue there will lie in the difference between the simulated hardware and the real board. Are LEDs actually connected to all the right port pins? Are your pullup/down resistors correct? (It seems unlikely that you have 16 LEDs connected to every pin of P0 and P1; if there's only one, then is it actually connected to the pin you think that it is?

      • "From glancing at the datasheet, it seems as though the I/O ports on this variant are a bit non-standard."

        Now there's an understatement!
        From the snippet provided, it sounds like the I/O ports on this variant are completely unlike a standard 8051!

        "The clue there will lie in the difference between the simulated hardware and the real board."

        So, what does the simulator actually do?

        http://www.keil.com/dd/chip/3605.htm says,

        "Simulation for this device is provided by the default peripheral simulation driver."

        In other words, the simulator simulates as if these were standard 8051 ports - they aren't, so the reults are meaningless.

        • Thanks a bunch guys, i sm only using one LED and was hovering around the face that i would need to set the pins corretly and that it was just luck that P0^0 was already configured correctly, I never actually noticed the _DIR AND _ALT before, that seems almost certainly the problem. I will try that out and let you know if i have more problems........next step wireless connection (I hope you have your thinking caps on)

          thanks again

          • Well if you are interested it turns out that in fact i needed to use the _DIR = 0 statement to assign the port as outputs.

            0