<?xml version="1.0" encoding="UTF-8"?>
<package schemaVersion="1.4" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="PACK.xsd">
  <vendor>Cmsemicon</vendor>
  <name>BAT32G135</name>
  <description>Cmsemicon BAT32G135 Device Family Pack</description>
  <url>http://www.mcu.com.cn/pack/</url>

  <releases>
    <release version="0.1.9">
      Add DataFlash Programming Algorithm 
      Add VBGR A/D conversion value 
      Change system_BAT32G135.c to compatible with AC5 and AC6
      Change the name and address of TSCDR1 and TSCDR2
        TSCDR1 --> TSN25, TSCDR2 --> TSN85
    </release>
    <release version="0.1.8">
    ¦ Change the Dvendor with Keil official assigned code
      Change the vendor from CMS to Cmsemicon
    </release>
    <release version="0.1.7">
      Fix the function of PORT_SetBit and PORT_CLrBit
    </release>
    <release version="0.1.6">
      modify the UART1_Stop function
      delete NVIC_EnableIRQ and add NVIC_ClearPendingIRQ
    </release>
    <release version="0.1.5">
      Modify BAT32G135GE.FLM
    </release>
    <release version="0.1.4">
      Add DMAIFx registers defination in BAT32G135.h
      Modify gpio.c and gpio.h
      Add spiNorFlash Example
    </release>
    <release version="0.1.3">
      Modify the functions of sci.c and sci_user.c
      Add spi11MasterSendReceive, spi00SlaveSendReceive, spi11NorFlash Examples
    </release>
    <release version="0.1.2">
      Add UID defination in SVD and BAT32G135.h 
      SCKI00PCFG --> SCLKI00PCFG in SVD and BAT32G135.h 
      SCKI20PCFG --> SCLKI20PCFG in SVD and BAT32G135.h 
      Defination each function of UART0/SPI00/SPI01/IIC00/IIC01
      Defination each function of UART1/SPI10/SPI11/IIC10/IIC11
      Defination each function of UART2/SPI20/SPI21/IIC20/IIC21
    </release>
    <release version="0.1.1">
      Add selection of fIL as system clock in clk.c
    </release>
    <release version="0.1.0">
      Initial Version
    </release>
  </releases>
  <keywords>
    <!-- keywords for indexing -->
    <keyword>Cmsemicon</keyword>
    <keyword>BAT32G135</keyword>
  </keywords>
  <!-- devices section (mandatory for Device Family Packs) -->
  <devices>
    <family Dfamily="M0+ Series" Dvendor="Cmsemicon:161">
      <!-- *************************  Sub Family 'BAT32G135'  ***************************** -->
      <subFamily DsubFamily="BAT32G135">
        <processor Dcore="Cortex-M0+" DcoreVersion="r0p1" Dfpu="0" Dmpu="1" Dendian="Little-endian" Dclock="64000000"/>
        <description>
          The BAT32G135 device family contains an ARM Cortex-M0+ processor, running up to 64 MHz with a versatile set of on-chip peripherals.
        </description>
        <compile  header="Device/Include/BAT32G135.h"/>
        <debug    svd="SVD/BAT32G135.svd"/>
        <algorithm  name="Flash/BAT32G135_DataFlash.FLM"    start="0x00500000"  size="0x00600"     default="1"/>
        <feature 	type="VCC"    		n="1.8" 	m="5.0"/>
        <feature 	type="Temp"          	n="-40"     	m="105"/>
        <feature 	type="DMA"          	n="24"     	name="Enhanced DMA"/>
        <feature 	type="XTAL"          	n="1000000"     m="20000000" 	name="External Crystal Oscillator"/>
        <feature 	type="IntRC"          	n="24000000"    m="64000000" 	name="Internal RC Oscillator with +/- 1% accuracy"/>
        <feature 	type="RTC"          	n="32768"                       name="Internal Real Time Clock(RTC)"/>
        <feature 	type="WDT"              n="1"/>
        <feature 	type="PowerMode"        n="3"                           name="Run, Sleep, Deep-Sleep"/>
        <feature 	type="PowerOther"       n="1"                           name="POR"/>
        <feature 	type="ADC"              n="15"          m="12"          name="High-Accuracy ADC"/>
        <feature 	type="AnalogOther"      n="2"                           name="PGA"/>
        <feature 	type="AnalogOther"      n="2"                           name="CMP"/>
        <feature 	type="TempSens"         n="1"                           name="Temperature Sensor"/>
        <feature 	type="I2C"              n="1"                           name="Full Function I2C"/>
        <feature 	type="SPI"              n="1"                           name="4-wire SPI"/>
        <feature 	type="SPI"              n="5"                           name="3-wire SPI"/>
        <feature 	type="UART"             n="3"/>
        <feature 	type="LIN"              n="1"/>
        <feature 	type="Timer"            n="4"           m="16"          name="General Purpose Timer (TIM40)"/>
        <feature 	type="Timer"            n="4"           m="16"          name="General Purpose Timer (TIM41)"/>
        <!-- *************************  Device 'BAT32G135GE48FA'  ***************************** -->
        <device Dname="BAT32G135GE48FA">
          <description>
            Code Flash: 64KB,  Data Flash: 1.5KB,  RAM: 8KB
            Package: 48-lead LQFP(7x7mm, 0.5mm pitch)
          </description>
          <memory     name="IROM1"  access="rx"       start="0x00000000"  size="0x10000"     startup="1"   default="1"/>
          <memory     name="IRAM1"  access="rw"       start="0x20000000"  size="0x02000"     init   ="0"   default="1"/>
          <algorithm  name="Flash/BAT32G135GE.FLM"    start="0x00000000"  size="0x10000"     default="1"/>
	      <feature    type="QFP"            n="48"                        name="7x7mm, 0.5mm pitch LQFP"/>
        </device>
        <!-- *************************  Device 'BAT32G135GE40NB'  ***************************** -->
        <device Dname="BAT32G135GE40NB">
          <description>
            Code Flash: 64KB,  Data Flash: 1.5KB,  RAM: 8KB
            Package: 40-lead QFN(5x5mm, 0.4mm pitch)
          </description>
          <memory     name="IROM1"  access="rx"       start="0x00000000"  size="0x10000"     startup="1"   default="1"/>
          <memory     name="IRAM1"  access="rx"       start="0x20000000"  size="0x02000"     init   ="0"   default="1"/>
          <algorithm  name="Flash/BAT32G135GE.FLM"    start="0x00000000"  size="0x10000"     default="1"/>
	      <feature    type="QFN"            n="40"                        name="5x5mm, 0.4mm pitch QFN"/>
        </device>
        <!-- *************************  Device 'BAT32G135GE32FP'  ***************************** -->
        <device Dname="BAT32G135GE32FP">
          <description>
            Code Flash: 64KB,  Data Flash: 1.5KB,  RAM: 8KB
            Package: 32-lead LQFP(7x7mm, 0.8mm pitch)
          </description>
          <memory     name="IROM1"  access="rx"       start="0x00000000"  size="0x10000"     startup="1"   default="1"/>
          <memory     name="IRAM1"  access="rx"       start="0x20000000"  size="0x02000"     init   ="0"   default="1"/>
          <algorithm  name="Flash/BAT32G135GE.FLM"    start="0x00000000"  size="0x10000"     default="1"/>
	      <feature    type="QFP"            n="32"                        name="7x7mm, 0.8mm pitch LQFP"/>
        </device>
      </subFamily>
    </family>
  </devices>
  <!-- examples section (optional for all Software Packs)-->
  <examples>
    <example name="Blinky" doc="README" folder="Examples/Blinky">
      <description>Sample project</description>
      <board name="BAT32G135_EVB" vendor="Cmsemicon"/>
      <project>
        <environment name="uv" load="Blinky.uvprojx"/>
      </project>
      <attributes>
        <component Cclass="CMSIS" Cgroup="CORE"/>
        <component Cclass="Device" Cgroup="Startup"/>
      </attributes>
    </example>
  </examples>
  
  <!-- conditions section (optional for all Software Packs)-->
  <conditions>
    <condition id="BAT32G135 CMSIS-CORE">
      <!-- conditions selecting Devices -->
      <description>Cmsemicon BAT32G135 Series devices and CMSIS-CORE</description>
      <require Cclass="CMSIS" Cgroup="CORE"/>
      <require Dvendor="Cmsemicon:161" Dname="BAT32G135*"/>
    </condition>
    <condition id="Startup ARM">
      <description>Startup assembler file for ARMCC</description>
      <require Tcompiler="ARMCC"/>
    </condition>
    <condition id="Startup GCC">
      <description>Startup assembler file for GCC</description>
      <require Tcompiler="GCC"/>
    </condition>
    <condition id="Startup IAR">
      <description>Startup assembler file for IAR</description>
      <require Tcompiler="IAR"/>
    </condition>
  </conditions>
  
  <!-- component section (optional for all Software Packs)-->
  <components>
    <component Cclass="Device" Cgroup="Startup" Cversion="1.0.0" condition="BAT32G135 CMSIS-CORE">
      <description>System Startup for Cmsemicon BAT32G135 Series</description>
      <files>
       <!--  include folder -->
       <file category="include" name="Device/Include/"/>

        <file category="source"  name="Device/Source/ARM/startup_BAT32G135.s" attr="config" condition="Startup ARM" version="1.0.0"/>
        <file category="source"  name="Device/Source/GCC/startup_BAT32G135.S" attr="config" condition="Startup GCC" version="1.0.0"/>
        <file category="source"  name="Device/Source/IAR/startup_BAT32G135.s" attr="config" condition="Startup IAR" version="1.0.0"/>

        <file category="source"  name="Device/Source/system_BAT32G135.c"  attr="config" version="1.0.0"/>
      </files>
    </component>
  </components>
  
</package>
