How to implement SPI using low-cost Microchip PIC16C5X series

Feb 19, 2004 4 Replies

How can we easily implement SPI using Microchip PIC16C5X series devices, using some GPIO. If firmware achievable to implement a slave/master interface.



Thanks for everyones input here....!


SPI (master) is extremely easy to do in software on any micro - just wiggle the clock line and squirt the bits out.

I've implemented software SPI on the AVR '2313, with several slaved to a mid-range PIC with hardware SPI as the master. It was quite easy. You should be able to do the same with your PIC.

Leon

Leon Heller, G1HSM Email: aqzf13@dsl.pipex.com My low-cost Philips LPC210x ARM development system: http://www.geocities.com/leon_heller/lpc2104.html

Should give you the general idea (untested):

spi_writebyte: movwf tmp movlw 8 movwf cntr $1 btfss tmp,0 bcf spi_out btfsc tmp,0 bsf spi_out

bsf spi_clk bcf spi_clk

rrcf tmp decfsz cntr goto $1

return

;-----------------

spi_readbyte: movlw 8 movwf cnt clrf tmp $1 rrcf tmp

bsf spi_clk btfsc spi_in bsf tmp,7 bcf spi_clk

decfsz cntr goto $1

movfw tmp return

Max

Look at some of the C compilers for the PICs. At least one (CCS,

formatting link
) has built in support for SPI master. If the chip as SPI hardware you can target the function for that or use just about any combination of I/O pins.

Also look at the Microchip application notes for SPI:

formatting link

Rob Young snipped-for-privacy@ieee.org

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required