www.silabs.com C8051T6xx/3xx One Time Programmable (OTP) USB MCUs Agenda C8051T6xx/3xx family overview C8051T6xx/3xx family differences from flash-based devices OTP development flow Other considerations Development tools Summary 2 www.silabs.com USB OTP Device Family Introducing the C8051T62x/32x Reduce cost, simplify design and shorten development time USB crystal-less operation capability Best-in-class analog capabilities five times faster than any competitor Accomplish more work in less time with a high performance processing core OTP versions for very cost-sensitive applications Accelerate time-to-market Production-ready software drivers Step-by-step application notes and code examples Easy-to-use development tools Pin and code compatible enabling an easy migration path OTP C8051T32x is compatible with Flash-based C8051F32x enabling a cost reduction path 4 USB Design Challenges Typical USB microcontrollers lack high-precision analog capabilities creating a more complex and expensive system solution Higher BOM cost: external components are required Significant hardware and software design effort Most applications require more than just USB connectivity Most MCUs are designed to enable only USB connectivity Multi-tasking operation can quickly saturate CPU performance Competitive limitations External analog components are required increasing BOM cost and complexity Expensive high-end or chip set solutions are implemented to overcome performance bottleneck 5 www.silabs.com OTP and Flash Device Differences C8051T62x/32x vs. C8051F34A Code Memory Storage Flash memory used on C8051F34A family Byte-programmable EPROM code memory on the C8051T62x/32x families When pre-fetch engine is enabled (default) timing is similar to flash devices Porting considerations • Insure no firmware routines exist to erase code memory • In application firmware can write to memory, but only once Add a 4.7 uF capacitor to enable programming the VPP pin to ground • C8051T62x and C8051T32x devices Feature 7 C8051F34A C8051T62x/32x Code memory can be erased and reprogrammed Yes No Programming voltage (VPP) required to program code memory No Yes Code memory can be erased from firmware on the device Yes No Code memory can be written from firmware on the device Yes Code memory can be read from firmware on the device Yes Special Function Registers (SFR) (1 of 2) Differences related to functionality and features SFRs can exist in one family and not another Reading and writing these registers does not cause any problems if not present Porting considerations • None Example: P3 register is not found in the C8051T622 and is on the F34A 8 Special Function Registers (SFR) (2 of 2) Some registers have additional bits defined Peripheral behavior remains unchanged if the default settings are used Porting considerations • To maintain functionality verify that default bit settings are used for additional bits in common registers Example: • REF0CN register adds REFBGS to halve the ADC reference voltage • Default setting maintains functionality with the C8051F34A 9 Analog Considerations ADC sample rate increase to 500 ksps SAR clock increased to 8.33 MHz Gain setting of 0.5x now available Single ended inputs only External conversion start timing provides additional options ADC Diagram ADC CNVSTR Timing 10 Analog Considerations More voltage reference options Calibrated temperature sensor Porting considerations AMX0CN register should always be written as 11111b Default register settings for the reference selection maintain functionality Temperature sensors have different transfer functions and firmware should be adjusted accordingly VREF Diagram 11 Supply Voltage Considerations (1 of 2) Process technology change and second voltage regulator added VDD output now 3.45 V instead of 3.3 V Second regulator provides 1.8 V • Additional registers to support the regulator functionality (REG01CN) • Can be placed in a low power mode VIO pin added on some devices in case the port input/output voltages are required to be different from the VDD that the device is operating VDD monitor threshold voltage changes Porting considerations • None for firmware, but care must be observed for electrical connections Feature C8051F34A C8051T63x/32x Supply voltage range 2.7–3.6 V 1.8–3.6 V 3.3 V regulator for VDD Yes No 3.45 V regulator for VDD No Yes 1.8 V regulator for internal core voltage No Yes 5.8 V *VDD + 3.6 V (5.8V max) Maximum voltage on any I/O pin *If supply voltage reduced to 0 V then voltage at the pin must be less than 3.6 V 12 Supply Voltage Considerations (2 of 2) VIO considerations VIO ≤ VDD Not all packages have a VIO pin Reset can be pulled up to VDD VPP considerations When using in-application programming (IAP) a 4.7 uF capacitor is required on the VPP pin It is not recommended to use the VPP pin as GPIO if IAP to be used • If GPIO and IAP are required then the external circuit on the pin must not provide a load when the programming is enabled VBUS 1.0 µF 0.1 µF VREGIN 1.0 µF VDD VIO 0.1 µF VPP 4.7 µF 13 Typical Connections Low Power Modes and Clocking Suspend mode operation turns off the internal oscillator C8051F34A requires USB resume signaling or VBUS interrupt to exit suspend C8051T62x/32x devices exit suspend using • Resume signaling or VBUS interrupt • Port match • Timer 3 if running from external oscillator or the low frequency internal oscillator Clocking options vary between devices Porting considerations • CLKMUL register remains across all devices for compatibility even though the internal oscillator is used to drive the USBCLK directly Feature 14 C8051F34A C8051T62x Internal calibrated 24.5 MHz oscillator (divided by 1, 2, 4 or 8) Yes No Internal calibrated 48 MHz oscillator (divided by 1,2,4 or 8) No Yes Internal 80 kHz oscillator (divided by 1, 2, 4 or 8) Yes Yes External CMOS clock (digital input) Yes Yes External oscillator in RC or capacitor mode Yes Yes External oscillator in crystal oscillator mode Yes Yes Additional Features SMBus/I2C Optional hardware address recognition and automatic ACK • Reduces firmware overhead Port match Allows system events to be triggered by a logic value change on a port pin Can generate interrupts Can wake the device from suspend mode PCA Includes 9, 10 and 11 bit PWM generation 15 www.silabs.com Developing USB OTP Applications The C8051T62x/32x Development Kit Kit contents for C8051T620 and C8051T622 C8051T62x motherboard C8051T62x emulation daughter board with C8051F34A installed Socket daughter board (one of the following): • C8051T62x QFN 32-pin (C8051T620DK) • C8051T622 QFN 24-pin (C8051T622DK) Twenty device samples (one of the following): • C8051T620-GM (C8051T620DK) • C8051T622-GM (C8051T622DK) C8051Txxx development kit quick-start guide Product information CD-ROM includes: • • • • Silicon Labs Integrated Development Environment (IDE) Evaluation version of 8051 development tools (macro assembler, linker, C compiler) Source code examples and register definition files Documentation AC-to-DC universal power adapter Two USB cables 17 Required Software Required software Silicon Labs IDE or 3rd party IDE C compiler—code limited evaluation versions supplied with the kit Recommended software Configuration wizard—Configuration Wizard 2 Virtual com port (VCP) drivers ToolStick Terminal uVision driver for Keil if using the uVision IDE Software can be downloaded at http://www.silabs.com/mcudownloads 18 www.silabs.com Using the Kits Attaching a Daughter Card Development can start using the flash-based C8051F34A Plug the C8051T62x EDB emulation daughter board into the motherboard sockets P1 and P2 (C8051T62x EDB has the C8051F34A device) Using the C8051F34A for Development 20 Making Mother Board Connections Verify jumper settings with the DK user’s guide Connect USB cable to the mother board P5 Provides code download and debug capability Provides interface to targets UART peripheral if enabled using J11 Connect the AC/DC power adapter to the barrel plug P3 AC/DC supply connection USB debug connection Default jumper settings are highlighted 21 Using the C8051F34A for Development Verify Tool Flow Build a sample project Open T620_Blinky_C.wsp project using the Silicon Labs IDE • Found in the C:\Silabs\MCU\Examples\C8051T620_1_T320_3 directory Build, connect, download and run the project 2 4 Connect Run 5 Build 1 Stop Download 3 Note we are using the C8051F34A target board 22 Silicon Labs IDE Blinking the LED When the application is running LED1 should be blinking Code can be modified and downloaded multiple times using the C8051F34A Running the Test Application 23 Developing the Application Make modifications to the example code to provide the required system functionality (recommended) or write the application from scratch Using the flash-based C8051F34A many code iterations can be done without having to burn the code into the OTP device Since OTP devices can only be programmed once they would have to be discarded after each code test Modify Code Modify Code Program Program Test 24 Flash Code Flow Test OTP Code Flow Porting the Application to the OTP Device Once the application code has been completed on the flash-based MCU migrate the project to the OTP version Make necessary porting changes based on MCU differences USB clock recovery step size Flash Code Flow 25 Clock Recovery Port Example OTP Code Flow Using the Oscillator Internal oscillator is now 48 MHz instead of 12 MHz For backward compatibility the clock multiplier registers remain although they provide no functionality Code remains from the C8051F34A. It can be removed when using the C8051T62x. 26 Applications with an ADC Voltage reference options can be optimized for dynamic range C8051T62x/32x is single ended and doesn’t have a mux for the negative input SAR clock can remain the same or can be increased for faster sample rates Flash Code Flow OTP Code Flow ADC Example 27 Measuring Temperature Temperature sensor measurements differ between the two families Transfer function of the temperature sensors is different OTP devices have temperature compensation at 0 ˚C using VDD •Compensation value stored in code memory ADC uses VDD as VREF Mux input set to temp sensor •Firmware uses the new slope, offset and compensation to determine temperature OTP Code Flow 28 Change the Daughter Card Once code porting has been completed Attach the C8051T620 SKT DB daughter card into the motherboard sockets P1 and P2 • C8051T62x QFN SKT DN has a socket for the specific device package • Sample devices provided in the kit Place one of the samples in the socket and verify that the pin 1 designations match 29 Attaching the C8051T62x Daughter Card Build, Download and Run the Application Test the OTP application Build, connect, download and run the project 2 4 Connect Run 5 Build 1 Stop Download 3 Note we are using the C8051T620 target board 30 Silicon Labs IDE www.silabs.com Development Tools C8051T620DK Development Kit C8051T620DK Development Kit Enables real-time code development and evaluation of the C8051T620 product family Includes: • • • • • • • • • Motherboard Daughter and socket boards Quick start guide Integrated development environment (IDE) USB debug adaptor Wall power adaptor USB cables 20 C8051T620-GM samples Complete documentation The C8051T620DB32, C8051T320DB32 and C8051T321DB28 socket daughter cards are sold separately • Can be used in conjunction with the C8051T620DK to program the T62x parts • Each card is available for $25.00 USD (MSRP) 32 F340 CP2201 C8051T620DK Development Kit The C8051T620DK Development Kit is available for $129.00 USD (MSRP) C8051T622DK Development Kit C8051T622DK Development Kit Enables real-time code development and evaluation of the C8051T622 product family Includes: • • • • • • • • • Motherboard Daughter and socket boards Quick start guide Integrated development environment (IDE) USB debug adaptor Wall power adaptor USB cables 20 C8051T622-GM samples Complete documentation The C8051T326DB28 and C8051T327DB28 socket daughter cards are sold separately • Can be used in conjunction with the C8051T620DK to program the T62x parts • Each card is available for $25.00 USD (MSRP) 33 F340 CP2201 C8051T622DK Development Kit The C8051T622DK Development Kit is available for $129.00 USD (MSRP) Available Documentation and Software Product data sheets available (www.silabs.com/USB) Data shorts available (www.silabs.com/USB) Example code included on IDE installation (www.silabs.com/MCUdownloads) USBXpress drivers (www.silabs.com/USBXpress) Application Notes available (www.silabs.com/USB) AN169 AN200 AN220 AN249 AN368 AN455 AN456 AN456 AN532 USBXpress programmer’s guide USB boot loader with shared USBXpress library USB driver customization Human interface device tutorial Difference between the C8051F34A and the C8051T62x and C8051T32x device families Porting code for C8051F320/1 devices to C8051T320/1 devices Porting code for C8051F326/7 devices to C8051T326/7 devices Porting code for C8051F326/7 to C8051T326/7 devices HID library API specification Best-in-class product support and comprehensive software ecosystem Silicon Labs offers free vendor PID (www.silabs.com/products/mcu/Pages/request-PID.aspx) Pre-programming services 34 www.silabs.com Summary Summary Silicon Labs USB solutions are designed to reduce cost, simplify design and shorten development time Best-in-class analog capabilities five times faster than any competitor Accomplish more work in less time with a high performance processing core USB crystal-less operation capability OTP versions for cost sensitive applications 22 new products supported by a comprehensive development ecosystem Production-ready software Step-by-step application notes and code examples Easy-to-learn development tools Pin and code compatible enabling an easy migration path C8051F38x is pin and code compatible with the C8051F34x OTP C8051T32x is compatible with flash-based C8051F32x enabling a cost reduction path 36 www.silabs.com www.silabs.com/USB