Micromega uM-FPU V1.0 woes
Hello,
· I am trying to use the uM-FPU V1.0 with my BS2p.· However, I cannont get any of the support code on the Parallax website to function correctly on my BS2p.· First off, I have changed from the default pins documented in the code (pin 6 is now the clock, and pin 7 is now the bidirectional data line).··I have the circuit connected as·uM's data sheet shows.··My problem is I cannot get passed
Sys_Command:
· IF (FpuData = 1) THEN GOTO Sys_Command 'wait until uM-FPU is ready
······································· '(fall through to Sys_Command2)
since the voltage on the BS2 pin is around 2 volts (above the logic high threshold).· The voltage on the other side of the 1k resistor is about 1.6volts, so it appears that the FPU is trying to pull the BS2 pin low, but is unsuccesful.· I tried adding an "INPUT Fpudata" command before the IF statement with no avail.· If·I comment out the IF statement, I will see on the DEBUG window the FPU version that was printed from the FPU routines, so there is communication between the two devices.· I should note that the BS2p·always detectes the FPU.· My next thought is to have·3 seperate pins (IN, OUT, CLK)· but i cannot afford to loose another pin to the FPU.· Another thought is there is something I have missed when changing to this:
'
uM-FPU pin definitions
FpuClock······· PIN·· 6··············· 'IN· uM-FPU clock
FpuData········ PIN·· 7··············· 'I/O uM-FPU data
IF anyone has had succesful operations with the FPU, please shed some light my way.·
· I am trying to use the uM-FPU V1.0 with my BS2p.· However, I cannont get any of the support code on the Parallax website to function correctly on my BS2p.· First off, I have changed from the default pins documented in the code (pin 6 is now the clock, and pin 7 is now the bidirectional data line).··I have the circuit connected as·uM's data sheet shows.··My problem is I cannot get passed
Sys_Command:
· IF (FpuData = 1) THEN GOTO Sys_Command 'wait until uM-FPU is ready
······································· '(fall through to Sys_Command2)
since the voltage on the BS2 pin is around 2 volts (above the logic high threshold).· The voltage on the other side of the 1k resistor is about 1.6volts, so it appears that the FPU is trying to pull the BS2 pin low, but is unsuccesful.· I tried adding an "INPUT Fpudata" command before the IF statement with no avail.· If·I comment out the IF statement, I will see on the DEBUG window the FPU version that was printed from the FPU routines, so there is communication between the two devices.· I should note that the BS2p·always detectes the FPU.· My next thought is to have·3 seperate pins (IN, OUT, CLK)· but i cannot afford to loose another pin to the FPU.· Another thought is there is something I have missed when changing to this:
'
uM-FPU pin definitions
FpuClock······· PIN·· 6··············· 'IN· uM-FPU clock
FpuData········ PIN·· 7··············· 'I/O uM-FPU data
IF anyone has had succesful operations with the FPU, please shed some light my way.·
Comments
Have you placed the following conditional compilation code near the top of your program or at least used the proper teime delay extracted from this coding?
#IF ($STAMP = BS2SX) OR ($STAMP = BS2P) #THEN
ResetTime CON 160
#ELSE
ResetTime CON 65
#ENDIF
Have you also tied pins 3. 4. 5. and 6 to ground on the uM-FPU chip?
If so, a complete look at your coding might then be appropriate to try and locate the source of the problem.
Regards,
Bruce Bates
Thanks for your input. I do have your conditional compile statements in "my" code. However I only have pins 3,4, and 6 tied to ground. Pin 5 looked like an output pin on the data sheet that is for the FPU (which shows pin 5 unconnected). Also, I assume "my" code is correct since it is the code examples provided by uM.
I was also wondering if the FPU needed a "pull down" resistor on the data line.
Thanks again,
Greg
As I remember pin 5 is a test-pin and presuming you're not using it should be tied to ground. My information comes from the uM-FPU information on the Parallax website. Included in that information on the Parralax web site are sample programs as well. All of that information and more as well can be found here:
http://www.parallax.com/detail.asp?product_id=604-00030a
Regards,
Bruce Bates
You are correct in stating pin5 is a test pin, I have since tied it to ground using a 220ohm resistor (to limit current just in case). The information you are looking at is the same that I have been staring at for the past two days <bangs head on desk>. All the sample programs on the Parallax website yields the same results - waiting for the data pin to go low (as described in my first post). I am starting to think that I have a bad FPU - go figure a hardware guy blaming hardware not software. I have also tested using the "default" pins 14 and 15, with the same frustrating results.
I had to use three seperate BS2 pins (CLK, SI, SO) to facilitate proper operation. I also had to insert a 5ms PAUSE in the SYS_COMMAND routine. It works like a champ now, but it takes 3 I/O pins
There should be no problem connecting the uM-FPU to pin 6 and 7 on the BS2p. I've just wired up a test circuit and all the test routines run fine. It makes me think there may be some other interaction. I'm glad the workaround has got you going, but a 5 ms delay is a huge delay and should definitely not be required.
In answer to your earlier questions, there is no pull-down required on the data lines, a 5.6K pulldown is internal to the chip. The proper connection is shown on the Micromega website at:
http://www.micromegacorp.com/connection.html
I'd be happy to track this down further, and would suggest that you email me at:
support@micromegacorp.com
Regards,
Cam Thompson
Micromega Corporation