Hallo allemaal
Aangezien ik alleen nog maar gebruik maakte van de pic16f648a heb ik nu een probleem.
Ik wil namelijk de pic16F877a gebruiken maar ik krijg deze niet aan de praat.
Ik gebruik proton IDE en de galva-wisp.
Het programmeren van de chip lukt maar zelfs een toggle uitvoeren op een uitgang lukt niet.
Ik heb een vermoeden dat het probleem bij de fuse instellingen zit.
Geen flauw idee hoe die instellingen moeten zijn, ik wil gebruik maken van het intern kristal (zijn er 2 of 3 geloof ik)
heb zelfs de manual van deze pic gedownload maar daar de fuse-instellingen uit afleiden is chinees voor mij
(zal waarschijnlijk wel een logica achter zitten)
Ik hoor het wel 
benleentje
Golden Member
ik wil gebruik maken van het intern kristal (zijn er 2 of 3 geloof ik)
Heel precies gezegd zijn het 0. Zonder een extern kristal, RC netwerk, resonator of andere externe klokpuls zal de chip niet willen werken.
IN proton hoef je enkel maar HS_osc in je config op te geven en verderop
je aantal Mhz kenbaar te maken. Dat laatste mag je even zelf opzoeken in de proton manual.
Electronick
In theory there's no diffrence between theory and practice, in practice there is!
Mocht je een voorbeeld willen hebben hoe het zou moeten kunnen werken:
;============================================================================
; NICK RONGEN
; ELECTRONICKS.NL
; MASTER_TEST_PRINT.BAS
; 11 MAART 2009
; KONINGSLUST
;
; Klok bestaat uit 4 cijfers met elk 17 segmenten.
;
; Segmenten:
; 01 | 02 | 03
; 04 | | 05
; 06 | | 07
; 08 | 09 | 10
; 11 | | 12
; 13 | | 14
; 15 | 16 | 17
;
;
; MCLR 01 o|-----------|o 40 RB7 ->> Programmeerapp
;segment17 RA0 02 o| |o 39 RB6 ->> Programmeerapp
;segment16 RA1 03 o| |o 38 RB5 Knop1
;segment15 RA2 04 o| P |o 37 RB4 Knop2
;segment14 RA3 05 o| I |o 36 RB3 Knop3
;segment13 RA4 06 o| C |o 35 RB2 Knop4
;segment12 RA5 07 o| 1 |o 34 RB1 Knop5
;segment11 RE0 08 o| 6 |o 33 RB0 INT vanaf de DS1307
;segment10 RE1 09 o| F |o 32 VDD
;segment09 RE2 10 o| 8 |o 31 VSS
; VDD 11 o| 7 |o 30 RD7 Positie4
; VSS 12 o| 7 |o 29 RD6 Positie3
; OSC OSC 13 o| |o 28 RD5 Positie2
; OSC OSC 14 o| |o 27 RD4 Positie1
;segment08 RC0 15 o| |o 26 RC7 Dubbelepunt
;segment07 RC1 16 o| |o 25 RC6 Zoemer
;segment06 RC2 17 o| |o 24 RC5 segment01
; I2C / SCL 18 o| |o 23 I2C / SDA
;segment05 RD0 19 o| |o 22 RD3 segment02
;segment04 RD1 20 o|-----------|o 21 RD2 segment03
;
; 31 I/O points
;USE RA4 with external Pull up.
Device 16F877A ;Een 16F877 type
Config HS_OSC, CP_OFF, WDT_OFF, PWRTE_ON, LVP_OFF, BODEN_OFF, DEBUG_OFF
ALL_DIGITAL TRUE
XTAL 20
HSERIAL_BAUD = 9600 ' baud rate is 19200
HSERIAL_RCSTA = %10010000 ' laat de USART voortdurend ontvangen
HSERIAL_TXSTA = %00100000 ' zorgt dat de USART kan verzenden
HSERIAL_CLEAR = On
CLEAR
PORTA = 0
PORTB = 0
PORTD = 0
PORTE = 0
; 76543210
TRISA = %00000000
TRISB = %00000000
TRISD = %00000000
TRISE = %00000000
symbol SCL = PORTC.3
Symbol SDA = portc.4
Symbol Lamp1 = PORTD.0
Symbol Lamp2 = PORTD.1
Symbol Lamp3 = PORTD.2
Dim ontvangen as byte
dim send_byte as float
high lamp1
delayms 500
high lamp2
delayms 500
high lamp3
delayms 500
send_byte = 55.1
HRSOut "Test Programma Nick op 3 april 2010"
main:
While 1=1
Clear ontvangen 'zorg dat er niets in de variabele staat
ontvangen = HRSin, {2000, main}
If ontvangen = "n" then
Clear ontvangen 'zorg dat er niets in de variabele staat
ontvangen = HRSin, {2000, main}
if ontvangen = "1" then toggle lamp1
if ontvangen = "2" then toggle lamp2
if ontvangen = "3" then toggle lamp3
if ontvangen = "5" then HRSout send_byte
if ontvangen = "m" then
Clear ontvangen
ontvangen = HRSin, {2000, main}
If ontvangen = "d" then high Lamp2
If ontvangen = "e" then low lamp2
end if
goto main
endif
Clear ontvangen 'zorg dat er niets in de variabele staat
ontvangen = HRSin, {2000, main}
wend
end
Dit is gewoon een voorbeeld van een PIC16F877A welke op deze manier een aantal lampen aan en uit zet over RS232. Maar de configuratie fuses kun je er wel uit halen.
Ik heb ook een kristal gebruikt. Naar mijn mening had deze geen interrn kristal maar dat weet ik niet meer 100% zeker.
ale vooruit, ik heb een kristal aangesloten op pen 13 en 14 en ook 2 condensators van 22pf geplaatst (zoals in cursus)
CONFIG WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF, HS_OSC
XTAL 4
maar nog steeds geen leven in dat beest
heb voor de zekerheid een andere pic genomen, ook noppes !
ElecM
aka m.devriesjr
en je MCLR pin is 5V?
Heb je een scoop ?? Dan kun je kijken of er een klokpuls aanwezig is..
[Bericht gewijzigd door ElecM op (64%)]
reddevil
Veel te weinig tijd voor mijn projecten of heb ik er soms te veel? Laatste Project = = > Router lift
DEVICE 16F877A
ALL_DIGITAL TRUE
XTAL 4
PORTA = %00000000
PORTB = %00000000
PORTC = %00000000
PORTD = %00000000
PORTE = %000
TRISA = %00000000
TRISB = %00000000
TRISC = %00000000
TRISD = %00000000
TRISE = %000
test:
PORTC.0 = 1
DELAYMS 500
PORTC.0 = 0
DELAYMS 500
GOTO test
END
Ledje pinkt op poort C 0.
mclr met weerstand van 33k aan + verbonden...nog steeds niets
heb het testprogramma van reddevil eens gebruikt en...het HET WERK
nu nog even uitvissen wat IK fout gedaan heb (hum)
THANKS GUYS !!!!
Is toch die weerstand naar mclr geweest die ik niet geplaatst had, je moet maar weten dat die er moet staan.
mijn testprog werkt ook
nogmaals bedankt guys !
[Bericht gewijzigd door Henry S. op (29%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
De setup ook eens goed doorkijken. De gebruikte MCLRE_OFF config bestaat helemaal niet bij een 877a.
marcob
Honourable Member
People tend to overestimate what can be done in one year and to underestimate what can be done in five or ten years
Ik gebruik altijd de FuseConfigurator, simpel en je weet wat je instelt:
http://wiki.picbasic.org/index.php?n=Plugins.FuseConfigurator