hi tumbleweed, i will look further
but here is what i have , which i agree with you PPS should not effect portC with the config i have
but i without the RC6pps =0 ,RC7PPS= 0 the pins are definitely not responding as i/o pins
I have silicon 0 sample from microchip btw , but that should not be a factor
at time of testing the pins dont have any other components connected to outputs except a cro
Code:' config for 18F27K40 #CONFIG ;----- CONFIG1L Options -------------------------------------------------- CONFIG FEXTOSC = OFF ; External Oscillator not enabled CONFIG RSTOSC = HFINTOSC_64MHZ ; HFINTOSC with HFFRQ = 64 MHz and CDIV = 1:1 ;----- CONFIG1H Options -------------------------------------------------- CONFIG CLKOUTEN = OFF ; CLKOUT function is disabled I/O fuction on OSC2 CONFIG CSWEN = ON ; Writing to NOSC and NDIV is allowed ( software can change OSC type and speed as required after POR) CONFIG FCMEN = OFF ; Fail-Safe Clock Monitor disabled ;----- CONFIG2L Options -------------------------------------------------- CONFIG MCLRE = EXTMCLR ; If LVP = 0, MCLR pin is MCLR; If LVP = 1, RE3 pin function is input - used a s reset by CCT CONFIG PWRTE = ON ; Power up timer enabled - provides 66ms timeout on POR or Brown out reset CONFIG LPBOREN = OFF ; LPBOR disabled ( Low Power Brown Out Reset disabled) CONFIG BOREN = ON ; Brown-out Reset Enabled according to SBOREN ;----- CONFIG2H Options -------------------------------------------------- CONFIG BORV = VBOR_245 ; Brown-out Reset Voltage (VBOR) set to 2.45V CONFIG ZCD = OFF ; ZCD disabled. Zero Cross Detect can be enabled by setting the ZCDSEN bit of ZCDCON CONFIG PPS1WAY = OFF ; PPSLOCK bit can be set and cleared repeatedly (subject to the unlock sequence) CONFIG STVREN = ON ; Stack full/underflow will cause Reset CONFIG DEBUG = OFF ; Background debugger disabled CONFIG XINST = OFF ; Extended Instruction Set and Indexed Addressing Mode disabled ;----- CONFIG3L Options -------------------------------------------------- CONFIG WDTCPS = WDTCPS_31 ; Divider ratio 1:65536; software control of WDTPS CONFIG WDTE = OFF ; WDT Disabled - Watch Dog Timer disabled ;----- CONFIG3H Options -------------------------------------------------- CONFIG WDTCWS = WDTCWS_7 ; window always open (100%); software control; keyed access not required CONFIG WDTCCS = LFINTOSC ; WDT reference clock is the 31.0 kHz LFINTOSC ;----- CONFIG4L Options -------------------------------------------------- CONFIG WRT0 = OFF ; Block 0 (000800-003FFFh) not write-protected CONFIG WRT1 = OFF ; Block 1 (004000-007FFFh) not write-protected CONFIG WRT2 = OFF ; Block 2 (008000-00BFFFh) not write-protected CONFIG WRT3 = OFF ; Block 3 (00C000-00FFFFh) not write-protected CONFIG WRT4 = OFF ; Block 4 (010000-013FFFh) not write-protected CONFIG WRT5 = OFF ; Block 5 (014000-017FFFh) not write-protected CONFIG WRT6 = OFF ; Block 6 (018000-01BFFFh) not write-protected CONFIG WRT7 = OFF ; Block 7 (01C000-01FFFFh) not write-protected ;----- CONFIG4H Options -------------------------------------------------- CONFIG WRTC = OFF ; Configuration registers (300000-30000Bh) not write-protected CONFIG WRTB = OFF ; Boot Block (000000-0007FFh) not write-protected CONFIG WRTD = OFF ; Data EEPROM not write-protected CONFIG SCANE = ON ; Scanner module is available for use, SCANMD bit can control the module CONFIG LVP = OFF ; HV on MCLR/VPP must be used for programming ;----- CONFIG5L Options -------------------------------------------------- CONFIG CP = OFF ; UserNVM code protection disabled CONFIG CPD = OFF ; DataNVM code protection disabled ;----- CONFIG5H Options -------------------------------------------------- ; not used ;----- CONFIG6L Options -------------------------------------------------- CONFIG EBTR0 = OFF ; Block 0 (000800-003FFFh) not protected from table reads executed in other blocks CONFIG EBTR1 = OFF ; Block 1 (004000-007FFFh) not protected from table reads executed in other blocks CONFIG EBTR2 = OFF ; Block 2 (008000-00BFFFh) not protected from table reads executed in other blocks CONFIG EBTR3 = OFF ; Block 3 (00C000-00FFFFh) not protected from table reads executed in other blocks CONFIG EBTR4 = OFF ; Block 4 (010000-013FFFh) not protected from table reads executed in other blocks CONFIG EBTR5 = OFF ; Block 5 (014000-017FFFh) not protected from table reads executed in other blocks CONFIG EBTR6 = OFF ; Block 6 (018000-01BFFFh) not protected from table reads executed in other blocks CONFIG EBTR7 = OFF ; Block 7 (01C000-01FFFFh) not protected from table reads executed in other blocks ;----- CONFIG6H Options -------------------------------------------------- CONFIG EBTRB = OFF ; Boot Block (000000-0007FFh) not protected from table reads executed in other blocks #ENDCONFIG
Code:' ---------------- Setup All Define statements ------------ DEFINE OSC 32 ' Timing referance for pause , pauseus commands DEFINE ADC_BITS 10 ' Number of bits in ADCIN result - Required for adcin command DEFINE PULSIN_MAX 2000 ' Maximum counts( clock ticks) allowed before pulsin times out( 2000 ^ 1.25us = 2.5 ms) DEFINE HSER_PORT 2 ' Hser port 2 use DEFINE HSER2_RXREG PORTB ' USART 2 RX - Set PPS Register port B DEFINE HSER2_RXBIT 7 ' DEFINE HSER2_TXREG PORTB DEFINE HSER2_TXBIT 6 DEFINE HSER2_RCSTA 90h ' Hser2 receive status init DEFINE HSER2_TXSTA 24h ' Hser2 transmit status init DEFINE HSER2_BAUD 19200 ' Hser2 baud rate
Code:'---------------- PERIPHERAL PIN SELECT MODULE ----------------------- RC6PPS = 0 RC7PPS = 0 '---------------- PERIPHERAL MODULE DISABLE ----------------------- ' Note Bit value 0 = ENABLE , 1 = DISABLED POR = 0 PMD0 = %00111010 'Bit7-Sys clock(Fosc) to Peripherals , Bit6 FVRMD -Fixed Voltage Ref Module 'Bit5 - HLVD Module, Bit4- CRCMD - CRC Module 'Bit3 - SCANMD - NVM Memory Scanner Module , Bit2- NVMMD -NVM module 'Bit1 - CLKR - Clock Referance , Bit0 IOCMD PMD1 = %11111100 'Bit7=N/A ,Bit6=TMR6 ,Bit5=TMR5,Bit4=TMR4, 'Bit3=TMR3,Bit2=TMR2,Bit1=TMR1,Bit0=TMR0 PMD2 = %11011111 'Bit7=N/A ,Bit6=DAC ,Bit5=ADC , Bit4=N/A, Bit3=N/A, Bit2= CMP2, Bit1=CMP1,Bit0=ZCD Zero Cross Detect PMD3 = %11111111 'Bit7-4=N/A, Bit3=PWM4, Bit2=PWM3, Bit1=CCP2, Bit0=CCP1 PMD4 = %01111111 'Bit7= UART2, Bit6= UART1, Bit5= MSSP2 , Bit4=MSSP1,Bit3-1 =N/A , Bit0= CWG1 ( Comparitor Output shutdown ) PMD5 = %11111111 'Bit7-1= N/A , Bit0 = DSM (Data Signal Module)
Code:' ------- Port C Settings & directions ---------- ANSELC = %00000000 ' Set Port C Analog bit7-0 = ANC7-0 / 0 = digital ,1= Analog TRISC = %00000100 ' 1= Digital Input / 0= Digital Outputs ANC7 = spare_tx1 output when IR-TX IOCCN = %00000000 ' IOC Negative Edge Trigger Select RC7-RC0 0 = diabled 1 = enabled POR = 0 WPUC = %00000000 ' Set Week Pullups on Digital inputs POR =0 INLVLC = %11111111 ' Set Input levels - Schmitt = 1 / TTL = 0 POR = 1 SLRCONC = %11111111 ' Set Slew Rate 1 = Rate Limited 0 = Max rate POR =1 IOCCP = %00000000 ' IOC Positive Edge Trigger Select RC7-RC0 0 = diabled 1 = enabled POR = 0 ODCONC = %00000000 ' Open Drain 0 = Output drives both High and Low signals 1= Output drives Low going signals only POR = 0 ' ------- Setup port C Variables ---------- SCK VAR LATC.0 ' Clock pin (output to RF modual) SI Var LATC.1 ' Master Out - Module Data in pin (input to RF Modual) SO Var PORTC.2 ' Master In - Module Data out pin (output of RF Modual) FLASH1_CE con 19'= LATC.3 ' Chip select FLASH chip ( low) BUZ var LATC.4 ' Buzzer IR_TX_OUT VAR LATC.5 ' IR-TX_out when IR-TX IR_TX_HI_PWR VAR LATC.6 ' IR_TX_HI when IR-TX SPARE_TX1 VAR LATC.7 ' spare Output when IR_TX mode LATA.0[FLASH1_CE] = 1 ' Active Low so set High to start




Bookmarks