Bootloader Test Programma

Hieronder het test programma wat sinds Dec 2013 voorgeprogrameerd met de 18F25K20, 18F25K22 en 16F877A meegeleverd wordt.
Hiermee kun je testen of de serieele poort communicatie werkt voor dat je met de bootloader gaat werken..

Zodra je de PIC aanzet zal uitgang A5 (D1 voor 16F877A) in een 2 seconden tempo knipperen.

Tevens zal via Tx data uitgestuurd worden.
Het regeltje “PIC ontvangt geen Data ” zal om de 2 seconden verstuurd worden (9600 baudrate)
Als je via Rx een getalletje naar de PIC stuurt zal de PIC antwoorden met “Data Ontvangen: ” gevolgd door het ontvangen getal.
Als je “34” als getal stuurt zal de PIC “PIC 18F25K22 bootloader test programma” terugsturen.

Een en ander kun je testen met de COM poort tester

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
'****************************************************************
'*  Name    : 28PIC-KnipperA5-Serial-port-test.BAS              *
'*  Author  : Knutselaar.eu                                     *
'*  Date    : 14/11/2013                                        *
'*  Version : xxx                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************

Device 18F25K22

;Config settingen zitter reeds in het bootloader programma.
;Onderstaand hoe deze settingen ingesteld zijn.
     ;config FOSC = INTIO67              ;interne oscillator A6, A7 poortfuntie
     ;config PLLCFG = OFF                ;Oscillator used directly  
     ;config FCMEN = OFF                    ;Fail-Safe Clock Monitor disabled
     ;config IESO = OFF                  ;internal external switchover mode
     ;config PWRTEN = On                    ;power-up timer  (18F25K22)
     ;config BOREN = On                  ;brown-out reset
     ;config BORV = 285                  ;brown-out reset value (2,85V) (18F25K22)
     ;config WDTEN = OFF                    ;watchdog timer
     ;config WDTPS = 128                    ;1:128 WDT prescalar
     ;config PBADEN = OFF                ;analog port B<4:0>
     ;config STVREN = On                    ;;stack overflow reset
     ;config LVP = OFF                   ;low voltage programming
     ;config XINST = OFF                    ;Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
     ;config Debug = OFF                    ;no debug
     ;config CCP2MX = PORTB3             ;CCP2 input/output is multiplexed with RB3
 

XTAL = 8

OSCCON = %01100110  ;8 mhz,int-osc
TRISA = %11011111   ;A5 output
ANSELA = %00000000  ;Port A Digital
ANSELC = %00000000  ;Port C Digital

    Declare HSERIAL_BAUD  = 9600          ;Transmissiesnelheid van de data over de bus
    Declare HSERIAL_RCSTA = %10010000     ;Bit7:Enable serial port / Bit4:Continu ontvangen
    Declare HSERIAL_TXSTA = %00100000     ;Bit5:Transmitpin ingeschakeld (TXEN (Transmit ENable) = 1)
    Declare HSERIAL_CLEAR On

Dim commStart As Byte
Symbol LED         = PORTA.5


loop:

    HSerIn 2000 , Timeout , [Dec commStart] 'Hier luistert de PIC gedurende 2 seconden of er data binnenkomt.
                                            'Er wordt geluisterd naar getallen (gestuurd in string (DEC) formaat b.v. "34") (commStart)
   
    If commStart = 34 Then
        HSerOut ["PIC 18F25K22 bootloader test programma",13]
    Else                                                    
        HSerOut ["Data Ontvangen: ",Dec commStart ,13]
    End If
       
    GoTo skipTimeout

    Timeout:                                'Na 2 seconden geen data gaat het naar "Timeout"
   
    HSerOut ["PIC ontvangt geen Data  ",13]
   
    skipTimeout:
   
    Toggle LED

    GoTo loop

End