Avatar billede somaliomar Praktikant
21. september 2002 - 16:32 Der er 31 kommentarer og
2 løsninger

Krystal, der ikke svinger?

Jeg har en simpel konstruktion bestående af en PIC-kreds:

http://www.geocities.com/mynamesdk/pic.gif

PIC-kredsen har jeg programmeret til at sætte nogle af benene til at være høje. Jeg bruger Microchips udviklingsmiljø MPLAB. Programmet kører som det skal når jeg simulerer i MPLAB. Mit program ser sådan ud:

    processor 18f258
    #include "p18f258.inc" ; Inkl. headerfil

    org 0x00          ; Reset vektor
    goto Start


Start
    clrf PORTA        ; Initialiser PORTA
    clrf LATA
    clrf TRISA        ; Sæt alle PORTA-ben output

    clrf PORTB        ; Initialiser PORTB
    clrf LATB
    clrf TRISB        ; Sæt alle PORTB-ben output

    clrf PORTC        ; Initialiser PORTC
    clrf LATC
    clrf TRISC        ; Sæt alle PORTC-ben output

    movlw 0xFF        ; Sæt alle output ben
    movwf PORTA      ; til høj

    movlw b'1011111'  ; Sæt RB0-RB4 og RB6
    movwf PORTB      ; til høj

    movlw b'1110'    ; Sæt RB1-3 til høj
    movwf PORTC
Repeat
    goto Repeat

    end

Men når jeg brænder processoren med overstående program og sætter den i en prøveboard, er det alle ben, der er høje. Når jeg måler på krystal-benene OSC1 og OSC2, sker der intet. Jeg har prøvet at sætte andre krystaller med højere og lavere frekvens end 16MHz, men med samme resultat. Jeg har også prøvet at udskifte de to kondensatorer.

Nogle der ved, hvad der går galt her? PIC-kredsens datablad kan findes på http://www.microchip.com/1010/pline/picmicro/category/perictrl/14kbytes/devices/18f258/
Avatar billede scb Praktikant
21. september 2002 - 19:20 #1
Hvad måler du med oscillatoren med ?
Kan det du måler med måle 16 MHz ?
-SCB
Avatar billede scb Praktikant
21. september 2002 - 19:23 #2
Kredsen har sansynligvis et reset ben, som skal forbindes til et reset kredsløb (kondensator og modstand), hvis der er interupt indgange skal disse normalt lægges til +5V gennem en modstand, hvis du ikke bruger interupt funktionen.
-SCB
Avatar billede scb Praktikant
21. september 2002 - 19:24 #3
PS: Linket til dit diagram virker ikke
SCB
Avatar billede somaliomar Praktikant
21. september 2002 - 20:22 #4
Jeg bruger et oscilloscop til at måle på benene. Jeg er sikker på, at oscilloscopet kan kan måle de 16MHz. Desuden ligger de to eksterne interrupt-ben med hver deres pull-up modstand til 5V.

Prøve at indsætte linket manuelt på adresselinjen på et nyt Explorer-vindue. Det skulle gerne hjælpe!
Avatar billede doctor6000 Nybegynder
21. september 2002 - 20:29 #5
kan det ikke være stel forbindelsen på kredsen der har snyt dig og u derved har lavet en målefejl fordi hele kredsen svæver på forsyningen og du måler til en stelpunkt.
Avatar billede somaliomar Praktikant
21. september 2002 - 20:31 #6
Nej, det tror jeg ikke. Jeg har prøvet, at køre en RC-oscillator og det virker!
Avatar billede somaliomar Praktikant
21. september 2002 - 20:33 #7
RC-oscillatoren er bare for langsom i forhold til en krystal på 16MHz. Og det konstruktion, jeg er ved at udvikle kræver en hurtig processor.
Avatar billede doctor6000 Nybegynder
21. september 2002 - 20:35 #8
okay bare for nysgerrighedens skyld, kan jeg se der er CAN på dyret skal du bruge det til noget ???
Avatar billede somaliomar Praktikant
21. september 2002 - 20:35 #9
Jep
Avatar billede somaliomar Praktikant
21. september 2002 - 20:36 #10
Processoren skal kunne kommunikere med et andet PIC-processor af samme type.
Avatar billede doctor6000 Nybegynder
21. september 2002 - 20:38 #11
har du været afsnittet igennem med osc i databladet ???
Avatar billede somaliomar Praktikant
21. september 2002 - 20:39 #12
Mange gange!
Avatar billede doctor6000 Nybegynder
21. september 2002 - 20:48 #13
ja tænkte jeg nok.
hvad fanden kan det så være er der ikke noget i det program der skal fortælle den om den kører turbo eller lignende ligesom senix eller andre.
er der intern rc i kredsen eller kan den kun kører med en extern clock
kender da lidt til 16x84 og 12c5xx men ved ikke om den kreds du arbejder med har de samme egenskaber.
:-)
Avatar billede doctor6000 Nybegynder
21. september 2002 - 20:50 #14
har ikke flere ideer men skriv lige når du finder fejlen vil da gerne vide det
:)
Avatar billede somaliomar Praktikant
21. september 2002 - 21:00 #15
Der er en intern RC i kredsen. Det kan man fravælge, når man programmere processoren.

Denne fejl har jeg ledt efter i over en uge! Det er derfor, jeg skriver om problemet her. Jeg håbede, at der var nogle herinde, der måske havde haft et lign. problem.

PS. Jeg har engang lavet en konstruktion, hvor jeg skulle programmere en 16F84. Der havde jeg ikke oplevet det problem!
Avatar billede doctor6000 Nybegynder
21. september 2002 - 21:11 #16
nej den har heller ikk intern RC men det kan drille sådanne noget shit. jeg har 2 stk PS2 Liggende på mit gulv hvor jeg også lige har programeret Boots til men det er også noget shit. :-(
(atom elektronik = når gulvet er belagt med plastic og elektronik skrammel)
Avatar billede somaliomar Praktikant
21. september 2002 - 21:13 #17
Hvad er det der ikke har intern RC?
Avatar billede doctor6000 Nybegynder
21. september 2002 - 21:24 #18
16f84
Avatar billede somaliomar Praktikant
21. september 2002 - 21:34 #19
Programmere du Bootchip til PS2?
Avatar billede doctor6000 Nybegynder
21. september 2002 - 22:23 #20
jeps
Avatar billede somaliomar Praktikant
21. september 2002 - 22:26 #21
Hvordan er det egentlig man gør? Laver du selv programmet eller kan man hente en hex-fil på nettet?
Avatar billede doctor6000 Nybegynder
21. september 2002 - 22:35 #22
kan hentes på nettet :-)
så er det bare at lodde SMD
Avatar billede scb Praktikant
22. september 2002 - 09:52 #23
Det er sansynligvis en programfejl, du skal fortælle kredesen ved at sætte de rigtige bit i registeret for oscilatoren, hvordan den skal køre, og så vidt jeg kan se er der flere registere, med mange muligheder, man kan bl.a vælge at koble oscilatoren ud og så kører den på en af interupt indgangene.
Jeg udvikler normalt på motorola 68HC11 og kender derfor ikke din kreds specielt godt.
-SCB
Avatar billede somaliomar Praktikant
22. september 2002 - 09:54 #24
Jeg har prøvet alle muligheder for konfigurationen af oscillatoren. Intet af det virker!
Avatar billede scb Praktikant
22. september 2002 - 10:05 #25
Der er et register som hedder CONFIG1 på adresse 300001h hvis du ikke programmerer dette register vil kredsen starte op og forvente at det er en RC oscillator.
Så vidt jeg kan se skal der stå 00100010 i registeret for oscillator af typen HS som er highspeed extern krystal.
Hvor i dit program sætter du dette register ?
-SCB
Avatar billede somaliomar Praktikant
22. september 2002 - 10:09 #26
Det gør jeg, når jeg programmerer kredsen. Brændersoftwaren sætter registeret op for mig, når jeg vælger, hvilken oscillatorkonfiguration jeg vil bruge.
Avatar billede scb Praktikant
22. september 2002 - 10:15 #27
Hvis du så sætter en RC oscillator på en kreds som du har brændt til krystal oscillator, kører den så ?
Hvis den gør, må det være fordi config1 ikke bliver ændret, da det som standard står til RC osc.
-SCB
Avatar billede somaliomar Praktikant
22. september 2002 - 10:17 #28
Det har jeg ikke prøvet endnu. Jeg kan desværre prøve før i morgen. Hvad tror du fejlen er?
Avatar billede scb Praktikant
22. september 2002 - 10:24 #29
Jeg tror at du ikke får programmeret config1, hvad det så end skyldes, og da config1 default står til RC oscillator vil den altid hvis registeret ikke bliver programmeret kunne kører med en RC osc.
-SCB
Avatar billede somaliomar Praktikant
22. september 2002 - 10:27 #30
Jeg vil prøve dit forslag og kommer tilbage i morgen.
Avatar billede somaliomar Praktikant
26. september 2002 - 04:29 #31
scb >> Du havde ret! Brænderprogrammet skrev ikke i config1, når det brændte processoren, fordi netop den funktion var deaktiveret. Så nu kører krystallet, som det skal.

Tak for hjælpen.

/Omar
Avatar billede scb Praktikant
26. september 2002 - 07:40 #32
Tja...  Det er sådan en fejl man kan sidde at glo på i flere dage.

Tak for point.

_SCB
Avatar billede somaliomar Praktikant
26. september 2002 - 16:18 #33
Det har du ret i.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester