Modern home appliances have made once tedious tasks simple to accomplish. What once took hours of exertion can now be accomplished with a few presses of a button. Modern appliances are in large part electronically controlled. Electronic controls enable higher efficiencies, additional functionality and an improved user experience. But what happens if something goes wrong? Safety specifications, such as IEC 60335, are used to ensure manufactures have designed their products to operate safely. IEC 60335 defines safety standards at a system level. IEC 60730, which is referenced by IEC 60335, addresses safety of electronic controls in appliances. Currently IEC 60730 is mandatory for appliances sold in Europe and widespread adoption is likely. IEC 60730 Annex H defines safety requirements for electronic controls and acceptable measures to address faults/errors are defined in Table H.1 (H.11.12.7 in edition 3).
We have developed a library of low-level software routines and hardware peripherals that simplify meeting IEC 60730 requirements for Class B Safety. Each product family (PIC16, PIC18, PIC24, dsPIC® DSC and PIC32) has functions specifically designed to work efficiently with the available resources. Application Note AN1229 describes the Application Programming Interface (API) functions that are available in the Class B Safety Software Library and how to incorporate them in your project.
Our Arm® Cortex® M0+ based devices are supported by the free Hitex Class-B Library. Download is available from the Hitex site at the following link: Microchip Hitex ARM Class-B Library. VDE Certificates are available in the Documentation section below.
There are several advantages to using the Class B Safety Software Library. First, it reduces development time. Each function has been optimized and thoroughly tested based on each architecture and available resources. Second, it reduces the time and cost required to certify the end appliance. By providing a test certificate to the testing agency, the requirements covered by the Class B Safety Software Library do not have to be retested. Finally, our application engineers can provide guidance on how to implement software safety efficiently.
For more information, please email class-b@microchip.com.
Notes
Note
Product | Status | Automotive Recommended | Functional Safety Ready | 5K Pricing | Family | CPU Type | Max CPU Speed (MHz) | CPU Speed (MIPS/DMIPS) | Part Family | ARM Neon | FPU | Math Accelerator | Operation Voltage Min (V) | Operation Voltage Max (V) | Temp Range Min | Temp Range Max | Max I/O Pins | Pin count | Program Memory Size (KB) | Program Memory Size (KWords) | Auxiliary Flash (KB) | Multiple Flash Panels | Error Correction Code Program Flash | SRAM (Bytes) | L1 Cache Memory (Instructions) (KB) | L1 Cache Memory (Data) (KB) | Data EEPROM/HEF (Bytes) | Emulated EEPROM in Flash | Internal DRAM Type | Internal DRAM Amount (MB) | DRAM Bus Size (Bits) | Boot Memory (KB) | Direct Memory Access Channels | External Memory Bus Interface | Number of EBIs | NAND Interface | ECC Bits on NAND Interface | DRAM Interface | Low Power | QSPI | XLP | SDIO/SD-CARD/eMMC | Vbat/Vddbu battery backup | ADC Input | Number of ADCs | Max ADC Resolution (Bits) | Max ADC Sampling Rate (ksps) | Max ADC Sample/Hold | Diff ADC Inputs | ADC with Computation | Temp Sensor | Resistive Touch Controller | DAC Outputs | Number of DACs | Max DAC Resolution (Bits) | Number of Comparators | Comparator max speed (ns) | Number of Op Amps | Programmable Gain Amp | CTMU | Slope Compensation / Programmable Ramp Generator | Zero Cross detect | Hardware Touch Peripheral | Hardware Direct Touch Channel Buttons | Hardware Touch Matrix Nodes | Hardware Cap Voltage Divider | Touch Library Support | UART | LIN | SENT | IrDA | ISO 7816 | SPI | I2C | I2S | SSC | Number of USB Modules | USB Interface | USB Active Clock Tuning | Number of CAN Modules | Type of CAN module | CAN Transmit Buffers | CAN Receive Buffers | MediaLB | Ethernet | Number of Ethernet Ports | Max 8-Bit Digital Timers | Max 16-Bit Digital Timers | Max 32-Bit Digital Timers | Hardware RTCC/RTC | Watch Dog Timer | Angular Timer | Max PWM outputs (including complementary) | Number of PWM Time Bases | PWM Max Resolution (Bits) | PWM Resolution (ns) | Capture / Compare/PWM (CCP) | Enhanced Capture/Compare/PWM (ECCP) | Complementary Waveform Generator / Complementary Output Generator | Single output CCP (SCCP) | Multiple output CCP (MCCP) | Motor Control PWM Outputs | Quadrature Encoder Interface | SMPS PWM Outputs | Stand alone PWMs | Standalone Output Compare/ Standard PWM | Output Compare Channels | Input Capture | Data Signal Modulator | Numerically Controlled Oscillator | Signal Measurement Timer | Hardware Limit Timer | Programmable Switched Mode Controller | Class B Support | CRC | Crypto Engine | ARM Trust Zone® | Anti-Tamper Pins | Segmented LCD | Graphics Controller/GPU | Video Decoder | Camera Interface | Audio Fractional PLL | Number of PDM Microphone Inputs | Class D Amplifier Outputs | Configurable Logic Cell (CLC/CCL) | Configurable Logic Cell Type | Peripheral Trigger Generator | Peripheral Pin Select / Pin Muxing | Parallel Port | Internal Oscillator | Internal Osc better than 1% accuracy | Brown-Out Reset | Low Voltage Detection | Power On Reset | Internal Voltage Reference (Bandgap) | Supported in MPLAB Code Configurator | JTAG | Debug Interface | Number of Cores | Secure Boot with Flash OTP | Packages |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PIC24F16KM102 | In Production | $1.88 | 16-bit MCU/DSC | 16-bit PIC MCU | 32 | 16 | PIC24F16KM204 | No | No | No | 1.8 | 5.5 | -40 | 125 | 24 | 28 | 16 | 5 | 0 | False | 1024 | 512 / True | True | 0 | No | No | No | Yes | 0 | Yes | 0 | No | 19 | 1 | 12 | 200 | 1 | No | No | No | 0 | 0 | 0 | 1 | 150 | 0 | 0 | Yes | 0 | No | No | 1 | Yes | Yes | 1 | 1 | 0 | 0 | 0 | None | No | 0 | None | 0 | 0 | No | None | No | 0 | 5 | 2 | No | Yes | No | 7 | 2 | 16 | 62 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 2 | 2 | 2 | 0 | 0 | 0 | 0 | Yes | Yes | No | No | 0 | 0 | No | No | No | 1 | CLC | No | No | GPIO | 8 MHz, 32 kHz | No | BOR | LVD | Yes | Yes | Yes | None | ICSP | 28/QFN, 28/SOIC, 28/SPDIP, 28/SSOP | ||||||||||||||||||||||||
dsPIC33FJ06GS101 | In Production Consider: dsPIC33FJ06GS101A | No | $2.06 | 16-bit MCU/DSC | 16-bit dsPIC DSC | 80 | 40 | dsPIC33FJ64GS610 | No | No | No | 3 | 3.6 | -40 | 125 | 13 | 18 | 6 | 2 | 0 | False | 256 | 0 / True | True | 0 | No | No | No | No | 0 | No | 0 | No | 6 | 1 | 10 | 2000 | 1 | No | No | No | 0 | 0 | 0 | 0 | 0 | 0 | 0 | No | 0 | No | No | 1 | Yes | Yes | 1 | 1 | 0 | 0 | 0 | None | No | 0 | None | 0 | 0 | No | None | No | 0 | 2 | 0 | No | Yes | No | 5 | 3 | 16 | 1 | 0 | 0 | 0 | 0 | 0 | 4 | 0 | 4 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | Yes | No | No | No | 0 | 0 | No | No | No | 0 | No | Yes | GPIO | 7.37 MHz, 32.768 kHz | No | BOR | None | Yes | Yes | Program/Boundary Scan | ICSP | 18/SOIC | |||||||||||||||||||||||||
dsPIC33FJ06GS102 | In Production Consider: dsPIC33FJ06GS102A | No | $2.31 | 16-bit MCU/DSC | 16-bit dsPIC DSC | 80 | 40 | dsPIC33FJ64GS610 | No | No | No | 3 | 3.6 | -40 | 125 | 21 | 28 | 6 | 2 | 0 | False | 256 | 0 / True | True | 0 | No | No | No | No | 0 | No | 0 | No | 6 | 1 | 10 | 2000 | 1 | No | No | No | 0 | 0 | 0 | 0 | 0 | 0 | 0 | No | 0 | No | No | 1 | Yes | Yes | 1 | 1 | 0 | 0 | 0 | None | No | 0 | None | 0 | 0 | No | None | No | 0 | 2 | 0 | No | Yes | No | 5 | 3 | 16 | 1 | 0 | 0 | 0 | 0 | 0 | 4 | 0 | 4 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | Yes | No | No | No | 0 | 0 | No | No | No | 0 | No | Yes | GPIO | 7.37 MHz, 32.768 kHz | No | BOR | None | Yes | Yes | Program/Boundary Scan | ICSP | 28/QFN-S, 28/SOIC, 28/SPDIP | |||||||||||||||||||||||||
dsPIC33FJ06GS202 | In Production Consider: dsPIC33FJ06GS202A | No | $2.50 | 16-bit MCU/DSC | 16-bit dsPIC DSC | 80 | 40 | dsPIC33FJ64GS610 | No | No | No | 3 | 3.6 | -40 | 125 | 21 | 28 | 6 | 2 | 0 | False | 1028 | 0 / True | True | 0 | No | No | No | No | 0 | No | 0 | No | 6 | 1 | 10 | 2000 | 1 | No | No | No | 1 | 2 | 10 | 2 | 30 | 0 | 0 | No | 0 | No | No | 1 | Yes | Yes | 1 | 1 | 0 | 0 | 0 | None | No | 0 | None | 0 | 0 | No | None | No | 0 | 2 | 0 | No | Yes | No | 5 | 3 | 16 | 1 | 0 | 0 | 0 | 0 | 0 | 4 | 0 | 4 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | Yes | No | No | No | 0 | 0 | No | No | No | 0 | No | Yes | GPIO | 7.37 MHz, 32.768 kHz | No | BOR | None | Yes | Yes | Program/Boundary Scan | ICSP | 28/QFN-S, 28/SOIC, 28/SPDIP | |||||||||||||||||||||||||
PIC24FJ128DA106 | In Production | No | $4.56 | 16-bit MCU/DSC | 16-bit PIC MCU | 32 | 16 | PIC24FJ256DA210 | No | No | No | 2.2 | 3.6 | -40 | 85 | 52 | 64 | 128 | 42 | 0 | False | No | 24576 | 0 / True | True | 2 | No | No | No | No | 0 | No | 0 | No | 16 | 1 | 10 | 500 | 1 | No | No | No | 0 | 0 | 0 | 3 | 150 | 0 | 0 | Yes | 0 | No | 0 | 0 | No | 4 | Yes | Yes | 3 | 3 | 0 | 0 | 1 | FS Device/Host/OTG | No | 0 | None | 0 | 0 | No | None | No | 0 | 23 | 11 | No | Yes | No | 9 | 9 | 16 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 9 | 9 | 0 | 0 | 0 | 0 | Yes | Yes | No | No | 0 | 0 | Yes | No | No | 0 | 0 | No | Yes | EPMP | 8 MHz, 32 kHz | Yes | BOR | LVD | Yes | No | Yes | Boundary Scan | ICSP | 64/QFN, 64/TQFP | ||||||||||||||||||||
PIC24FJ128DA110 | In Production | No | $5.07 | 16-bit MCU/DSC | 16-bit PIC MCU | 32 | 16 | PIC24FJ256DA210 | No | No | No | 2.2 | 3.6 | -40 | 85 | 84 | 100 | 128 | 42 | 0 | False | No | 24576 | 0 / True | True | 2 | No | No | No | No | 0 | No | 0 | No | 24 | 1 | 10 | 500 | 1 | No | No | No | 0 | 0 | 0 | 3 | 150 | 0 | 0 | Yes | 0 | No | 0 | 0 | No | 4 | Yes | Yes | 3 | 3 | 0 | 0 | 1 | FS Device/Host/OTG | No | 0 | None | 0 | 0 | No | None | No | 0 | 23 | 11 | No | Yes | No | 9 | 9 | 16 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 9 | 9 | 0 | 0 | 0 | 0 | Yes | Yes | No | No | 0 | 0 | Yes | No | No | 0 | 0 | No | Yes | EPMP | 8 MHz, 32 kHz | Yes | BOR | LVD | Yes | No | Yes | Boundary Scan | ICSP | 100/TQFP, 121/TFBGA | ||||||||||||||||||||
PIC24FJ128DA206 | In Production | No | $5.00 | 16-bit MCU/DSC | 16-bit PIC MCU | 32 | 16 | PIC24FJ256DA210 | No | No | No | 2.2 | 3.6 | -40 | 85 | 52 | 64 | 128 | 42 | 0 | False | No | 98304 | 0 / True | True | 0 | No | No | No | No | 0 | No | 0 | No | 16 | 1 | 10 | 500 | 1 | No | No | No | 0 | 0 | 0 | 3 | 150 | 0 | 0 | Yes | 0 | No | 0 | 0 | No | 4 | Yes | Yes | 3 | 3 | 0 | 0 | 1 | FS Device/Host/OTG | No | 0 | None | 0 | 0 | No | None | No | 0 | 5 | 11 | No | Yes | No | 9 | 9 | 16 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 9 | 9 | 0 | 0 | 0 | 0 | Yes | Yes | No | No | 0 | 0 | Yes | No | No | 0 | 0 | No | Yes | EPMP | 8 MHz, 32 kHz | Yes | BOR | LVD | Yes | No | Yes | Boundary Scan | ICSP | 64/QFN, 64/TQFP | ||||||||||||||||||||
PIC24FJ128DA210 | In Production | No | $5.51 | 16-bit MCU/DSC | 16-bit PIC MCU | 32 | 16 | PIC24FJ256DA210 | No | No | No | 2.2 | 3.6 | -40 | 85 | 84 | 100 | 128 | 42 | 0 | False | No | 98304 | 0 / True | True | 2 | No | No | No | No | 0 | No | 0 | No | 24 | 1 | 10 | 500 | 1 | No | No | No | 0 | 0 | 0 | 3 | 150 | 0 | 0 | Yes | 0 | No | 0 | 0 | No | 4 | Yes | Yes | 3 | 3 | 0 | 0 | 1 | FS Device/Host/OTG | No | 0 | None | 0 | 0 | No | None | No | 0 | 23 | 11 | No | Yes | No | 9 | 9 | 16 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 9 | 9 | 0 | 0 | 0 | 0 | Yes | Yes | No | No | 0 | 0 | Yes | No | No | 0 | 0 | No | Yes | EPMP | 8 MHz, 32 kHz | Yes | BOR | LVD | Yes | No | Yes | Boundary Scan | ICSP | 100/TQFP, 121/TFBGA | ||||||||||||||||||||
PIC24FJ128GA006 | In Production | No | $2.71 | 16-bit MCU/DSC | 16-bit PIC MCU | 32 | 16 | PIC24FJ128GA010 | No | No | No | 2 | 3.6 | -40 | 85 | 53 | 64 | 128 | 42 | 0 | False | 8192 | 0 / True | True | 0 | No | No | No | No | 0 | No | 0 | No | 16 | 1 | 10 | 500 | 1 | No | No | No | 0 | 0 | 0 | 2 | 150 | 0 | 0 | No | 0 | No | No | 2 | Yes | Yes | 2 | 2 | 0 | 0 | 0 | None | No | 0 | None | 0 | 0 | No | None | No | 0 | 5 | 2 | Yes | Yes | No | 5 | 2 | 16 | 62 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5 | 5 | 5 | 0 | 0 | 0 | 0 | Yes | Yes | No | No | 0 | 0 | No | No | No | 0 | No | No | PMP | 8 MHz, 32 kHz | No | BOR | None | Yes | No | Yes | Boundary Scan | ICSP | 64/QFN, 64/TQFP | ||||||||||||||||||||||||
PIC24FJ128GA010 | In Production | No | $3.22 | 16-bit MCU/DSC | 16-bit PIC MCU | 32 | 16 | PIC24FJ128GA010 | No | No | No | 2 | 3.6 | -40 | 85 | 85 | 100 | 128 | 42 | 0 | False | 8192 | 0 / True | True | 0 | No | No | No | No | 0 | No | 0 | No | 16 | 1 | 10 | 500 | 1 | No | No | No | 0 | 0 | 0 | 2 | 150 | 0 | 0 | No | 0 | No | No | 2 | Yes | Yes | 2 | 2 | 0 | 0 | 0 | None | No | 0 | None | 0 | 0 | No | None | No | 0 | 5 | 2 | Yes | Yes | No | 5 | 2 | 16 | 62 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5 | 5 | 5 | 0 | 0 | 0 | 0 | Yes | Yes | No | No | 0 | 0 | No | No | No | 0 | No | No | PMP | 8 MHz, 32 kHz | No | BOR | None | Yes | No | Yes | Boundary Scan | ICSP | 100/TQFP | ||||||||||||||||||||||||
PIC24FJ128GA106 | In Production | No | $3.52 | 16-bit MCU/DSC | 16-bit PIC MCU | 32 | 16 | PIC24FJ256GB110 | No | No | No | 2 | 3.6 | -40 | 125 | 53 | 64 | 128 | 42 | 0 | False | 16384 | 0 / True | True | 0 | No | No | No | No | 0 | No | 0 | No | 16 | 1 | 10 | 500 | 1 | No | No | No | 0 | 0 | 0 | 3 | 150 | 0 | 0 | Yes | 0 | No | No | 4 | Yes | Yes | 3 | 3 | 0 | 0 | 0 | None | No | 0 | None | 0 | 0 | No | None | No | 0 | 23 | 11 | No | Yes | No | 9 | 9 | 16 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 9 | 9 | 0 | 0 | 0 | 0 | Yes | Yes | No | No | 0 | 0 | No | No | No | 0 | No | Yes | PMP | 8 MHz, 31 kHz | No | BOR | LVD | Yes | No | Yes | Boundary Scan | ICSP | 64/QFN, 64/TQFP | ||||||||||||||||||||||||
PIC24FJ128GA108 | In Production | No | $3.79 | 16-bit MCU/DSC | 16-bit PIC MCU | 32 | 16 | PIC24FJ256GB110 | No | No | No | 2 | 3.6 | -40 | 125 | 69 | 80 | 128 | 42 | 0 | False | 16384 | 0 / True | True | 0 | No | No | No | No | 0 | No | 0 | No | 16 | 1 | 10 | 500 | 1 | No | No | No | 0 | 0 | 0 | 3 | 150 | 0 | 0 | Yes | 0 | No | No | 4 | Yes | Yes | 3 | 3 | 0 | 0 | 0 | None | No | 0 | None | 0 | 0 | No | None | No | 0 | 23 | 11 | No | Yes | No | 9 | 9 | 16 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 9 | 9 | 0 | 0 | 0 | 0 | Yes | Yes | No | No | 0 | 0 | No | No | No | 0 | No | Yes | PMP | 8 MHz, 31 kHz | No | BOR | LVD | Yes | No | Yes | Boundary Scan | ICSP | 80/TQFP | ||||||||||||||||||||||||
PIC24FJ128GA110 | In Production | No | $4.01 | 16-bit MCU/DSC | 16-bit PIC MCU | 32 | 16 | PIC24FJ256GB110 | No | No | No | 2 | 3.6 | -40 | 125 | 85 | 100 | 128 | 42 | 0 | False | 16384 | 0 / True | True | 0 | No | No | No | No | 0 | No | 0 | No | 16 | 1 | 10 | 500 | 1 | No | No | No | 0 | 0 | 0 | 3 | 150 | 0 | 0 | Yes | 0 | No | No | 4 | Yes | Yes | 3 | 3 | 0 | 0 | 0 | None | No | 0 | None | 0 | 0 | No | None | No | 0 | 23 | 11 | No | Yes | No | 9 | 9 | 16 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 9 | 9 | 0 | 0 | 0 | 0 | Yes | Yes | No | No | 0 | 0 | No | No | No | 0 | No | Yes | PMP | 8 MHz, 31 kHz | No | BOR | LVD | Yes | No | Yes | Boundary Scan | ICSP | 100/TQFP | ||||||||||||||||||||||||
PIC24FJ128GB106 | In Production | No | $3.71 | 16-bit MCU/DSC | 16-bit PIC MCU | 32 | 16 | PIC24FJ256GB110 | No | No | No | 2 | 3.6 | -40 | 85 | 52 | 64 | 128 | 42 | 0 | False | 16384 | 0 / True | True | 0 | No | No | No | No | 0 | No | 0 | No | 16 | 1 | 10 | 500 | 1 | No | No | No | 0 | 0 | 0 | 3 | 150 | 0 | 0 | Yes | 0 | No | No | 4 | Yes | Yes | 3 | 3 | 0 | 0 | 1 | FS Device/Host/OTG | No | 0 | None | 0 | 0 | No | None | No | 0 | 23 | 11 | No | Yes | No | 9 | 9 | 16 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 9 | 9 | 0 | 0 | 0 | 0 | Yes | Yes | No | No | 0 | 0 | No | No | No | 0 | No | Yes | PMP | 8 MHz, 31 kHz | No | BOR | LVD | Yes | No | Yes | Boundary Scan | ICSP | 64/QFN, 64/TQFP | ||||||||||||||||||||||||
PIC24FJ128GB108 | In Production | No | $3.98 | 16-bit MCU/DSC | 16-bit PIC MCU | 32 | 16 | PIC24FJ256GB110 | No | No | No | 2 | 3.6 | -40 | 85 | 68 | 80 | 128 | 42 | 0 | False | 16384 | 0 / True | True | 0 | No | No | No | No | 0 | No | 0 | No | 16 | 1 | 10 | 500 | 1 | No | No | No | 0 | 0 | 0 | 3 | 150 | 0 | 0 | Yes | 0 | No | No |