Onprogrammeerbare 12F683

Hallo allemaal!

Ik ben bezig met een thuisaccu. De BMS bestaat uit kleine printjes (per cel 1 printje) met daarop een 12f683 die weinig meer doet dan een ADC spelen met galvanisch geïsoleerde bus die naar een master gaat. Die master verzameld alle gegevens en geeft dat door aan een raspberry die er vervolgens mee aan de haal gaat.

Het probleem is dit: ik heb 18 van die printjes, elk met een header waar ik een pickit3 zo in kan prikken. voor 14 van die printjes ging dat probleemloos. De overige prints leveren een melding op in de PK3 software "Unsupported part (ID=0020)" met daaronder een "device error- hexfile not loaded".

- Als ik Tools>check communication aanklik krijg ik netjes "DEVICE: PIC12F683" te zien. Dus er lijkt wel íets te gebeuren. Maar zodra ik de chip wil lezen, schrijven, verifiëren, wissen of blankchecken krijg ik direct bovenstaande fout.
- Ik heb werkende pic's in de niet werkende prints gestopt en dan was alles ok. Dus het ligt niet aan de prints (slechte soldeerverbinding of wat dan ook)
- Ik heb niet werkende pic's in de wel werkende prints gestopt en dan bleef het probleem. Dus het ligt écht niet aan de prints. Het probleem verhuist mee met de pic's
- Ik heb zelfs een andere PK3 gepakt die ik nog had liggen en die doet exact hetzelfde.
- Ik heb nieuwe pic's besteld (aliexpress, geen "officiele" vendor. Maar ik heb tientallen pic's via ebay en later ali gekocht. En een enkele chip uitgezonderd deden ze het prima). En ook deze geven het zelfde probleem.
- Zowel incircuit met een eigen voeding (varriabele spanning ivm accu) als incircuit maar zonder verbinding met de bus en voeding waardoor de PK3 zelf de voeding verzorgt levert het zelfde probleem.

Ik ben inmiddels een beetje door mijn ideeën heen en google is niet zo behulpzaam als ik hoopte.... Ik heb zelfs een poging gewaagd met chatGPT. Maar die komt met dezelfde stappen die ik al genomen heb en dingen die ik niet kan controleren (nepchips en ESD).

Onderstaande screenshots heb ik allemaal gemaakt met de pickit verbonden met de zelfde PCB waar ik een andere chip probleemloos in kon lezen, schrijven, checken, etc.

Heeft iemand enig idee wat dit zou kunnen zijn?

Alvast bedankt!!

Daan

EDIT: Opgelost! Het is naar alle waarschijnlijkheid de 2v referentie geweest die aan de ADC hing, dit is op deze chip ook de ICSPDAT pin. deze zal op 5v nooit de vereiste spanning halen om de boel te programmeren. Via de PK3 de voedingsspanning op 3v zetten en dan werkt alles prima.
Waarom een deel van de chips het wel doet en een deel niet, waarom de programmer de chip wel kan identificeren maar niet kan lezen, schrijven, programmeren, etc, blijft een raadsel. Maar ik gooi het op: ik zit dichtbij genoeg bij de vereiste specs dat het regelmatig werkt. Maar semi willekeurig doen sommige chips nét iets moeilijker over die specs waardoor het soms wel en soms niet werkt. Noem het de siliconlottery! Dank allen voor de hulp en tips :)

[Bericht gewijzigd door DaanSteeman op vrijdag 18 oktober 2024 15:14:38 (14%)

fred101

Golden Member

Komen de 12F683 van AliExpress ?

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur en maritieme en industriele PCBs
Arco

Special Member

Normaliter krijg je die melding als het type of de voedingsspanning verkeerd staan.
Ook mag er geen te grote elco aan Vcc hangen (> 220uF en het kan misgaan)

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

Meestal krijg je die fout als er iets aan de programmeerpoorten hangt, programmeer die eens zonder randcomponenten.
Dat is mij al meermaals voorgevallen.

LDmicro user.

Op vrijdag 18 oktober 2024 12:46:57 schreef fred101:
Komen de 12F683 van AliExpress ?

Het waren twee bestellingen
De eerste order van ebay van een paar jaar terug waren er 20 (daar werkten er 11 van. De overige 9 niet)
De tweede order van ali van anderhalve week geleden waren er 10 waarvan ik er nu 6 getest heb met exact hetzelfde probleem

Op vrijdag 18 oktober 2024 12:52:10 schreef Arco:
Normaliter krijg je die melding als het type of de voedingsspanning verkeerd staan.
Ook mag er geen te grote elco aan Vcc hangen (> 220uF en het kan misgaan)

Er zitten uberhaupt geen elco's op die print. Het spannends is de ontkoppelcondensator voor de pic (100n)

Arco

Special Member

Al geprobeerd device en Vcc handmatig in te stellen?

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

Op vrijdag 18 oktober 2024 12:53:22 schreef MGP:
Meestal heb je die fout als er iets aan de programmeerpoorten hangt, programmeer die eens zonder randcomponenten.
Dat is mij al meermaals voorgevallen.

Dit geintje heb ik ook meer dan eens gehad. Maar er zit vrij weinig op deze print. Het enige dat aan de programeerpoorten hangt is een voltagereference van 2.048V en een 1k weerstand richting een led. Maar die prints zijn compleet identiek. d.w.z ook op de werkende prints zit exact dat aan exact dezelfde programeerpinnen. Die 1k weerstand zou niet uit mogen maken... die voltagereference kan ik me íets bij voorstellen. Ik zal zo even proberen om de boel te programmeren in een breadboard waar écht alleen de chip zelf er aan hangt.

EDIT: het lijkt er op dat dit inderdaad het probleem was. Ik had in gedachten dat het alleen wat weerstanden met leds/optocouplers waren. Maar naar jouw opmerking ben ik dat toch even gaan checken. De 2v reference die aan de ADC hangt hangt dus ook aan de ICSPDAT pin (dat is de zelfde pin op deze chip). En zoals arco terecht opmerkt kan die dus nooit de vereiste 0.8Vdd halen voor het programeren op 5v

[Bericht gewijzigd door DaanSteeman op vrijdag 18 oktober 2024 13:28:22 (20%)

Waarom koop je ze niet bij Reicheld (€2,02) of een andere betrouwbare verdeler ?

https://www.reichelt.com/nl/nl/shop/product/8-bit_picmicrocontroller_3…

Ik ben er laatst zelf ook weer ingelopen. Heb inmiddels de originelen en de ESP chips op de Ali klonen zijn anders.

https://www.circuitsonline.net/forum/view/166759

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.

Op vrijdag 18 oktober 2024 12:59:09 schreef Arco:
Al geprobeerd device en Vcc handmatig in te stellen?

Ik kan alleen een device family kiezen. Maar binnen geen van de opties staat de exacte chip die ik heb...

Op vrijdag 18 oktober 2024 13:02:55 schreef Roland van Leusden:
Waarom koop je ze niet bij Reicheld (€2,02) of een andere betrouwbare verdeler ?

https://www.reichelt.com/nl/nl/shop/product/8-bit_picmicrocontroller_3…

Ik ben er laatst zelf ook weer ingelopen. Heb inmiddels de originelen en de ESP chips op de Ali klonen zijn anders.

https://www.circuitsonline.net/forum/view/166759

Het eerlijke antwoord? Euro's... 2 euro per stuk plus 7 euro verzendkosten of nog geen 12 euro voor 10 stuks inclusief verzendkosten.
Ik heb inmiddels wel geleerd dat je niet alles op ali (of ebay, etc) moet kopen. Maar componenten zijn tot nu toe altijd gewoon goed gegaan. Goed een 40A mosfet van ali gebruik ik dan met max 20A o.i.d. Maar hij doet het wel. En met pic's heb ik tot nog toe uberhaupt nooit problemen gehad. Vandaar dat dat niet mn eerste gok zou zijn. Zeker als het uit 2 verschillende bestellingen met ruim 2 jaar daar tussen komt die exact dezelfde problemen vertonen.

Dat gezegd hebbende... dan was ik inmiddels wel weer aan de gang geweest ipv dat ik nu wéér moet gaan zitten wachten op onderdelen |:(

Arco

Special Member

Voeding moet 4.5 - 5.5v zijn bij programmeren, en de data en clocklijn moeten 0.8Vcc zijn hoog (met een 2v reference aan die pin lukt dat niet)
Ik koop ook nooit processors op eBay of Ali: de kans dat je troep krijgt is veel te groot...

Als je de sourcecode hebt kun je die beter aanpassen voor bijv. de 12f1571 (pin-compatible, nieuwer, kan veel meer en maar een derde van de prijs)

[Bericht gewijzigd door Arco op vrijdag 18 oktober 2024 13:23:47 (24%)

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

Op vrijdag 18 oktober 2024 13:11:58 schreef Arco:
Voeding moet 4.5 - 5.5v zijn bij programmeren, en de data en clocklijn moeten 0.8Vcc zijn hoog (met een 2v reference aan die pin lukt dat niet)
Ik koop ook nooit processors op eBay of Ali: de kans dat je troep krijgt is veel te groot...

Ik heb de prints momenteel even helemaal van de accu af. Met andere woorden: de PK3 bepaald en verzorgd de voedingsspanning.

Ebay/ali... Tjah, ik ben wel gewend dat het troep is, maar als je weet wat je wel en niet daar besteld gaat het over het algemeen prima. PIC's zijn tot nu toe altijd goed gegaan, vandaar dat dat niet mn eerst gok is.

Ik moet zeggen dat die 2v reference me ook net pas inviel. Ik had in gedahten dat er alleen weerstanden met leds (cq optocouplers) aan hingen. maar 1 van die pinnen is toevallig de ADC en die heeft die 2v ref er aan hangen. Ik ga zo even proberen of ik ze in een breadboard wel geprogrameerd krijg. (zonder die 2v ref dus). Ik vind het alleen raar dat grofweg de helft van de chips het prima doet, inclusief die 2v ref. En dat de ander helft dat botweg weigert...
Zeker omdat de programmer bij het checken van de communicatie de chip wel herkent. En ik neem aan dat daarbij de icspdat pin ook gebruikt word om die info richting programmer te sturen?

Die 0.8Vdd (neem aan dat je Vdd bedoelt?) gaf me wel het idee om de voedingsspanning eens een stuk lager te zetten. Het is tenslotte een eis in relatie tot de Vdd. En jahor, met 3,0V programmeert hij de chip probleemloos! Dat is wat mij betreft de bevestiging dat het met die 2v ref te maken heeft. (goed, 2v is geen 0.8*3. i know, maar hiermee pakt hij hem wel. Dus 0.8vdd zal gegarandeerd zijn, daaronder is het gokken of het werkt).

Afin, het zal dus inderdaad de 2v ref zijn die roet in het eten gooit. Waarom de andere chips op een print met diezelfde ref dan wel werkt is me een raadsel.... Maar dat gooi ik maar op die zelfde 0.8Vdd is gegarandeerd, daaronder is toeval verklaring.

Dank!

Kan het iets zijn met osctune, mijn PIC12F629's zijn ook niet programmeerbaar als er een te afwijkende waarde inzit.
NB osccal in de 629.

Guus@Sint-Michielsgestel
Arco

Special Member

Met die oude pics varieerden de specs per productierun nogal. (De 12F683 en de 12LF683 zijn zelfs dezelfde chips, alleen 'gesorteerd' op werking op 3.3v)
Tegenwoordig zijn de 'LF' varianten aparte versies van de chip met eigen device id.

Bij pics maken de oscillatorinstellingen niet uit bij programmeren: de oscillator wordt toch niet gebruikt.

[Bericht gewijzigd door Arco op vrijdag 18 oktober 2024 13:32:29 (19%)

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

Op vrijdag 18 oktober 2024 12:55:06 schreef DaanSteeman:
De tweede order van ali van anderhalve week geleden waren er 10 waarvan ik er nu 6 getest heb met exact hetzelfde probleem

Dan zijn er m.i. twee mogelijkheden:
* De chips zijn "iets anders" dan wat je besteld hebt.
of
* jij doet iets verkeerd.

Mijn ervaring is dat ze bij aliexpress vaak gewoon goede onderdelen leveren, maar wel eens uitgesoldeerd of een "compatible" chip van een andere fabrikant dan je zou verwachten. Dat soort dingen.

Maar het kan dat jij op 5V werkt en dit 3.3V dingen zijn of andersom. Dat soort dingen. Ah. Hint in die richting is reeds gevonden.

Ik ben hier altijd degene die loopt te roepen dat er te vaak wordt geroepen "fake" en "aliexpress levert vaak dode onderdelen".

Het kan best dat er twee varianten in omloop zijn, of dat microchip overgestapt is naar een nieuw proces waardoor de chips wel binnen spec zijn, maar op jou "rare" situatie iets anders reageren.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op vrijdag 18 oktober 2024 13:47:44 schreef rew:
[...]Dan zijn er m.i. twee mogelijkheden:
* De chips zijn "iets anders" dan wat je besteld hebt.
of
* jij doet iets verkeerd.

Mijn ervaring is dat ze bij aliexpress vaak gewoon goede onderdelen leveren, maar wel eens uitgesoldeerd of een "compatible" chip van een andere fabrikant dan je zou verwachten. Dat soort dingen.

Maar het kan dat jij op 5V werkt en dit 3.3V dingen zijn of andersom. Dat soort dingen. Ah. Hint in die richting is reeds gevonden.

Ik ben hier altijd degene die loopt te roepen dat er te vaak wordt geroepen "fake" en "aliexpress levert vaak dode onderdelen".

Het kan best dat er twee varianten in omloop zijn, of dat microchip overgestapt is naar een nieuw proces waardoor de chips wel binnen spec zijn, maar op jou "rare" situatie iets anders reageren.

volgens de datasheet zouden deze moeten functioneren tussen de 2,2 en 5,0V moeten werken. Dat moet ook wel want ze krijgen direct de accuspanning die tussen 2,5 en 3,65 varrieert. En dat lijkt opzich te werken. Alleen het programeren ging mis.

Maar het lijkt dus inderdaad de ICSPDAT pin te zijn geweest die dankzij de 2vref dus niet fatsoenlijk de minimale 0,8vdd haalde tijdens het programeren. Opzich volkomen logisch, en als het ICSP uberhaupt niet had gewerkt was ik daar ook wel naar gaan kijken. Ik snap alleen nogsteeds niet waarom een deel van de chips het wel doen en een deel niet. Wieweet is dat inderdaad een tollerantieverhaal.

Over het algemeen leveren ze best ok spul zolang we het over onderdelen hebben. Weerstanden, condenstatoren, etc heb ik nooit problemen mee (al neem ik de specs wel met een korrel zout en verwacht ik absoluut niet de beloofde levensduur). Maar telefoons accucellen of dat soort spul zou ik er nooit kopen, dat is vragen om problemen.

Afin, ik ga nog wel even proberen of ik ze niet incircuit wel gewoon op 5v kan programmeren. ICSP werkt wel als ik de voedingsspanning via de PK3 op 3v zet (procentueel is 2v dan aanzienlijk dichter bij die 0,8vdd die vereist word). hij schakelt dan ook over op low voltage programming. Eerlijk gezegd weet ik niet wat het verschil is buiten de gebruikte spaning. wellicht is het een stuk trager, maar voor deze enorme programma's (892 programbytes!!!) zal het me een zorg zijn hoe snel het gaat. Daarbij al zou het een minuut per stuk duren... ik moet afentoe 18 chips updaten. Ze uit de print peuteren in een breadboartje prikken en dan "supernsnel" kunnen programeren kost toch nog meer tijd ;).

Arco

Special Member

Programmeren zal op 3.3v wel goed gaan, het erasen misschien niet (heeft minimaal 4.5v nodig)

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

Op vrijdag 18 oktober 2024 15:11:11 schreef DaanSteeman:
Maar het lijkt dus inderdaad de ICSPDAT pin te zijn geweest die dankzij de 2vref dus niet fatsoenlijk de minimale 0,8vdd haalde tijdens het programeren.

Veel CMOS chips hebben een omslagpunt wat heel aardig rond 0.50 VDD zit.

Maar in de datasheets staat altijd 0.7 of 0.8VDD voor "gegarandeerd hoog" en 0.2 of 0.3VDD voor "gegarandeerd laag. In de praktijk zit het bijna altijd tussen 0.45VDD en 0.55VDD.

Maar de fabrikant behoudt zich dus het recht voor om "rare chips" te maken die het gewoon doen, behalve dan dat ze een iets hoger (of lager) dan gebruikelijke spanning nodig hebben om het als een "1" te zien.

Er was ook iets met microchip: bijna iedereen specificeert 0.3/0.7 en microchip 0.2/0.8. Dus waarschijnlijk hebben ze ervaring met dat 0.75 soms niet werkt en dan OOIT in het verleden de specs aangepast onder het mom van: klanten zouden daar normaliter geen last van moeten hebben.

Anyway, microchip behoudt zich het recht voor om binnen de specs in het datasheet te leveren wat ze willen. Dat kan dus zijn dat sommige batches met chips verder buiten de formele specs nog doen wat JIJ er van verwacht en andere niet.

Wat ook kan, met aliexpress componenten, is dat je een "compatible" chip hebt van een andere fabrikant die daarom dus iets anders reageert.

Ik had ooit een paar ONSEMI SI2300 mosfetjes gehaald bij Farnell. En toen de hoeveelheden die ik nodig had opliepen heb ik een zwik (volle rol) gekocht op ebay. Deden het wat mij betreft prima. Maar op "ze zijn vast fake" geroep van hier heb ik ze door de molen gehaald. Wat blijkt ze beginnen met doorslaan bij 24-25V terwijl de ONSEMI SI2300 30V behoort te halen. Slechtere fakes van Ebay!

Later kwam ik in aanraking met de componentenwinkel LCSC. Als je daar zoekt op SI2300 krijg je een aantal hits, waaronder van andere fabrikanten die gewoon "max 20V" in hun datasheet hebben staan.

Toen ben ik eens goed gaan kijken naar de advertentie op Ebay en warempel: Nergens staat dat ie van Onsemi zou zijn. Dat was een onterechte aanname van mij. En op de foto was de fabrikant duidelijk zichtbaar en in /dat/ datasheet staat gewoon dat ze max 20V zijn (en deze (die ik getest heb) halen in de praktijk dus 4-5V meer.)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Met componentenwinkel LCSC heb ik ook geen probleem. Wat je op Ebay / Ali tegen kan komen zijn afgekeurde partijen, omgelabelde partijen en klonen die als origineel verkocht worden.

Mijn LilyGo boardjes (Display + ESP32) zijn duidelijk een kloon en de ESP die er op zit heeft een andere opdruk. Ik zal binnenkort wel wat foto's posten.

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.

Al mijn pic's komen van Reichelt en ze hebben soms ook dat probleem als er iets aan de programmeerpinnen hangt, niet alleen de 12F683.
De oorzaak ligt volgens mij aan de Pickit3 en niet de aan controller.

LDmicro user.
Arco

Special Member

De programmeerspecificaties eisen nu eenmaal een strikte rise en falltime van de ICSP lijnen,

Als er veel rommel aan die pinnen hangt haal je die niet, en wordt er niet geprogrammeerd.
Zelfde geldt voor grote elco's aan de Vdd pin: de risetime van Vdd is dan te groot en de programmer zegt: "pic is defect"

(Ik reserveer die icsp pinnen altijd voor capacitief weinig belastend werk zoals input od aansturen van leds)

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