Pic crash tenzij je de - aanraakt

Hallo,

Hier heb ik een 16F877 op een breadboard.
Hij wordt gevoed dmv een 7805 met de benodigde condensatoren.
Er is een 20MHz kristal aanwezig en 2x 22pF als occilator.

Welnu,
Ik heb er een programma in geplempt en hem aan gezet.
Nu lijkt het wel of de clock van de pic alleen werkt als ik de aarde van mijn breadboard aanraak.

Wat kan dit zijn?
Groeten,
Bas

Een fotootje kan helpen. Vermoedelijk zit je GND niet doorverbonden.
Bij breadboards zijn de 2 power lijnen niet met mekaar verbonden!

Die heb ik uiteraard aangesloten.

Een foto kan ik nu niet maken, op het moment geen fatsoenlijke camera tot mijn beschikking.
Foto komt zo spoedig mogelijk.

Heb eventjes een hpwm gemaakt die ik kan instellen met een potmetertje op de dac ingang.
Aan de hpwm heb ik een speakertje gehangen.

Je hoort nu wel nu wel piepen en als je hem aanraakt gaat hij stotteren.
Als ik de aarde van mijn radiator aan de - hang crasht hij.

Er zal wel (zoals meestal) iets zijn met de MCLR pin (geen pull-up aangesloten), of met de PGM pin (geen pull-down terwijl je wel LVP hebt aangezet).

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

MCLR is met 10K aan de + gehangen.
De LVP is uit, en is puldown met een 10K.
Dit omdat ik er een FET mee schakel.

pic basic code:

DEVICE = 16F877               ' Specify What PIC your using
Config XT_OSC,WDT_OFF,PWRTE_ON,BODEN_ON,LVP_OFF,DEBUG_OFF,CP_ALL
XTAL = 20                      ' The Crystal/Osc Frequency

trisa = %11111111
trisb = %00000000
trisc = %00000000

DECLARE LCD_ENPIN portb.1
DECLARE LCD_RSPIN portb.0
DECLARE LCD_DTPIN portc.4  

porta = 0
portb = 0
portc = 0

delayms 500
cls
print  "piet"

dim result1 as word
dim result2 as word
dim prev as word

adcon1 = %10000000

loop:



adcon0 = %10000101
PAUSEUS 50            
ADCON0.2 = 1       
WHILE ADCON0.2 = 1    
WEND
result1 = (adresh * 256) + adresl


adcon0 = %10001101
PAUSEUS 50            
ADCON0.2 = 1       
WHILE ADCON0.2 = 1    
WEND
result2 = (adresh * 256) + adresl


hpwm 1,result2 /4 ,result1 *4

print at 1,1, "input1 ", dec result1 *4 , "      "
print at 2,1, "input2 ", dec result2 /4 , "      "

goto loop



End
Frederick E. Terman

Honourable Member

Pic crash tenzij je de - aanraakt

Je hoort nu wel nu wel piepen en als je hem aanraakt gaat hij stotteren. Als ik de aarde van mijn radiator aan de - hang crasht hij.

Welke van de twee is het nu?

Keramisch, kalibratie, parasitair: woordenlijst.org

Allebij,
Het is niet bepaald.


Wat ik nu wel merk is als ik de 22pF tussen de - osc1 weg haal, draait hij perfect.
Ook als ik de - aanraak.

En nu weer niet.

Willie W

Golden Member

Probeer in de configregel je xt_osc eens te veranderen in HS_osc.

Helaas, geen nog niets.

Wel heb ik eventjes een flyback transformator op de fet aangesloten.
Je hoort hem mooi piepen tot je een vonk probeert te trekken.
De trafo is volledig gescheiden.
Incl een blus diode

OSC_XT en 20 MHz is geen goede combinatie

Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Piet_Knutselaar

Golden Member

Ik weet niet wat je aan het maken bent maar vonken trekken op een breadboard geinstalleerde schakeling gaat nooit goedkomen.

Het vonken trekken gebeurden extern, niet op het breadboard.
Ook was het maar een test, hij draait ook niet stabiel als ik der een speakertje aan gang.

Hang eens een ontstoor condensator tussen de +5v en de 0v.

Piet_Knutselaar

Golden Member

Wat ik bedoel is dat b.v. vonken trekken enorme (korte) piek stromen veroorzaakt.
Ook al denk je dat het niet via het breadboard gaat, kan het zijn dat een deel dat wel doet.
Ground verbindingen op breadboards zijn vaak verre van ideaal, de piek stroom kan via een niet ideaale ground route de boel aardig in de war sturen.
Ook als je speakertje laag ohmig is kan er wat dat betreft wat mis gaan.

[Bericht gewijzigd door Piet_Knutselaar op 6 januari 2012 20:21:13 (13%)]

Ik heb nu nog een tantaal c op de voedingslijn aangesloten, en nu lijkt het geheel stabiel te zijn.

@piet,
Je hebt wel gelijk.
De speaker wil nu wel werken, de flyback nog niet.
Maar dat verwacht ik ook niet eigenlijk.
Die zal ik wel met een galvanische scheiding aansturen.

Op 5 januari 2012 22:35:16 schreef Phalox:
Bij breadboards zijn de 2 power lijnen niet met mekaar verbonden!

Wat hij bedoelt is dat de zijstrips in de meeste breadboards een onderbreking hebben in het midden.

Mijn echte naam: Joris | Mijn elektronica website: Fuzzcraft.com

Aha, op die fiets.

Gelijk maar eventjes gemeten, en het blijkt dat hij intern is doorverbonden.

Ik heb het hele gebeuren nu wel vrij stabiel.
Als ik de aarde nu aanraak kan ik geen verschil horen.
Eerst stopte hij echt of kwam er veel ruis en plopjes.
Ik denk dat de HS_osc en de tantaal het gefixt hebben.

Vooral het ontstoren van je voedingslijn is iets wat je bij ELKE IC moet doen, en dan ook bij ELKE voedingsingang. (zo heeft een 16F877A twee paar voedingsdraadjes).

De functionaliteit is 2zijdig: ze vormen een filter voor hoogfrequente rommel die van buitenaf komt, maar ook zijn ze een buffer voor grotere stromen die de PIC moet leveren. En zeker dat laatste is toch niet van de poes: simpele lijnen vormen al snel een vrij grote capaciteit, welke op enkele nanoseconden van spanning moeten veranderen.

Bij ons werd deze formule er steeds ingehamerd:
C*dV = I*dT

Moraal van het verhaal: (Als je geen zottigheid wilt)
* Alle voedingslijnen aansluiten
* Altijd ontkoppel cap plaatsen over de voedingslijnen (liefst zo dicht mogelijk). 100nF is een vaakgebruikte waarde.

Je hoort hem mooi piepen tot je een vonk probeert te trekken.

Als je vrolijk er op los knettert, komt er een grote hoeveelheid EMI uitstraling vrij. Daarvan kunnen zelfs commerciele apparaten van slag raken.
Beste is om aan alle inputs een 1nF condensatortje naar massa zetten.

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Op de closeup is toch duidelijk te zien dat ik 100n over de voeding pal tegen de pic aan heb zitten.

@arco,
Ja dat is zo, het vonken trekken was enkel een testje en dus niet het uiteindelijke doel van de pic.

Verder,
Hij draait nu stabiel.
Ik vermoed dat dit komt door HS_osc te gebruiken en de tantaal C.

In ieder geval bedankt voor de hulp,
Bas

Frederick E. Terman

Honourable Member

Bij ons werd deze formule er steeds ingehamerd:
C*dV = I*dT

Of liever C dU = I dt.

Hiermee kun je ook mooi de rimpel over een afvlakcondensator berekenen. De vuistregel van 1000 uF per ampere blijkt voor laagspanningen een erg kleine condensator op te leveren, en voor een buizenvoeding een veel te grote. :)

Keramisch, kalibratie, parasitair: woordenlijst.org