With the recent surge in Omicron cases, shipping may be slower than stated times. We are working to build, ship and respond to everything as quickly as possible. Please see all COVID-19 updates here. Thank you for your continued support.

Member #480494

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 :(