Arjan M
Whatever you are, be a good one
Hallo CO'ers,
Ik ben voor een projectje thuis bezig met het proggen van een 18F2320 (althans, daar doe ik pogingen toe). Maar het wil niet echt lukken. Ik heb de topics van Fantomaz en willem.er al bij gepakt, maar het wil maar niet lukken.
Voor de 18F2320 heb ik het volgende uit de .LPB file uit de INC map van Proton
; [START OF CONFIGURATION BITS]
;
; The following is an assignment of address values for all of the
; configuration registers for the purpose of table reads and writes,
; and for programming configuration words.
CONFIG1H EQU H'300001'
CONFIG2L EQU H'300002'
CONFIG2H EQU H'300003'
CONFIG3H EQU H'300005'
CONFIG4L EQU H'300006'
CONFIG5L EQU H'300008'
CONFIG5H EQU H'300009'
CONFIG6L EQU H'30000A'
CONFIG6H EQU H'30000B'
CONFIG7L EQU H'30000C'
CONFIG7H EQU H'30000D'
;Configuration Byte 1H Options
IESO_ON_1 EQU H'FF' ; Internal External Oscillator Switch Over mode enabled
IESO_OFF_1 EQU H'7F' ; Internal External Oscillator Switch Over mode disabled
FSCMEN_ON_1 EQU H'FF' ; Fail Safe Clock Monitor enabled
FSCMEN_OFF_1 EQU H'BF' ; Fail Safe Clock Monitor disabled
RC_OSC_1 EQU H'FF' ; External RC on OSC1, OSC2 as Fosc/4
RCIO_OSC_1 EQU H'F7' ; External RC on OSC1, OSC2 as RA6
LP_OSC_1 EQU H'F0' ; LP Oscillator
XT_OSC_1 EQU H'F1' ; XT Oscillator
HS_OSC_1 EQU H'F2' ; HS Oscillator
HSPLL_OSC_1 EQU H'F6' ; HS + PLL
EC_OSC_1 EQU H'F4' ; External Clock on OSC1, OSC2 as Fosc/4
ECIO_OSC_1 EQU H'F5' ; External Clock on OSC1, OSC2 as RA6
INTIO1_OSC_1 EQU H'F9' ; Internal RC, OSC1 as RA7, OSC2 as Fosc/4
INTIO2_OSC_1 EQU H'F8' ; Internal RC, OSC1 as RA7, OSC2 as RA6
RCIO6_OSC_1 EQU H'F7' ; compatabilty - RCIO new - BD 9/27/02
ECIO6_OSC_1 EQU H'F5' ; compatabilty - ECIO new - BD 9/27/02
INTIO7_OSC_1 EQU H'F9' ; compatabilty - INTIO1 new - BD 9/27/02
INTIO67_OSC_1 EQU H'F8' ; compatabilty - INTIO2 new - BD 9/27/02
;Configuration Byte 2L Options
BORV_20_2 EQU H'FF' ; BOR Voltage - 2.0v
BORV_27_2 EQU H'FB' ; 2.7v
BORV_42_2 EQU H'F7' ; 4.2v
BORV_45_2 EQU H'F3' ; 4.5v
BOR_ON_2 EQU H'FF' ; Brown-Out Reset enabled
BOR_OFF_2 EQU H'FD' ; Brown-Out Reset disabled
PWRT_OFF_2 EQU H'FF' ; Power-Up Timer disabled
PWRT_ON_2 EQU H'FE' ; Power-Up Timer enabled
;Configuration Byte 2H Options
WDT_ON_2 EQU H'FF' ; Watch Dog Timer enabled
WDT_OFF_2 EQU H'FE' ; Watch Dog Timer disabled
WDTPS_32K_2 EQU H'FF' ; 1:32,768 WDT Postscaler ratio
WDTPS_16K_2 EQU H'FD' ; 1:16,384
WDTPS_8K_2 EQU H'FB' ; 1: 8,192
WDTPS_4K_2 EQU H'F9' ; 1: 4,096
WDTPS_2K_2 EQU H'F7' ; 1: 2,048
WDTPS_1K_2 EQU H'F5' ; 1: 1,024
WDTPS_512_2 EQU H'F3' ; 1: 512
WDTPS_256_2 EQU H'F1' ; 1: 256
WDTPS_128_2 EQU H'EF' ; 1: 128
WDTPS_64_2 EQU H'ED' ; 1: 64
WDTPS_32_2 EQU H'EB' ; 1: 32
WDTPS_16_2 EQU H'E9' ; 1: 16
WDTPS_8_2 EQU H'E7' ; 1: 8
WDTPS_4_2 EQU H'E5' ; 1: 4
WDTPS_2_2 EQU H'E3' ; 1: 2
WDTPS_1_2 EQU H'E1' ; 1: 1
;Configuration Byte 3L Options
MCLRE_ON_3 EQU H'FF' ; MCLR enabled, RE3 input disabled
MCLRE_OFF_3 EQU H'7F' ; MCLR disabled, RE3 input enabled
PBAD_ANA_3 EQU H'FF' ; PORTB<4:0> pins reset as analog pins
PBAD_DIG_3 EQU H'FD' ; PORTB<4:0> pins reset as digital pins incorrect bit was cleared - BD 5/30/2002
CCP2MX_ON_3 EQU H'FF' ; CCP2 pin function on RC1
CCP2MX_OFF_3 EQU H'FE' ; CCP2 pin function on RB3
CCP2MX_C1_3 EQU H'FF' ; CCP2 pin function on RC1 (alt defn)
CCP2MX_B3_3 EQU H'FE' ; CCP2 pin function on RB3 (alt defn)
;Configuration Byte 4L Options
DEBUG_ON_4 EQU H'7F' ; BacKground deBUGger enabled
DEBUG_OFF_4 EQU H'FF' ; BacKground deBUGger disabled
LVP_ON_4 EQU H'FF' ; Low Voltage Prgramming enabled
LVP_OFF_4 EQU H'FB' ; Low Voltage Prgramming disabled
STVR_ON_4 EQU H'FF' ; Stack over/underflow Reset enabled
STVR_OFF_4 EQU H'FE' ; Stack over/underflow Reset disabled
BKBUG_ON_4 EQU H'7F' ; compatabilty - DEBUG new - BD 9/27/02
BKBUG_OFF_4 EQU H'FF' ; compatabilty - DEBUG new - BD 9/27/02
;Configuration Byte 5L Options
; Protect program memory blocks from programmer reads and writes (see Config Byte 6L)
CP0_ON_5 EQU H'FE' ; Block 0 protected
CP0_OFF_5 EQU H'FF' ; Block 0 readable/ may be writable
CP1_ON_5 EQU H'FD' ; Block 1 protected
CP1_OFF_5 EQU H'FF' ; Block 1 readable/ may be writable
CP2_ON_5 EQU H'FB' ; Block 2 protected
CP2_OFF_5 EQU H'FF' ; Block 2 readable/ may be writable
CP3_ON_5 EQU H'F7' ; Block 3 protected
CP3_OFF_5 EQU H'FF' ; Block 3 readable/ may be writable
;Configuration Byte 5H Options
; Protect blocks from programmer reads and writes (see Config Byte 6H)
CPB_ON_5H EQU H'BF' ; Boot Block protected
CPB_OFF_5 EQU H'FF' ; Boot Block readable / may be writable
CPD_ON_5 EQU H'7F' ; Data EE memory protected
CPD_OFF_5 EQU H'FF' ; Data EE memory readable / may be writable
;Configuration Byte 6L Options
; Protect program memory blocks from table writes and programmer writes
WRT0_ON_6 EQU H'FE' ; Block 0 write protected
WRT0_OFF_6 EQU H'FF' ; Block 0 writable
WRT1_ON_6 EQU H'FD' ; Block 1 write protected
WRT1_OFF_6 EQU H'FF' ; Block 1 writable
WRT2_ON_6 EQU H'FB' ; Block 2 write protected
WRT2_OFF_6 EQU H'FF' ; Block 2 writable
WRT3_ON_6 EQU H'F7' ; Block 3 write protected
WRT3_OFF_6 EQU H'FF' ; Block 3 writable
;Configuration Byte 6H Options
; Protect blocks from table writes and programmer writes
WRTC_ON_6 EQU H'DF' ; Config registers write protected
WRTC_OFF_6 EQU H'FF' ; Config registers writable
WRTB_ON_6 EQU H'BF' ; Boot block write protected
WRTB_OFF_6 EQU H'FF' ; Boot block writable
WRTD_ON_6 EQU H'7F' ; Data EE write protected
WRTD_OFF_6 EQU H'FF' ; Data EE writable
;Configuration Byte 7L Options
; Protect program memory blocks from table reads executed from other blocks
EBTR0_ON_7 EQU H'FE' ; Block 0 protected
EBTR0_OFF_7 EQU H'FF' ; Block 0 readable
EBTR1_ON_7 EQU H'FD' ; Block 1 protected
EBTR1_OFF_7 EQU H'FF' ; Block 1 readable
EBTR2_ON_7 EQU H'FB' ; Block 2 protected
EBTR2_OFF_7 EQU H'FF' ; Block 2 readable
EBTR3_ON_7 EQU H'F7' ; Block 3 protected
EBTR3_OFF_7 EQU H'FF' ; Block 3 readable
;Configuration Byte 7H Options
; Protect block from table reads executed in other blocks
_EBTRB_ON_7H EQU H'BF' ; Boot block read protected
_EBTRB_OFF_7H EQU H'FF' ; Boot block readable
;=======================================================================
;
; Device ID registers
;
; The following is an assignment of address values for the Device ID
; registers for the purpose of table reads.
DEVID1 EQU H'3FFFFE'
DEVID2 EQU H'3FFFFF'
ifndef CONFIG_REQ
ifdef PLL@REQ ; Do we require the PLL ?
__CONFIG CONFIG1, HSPLL_OSC_1
else
__CONFIG CONFIG1H, HS_OSC_1
endif
__CONFIG CONFIG2L, BOR_ON_2 & BORV_20_2 & PWRT_ON_2
ifdef WATCHDOG_REQ
__CONFIG CONFIG2H, WDT_ON_2 & WDTPS_128_2
else
__CONFIG CONFIG2H, WDT_OFF_2 & WDTPS_128_2
endif
__CONFIG CONFIG3H, MCLRE_ON_3
ifdef DEBUG@REQ ; Do we require DEBUG ?
__CONFIG CONFIG4L, STVR_ON_4 & LVP_OFF_4 & DEBUG_ON_4
else
__CONFIG CONFIG4L, STVR_ON_4 & LVP_OFF_4 & DEBUG_OFF_4
endif
endif
LISTVoor mijn programma gebruik ik nu:
DEVICE 18F2320
@CONFIG_REQ
@__CONFIG CONFIG1H, HS_OSC_1 ;ik maak gebruik van de interne oscillator
@__CONFIG CONFIG2L, BOR_ON_2 & BORV_20_2 & PWRT_ON_2
@__CONFIG CONFIG2H, WDT_OFF_2
@__CONFIG CONFIG3H, MCLRE_OFF_3 & CCP2MX_ON_3
@__CONFIG CONFIG4L, LVP_OFF_4
ALL_DIGITAL TRUE
; 76543210
TRISB = %11101111 ; B4 als output
CLEAR
WHILE 1=1
HIGH PORTB.4
DELAYMS 5000
LOW PORTB.4
DELAYMS 1000
WEND
ENDIk programmeer met BumbleBee en krijg steeds helemaal op het eind van het proggen (dus tijdens het verifieren van de code op de uC) de melding:
Error:
Verify error at adress: 0x300000. Value in image is 0xFF and value in target is 0x00.Weet iemand misschien waar het fout gaat? (Fantomaz?)
hadv
Just find out what you like and let it kill you
Hmm..... op 0x300000 kun je niet schrijven volgens mij, de fuses beginnen op 0x300001 (staat ook keurig zo in je code). Ik zie ook nergens dat je probeert op 0x300000 te schrijven. Ik ken BumbleBee niet, wellicht dat daar iets mals gebeurt? Kun je die verification uitzetten en kijken of je schakeling dan goed werkt?
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
Arjan, ik weet zo niet waar het aan ligt (heb me er ook niet in verdiept eerlijk gezegd), maar probeer XWisp eens i.p.v. BumbleBee.
Waarschijnlijk niet de oorzaak, maar je kunt het nooit weten.
Proberen dus!
Arjan M
Whatever you are, be a good one
Ik ben het aan het proberen geweest met XWisp2 en heb alles volgens je gebruiksaanwijzing op picbasic uitgevoerd Frits. Ook heb ik firmware versie 1.11 in mn XWisp zitten. (Ik heb XWisp(2) nog nooit eerder gebruikt, alleen BumbleBee)
Als proef probeer ik alleen even een ledje te laten knipperen op een 648a. Als ik na het compilen in proton XWisp2 opstart krijg ik te zien:
xwisp2 version 1.9.2 for Windows <Dec 04 2006, Open Watcom C 1.50>
Command 'C:\DOCUME~1\ADMINI~1\Desktop\Dinges.HEX'unknown or not currently implemented.
xwisp2 failed after 0.07 seconds, rc36!
>>> Presse 'Enter' to continue:De .HEX file die door Proton aangemaakt wordt heb ik even op mn desktop laten zetten onder de naam 'Dinges' (zoals je boven kunt zien).
In Proton heb ik bij de 'optional command line parameters' (daar waar ik Proton aan de programmer koppel) gezet:
com7 go $hex-filename$ pause "Ready!"Met port 7 als de poort waar mijn USB to RS232 converter aan hangt.
Het gaat dus ergens niet goed. Wat doe ik fout?
Edit:
Op 9 juli 2008 00:18:05 schreef hadv:
Kun je die verification uitzetten en kijken of je schakeling dan goed werkt?
Met XWisp2 lag ik net weer even in de clinch, dus ik ben (tijdelijk?) weer even teruggegaan naar BumbleBee en heb zitten kijken of ik het verifiëren uit kon zetten.
Als ik die verificatie uitzet krijg ik mijn uC wel geprogrammeerd
maar hij draait/loopt echt heel erg langzaam. Het commando "DELAYMS 8" duurt bijna één seconde... BumbleBee gaat dus toch ergens de fout in met die fuses (denk ik..)
Ik zal dus toch even moeten proberen om XWisp2 bij mij aan de praat te krijgen... Maar dat wordt morgen gezien het tijdstip.
[Bericht gewijzigd door Arjan M op (25%)]
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
Niet XWisp2, maar XWisp gebruiken, samen met firmware V1.23 in een 16F648A, dan ben je up-to-date en alleen dan kunnen we zinnige antwoorden geven.
Download hier de nieuwste XWisp (V1.30)
www.picbasic.nl/instelling_xwisp.htm
Daar is ook HEX firmware V1.23 voor de PIC te downloaden
(moet je alleen wel een 16F648A in huis hebben, past niet in een 16F628A).
Het is ook wel handig even aan te geven in je code op welk xtal de pic moet werken.
XTAL = 8
;Set OSCCON to 8Mhz
OSCCON.6 = 1
OSCCON.5 = 1
OSCCON.4 = 1
Dit is voor een 18f2550, maar dat zal hetzelfde zijn voor de 2320.
Arjan M
Whatever you are, be a good one
Op 10 juli 2008 09:53:25 schreef Frits Kieftenbelt:
Niet XWisp2, maar XWisp gebruiken, samen met firmware V1.23 in een 16F648A, dan ben je up-to-date en alleen dan kunnen we zinnige antwoorden geven.Download hier de nieuwste XWisp (V1.30)
www.picbasic.nl/instelling_xwisp.htmDaar is ook HEX firmware V1.23 voor de PIC te downloaden
(moet je alleen wel een 16F648A in huis hebben, past niet in een 16F628A).
Oké Frits, ik heb een 16f648a met v1.23 in mn XWisp zitten en ik heb XWisp aan Proton gekoppeld:
Programmer's directory path
C:\Program Files\XWisp\xwisp.exe
Optional commandline parameters
com7 wait end target $target-device$ go $hex-filename$In de 'optional command line parameters' heb ik mijn compoort genoemd 'com7' waar mijn USB to serial converter aan zit en ik heb ipv "wait err", "wait end" neergezet (wat XWisp open/zichtbaar zou moeten houden totdat er een keer op <enter> gedrukt wordt...)
Als ik nu compile en de .hex via XWisp in mn uC wil flashen zie ik heel snel even een zwart schermpje van XWisp die vervolgens supersnel even wat tekst laat zien en dan direct weer afsluit (hij zou moeten blijven staan tot <enter>?!). Dit alles gebeurt zo snel dat ik echt niets van dat alles kan lezen, maar ergens gaat het niet goed want mn uC'tje wordt niet gebrand... Maar ik kan dus niet zien waar het niet goed gaat omdat XWisp niet open wil blijven...
-----------
Op 10 juli 2008 10:33:35 schreef BernardV:
Het is ook wel handig even aan te geven in je code op welk xtal de pic moet werken.XTAL = 8 ;Set OSCCON to 8Mhz OSCCON.6 = 1 OSCCON.5 = 1 OSCCON.4 = 1Dit is voor een 18f2550, maar dat zal hetzelfde zijn voor de 2320.
Ik ga het proberen zodra ik via XWisp een uC kan branden/flashen Bernard!
port 7 wait err target $target-device$ go $hex-filename$com7 werkt niet bij xwisp, daar is het gewoon een nummertje
Arjan, gebruik toch gewoon die PICkit2 zoals ik je zei
Werkt direct in Windows zonder vage DOS of Python commandline programma's 
Arjan M
Whatever you are, be a good one
Ha die Nack! Ja man, maar ik heb nu eenmaal die XWisp waar ik toch wel goed mee kan proggen duss... en voor deze zomervakantie zie ik nog even geen verandering 
Het werkt nu overigens 
[Bericht gewijzigd door Henry S. op (37%)]
Arjan M
Whatever you are, be a good one
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
Gaat nu goed dus, met BumbleBee of XWisp?
Wat XWisp betreft:
COM7 is ook niet goed, moet COM 7 zijn (spatie ertussen).
Met PORT stel je de baudrate in (bv. PORT 19200)
Arjan M
Whatever you are, be a good one
Toch nog met BumbleBee Frits... Ik heb de nieuwe versie van BumbleBee gedownload (die ene die werkt met .Net) en ik laat BumbleBee niet meer de code in de pic verifiëren.
Ik zal je raad nog even uitproberen mbt XWisp, het zou wel handig zijn als ik dat programma alsnog werkend krijg...
Edit:
Ik heb COM 7 uitgeprobeerd als:
COM 7 wait end target $target-device$ go $hex-filename$Ook heb ik geprobeerd:
COM 7 wait end PORT 19200 target $target-device$ go $hex-filename$Allebei krijgen ze mn 16F648a niet geprogd...
Iedereen bedankt voor de tips ed! BumbleBee werkt nu prima voor mij, ik kan er de pics mee proggen die ik gebruik; dus daar houdt ik het maar even bij. Er staat het een en ander aan projecten bij mij op het programma om uit te voeren en ik vind het zonde om nog meer tijd te besteden aan het werkend krijgen van een programma dat ik (nu) niet nodig heb. Misschien kijk ik er in de toekomst nog wel een x naar, maar voor nu doet BumbleBee voor mij wat ik wil 
[Bericht gewijzigd door Henry S. op (12%)]
Op 11 juli 2008 21:34:15 schreef Frits Kieftenbelt:
COM7 is ook niet goed, moet COM 7 zijn (spatie ertussen).
Met PORT stel je de baudrate in (bv. PORT 19200)
Volgens de command list van xwisp is het gewoon PORT
PORT P : use serial port pOok voor de baudrate wordt het inderdaad gebruikt:
PORT b : use active baudrate bZal wel gekeken worden naar de grootte van het getal.
Een comport van 115200 is een beetje hoog en een baudrate van 7 is wel erg laag 
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 18 juli 2008 22:37:21 schreef BernardV:
Volgens de command list van xwisp is het gewoon PORT
er zijn een boel mogelijkheden, maar "com 7" is iig fout. goed is:
COM7
PORT COM7
PORT 7
Bij PORT met daarachter een getal wordt bij een klein getal aangenomen dat het een poort nummer is, bij een groot getqal (ik dacht >100) wordt aangenomen dat het de baudrate is.
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
Ik zal de spatie weghalen uit de beschrijving op picbasic.nl (ikzelf gebruik COM nooit).
Meestal is opgave niet eens nodig en kun je PORT en/of COM gewoon weglaten.
Het ziet ernaar uit dat alles nu werkt zoals ik het zou willen.