Kravspecifikation (SRS)

Professionelt Arduino Milliohmmeter v7

Kravspecifikation (SRS) – Professionelt Arduino Milliohmmeter v7
Forfatter: Jan Engelbrecht Pedersen
Dato: 9. december 2025
Version: 5.1
Firmware: milliohmmeter7.ino

Indholdsfortegnelse

Indledning

1.1 Formål

1.2 Omfang

1.3 Definitioner og forkortelser

1.4 Referencer

Systemoversigt

2.1 Hvad er et milliohmmeter?

2.2 Måleprincip

2.3 Typiske anvendelser

Materialeliste (BOM)

Systemarkitektur

4.1 Elektrisk diagram og stikskema

4.2 Strømforsyning og termiske forhold

4.3 Use Cases og Brugsscenarier

Funktionelle krav

5.1 Måleområde og opløsning

5.2 Teststrøm

5.3 4-leder Kelvin-måling

5.4 ADC-systemkrav

5.5 Kalibreringsknap og -funktion

5.7 Non-Funktionelle Krav (NFR)

Kalibreringsvejledning

6.1 Forberedelse

6.2 Softwarekalibrering

6.3 Fejlkilder

Verifikation og test

7.1 Funktionsverifikation

7.2 Nøjagtighedsverifikation

7.3 EMC- og miljøtest

EMC og PCB-layout

8.1 Layoutkrav

8.2 Shielding og filtrering

Softwarearkitektur

9.1 Doxygen-dokumentation

9.2 Softwaremoduler

Produktionskrav

10.1 Gerber-filer og fabrikationskrav

10.2 Montage og test

Acceptance test og godkendelse

Bilag og eksempler

1. Indledning

1.1 Formål

Dette dokument beskriver kravspecifikationen og software requirements specification (SRS) for et professionelt Arduino-baseret milliohmmeter målrettet hobbysegmentet,

men med funktionalitet og nøjagtighed på niveau med kommercielle instrumenter. Formålet er at gøre det muligt for enhver med grundlæggende elektronikforståelse at bygge,

kalibrere og anvende instrumentet samt integrere det i laboratoriemiljøer og automatiserede testsystemer.:

Formålet er at give en komplet, reproducerbar og teknisk præcis beskrivelse af hardware, software, kalibrering og test, så enhver med grundlæggende elektronikforståelse kan bygge, kalibrere og anvende instrumentet.

Instrumentet er ikke et professionelt milliohmmeter, men et hobby‑ og serviceinstrument, hvilket afspejles i firmware v7’s egne begrænsninger:

1.2 Omfang

Kravspecifikationen dækker:

1.3 Definitioner og forkortelser

(Uændret 1:1, da firmware ikke ændrer dette afsnit)

DUT: Device Under Test

SRS: Software Requirements Specification

ADC: Analog‑to‑Digital Converter

EMC: Electromagnetic Compatibility

BOM: Bill of Materials

Kelvin‑måling: 4‑leder målemetode for lav ohm

PCB: Printed Circuit Board

RTC: Real Time Clock

CSV: Comma Separated Values

XML: Extensible Markup Language

SCPI: Standard Commands for Programmable Instruments

1.4 Referencer

(Uændret 1:1)

IEEE 830‑1998: Software Requirements Specification

Arduino Uno R3, ATmega328P datasheet

ADS1115 datasheet

DS1307 RTC datasheet

EN55022 Class B (EMC‑standard)

2. Systemoversigt

2.1 Hvad er et milliohmmeter?

Et milliohmmeter er et specialiseret præcisionsmåleinstrument designet til at måle meget lave elektriske modstande med høj opløsning og nøjagtighed. Instrumentet opererer typisk i måleområdet fra 0,002 ohm (2 milliohm) til 5 ohm, hvilket er væsentligt under hvad et almindeligt multimeter kan måle pålideligt.

Traditionelle digitale multimetre er generelt begrænset til målinger over 1-10 ohm med rimelig præcision, da deres egen indre modstand, testledningers modstand og kontaktmodstande introducerer betydelige fejl ved lavere værdier. Et milliohmmeter er specifikt udviklet til at eliminere disse fejlkilder gennem anvendelse af 4-leder Kelvin-måleteknik og kontrolleret højere teststrøm.

Tekniske karakteristika

Instrumentet har et måleområde fra 1 milliohm til 10 ohm. Det anvender en konstantstrøm på 100 mA og måleteknikken er 4‑leder Kelvin. ADC’en er en ADS1115 med 16 bit opløsning i differential mode. Forstærkningen (PGA) skifter dynamisk mellem 4×, 8× og 16× afhængigt af målespændingen. Nøjagtigheden er cirka 1 procent efter kalibrering. Kalibreringsdata er lagret i PROGMEM. Displayet er et 16×2 LCD via I²C. Kommunikation foregår via en SCPI‑lignende seriel protokol. Datalogning foregår i en intern cirkulær RAM‑buffer.

Instrumentets betydning

Evnen til at måle milliohm-modstande er kritisk i moderne elektronik og elektrisk installation. Mange fejl og problemer manifesterer sig som små ændringer i modstand, som er usynlige for konventionelle måleinstrumenter. Et milliohmmeter gør det muligt at:

Identificere defekte forbindelser før de forårsager totalt svigt

Verificere kvaliteten af lodninger, svejsninger og skrueforbindelser

Diagnosticere interne fejl i komponenter som transformere og motorer

Kvalitetssikre produktionen af lavmodstandskomponenter

2.2 Måleprincip

Grundlæggende teori

Modstand beregnes ud fra Ohms lov som spænding divideret med strøm.

Konstant strømkilde

Teststrømmen på 100 mA genereres af et konstant strømkredsløb baseret på en LM317 spændingsregulator konfigureret som strømregulator. Dette opnås ved at udnytte regulatorens interne referencestrøm:

I_test = V_ref / R_set

hvor V_ref = 1,25V (LM317's reference) og R_set er en præcisionsmodstand på 12,5 Ω (±1% eller bedre), hvilket giver en teststrøm på præcis 100 mA.

Fordele ved 100 mA teststrøm

Valget af 100 mA teststrøm repræsenterer en optimal balance mellem flere faktorer:

Tilstrækkelig høj til præcision: Ved lave modstande genererer 100 mA et målbart spændingsfald. For en modstand på 0,1 Ω giver 100 mA et spændingsfald på 10 mV, som er godt detekterbart af en præcisions-ADC.

Lav nok til sikkerhed: 100 mA er tilstrækkeligt lav til ikke at beskadige de fleste komponenter eller forårsage betydelig opvarmning under målingen. Effekten i en 1 Ω modstand er kun P = I²R = (0,1)² × 1 = 0,01 W = 10 mW.

Praktisk implementering: 100 mA kan nemt leveres af en standard 9V batteri i flere timer og kan håndteres af almindelige Arduino-kompatible komponenter.

Beregningsvenlig: Værdien 100 mA = 0,1 A forenkler matematikken. For en målt spænding V målt i millivolt bliver modstanden direkte: R (mΩ) = V (mV) / 0,1 = 10 × V (mV).

Firmware v7 anvender udelukkende DC‑måling. Der er ingen AC‑måling, ingen polaritetsvending, ingen EMF‑kompensation, ingen auto‑zero og ingen temperaturkompensation. Termospændinger kan derfor påvirke målinger i mikrovolt‑området. Måleresultaterne er mest præcise ved samme temperatur som kalibreringen. Lavfrekvent støj reduceres gennem oversampling.

4‑leder Kelvin‑måling

Strøm føres gennem force‑ledningerne, mens spændingen måles direkte på DUT via sense‑ledningerne.

ADC og signalbehandling i firmware v7

Firmware v7 anvender ADS1115 i differential mode mellem A0 og A1. PGA‑forstærkningen vælges dynamisk ud fra den rå ADC‑værdi. Datatempoet er 860 samples per sekund. Der oversamples 65 målinger i 4 blokke. Den endelige modstand beregnes ikke via Ohms lov, men via lineær interpolation i kalibreringstabeller lagret i PROGMEM.

Dynamisk PGA‑styring

Firmware v7 vælger automatisk mellem tre forstærkningsniveauer. Ved lave ADC‑værdier anvendes 16× forstærkning. Ved mellemstore værdier anvendes 8×. Ved høje værdier anvendes 4×. Dette sikrer optimal udnyttelse af ADC’ens opløsning.

Modstandsberegning

Firmware v7 beregner ikke modstand ud fra spænding og strøm. I stedet anvendes den rå ADC‑værdi som indeks i en kalibreringstabel. Hvis værdien ligger mellem to punkter, udføres lineær interpolation. Dette giver bedre linearitet end teoretiske beregninger.

Målenøjagtighed og fejlkilder

ADS1115 er ikke temperaturkompenseret. Kalibreringstabellerne gælder kun ved samme temperatur som kalibreringen. LM317’s temperaturdrift påvirker teststrømmen. Der er ingen auto‑zero, så offsetfejl kan forekomme. ESR‑målinger er DC‑tilnærmelser, da instrumentet ikke måler ved AC‑frekvenser.

2.3 Typiske anvendelser

Alle beskrivelser af kabeltest, shunt‑modstande, transformere, motorviklinger, batteridiagnostik, kontaktmodstand og øvrige anvendelser er fortsat gyldige.

3. Materialeliste (BOM)

Firmware v7 anvender Arduino Uno/Nano, ADS1115, LM317‑baseret konstantstrøm og 4‑leder Kelvin‑måling.

Materialelisten er som følger, gengivet uden tabeller:

ATmega328P‑baseret 5V platform. Anvendes som hovedcontroller.

16‑bit I²C ADC med differentialmåling. Bruges til præcis måling af spændingsfaldet over DUT.

Lineær regulator i TO‑220‑pakke, konfigureret som konstantstrømsgenerator til 100 mA.

HD44780‑kompatibelt display med PCF8574 I²C‑adapter. Bruges til visning af måleresultater.

Bruges som R_set i LM317‑strømgeneratoren for at opnå 100 mA.

Bruges til LM317 stabilitet.

Bruges som I²C pull‑ups.

Bruges til afkobling og LM317 stabilitet.

Bruges som kalibreringsknap (forbundet til GPIO2 → GND).

Bruges til force‑ og sense‑forbindelserne i Kelvin‑målesystemet.

Bruges til professionelt layout med EMC‑hensyn.

Anvendes som primær strømforsyning. Firmware v7 er optimeret til lavt støjniveau, så lineær forsyning er vigtig.

Bruges til at reducere temperaturdrift i konstantstrømsgeneratoren.

Bruges til overstrømsbeskyttelse.

Bruges til polaritetsbeskyttelse.

Firmware v7 understøtter automatisk tidsstempling, hvis RTC’en er til stede. Hvis ikke, anvendes intern uptime‑tæller.

Den samlede pris er fortsat cirka 355 DKK afhængigt af leverandør.

4. Systemarkitektur

Dette afsnit beskriver den elektriske og funktionelle arkitektur for milliohmmeteret.

4.1 Elektrisk diagram og stikskema

Systemet er opdelt i fire hovedblokke:

4.1.1 Overordnet systemarkitektur

Strømforsyningen består af et 9V batteri, polaritetsbeskyttelse via diode, PTC‑sikring og en 5V regulator, der forsyner Arduino, ADS1115, LCD og RTC.

Fra samme batteri forsyner LM317‑kredsløbet konstantstrømsgeneratoren, som leverer 100 mA til DUT via force‑ledningerne.

Kelvin‑målesystemet består af to force‑ledninger, der fører strømmen, og to sense‑ledninger, der måler spændingsfaldet direkte på DUT. Sense‑ledningerne går til ADS1115 i differential mode.

Digital signalbehandling udføres af ADS1115 og Arduino. ADS1115 leverer rå ADC‑data, som Arduino oversampler, interpolerer og konverterer til modstandsværdier via PROGMEM‑tabeller.

Brugerinterfacet består af LCD‑displayet, kalibreringsknappen, valgfri RTC og SCPI‑seriel kommunikation.

4.1.2 Strømforsyningssektion

Strømforsyningen er opdelt i to subsystemer:

Primær digital forsyning

Et 9V batteri føres gennem en 1N4007 diode for polaritetsbeskyttelse og derefter gennem en PTC‑sikring. En lineær 5V regulator (7805 eller AMS1117‑5.0) leverer 5V til alle digitale komponenter. Afkoblingskondensatorer placeres ved regulatorens indgang og udgang samt ved hver IC.

Konstantstrømkilde

LM317 konfigureres som konstantstrømsgenerator med en præcisionsmodstand på 12,5 ohm. Dette giver en teststrøm på 100 mA.

LM317 skal monteres på en køleprofil for at minimere temperaturdrift, da firmware v7 ikke har temperaturkompensation.

Effekten i LM317 er størst ved lave DUT‑modstande, og termisk stabilitet er vigtig for nøjagtighed.

4.1.3 Kelvin‑målesystem

Kelvin‑målesystemet består af to force‑ledninger og to sense‑ledninger.

Force‑ledningerne fører 100 mA gennem DUT. Deres modstand er ikke kritisk, da strømmen er konstant.

Sense‑ledningerne fører praktisk talt ingen strøm og måler spændingsfaldet direkte på DUT. De går til ADS1115’s A0 og A1 indgange i differential mode.

Firmware v7 anvender ADS1115’s differentialmåling direkte uden yderligere forstærkning, da PGA‑forstærkningen håndteres digitalt.

PCB‑layoutet skal sikre:

Dette er uændret fra originalen.

4.1.4 I²C‑bus

I²C‑bussen forbinder Arduino med ADS1115, LCD og den valgfri DS1307 RTC.

Pull‑up modstande på 4,7 kΩ anvendes på SDA og SCL.

Firmware v7 anvender 400 kHz I²C‑hastighed for at sikre hurtig kommunikation med ADS1115 ved 860 SPS.

Adressefordelingen er:

Firmware v7 detekterer automatisk, om RTC er til stede.

4.2 Strømforsyning og termiske forhold

Dette afsnit er uændret, men med én vigtig firmware‑relevant tilføjelse:

Firmware v7 anvender PROGMEM‑kalibreringstabeller, som forudsætter at LM317’s temperatur er stabil.

Derfor skal LM317’s køleprofil dimensioneres, så temperaturstigningen under drift er minimal.

Termisk drift i LM317 påvirker teststrømmen og dermed ADC‑værdierne, hvilket firmware v7 ikke kompenserer for.

4.3 Use Cases og Brugsscenarier

Dette afsnit er uændret 1:1, da firmware v7 ikke ændrer anvendelsesmønstre.

Instrumentet bruges til:

Firmware v7 tilføjer dog følgende funktionelle muligheder:

5. Funktionelle krav

Dette afsnit beskriver alle funktionelle krav til milliohmmeteret. Strukturen og omfanget er identisk med originalen, men opdateret så det præcist afspejler firmware v7’s faktiske funktioner, herunder dynamisk PGA‑styring, PROGMEM‑baseret kalibrering, SCPI‑interface, datalogning og måleområde op til 10 ohm.

5.1 Måleområde og opløsning

Instrumentet skal kunne måle modstande fra 1 milliohm til 10 ohm. Dette er en udvidelse i forhold til tidligere versioner, hvor måleområdet sluttede ved 5 ohm. Firmware v7 understøtter dette udvidede område gennem dynamisk PGA‑styring og kalibreringstabeller, der dækker hele området.

Opløsningen bestemmes af ADS1115’s 16‑bit differentialmåling kombineret med oversampling og interpolation. Firmware v7 anvender ikke en fast opløsning i milliohm, men opnår effektiv opløsning gennem interpolation mellem kalibreringspunkter.

5.2 Teststrøm

Instrumentet skal levere en konstant teststrøm på 100 mA gennem DUT. Dette opnås via LM317 i konstantstrømskonfiguration med en præcisionsmodstand på 12,5 ohm. Firmware v7 forudsætter, at denne strøm er stabil, da der ikke udføres temperaturkompensation eller automatisk nuljustering.

5.3 4‑leder Kelvin‑måling

Instrumentet skal anvende 4‑leder Kelvin‑måleteknik. Force‑ledningerne fører strømmen, mens sense‑ledningerne måler spændingsfaldet direkte på DUT. Firmware v7 anvender ADS1115 i differential mode mellem A0 og A1 til at måle spændingsfaldet med høj impedans.

5.4 ADC‑systemkrav

Firmware v7 stiller følgende krav til ADC‑systemet:

5.5 Kalibreringsknap og kalibreringsfunktion

Instrumentet skal have en fysisk kalibreringsknap forbundet til Arduino’s digitale pin 2 med intern pull‑up. Når knappen holdes nede, skal instrumentet gå i kalibreringstilstand.

I kalibreringstilstand skal følgende ske:

Firmware v7 understøtter ikke SCPI‑baseret kalibrering. Kalibreringstabellerne er lagret i PROGMEM og kræver omprogrammering af firmwaren for at blive opdateret.

Dette er en vigtig afvigelse fra professionelle instrumenter, som typisk har NVRAM‑baseret kalibrering.

5.7 Non‑funktionelle krav (NFR)

Dette afsnit er uændret i struktur, men opdateret så det matcher firmware v7’s faktiske begrænsninger.

Nøjagtighed

Instrumentet skal have en typisk nøjagtighed omkring 1 procent efter korrekt kalibrering. Nøjagtigheden afhænger af:

Firmware v7 har ingen temperaturkompensation, ingen auto‑zero og ingen EMF‑kompensation.

Ydelse

Instrumentet skal kunne opdatere displayet uden flimmer. Firmware v7 implementerer hysterese, så displayet kun opdateres, når modstanden ændrer sig mere end 10 mikroohm.

Robusthed

Instrumentet skal kunne håndtere:

Brugervenlighed

Instrumentet skal:

6. Kalibreringsvejledning

Kalibrering er en central del af instrumentets funktion, da ADS1115 ikke er lineær over hele spændingsområdet, og LM317’s temperaturdrift påvirker teststrømmen. Firmware v7 anvender derfor omfattende kalibreringstabeller lagret i PROGMEM. Disse tabeller kan kun opdateres ved at genkompilere og genindlæse firmwaren.

Kalibreringsproceduren i dette afsnit er identisk i struktur og omfang med originalen, men opdateret så den præcist afspejler firmware v7’s funktionalitet, herunder dynamisk PGA‑valg og rå ADC‑visning i kalibreringstilstand.

6.1 Forberedelse

Før kalibrering skal følgende være opfyldt:

Firmware v7 understøtter ikke SCPI‑baseret kalibrering. Kalibrering foregår udelukkende via fysisk knap og manuel aflæsning.

6.2 Softwarekalibrering

Firmware v7 anvender tre separate kalibreringstabeller, én for hver PGA‑indstilling: 4×, 8× og 16×. Hver tabel indeholder 81 punkter. Derudover findes en tabel med reference‑modstande i ohm.

Kalibreringsprocessen består af følgende trin:

Displayet viser nu rå ADC‑værdier og aktuel PGA‑indstilling. Kalibrerings‑LED’en lyser.

Firmware vælger automatisk den PGA‑indstilling, der passer til spændingsfaldet.

Firmware sender linjer i formatet:

RAW: PGA:

Dette kræver manuel redigering af kildekoden.

Firmware v7 udfører lineær interpolation mellem kalibreringspunkterne. Derfor er det vigtigt, at punkterne er jævnt fordelt og dækker hele området.

6.3 Fejlkilder

Dette afsnit er udvidet for at matche firmware v7’s faktiske begrænsninger.

Temperaturdrift

LM317’s udgangsstrøm varierer med temperatur. Da firmware v7 ikke kompenserer for dette, kan målinger afvige, hvis instrumentet er varmere eller koldere end ved kalibrering.

Termospændinger

Forskellige metaller i forbindelserne kan skabe mikrovolt‑niveau spændinger. Firmware v7 har ingen EMF‑kompensation eller polaritetsvending, så termospændinger kan påvirke målinger i mikroohm‑området.

Offsetfejl

Firmware v7 har ingen auto‑zero funktion. Offset i ADS1115 eller i sense‑ledningerne kan derfor give systematiske fejl.

ADC‑støj

ADS1115 har 1/f‑støj ved lave frekvenser. Firmware v7 reducerer dette via oversampling, men støj kan stadig påvirke målinger i den lave ende af området.

Kontaktmodstand

Selv om Kelvin‑måling eliminerer de fleste fejl, kan dårlig kontakt i sense‑forbindelserne give fejl. Kontakterne skal være rene og faste.

Kalibreringspunkter

Hvis reference‑modstandene ikke er præcise, eller hvis ADC‑værdierne noteres forkert, vil hele kalibreringstabellen være unøjagtig.

7. Verifikation og test

Dette afsnit beskriver, hvordan instrumentet verificeres og testes efter montage og kalibrering. Strukturen og omfanget er identisk med originalen, men opdateret så det præcist afspejler firmware v7’s funktioner, herunder dynamisk PGA‑styring, PROGMEM‑kalibrering, SCPI‑interface og udvidet måleområde op til 10 ohm.

7.1 Funktionsverifikation

Funktionsverifikation skal sikre, at instrumentet arbejder korrekt på alle niveauer: hardware, ADC, firmware, brugerinterface og SCPI‑kommunikation.

Start‑ og initialiseringstest

Når instrumentet tændes, skal følgende ske:

ADC‑test

Instrumentet skal verificeres ved at udføre en rå ADC‑måling uden DUT tilsluttet. Råværdien skal være tæt på nul, og PGA‑vælgeren skal vælge 16× forstærkning.

Firmware v7’s dynamiske PGA‑styring skal verificeres ved at tilslutte DUT’er med stigende modstand og observere, at PGA skifter mellem 16×, 8× og 4× ved de forventede niveauer.

Displaytest

Displayet skal:

Kalibreringstilstand

Når kalibreringsknappen holdes nede:

Dette verificerer, at kalibreringslogikken fungerer korrekt.

SCPI‑test

Følgende SCPI‑kommandoer skal verificeres:

Dette afspejler firmware v7’s faktiske SCPI‑funktionalitet.

7.2 Nøjagtighedsverifikation

Nøjagtighedsverifikation skal sikre, at instrumentet måler inden for den forventede tolerance på cirka 1 procent efter kalibrering.

Reference‑modstande

Instrumentet skal testes med et sæt præcisionsmodstande, der dækker hele måleområdet fra 1 milliohm til 10 ohm. For hver reference‑modstand skal følgende verificeres:

Lineær interpolation

Da firmware v7 anvender lineær interpolation mellem kalibreringspunkter, skal der udføres testmålinger mellem referencepunkterne for at sikre, at interpolation giver korrekte resultater.

Temperaturtest

Da firmware v7 ikke har temperaturkompensation, skal instrumentet testes ved:

Dette verificerer, at brugeren er opmærksom på temperaturens indflydelse.

7.3 EMC‑ og miljøtest

Dette afsnit er uændret i struktur, men opdateret så det matcher firmware v7’s faktiske funktioner.

EMC‑test

Instrumentet skal:

Firmware v7’s oversampling hjælper med at reducere støj, men instrumentet er stadig følsomt over for stærke EMI‑kilder.

Miljøtest

Instrumentet skal testes ved:

Dette er vigtigt, da firmware v7 ikke kompenserer for temperaturdrift i LM317 eller ADS1115.

8. EMC og PCB‑layout

Dette afsnit beskriver de elektromagnetiske hensyn og layoutkrav, der skal overholdes for at sikre stabile og reproducerbare målinger. Strukturen og omfanget er identisk med originalen, men opdateret så det præcist afspejler firmware v7’s funktioner, herunder ADS1115 i differential mode, dynamisk PGA‑styring og PROGMEM‑baseret kalibrering.

Firmware v7 er følsom over for støj, da målingerne foregår i mikrovolt‑området, og der ikke findes temperaturkompensation, auto‑zero eller EMF‑kompensation. Derfor er korrekt layout og EMC‑styring afgørende.

8.1 Layoutkrav

PCB‑layoutet skal understøtte præcisionsmålinger i lavohmsområdet. Følgende krav gælder:

Adskillelse af analog og digital del

Den analoge del (ADS1115, sense‑traces, Kelvin‑terminaler) skal være fysisk adskilt fra den digitale del (Arduino, LCD, I²C‑bus).

Dette reducerer digital støj, som ellers kan koble ind i sense‑ledningerne.

Kortest mulig vej for sense‑traces

Sense‑traces fra Kelvin‑terminalerne til ADS1115’s A0 og A1 indgange skal være så korte som muligt.

Dette minimerer:

Ground‑plane

Der skal være et ubrudt ground‑plane under hele ADC‑sektionen.

Dette stabiliserer referencepotentialet og reducerer EMI.

90‑graders krydsning

Sense‑traces skal krydse digitale signaler i 90 graders vinkel, hvis krydsning ikke kan undgås.

Parallelle løb mellem digitale og analoge signaler skal undgås.

Afkobling

Alle IC’er skal have lokale afkoblingskondensatorer tæt på forsyningsbenene.

Dette gælder især:

Termisk styring

LM317 skal placeres, så varme ikke påvirker ADC‑området.

Firmware v7 har ingen temperaturkompensation, så termisk isolation er vigtig.

Kelvin‑terminaler

Force‑ og sense‑terminalerne skal være fysisk adskilt og tydeligt markeret.

Sense‑terminalerne skal placeres tættest på PCB‑traces for at minimere overgangsmodstand.

8.2 Shielding og filtrering

Dette afsnit er uændret i struktur, men opdateret så det matcher firmware v7’s faktiske funktioner.

Skærmning af måleledninger

Kelvin‑testledningerne bør være tvistet par for både force‑ og sense‑ledninger.

Dette reducerer:

Ferritkerner

Ferritkerner kan monteres på testledningerne, hvis instrumentet anvendes i støjende miljøer.

Firmware v7’s oversampling reducerer støj, men ferritkerner kan yderligere stabilisere målinger.

Filtrering

ADS1115 har indbygget digital filtrering, men PCB‑layoutet skal understøtte lavstøjsmåling ved at:

EMC‑robusthed

Instrumentet skal kunne fungere stabilt i almindelige laboratoriemiljøer.

Det er ikke designet til industrielle EMC‑krav, men korrekt layout og afkobling sikrer tilstrækkelig robusthed.

9. Softwarearkitektur

Dette afsnit beskriver den softwaremæssige opbygning af milliohmmeteret. Strukturen er identisk med originalen, men opdateret så den præcist afspejler firmware v7’s funktioner, herunder dynamisk PGA‑styring, PROGMEM‑kalibreringstabeller, SCPI‑protokol, datalogning og RTC‑understøttelse.

Firmware v7 er betydeligt mere avanceret end tidligere versioner og indeholder en fuld målekæde fra rå ADC‑data til interpoleret modstandsværdi, samt et SCPI‑lag og et internt logsystem.

9.1 Doxygen‑dokumentation

Firmware v7 er fuldt dokumenteret med Doxygen‑kommentarer.

Alle funktioner, datastrukturer, konstanter og globale variabler er beskrevet i overensstemmelse med Doxygen‑standarder.

Doxygen‑kommentarerne beskriver:

Dette afsnit er uændret i struktur, men firmware v7 indeholder flere dokumenterede moduler end tidligere versioner.

9.2 Softwaremoduler

Firmware v7 er opdelt i en række funktionelle moduler, der hver håndterer en specifik del af systemet.

Modulopdelingen er identisk med originalen, men indholdet er opdateret til at matche den nye funktionalitet.

Hardwarekonfiguration

Dette modul definerer:

Firmware v7 detekterer automatisk, om RTC er til stede.

Måleparametre

Dette modul indeholder:

Firmware v7 anvender 65 samples × 4 blokke for at reducere støj.

Kalibreringstabeller (PROGMEM)

Firmware v7 indeholder tre store kalibreringstabeller, én for hver PGA‑indstilling.

Derudover findes en tabel med reference‑modstande.

Alle tabeller er lagret i PROGMEM og kræver genkompilering ved ændring.

PGA‑styring

Dette modul håndterer:

Firmware v7 anvender tre niveauer: 4×, 8× og 16×.

ADC‑måling og oversampling

Dette modul udfører:

Firmware v7 anvender 860 SPS og 400 kHz I²C‑clock.

Interpolation og modstandskonvertering

Dette modul:

Firmware v7 anvender ikke Ohms lov direkte.

Displaymodul

Dette modul håndterer:

Input‑ og kalibreringslogik

Dette modul håndterer:

Firmware v7 understøtter ikke SCPI‑kalibrering.

Tidsstempling og datalogning

Dette modul:

Firmware v7 gemmer 16 målinger i RAM.

SCPI‑kommandofortolkning

Dette modul håndterer:

Understøttede kommandoer:

Ukendte kommandoer returnerer en fejlmeddelelse.

Setup‑modul

Dette modul initialiserer:

Loop‑modul

Dette modul udfører:

Loop‑strukturen er optimeret til stabil realtidsmåling.

10. Produktionskrav

Dette afsnit beskriver de krav, der gælder for produktion, fremstilling og test af milliohmmeteret. Strukturen og omfanget er identisk med originalen, men opdateret så det præcist afspejler firmware v7’s funktioner og afhængigheder, herunder PROGMEM‑kalibrering, dynamisk PGA‑styring og krav til præcisionslayout.

10.1 Gerber‑filer og fabrikationskrav

Printkortet skal fremstilles som et dobbeltlags FR4‑print med en tykkelse på 1,6 mm og kobbertykkelse på 35 µm.

Layoutet skal følge de EMC‑ og præcisionskrav, der er beskrevet i afsnit 8.

Følgende krav gælder for produktionen:

Gerber‑filerne skal være kompatible med almindelige PCB‑fabrikanter og følge standarder for:

Firmware v7 stiller ingen yderligere krav til PCB‑fremstillingen, men kræver et layout, der understøtter lavstøjsmåling.

10.2 Montage og test

Montagen skal udføres i følgende rækkefølge for at sikre korrekt funktion og minimal risiko for fejl:

1. Lodning af passive komponenter

Modstande, kondensatorer og dioder loddes først.

Dette sikrer korrekt termisk profil og minimerer risikoen for at beskadige følsomme IC’er.

2. Lodning af IC’er og sokler

ADS1115, Arduino‑headerne og RTC‑headeren loddes næste.

ADS1115 skal loddes med særlig omhu, da fejl her påvirker hele målekæden.

3. Lodning af LM317 og køleprofil

LM317 skal monteres med termisk pasta og korrekt isolering, hvis køleprofilen er elektrisk forbundet.

Dette er vigtigt, da firmware v7 ikke kompenserer for temperaturdrift.

4. Montering af terminaler

Kelvin‑terminalerne monteres sidst, så de ikke forhindrer adgang til andre loddepunkter.

5. Visuel inspektion

Printet skal inspiceres for:

6. Elektrisk test

Før første opstart skal følgende verificeres:

7. Firmware‑upload

Firmware v7 uploades via Arduino IDE.

Efter upload skal instrumentet:

8. Kalibrering

Kalibrering udføres som beskrevet i afsnit 6.

Da firmware v7 anvender PROGMEM‑tabeller, skal kalibreringsdata indtastes i kildekoden og firmware genuploades.

9. Sluttest

Instrumentet testes med reference‑modstande i hele området fra 1 milliohm til 10 ohm.

Display, SCPI‑interface og datalogning verificeres.

11. Acceptance test og godkendelse

Dette afsnit beskriver den endelige accepttest, som instrumentet skal bestå, før det kan betragtes som færdigt, funktionelt og godkendt. Strukturen og omfanget er identisk med originalen, men opdateret så det præcist afspejler firmware v7’s funktioner, herunder dynamisk PGA‑styring, PROGMEM‑kalibrering, SCPI‑interface og udvidet måleområde op til 10 ohm.

Acceptance‑testen skal verificere, at instrumentet fungerer korrekt i alle tilstande, leverer stabile og nøjagtige målinger og opfylder alle krav i denne SRS.

11.1 Acceptance test – trin for trin

1. Opstart og initialisering

Når instrumentet tændes, skal følgende verificeres:

Dette bekræfter, at hardware og firmware initialiseres korrekt.

2. ADC‑funktion og dynamisk PGA

Instrumentet skal testes med DUT’er i forskellige modstandsområder for at verificere:

Dette bekræfter, at målekæden fungerer korrekt.

3. Displayfunktion

Displayet skal verificeres for:

Dette bekræfter, at brugerinterfacet fungerer korrekt.

4. Kalibreringstilstand

Når kalibreringsknappen holdes nede:

Dette bekræfter, at kalibreringslogikken fungerer korrekt.

5. SCPI‑funktionalitet

Følgende SCPI‑kommandoer skal testes:

Dette bekræfter, at instrumentet kan integreres i automatiserede testsystemer.

6. Datalogning

Instrumentet skal:

Dette bekræfter, at datalogningen fungerer som specificeret.

7. Nøjagtighedstest

Instrumentet skal testes med præcisionsmodstande i hele området fra 1 milliohm til 10 ohm.

For hver reference‑modstand skal følgende verificeres:

Dette bekræfter, at kalibreringen er korrekt.

8. Temperaturtest

Da firmware v7 ikke har temperaturkompensation, skal instrumentet testes ved:

Dette bekræfter, at brugeren er opmærksom på temperaturens indflydelse.

11.2 Godkendelse

Instrumentet kan godkendes, når:

Når alle disse punkter er opfyldt, anses instrumentet for godkendt og klar til brug.

12. Bilag og eksempler

Dette afsnit indeholder illustrative eksempler, der viser, hvordan instrumentet anvendes i praksis. Eksemplerne er opdateret, så de afspejler firmware v7’s funktioner, herunder dynamisk PGA‑styring, SCPI‑interface, PROGMEM‑kalibrering og datalogning.

Strukturen og omfanget er identisk med originalen, men indholdet er tilpasset den nye firmware.

12.1 Eksempel på normal måling

Når instrumentet er tændt og i normal måletilstand, vil en DUT på eksempelvis 0,125 ohm give følgende typiske output:

“R: (Gain=8)”

“125.000 mOhm”

“ADC: 8320 PGA: 8 R: 0.125000 Ohm”

Dette eksempel viser, hvordan firmware v7 automatisk vælger PGA‑niveauet og interpolerer modstanden.

12.2 Eksempel på måling uden for område

Hvis DUT overstiger 10 ohm, vil instrumentet:

Dette afspejler firmware v7’s faste øvre målegrænse.

12.3 Eksempel på kalibreringstilstand

Når kalibreringsknappen holdes nede:

“RAW ADC: (G=16)”

“1234”

“RAW: 1234 PGA: 16”

Dette eksempel viser, hvordan firmware v7 giver direkte adgang til rå ADC‑data.

12.4 Eksempel på SCPI‑kommandoer

Identifikation

Kommando:

*IDN?

Svar:

“Milliohmmeter v7,Jan Engelbrecht Pedersen,2025‑12‑15,FW‑SCPI‑MultiPGA”

Måling

Kommando:

MEAS?

Svar:

“0.125000 Ohm”

Eksport af CSV

Kommando:

EXPORT:CSV?

Svar (forkortet eksempel):

timestamp,resistance

2025-12-15T12:01:22,0.125000

2025-12-15T12:01:25,0.124800

Eksport af XML

Kommando:

EXPORT:XML?

Svar (forkortet eksempel):

2025-12-15T12:01:220.125000



Kalibrering

Kommando:

CAL?

Svar:

“Kalibrering er ikke tilgængelig via SCPI. Brug hardwareknap.”

Dette afspejler firmware v7’s begrænsning.

12.5 Eksempel på logbuffer

Efter flere målinger kan logbufferen indeholde:

Eksempel på intern struktur (beskrevet i tekstform):

Når bufferens kapacitet nås, overskrives den ældste post.

12.6 Eksempel på fejlmeddelelser

Firmware v7 kan vise følgende fejlmeddelelser:

Disse fejlmeddelelser vises både på displayet og i visse tilfælde på seriel porten.

12.7 Eksempel på temperaturpåvirkning

Da firmware v7 ikke har temperaturkompensation, kan følgende observeres:

Eksempel:

Dette illustrerer vigtigheden af kalibrering ved den temperatur, instrumentet skal anvendes ved.

12.8 Eksempel på brug i automatiseret testsystem

Et eksternt system kan:

Firmware v7’s SCPI‑lag gør instrumentet velegnet til automatiseret test i hobby‑ og undervisningsmiljøer.

12.9 Eksempel på komplet målecyklus

Dette viser hele målekæden i firmware v7.