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