10/25/2015 at 21:37 •
I wrote a simple I2C driver to replace the elaborate vendor supplied one that I could not get working. The motor drivers now power up and configure correctly, and the motor current programs correctly. Hooked up a motor, and it moves as expected. Had to order some screw terminal strips on Friday, as the ones that I ordered originally had the wrong footprint (0.200" spacing, needed 0.100" spacing). When the new terminal strips arrive, I will check out operation with all 3 motors active.
Wrote and debugged an interrupt driven serial port driver to handle both serial interfaces in use.
Checked out the limit switch input conditioning, and it passes signals to the expected GPIO ports on the MCU.
The hardware checkout is pretty much done with only 2 cut/jumpers on a rev 1 board.
The next phase of this project is going to be mostly writing and debugging firmware. The board is going to drive a 3 axis antenna rotator for talking to amateur radio satellites. The software that I am using to predict the satellite position (GPredict) will communicate via the EZComm 2 protocol over a serial port. The firmware will parse the EZComm 2 protocol and translate the absolute angular position to relative move distances for the step motors. There will be a few custom commands added for diagnostics like checking the states of the limit switches and monitoring the power supply input voltage.
10/22/2015 at 18:37 •
The bare board came back from from OSH Park late last week. I built the first board up over the weekend and am now testing and bringing the board up. The 3.3V and 5V power supplies are working. The firmware for step pulse generation is working and the I/O from the microcontroller is configured correctly. The driver microstep configuration, chop current and sleep enables are controlled by chips on the I2C bus and I am still having trouble with the I2C driver. Once that is working, it should move motors with the simple test firmware that I have written so far. It may be simpler to write my own driver from scratch than to debug the vendor supplied one. Still need to check out the limit switch input conditioning circuits and RS232 level shifters on the board. These are both blocks that I have used on similar boards in the past, so I don't expect problems on them.