Indholdsfortegnelse:

JDM Programmer Review: 9 trin
JDM Programmer Review: 9 trin

Video: JDM Programmer Review: 9 trin

Video: JDM Programmer Review: 9 trin
Video: JDM ProM Performance Chip Module Review / Teardown / Analysis 2024, Juli
Anonim
JDM Programmerer anmeldelse
JDM Programmerer anmeldelse

JDM er en populær PIC -programmør, fordi den bruger en seriel port, et minimum af komponenter og kræver ingen strømforsyning. Men der er forvirring derude med mange programmeringsvarianter på nettet, hvilke arbejder med hvilke PIC'er? I denne "instruerbare" tester vi JDM, og jeg demonstrerer, hvordan man simulerer kredsløbet ved hjælp af Spice, som vil besvare alle dine spørgsmål!

Forbrugsvarer

LTspice, som kan downloades fra analoge enheder her.

Du har også brug for JDM -kredsløbsfiler her.

Trin 1: Krav til seriel port

Krav til seriel port
Krav til seriel port

JDM kræver en seriel port, der opfylder EIA232-specifikationen, ideelt set med +12/-12 spændingsniveauer.

Ifølge Texas Instruments Line Driver MC1488 datablad (figur 3)

Udgangsimpedans = 4V/8mA = 500 ohm.

Kortslutningsstrømgrænse = 12mV, uden tidsbegrænsning - ingen skade på chip.

Inputimpedans for liniemodtager = 3k til 7k ohm anbefales.

Serielle porte på ældre stationære pc'er bruger +12v/-12V, der opfylder dette krav.

Serielle porte på nyere bærbare pc'er bruger lavere spændinger. JDM virker måske eller måske ikke - svaret er mere komplekst.

Trin 2: Krav til programmering af PIC

Krav til programmering af PIC
Krav til programmering af PIC

Information om PIC -programmeringskrav fås fra Microchip. Ovenstående er for en typisk enhed.

Trin 3: JDM -specifikation

JDM specifikation
JDM specifikation

Er det originale JDM -websted gået tabt i tidens tåger? Dette lader os gætte, hvad designeren oprindeligt havde til hensigt med specifikationen.

  1. Giv VDD = 5V, og op til IDD = 2mA maksimum (for "in socket" version)
  2. Giv VHH = 13V, og op til IHH = 0,2mA maksimum.
  3. MCLR Stigningstid tVHHR = 1uS max.
  4. ICSP-version skal kunne trække MCLR lavt mod 22k pull-up på målet.

Trin 4: Beskrivelse af kredsløb

Kredsløb Beskrivelse
Kredsløb Beskrivelse

Figur JDM1 er baseret på det "standard" JDM -kredsløb, der er hentet fra PICPgm -webstedet. Dette er “PIC in Socket” programmereren, hvor PIC tager strøm fra TX og RTS ben. Det originale diagram var svært at forstå, så jeg har tegnet det igen ved hjælp af den normale konvention af strømmen fra top til bund. Og jeg har tilføjet LED -indikatorer "RESET", "PROG" og "RTS", som er nødvendige under konstruktion og test. Forhåbentlig har disse ikke nogen skadelig effekt på adfærd.

Den normale konvention for kredsløbsdesign er fælles alle grunde, men det centrale ved JDM er, at seriel portjord (GND) er forbundet til VDD. Dette skaber forvirring, da serielle portsignaler måles i forhold til GND, PIC -signaler med hensyn til logisk jord (VSS).

Når TX går højt, opfører Q1 sig som to fremadrettede dioder. (Q1 -kollektoren er ikke omvendt forudindtaget som ved normal transistordrift). Q1 -kollektor oplader C2, som er fastspændt ved VDD+8V af Zener (D3). Q1 -sender sender 13V til MCLR til program/verificeringstilstand.

Når TX går lavt, oplades kondensatoren C3 via D1, og VSS spændes ved VDD-5V af zener (D5). TX er også fastspændt ved (VSS-0.6) med D1. Q1 er slukket, C1 holder sin ladning for næste programmeringspuls. MCLR er fastspændt ved 0V med D2, så PIC'en er nu nulstillet.

Når RTS er høj, sendes uret til PGC. D4 klemme PGC ved VDD logik høj. Når RTS er lav, oplades kondensator C3 via D6, og VSS spændes ved VDD-5V med zener (D5). D6 klemmer PGC ved VSS eller logik 0.

Under programmeringen læses data sendt ud på DTR på PGD, som PIC konfigurerer som input. Når DTR er høj, fungerer Q2 som "emitterfølger", og PGD-spændingen er cirka (VDD-0.6) eller logisk 1. Når DTR er lav, fungerer Q2 som en dårlig transistor (emitter og kollektorstifter er omvendt). Q2 trækker PGD lavt, som fastspændes af D7 ved VSS eller logik 0.

Under verificeringen konfigurerer PIC PGD som output til at sende data til den serielle port. DTR skal indstilles højt, og data læses på CTS. Når PGD -output er høj, er Q2 slukket, CTS = DTR = +12V. Når PGD -output er lav, er Q2 tændt. Q2 -samler trækker strøm (12V+5V)/(1k+1k5) = 7mA fra DTR og trækker CTS lavt til VSS.

Trin 5: Forbered dig på simulering

Forbered dig på simulering
Forbered dig på simulering

Download LT -krydderi, gem og åbn de kredsløbsfiler (*.asc), der findes her. For at simulere kredsløbet skal vi give det nogle input og derefter "spore" output. V1, V2 V3 simulerer 12V seriel port med udgangsimpedans R11, R12, R13.

  • V1 genererer 2 programimpulser på TX fra 0,5 ms til 4,5 ms
  • V2 genererer burst af datapulser på DTR fra 1,5 til 4,5 ms
  • V3 genererer burst af urimpulser på RTS fra 0,5 til 3,5 ms

Komponenterne V4, X1, R15 og R16 er alle en del af simuleringen.

  • V4 genererer 2 pulser fra 2,5 til 4,5 ms til verificeringsdata.
  • Jumper X1 simulerer OUTPUT på PGD.
  • R15, R16 simulerer "indlæsning" af PIC på VDD og MCLR.

Trin 6: Ændringer til ICSP

Ændringer til ICSP
Ændringer til ICSP
Ændringer til ICSP
Ændringer til ICSP

Figur JDM3 viser versionen til programmering "i kredsløb". Ændringer fra original er

  1. Udskift ZIF -stikket med ICSP -stik.
  2. PIC'en drives nu af forsyning til målkredsløbet (V5).
  3. Fjern 5V zener (D5).
  4. Den lille 100pF kondensator (C4) flyttes ved siden af PIC'en på målkredsløbet.
  5. Lysdioder tager strøm fra printkort, hvor det er muligt.
  6. MCLR pull-up modstand (R10) og diode (D10) er påkrævet på målkredsløbet.
  7. ADVARSEL. Målbrættet skal have en "flydende" forsyning, helst et batteri.
  8. Tilslut ikke måljord (VSS) til computer/pc -jord ved at tilslutte andre computerporte på samme tid som JDM.

Efter simulering af JDM1 blev problemet med lang opladningstid på C2 tydeligt. Efter at have læst Fruttenboel ser det ud til, at C2 og Q1 blev tilføjet som en ændring af originalen. Jeg kan ikke tro, hvad C2 og Q1 er beregnet til at gøre bortset fra at skabe problemer. Så for JDM4 vender vi tilbage til det ældre design på Fruttenboel, som er enkelt og ligetil at forstå. D1 og D3/LED2 klemme MCLR mellem VSS og VDD+8V. Værdien af R1 er reduceret til 3k3, lige tilstrækkelig til at belyse LED2 ved 12V.

JDM4 er også designet til at fungere med svagere serielle porte. Når TX går højt (+9V), er TX-strømkilde = (9-8)/(1k +3k3) = 0,2ma, lige nok til at trække MCLR højt, selvom det ikke er tilstrækkeligt til at belyse LED2. Når TX går lavt (ca. -7V), synker TX -strøm = (9-7)/1k = 2mA. LED1 strøm = (7-2 for LED)/(2k7) = 1,8mA. MCLR pull down strøm = 7-5,5/3k3 = 0,5mA.

Dette kredsløb er også testet (JDM5-simulering) for at se, hvad der sker med serielle porte +/- 7V minimum, hvor der ikke er tilstrækkelig spænding til at opretholde VHH = 13V. Formålet med C1 bliver nu tydeligt, C1 skaber et kort +ve -boost til MCLR, en 33us stigning på TX's stigende kant, tilstrækkelig lang nok til at PIC'en kan gå ind i programmeringstilstand, måske? Men fjern jumper X2 (deaktiver LED1), da der ikke er tilstrækkelig strøm til at trække MCLR lavt og belyse LED1 sammen. Når TX går lavt, sænker TX strøm = (7V-5.5V)/(1k+3k3) = 0.3mA, lige tilstrækkeligt til at trække MCLR lavt mod pull-up R10.

Trin 7: Simuleringsresultater

Simuleringsresultater
Simuleringsresultater
Simuleringsresultater
Simuleringsresultater
Simuleringsresultater
Simuleringsresultater

For at se de grafiske filer er det bedre at højreklikke på nedenstående links og derefter vælge "Åbn link i ny fane"

Simulering 1: spor af MCLR, VSS og RTS for original JDM1. Umiddelbart ses observation 1, 2 og 3.

Simulering 2: spor af MCLR og VSS og RTS for modificeret JDM2, som løser tidligere problemer.

Simulering 3: spor af PGD, VSS og PGC for JDM2, der sender data i programtilstand. Observation 4 ved 3,5 mS.

Simulering 4: spor af PGD, VSS og CTS for JDM2 i verificeringstilstand (jumper X1 indsat). Okay

Simulering 5: spor af MCLR, VSS, PGD og PGC for JDM3. ICSP ved hjælp af strøm fra kredsløb løser mange problemer.

Simulering 6: spor af MCLR, VSS, PGD og PGC til JDM4 med +/- 9V seriel port. MCLR stiger med det samme og fungerer fuldt ud.

Simulering 7: spor af MCLR, VSS og TX til JDM5 med +/- 7V seriel port og jumper X2 fjernet. C1 skaber en +ve boost (spike) på stigende kant af MCLR, næsten tilstrækkelig til at skubbe MCLR over TX til 13V.

Trin 8: Konklusioner

Spice er virkelig god til at afsløre “skjulte hemmeligheder” ved kredsløbsdrift. Åbenbart fungerer JDM -kredsløbet og er kompatibelt med mange PIC -chips, men de følgende observationer afslører mulige begrænsninger/kompatibilitetsproblemer/fejl?

  1. Lang stigningstid for MCLR, mens C2 oplades til VPP på den første puls i TX. Fejl i specifikation 3.
  2. Den serielle port oplader C2, når TX går højt og RTS går lavt. Men RTS har også jobbet med at oplade C3. Når begge forekommer på samme tid, skaber dette mere belastning på RTS, derfor mister C3 ladning (VSS stiger) ved 2 ms ved simulering. Fejl i specifikation 1.
  3. C3 mister ladningen (VSS begynder at stige), efter at urimpulser stopper ved 3,5 ms.
  4. Hvad er formålet med C2, er det overhovedet nødvendigt?

Løsninger

  1. Formentlig bruger PICPgm en software "work-round". Det skal anvende en lang TX -puls for at forlade til C2, derefter kun gå ind i programmeringstilstand efter den anden TX -puls? Til simulering reducerede jeg værdien af C2 til 1uF for at give en stigningstid på 1 ms. Ikke en ideel løsning.
  2. Del C2 og C3, så de oplader uafhængigt. En lille ændring til JDM2, C2 refereres til GND i stedet for VSS.
  3. Løst af JDM3. ICSP er meget mere pålidelig, da PIC drives af målkredsløb.
  4. JDM4 løser problem 1. Dette er et ligetil design, der helt eliminerer C2.

Trin 9: Og endelig

Og endelig
Og endelig

Beviset på budding er i spisningen. Denne JDM fungerer, så fortsæt med at bruge den.

Og mine anbefalinger er:

  • brug JDM2 til indgangsprogrammering og 12V serielle porte,
  • brug JDM4 til ICSP-programmør og serielle porte over +/- 9V,
  • brug JDM4 med jumper X2 fjernet til serielle porte over +/- 7V.

Referencer:

Analog Devices LT krydderi

picpgm

Fruttenboel

Følg flere PIC-projekter i sly-corner

Anbefalede: