onverklaarbare storing pic processor

Gestart door raf, 20 november 2022, 19:29:16 PM

raf

Hallo allen
Ik zit met een storing die ik maar niet opgelost krijg
eerst het filmpke
https://youtu.be/jkzi2xosTNk

Als ik de schakel draad met een vinger aan raak dan word de pic zot en geeft storingen naar de servo
Ja ik heb een 10 k pullup gebruikt dit om het probleem reeds uit te schakelen .
Meerdere processoren gebruikt
Programma aangepast tot het minimum dwz massa er op servo naar links ;massa los door de pullup aan de positief en dan de servo naar rechts
Niks nada het zelfde probleem
Een andere voeding ook geen resultaat behalve als ik de print op een accu aansluit dan is er geen probleem
12 volt voeding en de 7805 op de print maakt er 5 volt van
Op 3,3 volt moet de servo en de processor nog werken
Condensator over de voeding staat er ook op

Dus ja ik weet het op dit ogenblik dus niet meer
Heeft er iemand wel een idee ?????

Gr raf
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

Geert

Ik heb te weinig info over de schakeling om daar iets zinnig over te vertellen. Eigenaardig gedrag van een schakeling volg ik soms op met in circuit debugging .

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

raf

Geert de schakeling bestaat uit een 7805 en 3 condensatoren
Waarvan 2 aan de 7805 en eentje over de pic voeding
poort 1 - 2 - 3 liggen met 10 K weerstand aan de positief 5 volt omdat dit ingangen zijn
[ code]Device = 12F629
All_Digital TRUE                                           
Xtal 4


''gpio1 = sein blok5B
''gpio2 = seinblok5 A
''gpio3 = wissel    1 is rechtdoor 0 is rond
''gpio5 = servo uit
' gpio4 =   uitgang      rood achterliggend
  GPIO =%111111        ;
TRISB = %001110      ; gpio 1,22,3 als ingang

Declare PortB_Pullups On
Dim positie As Word
Dim l As Word
Dim r As Word


Symbol SPOORB = GPIO.1    ;wissel SPOORB
Symbol SPOORA = GPIO.2    ; wissel spoorA
Symbol wissel  = GPIO.3      ;wissel schakelaar
Symbol LTD =GPIO.4     ;LTD UITGANG
Symbol servo1 = GPIO.5     ;SERVO WISSEL
l = 600
r  = 2000
DelayMS 1000


gpio.3 is MCLR maar die staat uit en is dus gewoon IO
Dit is de ingang van de schakeling waar de stand van de wissel mee bepaald word
De andere zijn tijdens de test niet aan gesloten
Dus alleen de servo op uitgang 5
De voeding
En op poort 3 de ingang of aan de 0 of aan de 5 volt

Bij andere wissels werkt dezelfde sturing perfect
Zelfde print zelfde opzet en het zelfde programma
Bij deze reeds meerdere processoren en printjes gemaakt om daar een fout in uit te sluiten
Maar alleen op die plaats op de baan doen ze allemaal onnozel
Dus 5 meter verder in de kamer doen ze normaal
Onder de module zit op een afstand van 1,50 meter niets wat zou kunnen storen
Zelfs met een losse voeding blijft het probleem bestaan ;ik dacht storing van een andere print die aan de zelfde voeding hing maar nop dat was het ook niet

Afbeelding van de print .Dit is versie 1 die ik hier heb daar staan de weerstanden nog apart bij de andere versies zitten deze aan de onderkant van de print
gr raf en reeds bedankt om mee te denken
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

Geert

Nu net een PIC processor waar ik geen ervaring mee heb  ;)

Gelijkaardige 8 pin µC met GPIO In/Uitgangen hebben geen TRISB en PORTB register, GPIO3 heeft geen interne PULL-UP weerstand, dat zijn al
enkele bemerkingen...


aan de moderators, je kan deze topic best verplaatsen van KISS en andere simpele elektronica naar microcontrollers  ;)

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

raf

Geert bij deze mag je dus trisio of trisb gebruiken

zoals ook gpio.1 maar protb.1 werkt ook
dus doe je toggle portb.0 dan gaat dat gewoon werken .

Maar ok wat ik tot nu toe gedaan heb
De servo kabel 50 cm langer gemaakt maar ook geen oplossing.
De voeding ook 50 cm langer gemaakt maar ook geen oplossing
Dan een condensator over pen gpio.0 en de massa gezet
En heel de print dus die 50 cm opgeschoven verweg van de servo en dit blijkt te werken .
De sturing werkt nu stabiel zonder jitteren
Nu de rest van de in en uitgangen aan sluiten en dan kijken of het blijft werken .
Ok ik weet het "het is niet DE oplossing "maar het werkt
Nu alleen nog uitzoeken waarom juist op die plaats de stuur print gek doet .

gr raf en bedankt om mee te denken
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

raf

All of the microcontroller's pins are set to inputs on power-up. If you need a pin to be an output, set it to an output before you use it, or use a BASIC command that does it for you. Once again, always read the PICmicro™ data sheets to become familiar with the particular part. The name of the port pins on the 6-pin and 8-pin devices is GPIO. The name for the Tris register is TrisIO: - GPIO.0 = 1 ' Set GPIO.0 high TRISIO = %101010 ' Manipulate ins and outs

However, these are also mapped as PORTB, therefore any reference to PORTB on these devices will point to the relevant pin of GPIO.
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

Geert

Dat weet ik dan ook weer Raf, Een PIC µC heb ik nooit geprogrammeerd in BASIC.

Maar volgens datasheet op pin 3 geen interne PULL-UP  ;)

3.2.1 WEAK PULL-UP

Each of the GPIO pins, except GP3, has an individually
configurable weak internal pull-up. Control bits WPUx
enable or disable each pull-up. Refer to Register 3-3.
Each weak pull-up is automatically turned off when the
port pin is configured as an output. The pull-ups are
disabled on a Power-on Reset by the GPPU bit
(OPTION<7>).

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

raf

Ja geert weet ik maar ik heb losse 10 K weerstanden staan
Ik zet altijd die interne aan boven aan in het programma .
Kwestie van gewoonte denk ik .
Nu werkt het zo ongeveer met al die toeters en bellen er extra aan blijft nog steeds de vraag "WAAROM"
En een pic  programmeer je niet in basic want je zet er een HEX file in en dan maakt het niet uit of het JAL C C++ of wat ook is .
Dat zijn juist de compilers
                      00002         list
                      00003 ;{
                      00004 ;FILE F1 = C:\USERS\RAFJA\DESKTOP\BAK WISSEL 769-1823.BAS
                      00005 ;}
                      00006 ;[Variable Listing]
                      00007 ;positie,0024,DT_WORD,2
                      00008 ;var1,0026,DT_WORD,2
                      00009 ;L,0028,DT_WORD,2
                      00010 ;R,002A,DT_WORD,2
                      00011 ;B,002C,DT_WORD,2
                      00012 ;D,002E,DT_WORD,2
                      00013 ;ledrood,0005.4,DT_BIT
                      00014 ;ledgroen,0005.2,DT_BIT
                      00015 ;ingang,0005.3,DT_BIT
                      00016 ;relais2,0005.1,DT_BIT
                      00017 ;servo1,0005.5,DT_BIT
                      00018 ;[End Listing]
                      00019 ;[TOTAL VARS] 16

                      00021 #define CONFIG_REQ 1
MESSAGE[308]: WARNING LEVEL SUPERSEDED BY COMMAND LINE VALUE. (2)
                      00022  LIST  P = 12F629, F = INHX8M, W = 2, X = ON, R = DEC, MM = ON, N = 0, C = 255
  00000000            00023 INDF equ 0X0000
  00000001            00024 TMR0 equ 0X0001
  00000002            00025 PCL equ 0X0002
  00000003            00026 STATUS equ 0X0003
  00000004            00027 FSR equ 0X0004
  00000005            00028 GPIO equ 0X0005
  00000005            00029 PORTB equ 0X0005
  0000000A            00030 PCLATH equ 0X000A
  0000000B            00031 INTCON equ 0X000B
  0000000C            00032 PIR1 equ 0X000C
  0000000E            00033 TMR1L equ 0X000E
  0000000F            00034 TMR1LH equ 0X000F
  0000000F            00035 TMR1H equ 0X000F
  00000010            00036 T1CON equ 0X0010
  00000019            00037 CMCON equ 0X0019
  00000081            00038 OPTION_REG equ 0X0081
  00000085            00039 TRISIO equ 0X0085
  00000085            00040 TRISB equ 0X0085
  0000008C            00041 PIE1 equ 0X008C
  0000008E            00042 PCON equ 0X008E
  00000090            00043 OSCCAL equ 0X0090
  00000095            00044 WPU equ 0X0095
  00000096            00045 IOCB equ 0X0096
  00000096            00046 IOC equ 0X0096
  00000099            00047 VRCON equ 0X0099
  0000009A            00048 EEDATL equ 0X009A
  0000009A            00049 EEDATA equ 0X009A
  0000009A            00050 EEDAT equ 0X009A
  0000009B            00051 EEADR equ 0X009B
  0000009C            00052 EECON1 equ 0X009C
  0000009D            00053 EECON2 equ 0X0

Er zijn er die dit zo kunnen programmeren maar dat zit in mijn hersens achter die verdomde muur
Gr raf
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

patrick smout

Dag Raf,

In je printwerp werkt de ontkoppelcondensator over de uitgang van de spanningsregelaar tegelijk ook als ontkoppelcondensator voor je PIC. De meerwaarde van je afzonderlijk ontkoppelcondensator is twijfelachtig door de relatief lange printsporen. In een volgend ontwerp, en zeker als de PIC wat verder van de voeding staat, kan je die ontkoppelcondensator beter zo kort mogelijk tussen pin 1 en 8 zetten. Hier maakt het dus niet uit en kan je die volgens mij ook weglaten.
Heb je al eens rechtstreeks op de print gemeten wat de spanning op de ingang is voor het zetten van de wisselpositie als deze open is? Het gedrag doet denken aan een zwevende ingang ( pullup doet zijn werk niet). Wat is de weerstandswaarde van de pullup? Toch geen foutieve waarde ( bv 1 M-Ohm of zo)?
Met vriendelijke groeten,

Patrick Smout

raf

Patrick de weerstand is 10 K en ik heb reeds verschillende printjes gemaakt maar het probleem bleef zich voordoen .
Inderdaad het lijkt op een zwevende ingang.
Ik had de print zo gemaakt maar de condensator zit langs de onderkant gesoldeerd rechtstreeks op de pootjes
Ik heb ook nieuwere printjes met een optokoppel er op maar die werken verkeerd op de ingang.
Deze worden gebruikt om te sturen met een esu V3 decoder.


Hier de layout er zit meer op de print want ze dienen ook nog voor andere zaken dan alleen wissels .
gr raf
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.