<?xml version="1.0" encoding="UTF-8"?>
<!--************************************************************************-->
<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org>            *-->
<!--*                                                                      *-->
<!--* This program is free software; you can redistribute it and/or modify *-->
<!--* it under the terms of the GNU General Public License as published by *-->
<!--* the Free Software Foundation; either version 2 of the License, or    *-->
<!--* (at your option) any later version.                                  *-->
<!--************************************************************************-->
<device name="16F87" status="IP" memory_technology="FLASH" self_write="yes" architecture="16X" id="0x0720"
        xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
        xsi:noNamespaceSchemaLocation='pic.xsd'>

<!--* Documents ************************************************************-->
  <documents webpage="010231" datasheet="30488" progsheet="39607" erratas="80171 80301" />

<!--* Checksums ************************************************************-->
  <checksums>
    <checksum protected="Off" bchecksum="0x3002" cchecksum="0xFBD0" />
    <checksum protected="All" bchecksum="0x5004" cchecksum="0x1BD2" />
  </checksums>

<!--* Operating characteristics ********************************************-->
  <frequency_range name="industrial" special="low_power" >
    <frequency start="0" end="4"  vdd_min="2"   vdd_max="5.5" />
    <frequency start="4" end="10" vdd_min="2.5" vdd_max="5.5" vdd_min_end="3" />
  </frequency_range>
  <frequency_range name="extended"   >
    <frequency start="0" end="20" vdd_min="4" vdd_max="5.5" />
  </frequency_range>

  <voltages name="vpp"           min="10"  max="13.5" nominal="13" />
  <voltages name="vdd_prog"      min="4.5" max="5.5"  nominal="5"  />

<!--* Memory ***************************************************************-->
  <memory name="code"      start="0x0000" end="0x0FFF" />
  <memory name="user_ids"     start="0x2000" end="0x2003" rmask="0x007F"          />
  <memory name="device_id"    start="0x2006" end="0x2006" />
  <memory name="config"       start="0x2007" end="0x2008" />
  <memory name="eeprom"       start="0x0000" end="0x00FF" hexfile_offset="0x2100" />
  <memory name="debug_vector" start="0x2004" end="0x2004" />

<!--* Configuration bits ***************************************************-->
  <config offset="0x0" name="CONFIG1" wmask="0x3FFF" bvalue="0x3FFF" >
    <mask name="WDT"    value="0x0004" >
      <value value="0x0000" name="Off" cname="_WDT_OFF" />
      <value value="0x0004" name="On"  cname="_WDT_ON"  />
    </mask>
    <mask name="PWRTE"  value="0x0008" >
      <value value="0x0000" name="On"  cname="_PWRTE_ON"  />
      <value value="0x0008" name="Off" cname="_PWRTE_OFF" />
    </mask>
    <mask name="FOSC"   value="0x0013" >
      <value value="0x0000" name="LP"           cname="_LP_OSC"       />
      <value value="0x0001" name="XT"           cname="_XT_OSC"       />
      <value value="0x0002" name="HS"           cname="_HS_OSC"       />
      <value value="0x0003" name="EC_IO"        cname="_EXTCLK"       />
      <value value="0x0010" name="INTRC_IO"     cname="_INTRC_IO"     />
      <value value="0x0011" name="INTRC_CLKOUT" cname="_INTRC_CLKOUT" />
      <value value="0x0012" name="EXTRC_IO"     cname="_EXTRC_IO"     />
      <value value="0x0013" name="EXTRC_CLKOUT" cname="_EXTRC_CLKOUT" />
    </mask>
    <mask name="MCLRE"  value="0x0020" >
      <value value="0x0000" name="Internal" cname="_MCLR_OFF" />
      <value value="0x0020" name="External" cname="_MCLR_ON"  />
    </mask>
    <mask name="BODEN"  value="0x0040" >
      <value value="0x0000" name="Off" cname="_BODEN_OFF" />
      <value value="0x0040" name="On"  cname="_BODEN_ON"  />
    </mask>
    <mask name="LVP"    value="0x0080" >
      <value value="0x0000" name="Off" cname="_LVP_OFF" />
      <value value="0x0080" name="On"  cname="_LVP_ON"  />
    </mask>
    <mask name="CPD"    value="0x0100" >
      <value value="0x0000" name="All" cname="_CPD_ON"  />
      <value value="0x0100" name="Off" cname="_CPD_OFF" />
    </mask>
    <mask name="WRT"    value="0x0600" >
      <value value="0x0000" name="All"     cname="_WRT_PROTECT_ALL"  />
      <value value="0x0200" name="000:7FF" cname="_WRT_PROTECT_2048" />
      <value value="0x0400" name="000:0FF" cname="_WRT_PROTECT_256"  />
      <value value="0x0600" name="Off"     cname="_WRT_PROTECT_OFF"  />
    </mask>
    <mask name="DEBUG"  value="0x0800" >
      <value value="0x0000" name="On"  cname="_DEBUG_ON"  />
      <value value="0x0800" name="Off" cname="_DEBUG_OFF" />
    </mask>
    <mask name="CCP1MX" value="0x1000" >
      <value value="0x0000" name="RB3" cname="_CCP1_RB3" />
      <value value="0x1000" name="RB0" cname="_CCP1_RB0" />
    </mask>
    <mask name="CP"     value="0x2000" >
      <value value="0x0000" name="All" cname="_CP_ALL" />
      <value value="0x2000" name="Off" cname="_CP_OFF" />
    </mask>
  </config>

  <config offset="0x1" name="CONFIG2" wmask="0x3FFF" bvalue="0x0003" >
    <mask name="FCMEN" value="0x0001" >
      <value value="0x0000" name="Off" cname="_FCMEN_OFF" />
      <value value="0x0001" name="On"  cname="_FCMEN_ON"  />
    </mask>
    <mask name="IESO"  value="0x0002" >
      <value value="0x0000" name="Off" cname="_IESO_OFF" />
      <value value="0x0002" name="On"  cname="_IESO_ON"  />
    </mask>
  </config>

<!--* Packages *************************************************************-->
  <package types="pdip soic" nb_pins="18" >
    <pin index="1"  name="RA2/AN2/VREF-/CVREF"     />
    <pin index="2"  name="RA3/AN3/VREF+/C1OUT"     />
    <pin index="3"  name="RA4/AN4/T0CKI/C2OUT"     />
    <pin index="4"  name="RA5/MCLR/VPP"            />
    <pin index="5"  name="VSS"                     />
    <pin index="6"  name="RB0/INT/CCP1"            />
    <pin index="7"  name="RB1/SDI/SDA"             />
    <pin index="8"  name="RB2/SDO/CCP1"            />
    <pin index="9"  name="RB3/CCP1/PGM"            />
    <pin index="10" name="RB4/SCK/SCL"             />
    <pin index="11" name="RB5/SS/TX/CK"            />
    <pin index="12" name="RB6/AN5/T1OSO/T1CKI/PGC" />
    <pin index="13" name="RB7/AN6/T1OSI/PGD"       />
    <pin index="14" name="VDD"                     />
    <pin index="15" name="RA6/OSC2/CLKOUT"         />
    <pin index="16" name="RA7/OSC1/CLKIN"          />
    <pin index="17" name="RA0/AN0"                 />
    <pin index="18" name="RA1/AN1"                 />
  </package>

  <package types="ssop"      nb_pins="20" >
    <pin index="1"  name="" />
    <pin index="2"  name="" />
    <pin index="3"  name="" />
    <pin index="4"  name="" />
    <pin index="5"  name="" />
    <pin index="6"  name="" />
    <pin index="7"  name="" />
    <pin index="8"  name="" />
    <pin index="9"  name="" />
    <pin index="10" name="" />
    <pin index="11" name="" />
    <pin index="12" name="" />
    <pin index="13" name="" />
    <pin index="14" name="" />
    <pin index="15" name="" />
    <pin index="16" name="" />
    <pin index="17" name="" />
    <pin index="18" name="" />
    <pin index="19" name="" />
    <pin index="20" name="" />
  </package>

  <package types="qfn"       nb_pins="28" >
    <pin index="1"  name="" />
    <pin index="2"  name="" />
    <pin index="3"  name="" />
    <pin index="4"  name="" />
    <pin index="5"  name="" />
    <pin index="6"  name="" />
    <pin index="7"  name="" />
    <pin index="8"  name="" />
    <pin index="9"  name="" />
    <pin index="10" name="" />
    <pin index="11" name="" />
    <pin index="12" name="" />
    <pin index="13" name="" />
    <pin index="14" name="" />
    <pin index="15" name="" />
    <pin index="16" name="" />
    <pin index="17" name="" />
    <pin index="18" name="" />
    <pin index="19" name="" />
    <pin index="20" name="" />
    <pin index="21" name="" />
    <pin index="22" name="" />
    <pin index="23" name="" />
    <pin index="24" name="" />
    <pin index="25" name="" />
    <pin index="26" name="" />
    <pin index="27" name="" />
    <pin index="28" name="" />
  </package>

</device>
