Red-E
Gr. Red-E || There are only 10 types of people in the world. Those who understand binary, and those who don't ||
beste OC'ers,
Ik heb een WISP628 en wil een PIC12F675 programmeren.
nu heb ik het extra circuit dat op het ons allen bekende PICbasic.nl staat gebouwd.
naar dat ik dit circuit net gebouwt heb blijf ik problemen houden met het programmeren van de chip.
de Error die nogsteeds optreed is: ERROR: Error sending command: W.
- ik heb al een aantal verschillende PIC16F675's geprobeerd met allemaal het zelfde resultaat.
- voeding is 100% stabiel +5V, nagekeken met de scoop.
- gesoldeerde schakeling (hieronder het plaatje) na gekeken, kan geen fout vinden...
de software die in mijn WISP628 zit is v1.11.
ik hoop dat er iemand is die mij zou kunnen helpen.
alvast bedankt!
plaatje!:
[edit]:
verkeerde type PIC in titel en in uitleg.
in uitleg verandert in titel niet!
timmie
niet met me uitspraken(of opmerkingen) eens mail me.K8048 guide
Red-E
Gr. Red-E || There are only 10 types of people in the world. Those who understand binary, and those who don't ||
kan wel identifienen.... hij herkent de progger wel en progt ook wel, maar net op het laatste moment geeft hij de error
:S
[edit]
de chip kan ik ook gewoon identifien... communicatie met PC lijkt dus inorde
[Bericht gewijzigd door Red-E op (26%)]
Red-E
Gr. Red-E || There are only 10 types of people in the world. Those who understand binary, and those who don't ||
inmiddels aan de gang gegaan met het hulpprogramma voor XWISP2 van picbasic. nu kan ik d ePC wel programmeren, geen errors in ieder geval.
alleen lijkt de code die ik heb geschreven niet te werken, wil enkel een ledje laten branken om even te testen of alles ook echt werkt.
kan iemand even een kijkje nemen en kijken of de INIT goed is?
volgende code heb ik geproduceerd:
list p=12F675
#include "P12F675.INC"
__CONFIG _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
errorlevel -302
ORG 0x00 ; START POSITIE VAN PIC12F675 PROGRAMMA.
; *********** INITIALISEER DE POORTEN *************
INIT BCF STATUS,RP0 ;Bank 0
CLRF GPIO ;Init GPIO
MOVLW 0x07 ;Set GP<2:0> to
MOVWF CMCON ;digital IO
BSF STATUS,RP0 ;Bank 1
CLRF ANSEL ;Digital I/O
MOVLW 0x0C ;Set GP<3:2> as inputs
MOVWF TRISIO ;and set GP<5:4,1:0> as outputs
CALL 3FFh ;Get the cal value
MOVWF OSCCAL ;Calibrate
BCF STATUS, RP0 ;Bank 0
MAIN movlw 0xff
movwf GPIO
goto MAIN
END
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
BumbleBee heeft vaak problemen met de 12Fxxx PIC's.
Gebruik XWisp2, of (sinds kort) nog beter: XWisp.
Deze is vernieuwd (geen gedoe met Python meer).
Red-E
Gr. Red-E || There are only 10 types of people in the world. Those who understand binary, and those who don't ||
he frits,
zoals je misschien in mijn vorige post gelezen hebt ben ik aan de gang gegaan met het hulpprogramma voor XWISP2, kan het programma wel inladen, maar vervolgens gebeurt er nog helemaal niets...
kun jij dit verklaren?
en hoe run ik xwisp vanuit MPLAB?
geloof dat xwisp alleen werkt met proton toch?
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
XWisp werkt ook zonder Proton, maar voor meer info moet je even kijken op de site van Voti.
Heb je de 12F675 al eens met PIC Basic LITE geprobeerd of ie het dan wel doet?
Red-E
Gr. Red-E || There are only 10 types of people in the world. Those who understand binary, and those who don't ||
uhm... nee geen pic basic gebruikt,
kan ik namelijk niet.. ik schrijf mijn code altijd in ASM...
maar code is goed? kan namelijk de code wel in laden inmiddels (met XWSIP2), maar chip doet dan nogsteeds niets 
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
Ik zie geen delay lus in je assemblercode, volgens mij brandt je LED zo heel snel zoals je de code nu hebt, maar ik ben niet zo'n held in ASM.
Waar staat je vertragins-lus?
Als je met Bumblebee een 'Erase' hebt uitgevoerd, worden ook de OSCCAL bits die aan het eind van het programma geheugen staan (3FFh) gewist. Ik zie dat je gebruik maakt van deze bits en daarom haakt het programma af.
Je doet een CALL naar 3FFh en daar hoort een RETLW te staan die er niet meer is. Probeer even zonder calibratie en kijk of het dan werkt. Met XWISP kun je deze bits weer terugzetten.
Red-E
Gr. Red-E || There are only 10 types of people in the world. Those who understand binary, and those who don't ||
@Carel M. in de datasheet van de 12F675 staat het volgende:
EXAMPLE 9-1: CALIBRATING THE INTERNAL OSCILLATOR
bsf STATUS, RP0 ;Bank 1
call 3FFh ;Get the cal value
movwf OSCCAL ;Calibrate
bcf STATUS, RP0 ;Bank 0
klopt dit dan niet?
heb nogsteeds problemen met het programmeren van de PIC 
ga XWISP maar eens proberen.
waarom leverd deze PIC zoveel problemen op icm een (Galva-)WISP(628)??
@Frits: hoe krijg ik XWISP aan de praat zonder python? lukt voor geen meter 
picsels
Volgend project: 7-seg gaming displays; dan dec-1982 labvoeding afmaken, dan funcgen met ad9833 afmaken, dan...
Gebruik je xwisp2w.exe?
Dit is in elk geval een versie waar je Python niet voor nodig hebt.
Op welke pen zit je LEDje?
En om te testen 'of alles het doet' is de 'blink-a-led' van voti ook wel een handig vertrekpunt.
[Bericht gewijzigd door picsels op (39%)]
Red-E
Gr. Red-E || There are only 10 types of people in the world. Those who understand binary, and those who don't ||
heb het voor elkaar om een led op de chip te laten branden (pin 4).
volgende probleem: schakeling staat op een breadbord.
als ik de ijzeren onderplaat aanraak met mn vinger gaat de led branden.
zodra ik mn vinger weer van die plaat haal gaat hij uit!
beetje vreemd of niet??
bij het 'blink-a-led' programma van voti heb ik dit probleem niet 
[Bericht gewijzigd door Red-E op (11%)]
Jawel, dat voorbeeld is goed.
Maar je wil iets ophalen op locatie 3FFh (de fabrieksmatig aangebrachte calibratie bits) die door de "Erase" instructie van Bumblebee weggepoetst zijn. Jou programma doet dus een call naar 3FFh waar hoort te staan RETLW [cal.waarde] en die is verdwenen, dus gaat het vanaf daar fout. Bumblebee doet dat dus niet goed, het poetst alles schoon, ook die bits.
Ik lees altijd eerst even de inhoud van een nieuwe 12F629 en schrijf die bits met potlood onderop de chip voor het geval er onverhoopt iets misgaat. Mocht je een tweede exemplaar hebben (liefst uit dezelfde productielijn) dan kun je daarvan de bits bekijken en die handmatig terugzetten in de andere chip. In mijn laatste PIC stond: 34 54
Red-E
Gr. Red-E || There are only 10 types of people in the world. Those who understand binary, and those who don't ||
@Carel M.
zou je misschien een voorbeeld kunnen mailen of eventueel hier iets plaatsen waar alles al goed in staat?
zou me eennorm helpen! 
[Bericht gewijzigd door Red-E op (14%)]
Ik heb zo'n lege chip even ingelezen Erwin. Hier zie je een schermafbeelding van Bumblebee waarin de bewuste bits rood omcirkeld zijn.
http://www.uploadarchief.net/files/download/osccalbits_12f629.png
Red-E
Gr. Red-E || There are only 10 types of people in the world. Those who understand binary, and those who don't ||
heb het zelfde gedaan en op die plaats staat bij mij FF 3F, dit is de huidige chip.
bij een 100% nieuwe chip staat er op die plaats het volgende: 34 34
wat moet ik hier nu mee doen??
als ik zeg RETLW krijg ik een waarschuwing van MPLab en krijg een error sending command:w in bumblebee.
heb jij niet een voorbeeld hoe jij het gedaan hebt Carel?
[Bericht gewijzigd door Red-E op (16%)]
Ik weet even niet wat je aan het doen bent Erwin. Je hoeft niets te doen met RETLW instructies. Ik denk dat je nog niet begrijpt wat er mis is. Klopt dat?
Red-E
Gr. Red-E || There are only 10 types of people in the world. Those who understand binary, and those who don't ||
ja, dat klopt... ik snap niet helemaal wat ik met die waarde moet die in bumblebee opduikt.
tevens begrijp ik niet waarom het niet werkt als ik zeg CALL 3FFh...
hoe krijg ik de juiste calibratie waarde weer in op die plaats en hoe krijg ik mijn programma aan de praat?
en waarom doet 'blink-a-led'van voti het wel en mijn programma helemaal niets?
(behalve iets raars als ik mn vinger op mn breadbord leg)
ik snap niet wat ik nu moet veranderen en wat ik fout doen...
[Bericht gewijzigd door Red-E op (17%)]
Je maakt gebruik van de interne RC oscillator in de PIC. Die kan je ijken (maar dat hoeft niet als het niet nodig is) door in het OSCCAL register het ijkgetal dat bij die chip hoort weg te schrijven.
Dat doe je met MOVWF OSCCAL, maar je moet eerst dat ijkgetal ergens ophalen. Dat getal staat aan het eind van het programma geheugen en is tijdens het productieproces bepaald. Door nu een CALL 3FFh te geven wordt vanaf 3FFh het ijkgetal geretourneerd naar het W-register d.m.v. de RETLW die op 3FFh staat. Dat is alles.
In jouw programma wordt wel een CALL instructie gegeven, maar er komt niets meer terug en waarschijnlijk staat er nog steeds de waarde 0x0C in het W-registor van een paar regels hoger. Daar snapt de oscillator niets van denk ik en vermoedelijk loopt hij niet eens meer. Daarom doet jouw schakeling vreemd. Haal die twee regels eens uit de code en probeer het opnieuw.
Je kunt die twee bits handmatig terugzetten maar niet met Bumblebee dacht ik. Toen ik onlangs hetzelfde meemaakte heb ik dat gedaan met Xwisp, die heeft daarvoor een apart commando: "xwisp erase patch 03ff:xxxx put" waarbij de xxxx de benodigde bits zijn. In mijn geval stond daar 03FF:3454
Red-E
Gr. Red-E || There are only 10 types of people in the world. Those who understand binary, and those who don't ||
thx carel, via XWISP mn calibratie waarde terug kunnen zetten 
programma werkt nog niet maar dat komt hoop ik nog 
LED gaat wel branden (eigen programma, dus niet blink-a-led!)maar geen knipper-effect.
code is inmiddels als volgt:
list p=12f675
#include "p12F675.inc"
__CONFIG _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT
errorlevel -302
; ***** DEFINES *****
; ***** EQUATES *****
TELLER EQU 0x20
TELLER2 EQU 0x21
; *********** INITIALISEER DE POORTEN *************
INIT BSF STATUS, RP0 ;Bank 1
;CALL 3FFh ;Get the cal value
;MOVWF OSCCAL ;Calibrate
CLRF ANSEL ;Digital I/O
MOVLW 0x0C ;Set GP<3:2> as inputs
MOVWF TRISIO ;and set GP<5:4,1:0> as outputs
BCF STATUS,RP0 ;Bank 0
CLRF GPIO ;Init GPIO
MOVLW 0x07 ;Set GP<2:0> to
MOVWF CMCON ;digital IO
MOVLW 0xFF
MOVWF TELLER
MOVWF TELLER2
; ********** MAIN *************
MAIN BSF GPIO,4
CALL DELAY
call DELAY
BCF GPIO,4
CALL DELAY
call DELAY
GOTO MAIN
DELAY DECFSZ TELLER,1
GOTO DELAY
LB1 DECFSZ TELLER2,1
GOTO LB1
MOVLW 0xFF
MOVWF TELLER
MOVWF TELLER2
RETURN
END
ik weet niet waarom het programma niet werkt 
is het configword wel goed? maak gebruik van interne MCLR.
nog iemand tips of weet iemand wat ik verder fout doe??
timmie
niet met me uitspraken(of opmerkingen) eens mail me.K8048 guide
de term interne mclr ken ik niet maar ik weet wel dat er ergens een berichtje van MC is dat je beter niet de mclr_off moet gebruiken als je de interne oscilater gebruikt
Red-E
Gr. Red-E || There are only 10 types of people in the world. Those who understand binary, and those who don't ||
mijn beste heren,
alle problemen zijn eindelijk opgelost!
:D
voortaan als ik een delay maak maar een iets langer delay maken
was nu wel erg kort!
maar iedereen heel erg bedankt! vooral Carel M.!
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
Op 20 december 2007 22:19:39 schreef Frits Kieftenbelt:
Ik zie geen delay lus in je assemblercode, volgens mij brandt je LED zo heel snel zoals je de code nu hebt, maar ik ben niet zo'n held in ASM.Waar staat je vertragins-lus?
Had ik je daar al niet op gewezen????