Hi guys

I am trying to set the MSSP1,2 SPI with the PSS control of the pins and like to confirm i have it correct for the 18f47k40

first time using MSSP with PPS chip with this arrangement

also like to confirm SS pin when SSP2 set as slave , when selected as not used is free for other I/O use

using MPLAB - code configure as guide , it gives warnings on SS is allocated incorrectly , also that SCK2 has no output,( it a slave so there is none ),
- can SS pin for SPI slave NOT be assigned and is free for other I/O

i am aware the data pins for both SSP must be allocated even if not used , week pullups assigned to those

Requirement>

have MSSP1 as master, generate clock output from clk pin , usedata from buffer byte for SSP1 , no data input pin required , no slave SS output to slave
Have MSSP2 as slave , recieve clock in , use data from buffer byte for SSP2, no data input pin required , no slave SS pin used / required

USE: generate 2 seperate spi data streams based off the master generated clock , with slave clock in wire linked to master clock out


Cheers

Sheldon


PPS pin allocation of MSSP1,2 requirement shown here
Code:
 '  -------   Port B Settings & directions  ----------
    ANSELB  = %00000000          ' Set PortB Analog bit7-0 = ANB7-0 / 0 = digital ,1= Analog ,   
    TRISB   = %10110010          '     
    WPUB    = %00110000          ' Set Week Pullups on Digital inputs POR =0  
    INLVLB  = %11111111          ' Set Input levels - Schmitt = 1 / TTL = 0  POR = 1 
    SLRCONB = %11111111          ' Set Slew Rate 1 = Rate Limited  0 = Max rate POR =1 
    IOCBP   = %00000000          ' IOC Positive Edge Trigger Select RB7-RB0  0 = diabled 1 = enabled POR = 0
    IOCBN   = %00000000          ' IOC Negative Edge Trigger Select RB7-RB0  0 = diabled 1 = enabled POR = 0
    ODCONB  = %00000000          ' Open Drain 0 = Output drives both High and Low signals  1= Output drives Low going signals only POR = 0
       
  ' -------   Setup port B Variables  ----------                       
    LATB   = $00                 '  Clear Outputs
    SSP1_CLKout     VAR LATB.0       '  (active high)
    SSP2CLKIN       VAR PORTB.1      ' wired to portb.0
    SSP1_data        VAR LATB.2       '  SSP1_SDO  DATA OUT  
    SSP2_data       VAR LATB.3       ' ,SSP2_SDO  DATA OUT  
    SSP2_SDI        VAR PORTB.4      ' MSSP2 IN - MUST ASSIGN PIN , BUT NOT CONNECTED 
    SSP1_SDI       VAR PORTB.5      ' MSSP1 IN - MUST ASSIGN PIN , BUT NOT CONNECTED 
  
  ' NOTE: USB-TX2,RX2 - PORTB.6,7 Set by Defines for terminal2 services

Code:

   RB0PPS =$0F              ' MSSP1(SCK OUTPUT) SCK    SPI MASTER - PORTB.0 USED 
   RB2PPS =$10              ' MSSP1(SDO OUTPUT) SSP1_data     SPI MASTER - PORTB.2 USED  ( PCB REWIRED PORTA.5 TO SUIT ) 
   SSP1CLKPPS=$08           ' MSSP1(SCK INPUT) MSSP1 CLK   SPI MASTER - INPUT MUST BE SET THE SAME PIN AS MSSP1 OUTPUT - PORTB.0 FOR PPS 
   SSP1DATPPS=$0D           ' MSSP1(SDO INPUT) MSSP1 SDI-1 SPI MASTER - INPUT NOT USED BUT MUST BE SET - PIN CANT BE USED FOR OTHER ASSINGMENTS AND IS LEFT NOT CONNECTED - RE-ASIGNED PORTB.5 - RTC_32KHZ 
  'SSP1SSPPS=NA'            ' MSSP1(SS1 INPUT) NOT REQUIRED - DISABLED - NORMAL I/O USE OF PIN              ' 
   
   RB1PPS =$11              ' MSSP2(SCK OUTPUT) MSSP2 CLK  SPI SLAVE  - OUTPUT MUST BE SET THE SAME PIN AS MSSP2 INPUT PORT PORTB.1 FOR PPS  
   RB3PPS =$12              ' MSSP2(SDO OUTPUT) SSP2_data    SPI SLAVE  - PORTB.3 USED  ( PCB REWIRED PORTA.6 TO SUIT ) 
   SSP2CLKPPS=$09           ' MSSP2(SCK INPUT) MSSP2 CLK   SPI SLAVE  - INPUT MUST BE SET THE SAME PIN AS MSSP1 OUTPUT - PORTB.1 FOR PPS 
   SSP2DATPPS=$0C           ' MSSP2(SDO INPUT) MSSP2 SDI-1 SPI SLAVE  - INPUT NOT USED BUT MUST BE SET - PIN CANT BE USED FOR OTHER ASSINGMENTS AND IS LEFT NOT CONNECTED - RE-ASIGNED PORTB.4 - HUB_A 
  'SSP2SSPPS=NA'            ' MSSP2(SS2 INPUT) NOT REQUIRED - DISABLED - NORMAL I/O USE OF PIN              ' 
   
   
' -----------MSSP1 & MSSP2 - HARDWARE SPI/I2C SETTINGS ----------------
   
    SSP1STAT = $40   '0100 0000  - bit7 = 0 spi master-sample middle of data output tim, bit6= 1 spi tx occures from active to idel state  
    SSP1CON1 = $2A   '0010 1010  - bit7,6 = x,bit5= spien 1=spi enable - set sck, sdo,sdi ssx pins bit4 = spi ckp 1 =clock idle high 0 = clk idel low,bit3-0- 1010= spi master fosc/4 sspxadd >=1   
    SSP1ADD = 1      ' set master spi address = 1 - cant be 0 
   
    SSP2STAT = $40   '0100 0000  bit7 spi slave mode = bit must be 0 , 
    SSP2CON1 = $25   '0010 0101  bit 7,6= x, bit 5= spien 1=spi enable ,bit4 0 = clk idle low  bit3-0= 0101 spi slave mode SSx pin control disabled
    SSP2CON3 = $0