Member Since: October 20, 2013
Country: United States
And clearly - if you are bitbanging your SPI, do it as per above post.
And a hint for everyone - this L6470 DSpin chip talks nonsense until the MOTOR is POWERED !!
This exact problem plagued me for a few days, till I nailed it!
Ha . . . SPI bus has the properties of CLOCK POLARITY and CLOCK PHASE. I was writing my own drivers - running on Freescale 56F805 - for the DSpin L6470, and from reviewing the ST datasheet - came to the conclusion that Data clocking was to happen on the LEADING EDGE of the CLOCK signal, and CLOCK was ACTIVE-HIGH.
Only when I came to implement the item Get_Abs_Pos - I found that the 8th bit in all three bytes returned was missing (reads zero - always). (PS many would say SEVENTH Bit, counting from zero . . .). Then realised ALL BYTES returned from DSpin missing the highest bit, always. Sure makes your Config and Status registers look strange! After a bit of pfaffing about - revisited the Clk phase and polarity setting in my micro, tried the three remaining combos of Phase and Polarity, found that these are the SPI settings that work:
clk phase = TRAILING EDGE clk polarity = ACTIVE LOW
in order to implement this on your Arduino or whatever, look to the hardware manual for SPI port registers.
Very surprising that Sparkfun has released a 'library' with this very glaring error - only kills some users though?
Your design looks very appealing - I would be interested in a few of these (not for CNC btw). Thanks !
No public wish lists :(