Hallo,
Ik gebruik al een tijdje PIC16F84a en programmeer deze met JDM programmer.
Schema JDM programmer:
https://www.dropbox.com/s/g7g86r1ht10rrb4/jdm.jpg?dl=0
Nu wil ik bij deze PIC gebruik maken van "In circuit serial programming". Is het correct als ik de PIC en JDM programmer aansluit zoals in onderstaand schema? (Ik heb ook nog andere schema's gevonden waar ze er ook nog een diode aan toevoegen.) Ben ik juist dat het de bedoeling is dat de externe voeding voor de PIC ingeschakeld moet zijn op het moment dat de PIC geprogrammeerd wordt?
https://www.dropbox.com/s/axutyubmt1zbya6/in%20circuit.jpg?dl=0
Met dank bij voorbaat,
Tom
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Ik ga er altijd van griezelen als ik zo'n schema zonder voeding zie...
('t een soort Russische roulette of het werkt of niet...)
Of je de schakeling moet voeden hangt af van wat er allemaal aanhangt wat stroom gebruikt. Beter is om wel te voeden.
@MGP hieronder:
Of je print gevoed moet worden hangt van de opbouw af. Als er iets op zit wat meer als een paar mA gebruikt, trekt de serieele poort dat zeker niet...
[Bericht gewijzigd door Arco op (25%)]
MGP
LDmicro user.
Je moet geen externe voeding gebruiken, die programmer maakt de 5V uit de seriele poort.
Gebruik een echte RS232 en geen usb->RS232 converter, dat is ook waarvoor die JDM programmer ontworpen is.
Ja, ik gebruik een echte COM-poort en geen USB-->COM converter. Mijn JDM-programmer deed het altijd prima bij niet-"in circuit programming" gebruik. Dan ga ik het ook eens in circuit proberen.
En ik ben van plan om ook PIC16F877 te programmeren. Voor in-circuit programming kan je in de configuration bits ook kiezen voor low voltage programming. Voor zover ik het begrijp krijgt pin RB3 dan een nieuwe functie: bij 0V op deze pin is de PIC in de gewone modus waarin het programma uitgevoerd wordt, bij 5V op deze pin is de PIC in programmeer modus.
Nu begrijp ik niet wat het voordeel is van deze low voltage programming modus: dan verlies je pin RB3 als I/O poort, en het lijkt mij dat je deze PIC ook in circuit zou moeten kunnen programmeren in high voltage modus zoals PIC16F84A zoals jullie zojuist gezegd hebben?
Als ik het juist heb betekent de high voltage modus dat de pic in programmeermodus gaat wanneer er op MCLR ongeveer 13V zit. Bij die low voltage modus wordt MCLR toch ook aangesloten op de programmer?
Sommige programmers hebben ook een zesde uitgang voor die RB3, wat JDM niet heeft. Komt het op hetzelfde neer wanneer ik zelf gewoon handmatig een hoog signaal op deze pin zet?
Kan iemand mij uitleggen wat het nut/voordeel is van die low voltage modus?
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Nu begrijp ik niet wat het voordeel is van deze low voltage programming modus:
Je hebt dan geen 13 volt nodig voor ICSP. Maar meeste stand-alone programmers gebruiken nog 13v.
Of je de 16F877 met die JDM geprogrammeerd krijgt weet ik niet. Meestal wordt die alleen voor de 16F84(a) gebruikt...
Een programmer zonder externe voeding is altijd ten zeerste af te raden. (of het moet voeding via USB zijn)
Ik had het in-circuit programmeren geprobeerd met PIC16F84A volgens het schema van in mijn eerste post, maar IC-prog gaf direct bij het begin van het programmeren de melding "Programmeren component mislukt op adres 00h".
Wanneer ik de PIC programmeer zoals ik altijd al deed (niet in circuit), krijg ik diezelfde melding altijd opnieuw, terwijl dit voorheen altijd perfect lukte.
Als ik het dikwijls opnieuw probeer, gaat het programmeren soms tot adres 04h, maar nooit verder dan dat. Als ik de PIC hierna terug uitlees, is er maximaal tot dat adres geprogrammeerd.
Ik heb de programmer ook al eens gewisseld van COM poort, maar dit geeft geen beterschap. De spanningen op de PIC tijdens het programmeren blijken nog in orde te zijn: 5V tussen Vdd en Vcc, 13V op MCLR.
Hoe kan ik dit verhelpen? Wat zou er beschadigd zijn: pc, JDM programmer of PIC?
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Zo'n programmer werkt uiterst onbetrouwbaar. Er kan inderdaad iets kapot zijn in programmer of de pic zelf.
Kan ook zijn dat de spanning/stroom te laag is die de COM poort levert. (hij is tenslotte nooit gemaakt om als voeding gebruikt te worden)
Welke programmer zou u aanraden waarmee je in-circuit kan programmeren met de COM poort voor PIC16F84A en PIC16F877?
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Ik zou niet aan een RS232 programmer beginnen, er is bijna geen recente PC te vinden met een serieele poort erop. Beter USB nemen. (pickit of kloon)
Is gelijk ook het voedingsprobleem opgelost.
Fuzzbass
Mijn echte naam: Joris | Mijn elektronica website: Fuzzcraft.com
Gewoon een PICkit 2 of 3 kopen. Ben je van al het gezeur af. Met de officiële programmer van Microchip moet het allemaal geen enkel probleem zijn. Die is ook nog eens tig keer zo snel, hij kan je schakeling voeden op elke gewenste spanning, en hij heeft ook nog een simpele protocol analyzer aan boord (apart programmatje downloaden).
Maar die PICkit is wel een stuk duurder dan een zelfgemaakte programmer.
Mijn computer heeft een COM poort, dus dat is geen probleem. Als ik het toch met de COM poort en een zelfgemaakte programmer wil doen, welk schema zouden jullie dan aanraden?
Is het schema van de PIC programmer met externe voeding van op deze site hiervoor geschikt?
MGP
LDmicro user.
Op 25 maart 2016 02:37:34 schreef Arco:
Ik zou niet aan een RS232 programmer beginnen, er is bijna geen recente PC te vinden met een serieele poort erop.
Daarmee ga ik niet akkoord, zelfs recente moederborden van Gygabyte hebben nog een seriele poort (header), je moet enkel een 10pins kabeltje monteren.
Ook andere merken laten de seriele poort niet los.
Bij laptops daarentegen is het een zeldzaamheid.
Ik wil hiermee niet zeggen dat je beter af bent met een seriele programmer, best een pickit kopen, maar het hoeft niet.
Mensen die niet programmeren en maar een paar keer een controller programmeren moeten daarvoor geen pickit kopen.
Op 25 maart 2016 19:27:37 schreef elektronica:
Is het schema van de PIC programmer met externe voeding van op deze site hiervoor geschikt?
Die JDM programmer werkt prima bij oudere pic's met een echte RS232, heb daar ook al met succes gebruik van gemaakt.
[Bericht gewijzigd door MGP op (18%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Ik zeg ook niet dat COM poorten verdwenen zijn, maar de kans dat een nieuwe (low cost) PC een COMpoort of header heeft is wel erg klein.
Ik gebruik altijd MSI boards. Daar moet je toch ook wel bij de duurdere types zijn om soms nog een serieel en parallel header aan te treffen...
Vandaag lukte het ineens terug om mijn PIC te programmeren op de manier zoals ik het altijd al deed.
Ik heb het risico niet meer genomen om opnieuw op dezelfde manier in-circuit te programmeren, maar heb wel het volgende gedaan:
-de verbindingen van de PIC met de schakeling aan MCLR, RB6 en RB7 heb ik volledig losgemaakt (dus niet met die weerstanden)
-Vdd van de programmer heb ik niet aangesloten, Vss heb ik wel verbonden met GND van de voeding
Op deze manier werkt het wel om in-circuit te programmeren! Het werkt zowel voor PIC16F84A als voor PIC16F877.
Dan ga ik een 3 polige wisselschakelaar gebruiken om voor deze pinnen te wisselen tussen programmer of schema.
Bedankt iedereen voor de hulp.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Op 25 maart 2016 20:00:09 schreef MGP:
...seriele poort..... Bij laptops daarentegen is het een zeldzaamheid.
Daar heb je van die mooie kleine kaartjes voor, die duw je zo in je slot. Werkt prima, maar is dan ook een echte seriële poort.
En ook daar moet je mee op passen die zijn er in 2 soorten;
1) usb--> serieel = onbruikbaar
2) bus--> serieel = geschikt
Nadeel is dat veel van de aanbieders niet duidelijk aangeven om welk type kaart het gaat.
Op 26 maart 2016 12:47:46 schreef Shiptronic:
En ook daar moet je mee op passen die zijn er in 2 soorten;
USB serieel is een converter, dat is niet echt een seriële poort.
En toch voor de seriële communicatie tussen PC en bijv. een controller werkt dat ook perfect. Niet om te programmeren, maar om bijv. een opdracht aan de controller te geven.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Veel (vooral oudere) software verwacht een 'echte' COM (of LPT) poort. Dan gaan insteekkaartjes (in PC of laptop) niet werken.
Die programma's verwachten de default i/o adressen die LPT (0x378, 0x278, 0x3BC) en COM (0x3F8, 0x2F8, 0x3E8, 0x2E8) normaal hebben.
De poorten bij PCI/Expresscard worden geremapped naar het PCI i/o gebied, waar die programma's niets mee kunnen.
Bijna alle nieuwe PC's blokkeren in hun bios de installatie van COM/LPT kaarten op de legacy adressen.
Op 26 maart 2016 13:25:37 schreef Arco:
Veel (vooral oudere) software verwacht een 'echte' COM (of LPT) poort. Dan gaan insteekkaartjes (in PC of laptop) niet werken.
Hoe verklaar je dan dat ik nog steeds PLC's van bijv. 15 jaar oud en ouder kan programmeren met zo'n insteek kaartje?
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Dan ondersteunt dat PC programma toch poorten die geremapped zijn.
Ik heb er een discussie over gehad met een engineer bij Asus. Die zei ook dat het onmogelijk was om legacy adressen te gebruiken.
Dit omdat die nog steeds 'gereserveerd' zijn in de bios. (ook al worden ze allang niet meer gebruikt)
Tevens bevatten veel i/o chipsets in PC's nog steeds COM en LPT poorten, maar worden die niet naar buiten gebracht en zijn ook niet te disablen...
Oké, dat is duidelijk.
Tevens bevatten veel i/o chipsets in PC's nog steeds COM en LPT poorten, maar worden die niet naar buiten gebracht en zijn ook niet te disablen...
Dus over een aantal jaren heb je kans dat de nieuwe chipsets dat helemaal niet meer hebben, dan zijn we dus helemaal op de USB poort aangewezen?
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Sommige van de betere boards hebben nog steeds legacy COM/LPT headers. Bijv. de MSI Z170A-SLIplus...
Gebruik ik o.a. voor Ultiboard, dat wil alleen met een 'echte' LPT poort werken...
[Bericht gewijzigd door Arco op (33%)]
Ik vrees dat ik jullie toch gelijk moet geven dat JDM programmer onstabiel is, hij doet het niet meer...
Omdat ik niet dikwijls PIC's programmeer heb ik het er niet voor over om een PICkit te kopen.
Wat vinden jullie van volgend schema? Zou dit stabiel zijn?
http://www.eeweb.com/blog/extreme_circuits/simple-universal-pic-progra…
Dit schema is bijna hetzelfde:
http://www.circuitvalley.com/2011/05/microchip-pic-serial-port-program…
Ik zou het eerste schema gebruiken en hier ook nog een transistor invoegen op pin 4 en 7 van de COM-poort en 5V op de collectors aansluiten. Zou dit een goed idee zijn?
