AnasSarkiz/usb-c-pd-brushed-motor

USB-C PD-powered motor controller with protected input, selectable 5/9/12 V buck supply, MCU qualification, PWM H-bridge drive, overvoltage sensing, regenerative energy-dump resistors, and safety interlocks.

Version
0.0.1-a48-cloud-pipeline9-unrouted-c41d79a-305b1e7a
License
unset
Stars
0

tests/power-prototype-envelope.test.ts

import { expect, test } from "bun:test"
import { analogRailCorners } from "../scripts/power-prototype-envelope"
import { i2cTimingEnvelope } from "../scripts/i2c-timing-envelope"
test("every declared analog corner remains separated from the conservative buck FB window", () => {
  for (const branch of [undefined, 21000, 12000]) {
    const limits = analogRailCorners(branch)
    expect(limits.cases).toBe(16384)
    expect(limits.uvFbMax).toBeLessThan(0.788)
    expect(limits.ovFbMin).toBeGreaterThan(0.812)
    expect(limits.minHysteresis).toBeGreaterThan(0)
    expect(limits.minReferenceBiasA).toBeGreaterThanOrEqual(0.0007)
  }
})
test("I2C timing accepts its declared envelope and rejects excessive rise time", () => {
  expect(i2cTimingEnvelope().passed).toBe(true)
  expect(i2cTimingEnvelope({ riseMaximumNs: 350 }).passed).toBe(false)
  expect(i2cTimingEnvelope({ timingRegister: 0x00000000 }).passed).toBe(false)
})