AgentSkillsCN

ndk

NDK(日本电波工业株式会社)时钟器件 MPN 编码规则、后缀解码及处理指南。适用于与 NDK 晶体、振荡器、TCXO、VCXO、OCXO、VCSO,或 SAW 器件配合使用时。

SKILL.md
--- frontmatter
name: ndk
description: NDK (Nihon Dempa Kogyo) timing devices MPN encoding patterns, suffix decoding, and handler guidance. Use when working with NDK crystals, oscillators, TCXOs, VCXOs, OCXOs, VCSOs, or SAW devices.

NDK (Nihon Dempa Kogyo) Manufacturer Skill

Manufacturer Overview

NDK (Nihon Dempa Kogyo Co., Ltd.) is a leading Japanese manufacturer of timing devices and frequency control products including:

  • Crystal Units: Standard crystals (NX), tuning fork crystals (NT), high frequency crystals (NH), automotive grade (NAT)
  • Clock Oscillators: Standard oscillators (NZ), programmable oscillators (NP), low jitter oscillators (NV)
  • TCXOs: Temperature Compensated Crystal Oscillators (NT, NTW)
  • VCXOs: Voltage Controlled Crystal Oscillators (NV, NVW)
  • OCXOs: Oven Controlled Crystal Oscillators (NO, NH)
  • VCSOs: Voltage Controlled SAW Oscillators (VS, VSW)
  • SAW Devices: SAW filters (SF), SAW resonators (SR), SAW duplexers (SD)

NDK is known for high-precision timing components used in telecommunications, networking, automotive, and industrial applications.


MPN Structure

NDK MPNs follow this general structure:

code
[PREFIX][SIZE][VARIANT]-[FREQUENCY][OPTIONS]
   |       |      |          |         |
   |       |      |          |         +-- Temperature grade, packaging
   |       |      |          +-- Frequency code (MHz or kHz)
   |       |      +-- Variant/specification letter
   |       +-- Size code (2 digits indicating package dimensions)
   +-- Product family prefix (NX, NT, NZ, NV, etc.)

Family Prefixes

PrefixProduct TypeDescription
NXStandard CrystalAT-cut MHz range crystals
NTTuning Fork Crystal / TCXO32.768 kHz crystals or TCXOs
NHHigh Frequency CrystalHigh frequency AT-cut crystals
NATAutomotive CrystalAEC-Q200 qualified crystals
NZStandard OscillatorSPXO (Simple Packaged Crystal Oscillator)
NPProgrammable OscillatorUser-programmable frequency
NVVCXO / Low JitterVoltage controlled or low jitter oscillators
NTWWide Temp TCXOExtended temperature range TCXO
NVWWide Pull VCXOExtended pull range VCXO
NOOCXOOven Controlled Crystal Oscillator
VSVCSOVoltage Controlled SAW Oscillator
VSWWide Pull VCSOExtended pull range VCSO
SFSAW FilterSurface Acoustic Wave filter
SRSAW ResonatorSurface Acoustic Wave resonator
SDSAW DuplexerSurface Acoustic Wave duplexer

Example MPN Decoding

Crystal Example

code
NX3225SA-24.000M
|  |  | |     |
|  |  | |     +-- 24.000M = 24 MHz frequency
|  |  | +-- - = Separator
|  |  +-- SA = Series/specification variant
|  +-- 32 25 = 3.2 x 2.5mm package
+-- NX = Standard Crystal family

Oscillator Example

code
NZ2520SDA-20.000M
|  |  |  |     |
|  |  |  |     +-- 20.000M = 20 MHz frequency
|  |  |  +-- - = Separator
|  |  +-- SDA = Series/specification variant
|  +-- 25 20 = 2.5 x 2.0mm package (note: size code is first 2 digits after prefix)
+-- NZ = Standard Oscillator family

Automotive Crystal Example

code
NAT3225SBTC-25.000M
|   |   |     |
|   |   |     +-- 25.000M = 25 MHz frequency
|   |   +-- SBTC = Automotive specification variant
|   +-- 32 25 = 3.2 x 2.5mm package
+-- NAT = Automotive grade Crystal

Supported Component Types

The NDKHandler supports these ComponentTypes:

ComponentTypeDescriptionExample Prefixes
CRYSTALGeneric crystal typeNX, NT, NH, NAT
CRYSTAL_NDKNDK-specific crystalNX, NT, NH, NAT
OSCILLATORGeneric oscillator typeNZ, NP, NV, NT, NTW, NVW, NO, NH, VS, VSW
OSCILLATOR_NDKNDK-specific oscillatorNZ, NP, NV
OSCILLATOR_TCXO_NDKTemperature compensatedNT, NTW
OSCILLATOR_VCXO_NDKVoltage controlledNV, NVW
OSCILLATOR_OCXO_NDKOven controlledNO, NH
SAW_FILTER_NDKSAW filter devicesSF
SAW_RESONATOR_NDKSAW resonator devicesSR

Note: SAW devices (SF, SR, SD) are registered under ComponentType.IC in patterns but SAW_FILTER_NDK and SAW_RESONATOR_NDK are listed in getSupportedTypes().


Package Code Extraction

The handler extracts package dimensions from the size code in the MPN. The size code is positions 3-4 (0-indexed) after the prefix.

Crystal Packages (NX, NT, NH, NAT)

Size CodePackage Dimensions
121.2 x 1.0mm
161.6 x 1.2mm
202.0 x 1.6mm
252.5 x 2.0mm
323.2 x 2.5mm
505.0 x 3.2mm
808.0 x 4.5mm

Extraction Logic:

java
// For crystals: extract characters at positions 3-4 (after NX, NT, NH, or NAT prefix)
// Example: NX3225SA → position 3 is "3", position 4 is "2" → "32" → 3.2 x 2.5mm
String sizeCode = upperMpn.substring(3, 5);  // Gets "32" from "NX3225..."

Oscillator Packages (NZ, NP, NV, NO)

Size CodePackage Dimensions
212.0 x 1.6mm
252.5 x 2.0mm
323.2 x 2.5mm
505.0 x 3.2mm
707.0 x 5.0mm
989.8 x 7.5mm

Extraction Logic:

java
// For oscillators: extract characters at positions 3-4
// Example: NZ2520SDA → "25" → 2.5 x 2.0mm
String sizeCode = upperMpn.substring(3, 5);

Series Extraction

The handler returns descriptive series names based on the MPN prefix:

Crystal Series

PrefixSeries Name
NXStandard Crystal
NTTuning Fork Crystal
NHHigh Frequency Crystal
NATAutomotive Crystal

Oscillator Series

PrefixVariant CheckSeries Name
NZ-Standard Oscillator
NP-Programmable Oscillator
NVchar[2] == 'W'Wide Pull VCXO
NV(other)VCXO
NTchar[2] == 'W'Wide Temp TCXO
NT(other)TCXO
NO-OCXO
NH(not crystal pattern)High Stability OCXO

VCSO Series

PrefixSeries Name
VSVCSO
VSWWide Pull VCSO

SAW Device Series

PrefixSeries Name
SFSAW Filter
SRSAW Resonator
SDSAW Duplexer

Frequency Code Patterns

NDK MPNs include frequency specifications after the hyphen:

FormatMeaningExample
XX.XXXMMegahertz24.000M, 48.000M
XX.XXXXMMegahertz (4 decimal)24.0000M
32.768K32.768 kHzTuning fork crystal frequency

Extraction Logic:

java
private String extractFrequencyCode(String mpn) {
    // Extract everything after the last hyphen
    int lastDash = mpn.lastIndexOf('-');
    if (lastDash >= 0 && lastDash < mpn.length() - 1) {
        return mpn.substring(lastDash + 1);
    }
    return "";
}

Common Example MPNs

Standard Crystals (NX)

MPNTypeSizeFrequency
NX3225SA-24.000MStandard3.2 x 2.5mm24 MHz
NX2520SA-16.000MStandard2.5 x 2.0mm16 MHz
NX2016SA-32.000MStandard2.0 x 1.6mm32 MHz
NX5032GA-8.000MStandard5.0 x 3.2mm8 MHz

Tuning Fork Crystals (NT)

MPNTypeSizeFrequency
NT2012SA-32.768KTuning Fork2.0 x 1.2mm32.768 kHz
NT1612SA-32.768KTuning Fork1.6 x 1.2mm32.768 kHz

Automotive Crystals (NAT)

MPNTypeSizeFrequency
NAT3225SBTC-25.000MAutomotive3.2 x 2.5mm25 MHz
NAT2520SBTA-20.000MAutomotive2.5 x 2.0mm20 MHz

Standard Oscillators (NZ)

MPNTypeSizeFrequency
NZ2520SDA-20.000MStandard2.5 x 2.0mm20 MHz
NZ3225SDA-24.000MStandard3.2 x 2.5mm24 MHz
NZ5032SDA-50.000MStandard5.0 x 3.2mm50 MHz

TCXOs (NT oscillator)

MPNTypeSizeStability
NT2520SD-26.000MTCXO2.5 x 2.0mmStandard
NTW3225CC-26.000MWide Temp TCXO3.2 x 2.5mmExtended temp

VCXOs (NV)

MPNTypeSizePull Range
NV2520SA-100.000MVCXO2.5 x 2.0mmStandard
NVW3225SD-155.520MWide Pull VCXO3.2 x 2.5mmExtended

OCXOs (NO)

MPNTypeSizeStability
NO5032SD-10.000MOCXO5.0 x 3.2mmHigh
NO7050SD-10.000MOCXO7.0 x 5.0mmVery High

Handler Implementation Notes

Pattern Registration

The handler registers patterns for both base types and NDK-specific types:

java
// Crystal patterns - register for BOTH generic and manufacturer-specific types
registry.addPattern(ComponentType.CRYSTAL, "^NX[0-9].*");
registry.addPattern(ComponentType.CRYSTAL_NDK, "^NX[0-9].*");

Prefix Overlap Issues

NT Prefix Conflict: The NT prefix is used for BOTH:

  • Tuning fork crystals (when followed by size code like NT1612, NT2012)
  • TCXOs (Temperature Compensated Crystal Oscillators)

The handler's extractSeries() method has overlapping checks:

java
// This check comes first, returning "Tuning Fork Crystal"
if (upperMpn.startsWith("NT")) return "Tuning Fork Crystal";

// This check is never reached because the first one matches
if (upperMpn.startsWith("NT") && upperMpn.length() > 3) {
    // TCXO logic
}

NH Prefix Conflict: The NH prefix is used for BOTH:

  • High frequency crystals
  • High stability OCXOs

Replacement Compatibility

The isOfficialReplacement() method checks:

  1. Series compatibility - Same series or compatible upgrade path
  2. Package match - Same physical dimensions required
  3. Frequency match - Identical frequency code required
java
// Compatible series: Wide temp/stability can replace standard
if (series1.startsWith("Wide Temp") &&
    series2.equals(series1.replace("Wide Temp ", ""))) return true;
if (series1.startsWith("High Stability") &&
    series2.equals(series1.replace("High Stability ", ""))) return true;

Related Files

  • Handler: manufacturers/NDKHandler.java
  • Component types: CRYSTAL, CRYSTAL_NDK, OSCILLATOR, OSCILLATOR_NDK, OSCILLATOR_TCXO_NDK, OSCILLATOR_VCXO_NDK, OSCILLATOR_OCXO_NDK, SAW_FILTER_NDK, SAW_RESONATOR_NDK

Learnings & Quirks

Handler Issues (Identified)

  • HashSet in getSupportedTypes(): Uses mutable HashSet, should use Set.of() for immutability (see CLAUDE.md "Handlers Without Tests" section)
  • Missing IC type in getSupportedTypes(): SAW devices (SF, SR, SD) register patterns under ComponentType.IC but IC is not in getSupportedTypes()
  • NT prefix ambiguity: Same prefix used for tuning fork crystals AND TCXOs; series extraction logic has unreachable code
  • NH prefix ambiguity: Same prefix used for high frequency crystals AND high stability OCXOs
  • Package extraction position: Uses fixed positions 3-4 which assumes 2-letter prefix; NAT (3-letter) will extract wrong characters ("T3" from "NAT3225...")

Size Code Mapping

NDK uses a unique size code system where digits represent dimensions:

  • First digit = first dimension (mm), second digit = second dimension
  • "32" = 3.2mm x 2.5mm (but "25" in oscillators = 2.5mm x 2.0mm)
  • The mapping is not always intuitive; always verify against datasheet

Oscillator Type Hierarchy

TypeStabilityTemperature RangeUse Case
SPXO (NZ)±25-50 ppm-20 to +70°CGeneral timing
TCXO (NT)±0.5-2 ppm-30 to +85°CCellular, GPS, IoT
VCXO (NV)±25-50 ppm-20 to +70°CPLL, clock recovery
OCXO (NO)±0.01-0.1 ppm-40 to +85°CTelecom, instrumentation

SAW Device Applications

TypeApplication
SF (Filter)RF filtering in mobile phones, base stations
SR (Resonator)Timing reference for RF circuits
SD (Duplexer)Simultaneous TX/RX in wireless devices

Competing Products

NDKEpsonTXCKyocera/AVXMurata
NX seriesFA series7A seriesKC series-
NZ seriesSG series8Z seriesKT series-
NT (TCXO)TG series8P series--
SF/SR/SD---SAW devices

Temperature Grade Suffixes

Common temperature grade indicators in NDK MPNs:

  • No suffix: Commercial (0°C to +70°C)
  • T or TC: Industrial (-40°C to +85°C)
  • A or AC: Automotive (-40°C to +125°C)

Packaging/Tape Options

SuffixMeaning
-K or K3Tape and reel packaging
(no suffix)Tray packaging
<!-- Add new learnings above this line -->