Incorrect IIC data from P8X32A
jcdammeyer
Posts: 4
in Propeller 1
I just purchased an E1.31 Bridge for DMX lamp control from DIYLEDExpress.com. Put the kit together, checked voltages, plugged in the ICs and no blinking status LEDs. The next day my Parallax USB Prop Plug arrived and I tried uploading firmware thinking maybe I'd received a kit with an non-programmed EEROM.
The message was Propeller not found. A bit more research and it appears the Propeller chip must not be functioning correctly.
The data sheet says if it doesn't find the dongle it goes out and fetches code from the EEROM and if that doesn't work it sets the pins to high impedance and stops. The problem is that it's not sending the correct data out the IIC pins which I discovered using my MSO 3034 TEK scope with IIC decoding.
The 24LC512 (or 256) requires a command with a bit pattern 1010nnn where nnn matches the address pins on the device. Then there's a R/W bit and finally two bytes with the address. Clearly the attached screen capture shows an incorrect command. It's not the EEROMs holding the data line low since the Propeller does the same thing without any attached devices. There are pull up resistors on both the clk and data lines and they float high. That can be seen at the start of the trace just after the clock pulses.
To verify that I wasn't going crazy I scoped one of my PIC30F5011 products that has a 1MBit IIC EEROM. That scope capture clearly shows what should be coming from the Propeller.
Is there something I've missed? Some other pin on the Propeller that might make it behave incorrectly? I've followed reasonable anti-static procedures. The soldering on the board is clean. It's the first full through hole project I've done in years. Most everything I build is SMD down to 0603 components and very fine pitch devices.
I've ordered and received shipping notification from Parallax that a P8X32A kit that includes crystal, EEROM regulators etc. and assembled quick start board are on the way. That will take a week. Shipping parts up to Canada priority USPS is always $25 to $30 US ($40 Cdn,) so generally unless the parts are available from Digikey with $8 shipping I tend not to buy.
Are Propeller chips really that fragile?
The message was Propeller not found. A bit more research and it appears the Propeller chip must not be functioning correctly.
The data sheet says if it doesn't find the dongle it goes out and fetches code from the EEROM and if that doesn't work it sets the pins to high impedance and stops. The problem is that it's not sending the correct data out the IIC pins which I discovered using my MSO 3034 TEK scope with IIC decoding.
The 24LC512 (or 256) requires a command with a bit pattern 1010nnn where nnn matches the address pins on the device. Then there's a R/W bit and finally two bytes with the address. Clearly the attached screen capture shows an incorrect command. It's not the EEROMs holding the data line low since the Propeller does the same thing without any attached devices. There are pull up resistors on both the clk and data lines and they float high. That can be seen at the start of the trace just after the clock pulses.
To verify that I wasn't going crazy I scoped one of my PIC30F5011 products that has a 1MBit IIC EEROM. That scope capture clearly shows what should be coming from the Propeller.
Is there something I've missed? Some other pin on the Propeller that might make it behave incorrectly? I've followed reasonable anti-static procedures. The soldering on the board is clean. It's the first full through hole project I've done in years. Most everything I build is SMD down to 0603 components and very fine pitch devices.
I've ordered and received shipping notification from Parallax that a P8X32A kit that includes crystal, EEROM regulators etc. and assembled quick start board are on the way. That will take a week. Shipping parts up to Canada priority USPS is always $25 to $30 US ($40 Cdn,) so generally unless the parts are available from Digikey with $8 shipping I tend not to buy.
Are Propeller chips really that fragile?
Comments
To repeat second line of original posting. "Put the kit together, checked voltages, plugged in the ICs and no blinking status LEDs."
After assembly, using my 6.5 digit Agilent voltmeter I found the 5V supply to the 3V regulator was 5.045V and the 3.3V regulator was putting out 3.287V.
The kit has sufficient bypassing as far as I can see. The USB dongle also only puts out 3.3V signals. Toggling the DTR pin causes the short reset pulse to ground on the dongle which then starts the entire incorrect IIC sequence again.
Easy to get those confused.
Unfortunately it's a 44pin QFP so I can't sub it into the 1.31 bridge kit. Clearly I'll have to wait until parts from Parallax arrive.
Plublison, The are oriented correctly. Even if they are removed, the IIC protocol should still be correct except an ACK would be missing in the data stream. In this case there's no ACK because the Control Byte is incorrect.
Peter, There are 10k resistors on both IIC lines. That they both go up and down under Propeller control implies they are working.
DigitalBob, Putting the scope on the Proto board shows the correct IIC sequence on reset. ie. it matches the IIC with Address Command Byte 50[W] 00 00 50[R] ...
What it all implies is I'm probably not crazy. The Propeller chip is defective.
Peter, There are 10k resistors on both IIC lines. That they both go up and down under Propeller control implies they are working.
If these were true open-drain lines then that assumption would be correct but assumptions are what end up driving us crazy. To solder a resistor and check takes less time than it does to reply on the forum so it would be crazy not to check.
Peter, There are 10k resistors on both IIC lines. That they both go up and down under Propeller control implies they are working.
If these were true open-drain lines then that assumption would be correct but assumptions are what end up driving us crazy. To solder a resistor and check takes less time than it does to reply on the forum so it would be crazy not to check.
I'm not sure what you are asking? There are two 10K resistors on the two IIC lines. One end of each resistor is at 3.3V on the power rail. The other ends have continuity to the pins. How would adding another 10K resistor to 3.3V make any difference?
I'm not sure what you are asking? There are two 10K resistors on the two IIC lines. One end of each resistor is at 3.3V on the power rail. The other ends have continuity to the pins. How would adding another 10K resistor to 3.3V make any difference?
My point is that since it is such a simple little thing I would just do it anyway and then 60 seconds later I am somewhat wiser rather than scratching my head about it. Yes, there is a resistor in there, I could check continuity and resistance and I probably would anyway. Troubleshooting involves being methodical and not leaving any stone unturned by making assumptions. Certainly the simple things can be addressed quickly at least.
There is no insult intended nor should one be taken.
Pull-ups also have nothing to do with comms to the Prop Plug. Since the IIC and serial comms both fail, it does seem like there's a problem with the Propeller itself, though I've never heard or imagined one could fail in this manner.