The DEVKIT platform
The NXP released new board platform for automotive products – DEVKIT.
The DEVKIT is a low-cost development platform with Arduino UNO/Mega pin compatibility. In my review, I will focus mainly on DEVKIT-ZVL128 board.
The DEVKIT boards are similar to FRDM boards, but they are slightly wider (58mm versus 53mm) due to moving MCU specific pins to external rows of Arduino pin compatible connectors. So, we should be able to access MCU specific pins even when we connect any Arduino shield on top of this board.
The other currently or soon available DEVKIT boards are:
DEVKIT-S12ZVL
DEVKIT-S12ZVC
DEVKIT-S12G128
DEVKIT-S12XE
DEVKIT-S12VR64
DEVKIT-MPC5748G
DEVKIT-MPC5744P
FRDM-KEA128
FRDM-KEA64
FRDM-KEA32
DEVKIT-COMM - 6 LIN and 4 CAN transceivers shield
DEVKIT-MOTORGD – three-phase motor control shield with GD3000 N-channel MOSFETs driver and power stage
Note: The FRDM-KEA boards belongs also into the DEVKIT platform despite on the “FRDM” in the board name.
The Content
What you will get for US$35 (current price on NXP web pages):
Antistatic paper box
DEVKIT-ZVL128 board
short micro-USB cable
The sticker on the box points to the NXP web pages for downloading more documents such as the quick start guide, schematic, PCB BOM and design files, code examples or buy the same board again ;-).
Unfortunately, the board User Guide is not available yet.
This web page is also offering “Getting Started” tab with the interactive quick start guide – quite useless feature since the page forgets on necessary 12V power supply for MCU powering and it proposes old CW5.1 (Classic IDE) for S12(X) instead of CW10 (Eclipse IDE).
What else you will need:
The IDE – for example, the NXP CodeWarrior or Cosmic ZAP
12V DC power supply (3.8V~40V) with barrel connector (6mm outside diameter x 2mm inside diameter)
MCU code
The Board
DEVKIT-ZVL128 board is assembled by:
S12ZVLA128 MCU (Big Knox) in 48-pin LQFP package
8MHz crystal
Standard 2mm DC power jack connector for 12V power supply
On-board OSBDM debugger trough micro-USB connector
Standard BDM connector
Arduino UNO pin compatible connectors with extended connectivity (the internal rows of the connectors are arranged to fulfill Arduino™ shields compatibility)
RGB LED and 2 x push button switches
LIN and CAN connectors
CAN transceiver MC33901
5k potentiometer and RESET switch
3V/150mA and 5V/150mA LDO voltage regulators
The great thing is that the board has connector pins named from the bottom side of the PCB = less tracking on schematic.
On another side, some of the MCU pins may be routed to Arduino connectors trough zero Ohm resistors. Since these resistors are very small (size 0402), the potential re-routing will need a solid hand.
It is great that loop type test points arrived finally also on low-cost development boards – now in surface mount version. The small loops may be simply locked by test hooks and measured by laboratory equipment.
The MCU
The S12ZVLA128 is one of MagniV family MCUs using the 180nm NVM + UHV technology that offers the capability to integrate 40V analog components. It integrates S12Z core, features from the existing S12 portfolio together with “high-voltage” analog modules, including the voltage regulator (VREG) and a Local Interconnect Network (LIN) physical layer (LIN PHY).
The S12ZVL(A)128/96/64 derivatives introduces several unique enhancements in comparison with older S12ZVL32/S12ZVL16 derivatives:
Significantly bigger memories (64/96/128kB flash, 1/2kB EEPROM, and 4/8kB RAM)
The VDDX voltage regulator is capable of providing 5V or 3.3V
MsCAN module
The S12ZVLA derivatives additional features/improvements:
2% VDDX regulator tolerance improvements
10/6 channel 12bit ADC
8bit DAC module
the rail-to-rail analog comparator (ACMP)
the Programmable Gain Amplifier (PGA)
I am going to use the PGA for thermocouple measurement in the near future.
Software
The Software Integration Guide guides us through CW 10.6.4 installation and creating a new project with Processor Expert (PE) tool. Unfortunately, while following that guide, I discovered that the CW10.6.4 does not offer PE as an option (only project without PE) when I tried to create an S12ZVL128 project. But this option is available in newer CW10.7 version.
Note: If S12ZVL(A)128 derivative is missing in your CW10.6.4 IDE, please update your CW IDE via menu-Help-Install New Software-FSL MCU Eclipse Update Site and focus mainly on “S12Z Support” and “MCU 10.6.4 Updates” folders.
The code examples contains three primitive example projects:
DEVKIT-ZVL128_Lab1GPIO – configure GPIO pins
DEVKIT-ZVL128_Lab2ADC – initialize and measure ADC value
DEVKIT-ZVL128_Lab3PWM – configure voltage regulator, initialize CLOCK, initialize and measure ADC value, generate PWM
Note: The zip file contains already built projects. The loading it into MCU does not work due to different paths. We have to clean it and build again in our workspace prior loading into the MCU.
These projects are really simple, but they omit some specific potential issues.
For example:
I would like to recommend to configure CPMUVREGCTL_VREG5VEN bit also in GPIO example since this bit influences output pin voltage levels. The value of the CPMUVREGCTL_VREG5VEN bit is not influenced by any MCU reset. So, we have to be careful especially when we are starting a new project with new peripherals connected to the S12ZVL128 GPIO pins.
The ADC command lists (adc0_cmdlist) and ADC result lists (adc0_results) are not aligned in these example codes. It may be fixed by simple modification:
volatile unsigned char adc0_cmdlist[1][4] __attribute__ ((aligned (4))) = {0xC0,0xD0,0xA0,0x00};
volatile unsigned short adc0_results[1] __attribute__ ((aligned (4)));
The NXP offers for this MCU also LIN2.x and SAE J2602 Stack and S12Z NVM Standard Software Driver (Flash/EEPROM driver).
There are also well-documented example codes at Community from Technical support team which may be used for an inspiration. For example:
S12ZVM clock module and PLL configuration - SW examples
S12Z Interrupt catcher for unexpected interrupts
S12Z voltage measurement
A Library of Functions for HD44780 Based LCD Modules (no R/W) for S12Z devices
S12ZVL-TIM-FrequencyMeasurement
S12Z Flash example code
S12Z EEPROM example code
…
The next source of information may be NXP application notes. For example:
AN4723 S12Z MagniV Bootloader with SW,
AN4731 Understanding Injection Current on Freescale Automotive Microcontrollers,
AN4841 S12ZVL LIN Enabled Ultrasonic Distance Measurement with SW,
AN4842 S12ZVL LIN Enabled RGB LED Lighting Application with SW,
AN5084 Hardware Design Guidelines for S12ZVL Microcontrollers,
AN5122 Using Freescale’s LIN Driver with the MagniV Family with SW
Summary
One of the best advantages of DEVKIT platform is the price. When we compare DEVKIT board prices with alternative evaluation boards (if any exist), we may save between 40 and 95 % EVB price depending on target MCU family. For example, the older TRK-S12ZVL board (assembled by S12ZVL32) is bigger, additionally offers 9 user switches, buzzer, HVI potentiometer, switchable LIN_OUT connector and header ring with all MCU pins. But the price is also almost three times higher than the price of DEVKIT-ZVL128.
Also, the connectors with standard 100mils pitch are definitely plus in comparison with previously used TWRPI/PCI EXPRESS connectors and the board allows using plenty of available Arduino shields without complex hardware interconnections. You may look for it for example at Arduino pages, shieldlist.org, Adafruit, …
From my side - thumbs up :smileycheck:.
View full article