PDA

View Full Version : 18F6310 configs



Tobias
- 9th January 2012, 22:50
I am working out the configs for an 18F6310 with an internal OSC at 8MHZ

I can't get some of the ports to go high

PortD.1.5.6.7 won't go high
PortF.4.5.6.7 won't go high

Any ideas?


define OSC 8
Include "modedefs.bas" ' Mode definitions for Serout
OSCCON.6=1 'Internal OSC
OSCCON.5=1
OSCCON.4=1

INTCON.7=0 'Disables all interrupts
INTCON2.7=0 'Disables pull-ups
ADCON0.0=0 'Disables ADC
ADCON1.3=1 'AN Channels to all digital
ADCON1.2=1 'AN Channels to all digital
ADCON1.1=1 'AN Channels to all digital
ADCON1.0=1 'AN Channels to all digital

PIE1=000000 'Disables Parralel Slave port
PIE2=000000
PIE3=000000

PSPCON.4=0 'General I/O mode
SSPCON1.5=0 'Disables Serial Port
SSPCON2.3=0 'Receive idle
TXSTA1.5=0 'Disables Transmit
RCSTA1.7=0 'Disables serial port
RCSTA2.7=0 'Disables serial port
T1CON.6=0 'Turns off Timer1
T1CON.3=0 'Turns off Timer1
T1CON.1=0 'Turns off Timer1
T1CON.0=0 'Turns off Timer1
T2CON.2=0 'Turns off Timer2
T3CON.0=0 'Turns off Timer3
T0CON.7=0

Out_Speed2 var PortA.0
Out_24V6 var PortA.1
IN_NC1 var PortA.2
IN_Drain3 var PortA.3
Out_VSS7 var PortA.4
Out_VSS8 var PortA.5
Trigger var PortA.6
LED var PortA.7
'TRISA=001100
TRISA=000000
Out_Drain4 var PortB.0
Out_VSS3 var PortB.1
Out_VSS4 var PortB.2
Out_Drain3 var PortB.3
NC1_Out var PortB.4
LCD var PortB.5
'Not USED PortB.6
'Not USED PortB.7
TRISB=000000
Out_24V5 var PortC.0
Out_Speed1 var PortC.1
Out_VSS6 var PortC.2
Out_VSS5 var PortC.3
Out_Drain2 var PortC.4
Out_Pop var PortC.5
Out_24V4 var PortC.6
Out_Drain1 var PortC.7
TRISC=000000
TRISD=000000
IN_VSS7 var PortE.0
IN_Speed1 var PortE.1
IN_24V5 var PortE.2
IN_24V4 var PortE.3
IN_Drain1 var PortE.4
IN_VSS6 var PortE.5
IN_VSS5 var PortE.6
IN_Drain2 var PortE.7
'TRISE=111111
TRISE=000000
IN_VSS4 var PortF.0
IN_VSS3 var PortF.1
IN_Drain4 var PortF.2
IN_24V3 var PortF.3
IN_24V2 var PortF.4
IN_Speed4 var PortF.5
IN_VSS2 var PortF.6
IN_VSS1 var PortF.7
'TRISF=111111
TRISF=000000
IN_VSS8 var PortG.0
IN_Speed2 var PortG.1
IN_24V6 var PortG.2
IN_24V1 var PortG.3
IN_Speed3 var PortG.4
'NOT USED PortG.5
'TRISG=1111
TRISG=000
Speed1Check var bit
Speed2Check var bit
Speed3Check var bit
Speed4Check var bit

Drain1Check var bit
Drain2Check var bit
Drain3Check var bit
Drain4Check var bit

VSS1Check var bit
VSS2Check var bit
VSS3Check var bit
VSS4Check var bit
VSS5Check var bit
VSS6Check var bit
VSS7Check var bit
VSS8Check var bit

Check24V1 var bit
Check24V2 var bit
Check24V3 var bit
Check24V4 var bit
Check24V5 var bit
Check24V6 var bit

PopCheck Var bit
NCCheck var bit
ErrorCount var byte

Prefix con $FE ' needed before each command
LcdCls CON $51 ' clear LCD (use PAUSE 5 after)
CursorPS con $45 'Cursor Position
Backlight con $53 ' Backlighting 1-8
Contrast con $52 ' Contrast 1-50

Runaround:
high PortF.0
high PortF.1
high PortF.2
high PortF.3
high PortF.4
high PortF.5
high PortF.6
high PortF.7
Serout2 LCD, 84, [Prefix,LcdCLS]
pause 100 ' PortA Good
'PortB Good
'PortC Good
'PortD.1.5.6.7 won't go high
'Port E Good
'PortF.4.5.6.7 won't go high 4,5,6 AN channels, 7 SPI slave select channel
'PortG Good
SEROUT2 LCD,84, [Prefix,CursorPS,0, dec1 PortF.0, dec1 PortF.1, dec1 PortF.2, dec1 PortF.3, dec1 PortF.4, dec1 PortF.5, dec1 PortF.6, dec1 PortF.7]
pause 1000
goto Runaround

HenrikOlsson
- 10th January 2012, 06:15
Hi,

Weird, I can't seem to get the datasheet for that device at MCSP...
Anyway, are you sure it's not a RMW-issue? Try a pause between writing each bit or write the full port in one go. Or, even better, write to LATF instead of PORTF, that'll be unaffected by possible RMW-issues.

/Henrik.

Tobias
- 10th January 2012, 06:47
Try this link

http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en019698