AgentSkillsCN

akm

适用于处理 AKM(旭化成微电子)的 MPN 编码规则、后缀解码及处理器引导。当您需要对接 AKM 音频 IC、磁传感器,或电子罗盘时,可选用此技能。

SKILL.md
--- frontmatter
name: akm
description: AKM (Asahi Kasei Microdevices) MPN encoding patterns, suffix decoding, and handler guidance. Use when working with AKM audio ICs, magnetic sensors, or electronic compasses.

AKM (Asahi Kasei Microdevices) Manufacturer Skill

Company Overview

AKM (Asahi Kasei Microdevices) is a Japanese semiconductor manufacturer specializing in:

  • Audio ICs: High-performance DACs and ADCs for professional and consumer audio
  • Magnetic Sensors: 3-axis magnetometers and electronic compasses
  • Hall Effect Sensors: Position and rotation sensing
  • IMUs: Combined 9-axis sensors with accelerometer, gyroscope, and magnetometer

AKM is renowned for their premium audio converters used in high-end audio equipment and their compact magnetic sensors used in smartphones and wearables.


MPN Structure

AKM MPNs follow this general structure:

code
[PREFIX][SERIES][VARIANT][-][PACKAGE/OPTIONS]
   |       |       |           |
   |       |       |           +-- Package code or options
   |       |       +-- Variant/revision letter
   |       +-- Series number (4-5 digits)
   +-- Always "AK" prefix

Naming Convention by Product Family

code
Audio ICs:
AK4490 EQ    - Premium 32-bit DAC
AK4493 SEQ   - Upgraded premium DAC
AK5386 VT    - 24-bit ADC
AK4796 VQ    - Audio DAC

Magnetic Sensors:
AK8963 C     - 3-axis electronic compass
AK8975 A     - 3-axis compass
AK09918      - 3-axis compass, newer series

9-axis IMUs:
AK09911 C    - 9-axis sensor (accel+gyro+compass)
AK09912      - 9-axis with improved gyroscope
AK09913      - 9-axis combined sensor

Product Families

Audio DACs (AK47xx, AK44xx)

SeriesDescriptionBitsChannelsNotes
AK4490Premium DAC32-bit2Flagship, VELVET SOUND
AK4493Premium DAC32-bit2Successor to AK4490
AK4495Premium DAC32-bit2Enhanced performance
AK4497Reference DAC32-bit2Top of line
AK4796General DAC24-bit2Cost-effective

Audio ADCs (AK44xx, AK53xx)

SeriesDescriptionBitsChannelsNotes
AK4490High-perf ADC24-bit2Multi-bit delta-sigma
AK5386Stereo ADC24-bit2Professional audio

Magnetic Sensors / Electronic Compasses (AK89xx, AK099xx)

SeriesDescriptionInterfaceResolutionNotes
AK89633-axis compassI2C/SPI14/16-bitWidely used, smartphones
AK89753-axis compassI2C13-bitOlder series
AK099119-axis IMUI2C16-bitWith accelerometer
AK099129-axis IMUI2C16-bitWith gyroscope
AK099139-axis IMUI2C16-bitCombined sensor
AK099183-axis compassI2C16-bitNewer, high precision
AK099403-axis compassI2C/SPI18-bitHigh precision

High Precision Magnetic Sensors (AK099xx)

SeriesDescriptionNotes
AK09970Linear position sensorHall effect
AK09973Switch sensorOmnipolar
AK09911-AK09916Hall sensorsVarious applications

Package Codes

Package codes appear as suffixes, typically separated or as trailing letters:

CodePackageSizeNotes
TRLGA1.6x1.6mmTape and reel, common for sensors
CSCSPSmallChip-scale package
WLWLCSPTinyWafer-level CSP
TSTSSOP-Thin shrink small outline
QFNQFNVariousQuad flat no-lead
BGABGAVariousBall grid array
EQQFN5x5mmAudio DAC package
VTTQFP7x7mmAudio ADC package
VQQFP-Standard quad flat
SEQQFN-Enhanced QFN variant

Package Extraction Logic

java
// From AKMHandler.extractPackageCode():
// Split on hyphen, take suffix from main part
String[] parts = mpn.split("-");
String mainPart = parts[0];
String suffix = mainPart.replaceAll("^[A-Z0-9]+", "");

// Map known suffixes
switch (suffix) {
    case "TR" -> "LGA";
    case "CS" -> "CSP";
    case "WL" -> "WLCSP";
    case "TS" -> "TSSOP";
    case "QFN" -> "QFN";
    case "BGA" -> "BGA";
    default -> suffix;  // Return as-is
}

Series Extraction Rules

The handler uses different extraction lengths based on product family:

FamilyPrefixSeries LengthExample
Audio ICsAK4, AK55 charactersAK4490, AK5386
SensorsAK8, AK096 charactersAK8963C, AK09918

Series Extraction Logic

java
// From AKMHandler.extractSeries():
boolean isAudioIC = mpn.startsWith("AK4") || mpn.startsWith("AK5");
int maxLength = isAudioIC ? 5 : 6;

// Extract up to maxLength alphanumeric characters
// AK4490EQ -> AK449 (audio IC, 5 chars)
// AK8963C  -> AK8963 (sensor, 6 chars)
// AK09918  -> AK0991 (sensor, 6 chars)

Interface Detection

For magnetic sensors, interface type can be extracted from the MPN:

Suffix/IndicatorInterfaceNotes
Ends with "I"I2CI2C interface
Ends with "S"SPISPI interface
Contains "I2C"I2CExplicit in name
Contains "SPI"SPIExplicit in name

Resolution Detection

For sensors, resolution may be indicated in the MPN:

IndicatorResolutionNotes
Contains "14BIT"14-bitLower resolution mode
Contains "16BIT"16-bitStandard resolution

Supported Component Types

From AKMHandler.getSupportedTypes():

ComponentTypeDescriptionPattern Examples
SENSORGeneral sensors, IMUsAK09[0-9]., AK0991[0-9].
MAGNETOMETERMagnetic sensors, compassesAK89[0-9]., AK099., AK8963., AK8975., AK09918.*
ICAudio DACs and ADCsAK449[0-9]., AK479[0-9]., AK4490., AK5386.

Note: The handler has commented-out types (HALL_SENSOR, ADC, DAC) that may not exist in the ComponentType enum.


Pattern Registry

Patterns registered in AKMHandler.initializePatterns():

Magnetometer Patterns

java
// 3-axis magnetic sensors
"^AK89[0-9].*"       // AK8963, AK8975 series
"^AK099.*"           // AK099xx high precision
"^AK8963.*"          // Electronic compass
"^AK8975.*"          // Electronic compass
"^AK09918.*"         // 3-axis compass

Sensor/IMU Patterns

java
// 9-axis and Hall sensors
"^AK09[0-9].*"       // General 9-axis
"^AK09911.*"         // 9-axis with accelerometer
"^AK09912.*"         // 9-axis with gyroscope
"^AK09913.*"         // 9-axis combined
"^AK0991[0-9].*"     // Hall sensors

Audio IC Patterns

java
// DACs and ADCs
"^AK449[0-9].*"      // Audio ADC series
"^AK479[0-9].*"      // Audio DAC series
"^AK4490.*"          // Premium DAC
"^AK5386.*"          // Audio ADC

Official Replacement Logic

The isOfficialReplacement() method checks compatibility based on:

For Sensors (AK8x, AK09x)

  1. Same series
  2. Same resolution (14-bit vs 16-bit)
  3. Compatible interface (I2C/SPI or unspecified)

For Audio ICs (AK4x, AK5x)

  1. Same series
  2. Same sample rate (48/96/192 kHz)

Example MPNs with Explanations

Audio DACs

code
AK4490EQ
|  |  ||
|  |  |+-- Package: QFN (5x5mm)
|  |  +--- E: Enhanced variant
|  +------ 4490: Premium 32-bit DAC
+--------- AK: AKM prefix

AK4493SEQ
|  |  | |
|  |  | +-- Package: QFN
|  |  +---- S: Super variant
|  +------- 4493: Successor to AK4490
+---------- AK: AKM prefix

AK5386VT
|  |  ||
|  |  |+-- Package: TQFP (7x7mm)
|  |  +--- V: Voltage variant
|  +------ 5386: 24-bit stereo ADC
+--------- AK: AKM prefix

Magnetic Sensors

code
AK8963C
|  |  |
|  |  +--- C: Revision C
|  +------ 8963: 3-axis electronic compass
+--------- AK: AKM prefix

AK09918
|  |
|  +------ 09918: Latest 3-axis compass
+--------- AK: AKM prefix

AK09911C
|  |   |
|  |   +-- C: Revision
|  +------ 09911: 9-axis IMU with accelerometer
+--------- AK: AKM prefix

Hall Effect Sensors

code
AK09915
|  |
|  +------ 09915: Hall effect sensor
+--------- AK: AKM prefix

AK09970D
|  |   |
|  |   +-- D: Grade/variant
|  +------ 09970: Linear position sensor
+--------- AK: AKM prefix

Related Files

  • Handler: manufacturers/AKMHandler.java
  • Component types: SENSOR, MAGNETOMETER, IC
  • Pattern registry: PatternRegistry.java

Learnings & Quirks

Handler Implementation

  • getSupportedTypes() uses HashSet: Should be migrated to Set.of() for immutability (known technical debt)
  • IC type needed: Audio IC patterns are registered under ComponentType.IC, so IC must be in getSupportedTypes() for matches to work correctly
  • Commented-out types: HALL_SENSOR, ADC, DAC types are commented out in getSupportedTypes() - may indicate missing ComponentType definitions

Pattern Overlap

  • AK09xxx series: Multiple patterns overlap (AK09[0-9], AK099, AK09911, etc.) - more specific patterns should be checked first
  • Sensor vs Magnetometer: AK099xx matches both SENSOR (AK09[0-9]) and MAGNETOMETER (AK099) patterns - first match wins

Series Extraction

  • Length varies by family: Audio ICs use 5 chars, sensors use 6 chars
  • Includes variant letter: For sensors, the series includes the variant letter (AK8963C -> AK8963, but for shorter audio ICs AK4490EQ -> AK449)

Replacement Compatibility

  • Sample rate matching for audio: Audio ICs require matching sample rates (48/96/192 kHz) for replacement compatibility
  • Interface compatibility for sensors: Sensors with unspecified interface can match either I2C or SPI variants

Common Applications

  • AK8963: Very popular in consumer electronics, used in smartphone compasses
  • AK4490: Reference DAC for high-end audio equipment
  • AK09918: Modern smartphone compass IC

Fire at AKM Factory (2020)

In October 2020, a fire at AKM's primary manufacturing facility severely impacted production:

  • Many audio DAC/ADC products had extended lead times
  • Some products were EOL'd
  • Competitors (ESS, Cirrus Logic) gained market share
  • Recovery took 2+ years for some product lines

Consider lifecycle status when specifying AKM components.

<!-- Add new learnings above this line -->