summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Štemberk <stemberk@gmail.com>2014-01-05 13:33:41 +0100
committerMichael Buesch <m@bues.ch>2014-01-05 13:33:41 +0100
commit4b8dea2f142172f3364949195aa18090f9d2b8c2 (patch)
treefbcb99bc67c342e4bbf0a27292290daea6cc834e
parent6702df5503e4edbe4604723fbcb95473239b488e (diff)
downloadtoprammer-4b8dea2f142172f3364949195aa18090f9d2b8c2.tar.xz
toprammer-4b8dea2f142172f3364949195aa18090f9d2b8c2.zip
Add support for more Microchip devices
This patch was contributed by Pavel Štemberk <stemberk@gmail.com> Signed-off-by: Michael Buesch <m@bues.ch>
-rw-r--r--libtoprammer/chips/microchip8/__init__.py14
-rw-r--r--libtoprammer/chips/microchip8/microchip8_common.py30
-rw-r--r--libtoprammer/chips/microchip8/microchip8_singlePMarea.py11
-rw-r--r--libtoprammer/chips/microchip8/microchip8_splittedPMarea.py25
-rw-r--r--libtoprammer/chips/microchip8/pic10f320dip8.py3
-rw-r--r--libtoprammer/chips/microchip8/pic10f320sip6.py3
-rw-r--r--libtoprammer/chips/microchip8/pic10f322dip8.py3
-rw-r--r--libtoprammer/chips/microchip8/pic10f322sip6.py3
-rw-r--r--libtoprammer/chips/microchip8/pic12f1501dip8.py88
-rw-r--r--libtoprammer/chips/microchip8/pic16f1454dip14.py89
-rw-r--r--libtoprammer/chips/microchip8/pic16f1459dip20.py89
-rw-r--r--libtoprammer/chips/microchip8/pic16f1503dip14.py88
-rw-r--r--libtoprammer/chips/microchip8/pic16f1507dip20.py88
-rw-r--r--libtoprammer/chips/microchip8/pic16f1508dip20.py88
-rw-r--r--libtoprammer/chips/microchip8/pic16f1509dip20.py88
-rw-r--r--libtoprammer/chips/microchip8/pic16f1823dip14.py4
-rw-r--r--libtoprammer/chips/microchip8/pic16f1824dip14.py4
-rw-r--r--libtoprammer/chips/microchip8/pic16f1824sip6.py4
-rw-r--r--libtoprammer/chips/microchip8/pic16f1825dip14.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16f1825sip6.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16f1826dip18.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16f1826sip6.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16f1827dip18.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16f1827sip6.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16f1828dip20.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16f1828sip6.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16f1829dip20.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16f1829sip6.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16f1933dip28.py5
-rw-r--r--libtoprammer/chips/microchip8/pic16f1933sip6.py5
-rw-r--r--libtoprammer/chips/microchip8/pic16f1934dip40.py5
-rw-r--r--libtoprammer/chips/microchip8/pic16f1934sip6.py7
-rw-r--r--libtoprammer/chips/microchip8/pic16f1936dip28.py5
-rw-r--r--libtoprammer/chips/microchip8/pic16f1936sip6.py5
-rw-r--r--libtoprammer/chips/microchip8/pic16f1937dip40.py5
-rw-r--r--libtoprammer/chips/microchip8/pic16f1937sip6.py5
-rw-r--r--libtoprammer/chips/microchip8/pic16f1938dip28.py5
-rw-r--r--libtoprammer/chips/microchip8/pic16f1938sip6.py5
-rw-r--r--libtoprammer/chips/microchip8/pic16f1939dip40.py5
-rw-r--r--libtoprammer/chips/microchip8/pic16f1939sip6.py5
-rw-r--r--libtoprammer/chips/microchip8/pic16lf1902dip28.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16lf1902sip6.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16lf1903dip28.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16lf1903sip6.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16lf1904dip40.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16lf1904sip6.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16lf1906dip28.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16lf1906sip6.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16lf1907dip40.py3
-rw-r--r--libtoprammer/chips/microchip8/pic16lf1907sip6.py3
-rw-r--r--libtoprammer/chips/microchip8/pic18f1220sip6.py2
-rw-r--r--libtoprammer/fpga/bin/microchip01dip14dip20a.bitbin0 -> 24799 bytes
-rw-r--r--libtoprammer/fpga/src/microchip01/microchip01dip14dip20a/Makefile3
-rw-r--r--libtoprammer/fpga/src/microchip01/microchip01dip14dip20a/microchip01dip14dip20a.v76
54 files changed, 871 insertions, 54 deletions
diff --git a/libtoprammer/chips/microchip8/__init__.py b/libtoprammer/chips/microchip8/__init__.py
index 6c3c582..a503bc1 100644
--- a/libtoprammer/chips/microchip8/__init__.py
+++ b/libtoprammer/chips/microchip8/__init__.py
@@ -6,12 +6,26 @@ from pic10f320dip8 import *
from pic10f320sip6 import *
from pic10f322dip8 import *
from pic10f322sip6 import *
+from pic12f1501dip8 import *
+from pic12f1501sip6 import *
from pic12f1822dip8 import *
from pic12f1822sip6 import *
from pic12f508dip8 import *
from pic12f508sip6 import *
from pic12f629dip8 import *
from pic12f629sip6 import *
+from pic16f1454dip14 import *
+from pic16f1454sip6 import *
+from pic16f1459dip20 import *
+from pic16f1459sip6 import *
+from pic16f1503dip14 import *
+from pic16f1503sip6 import *
+from pic16f1507dip20 import *
+from pic16f1507sip6 import *
+from pic16f1508dip20 import *
+from pic16f1508sip6 import *
+from pic16f1509dip20 import *
+from pic16f1509sip6 import *
from pic16f1824dip14 import *
from pic16f1824sip6 import *
from pic16f1825dip14 import *
diff --git a/libtoprammer/chips/microchip8/microchip8_common.py b/libtoprammer/chips/microchip8/microchip8_common.py
index f849895..f510328 100644
--- a/libtoprammer/chips/microchip8/microchip8_common.py
+++ b/libtoprammer/chips/microchip8/microchip8_common.py
@@ -50,6 +50,7 @@ class Chip_Microchip8_common(Chip):
delayTprog = 0.001
delayTdly = 0.000001
delayTera = 0.01
+ nLatches =1
@classmethod
def getSupportFlags(cls):
@@ -123,15 +124,14 @@ class Chip_Microchip8_common(Chip):
self.progressMeterInit("Erasing chip", 0)
self.bulkErasePGM()
self.progressMeterFinish()
- # OSCCAL=0x3454
- # OSCCAL=0x0C0A
+ #OSCCAL=0x3454
+ #OSCCAL=0x0C10
if(keepOSCCAL and OSCCAL != 0xfff):
self.exitPM()
self.enterPM()
self.progressMeterInit("Writing osccal, value %x" % OSCCAL, 0)
print("Writing osccal, value %x" % OSCCAL)
self.setPC(self.osccalAddr)
- # print("PC is set to %x" % self.PC)
self.send6bitWriteInstruction(self.CMD_LOAD_DATA_FOR_PGM, OSCCAL)
self.top.cmdDelay(self.delayTdly)
self.sendWriteFlashInstr()
@@ -227,6 +227,8 @@ class Chip_Microchip8_common(Chip):
self.progressMeterInit("Writing flash", len(image) // 2)
self.enterPM()
self.setPC(0)
+ latCnt=1;
+ writeCurrentLatches=False
for wordAddr in range(0, len(image) // 2):
self.progressMeter(wordAddr)
# do not swap following two lines
@@ -234,8 +236,16 @@ class Chip_Microchip8_common(Chip):
if(WD != (byte2int(self.defaultWord[1]) << 8) + byte2int(self.defaultWord[0])):
self.send6bitWriteInstruction(self.CMD_LOAD_DATA_FOR_PGM, WD)
self.top.cmdDelay(self.delayTdly)
- self.sendWriteFlashInstr()
+ writeCurrentLatches=True
+ if(latCnt == self.nLatches):
+ if(writeCurrentLatches):
+ self.sendWriteFlashInstr()
+ latCnt=0
+ writeCurrentLatches=False
+ latCnt+=1
self.incrementPC(1)
+ if(latCnt>1):
+ self.sendWriteFlashInstr()
self.progressMeterFinish()
# self.exitPM()
@@ -350,15 +360,11 @@ class Chip_Microchip8_common(Chip):
# self.top.cmdEnableZifPullups(True)
self.applyGND(True)
- self.applyVCC(True)
- # self.top.cmdDelay(0.000005)
-
- for i in range(0, 2):
- self.applyVPP(True)
- # self.top.cmdDelay(0.000005)
- self.applyVPP(False)
- # self.top.cmdDelay(0.000031)
self.applyVPP(True)
+ self.top.cmdDelay(0.000250)
+
+
+ self.applyVCC(True)
# self.top.cmdEnableZifPullups(True)
# self.top.cmdDelay(0.000005) #least 5us is required to reach Vdd first entry PM
diff --git a/libtoprammer/chips/microchip8/microchip8_singlePMarea.py b/libtoprammer/chips/microchip8/microchip8_singlePMarea.py
index a3bacb7..d1baf52 100644
--- a/libtoprammer/chips/microchip8/microchip8_singlePMarea.py
+++ b/libtoprammer/chips/microchip8/microchip8_singlePMarea.py
@@ -85,4 +85,13 @@ class microchip8_singlePMarea(Chip_Microchip8_common):
self.sendWriteFlashInstr()
def sendWriteFlashInstrCW(self):
- self.sendWriteFlashInstr()
+ self.sendWriteFlashInstr()
+ def readProgmem(self):
+ self.exitPM()
+ return Chip_Microchip8_common.readProgmem(self)
+ def readFuse(self):
+ self.exitPM()
+ return Chip_Microchip8_common.readFuse(self)
+ def writeFuse(self, image):
+ self.exitPM()
+ Chip_Microchip8_common.writeFuse(self,image)
diff --git a/libtoprammer/chips/microchip8/microchip8_splittedPMarea.py b/libtoprammer/chips/microchip8/microchip8_splittedPMarea.py
index 51dd0c3..1e87c9d 100644
--- a/libtoprammer/chips/microchip8/microchip8_splittedPMarea.py
+++ b/libtoprammer/chips/microchip8/microchip8_splittedPMarea.py
@@ -42,6 +42,23 @@ class microchip8_splittedPMarea(Chip_Microchip8_common):
delayTera = 0.005
defaultWord = [b'\xFF', b'\x3F']
+ nDeviceIdRevisionBits = 5
+
+ deviceIdMapDict = {
+ 0o474:"16F1826", 0o475:"16F1827", 0o504:"16LF1826", 0o505:"16LF1827", 0o471:"16F1823", 0o501:"16LF1823",
+ 0o470:"16F1822", 0o500:"16LF1822", 0o472:"16F1824", 0o502:"16LF1824", 0o473:"16F1825", 0o503:"16LF1825",
+ 0o476:"16F1828", 0o506:"16LF1828", 0o477:"16F1829", 0o507:"16LF1829",
+ 0o515:"10F320", 0o514:"10F322", 0o517:"10LF320", 0o516:"10LF322",
+ 0o174:"12F629", 0o176:"12F675", 0o206:"16F630", 0o207:"16F676",
+ 0o053:"16F84A",
+ 0o546:"12F1501", 0o554:"12LF1501", 0o547:"16F1503", 0o555:"16LF1503", 0o550:"16F1507", 0o556:"16LF1507",
+ 0o551:"16F1508", 0o557:"16LF1508", 0o552:"16F1509", 0o560:"16LF1509",
+ 0o460:"16F1933", 0o462:"16F1934", 0o463:"16F1936", 0o464:"16F1937", 0o465:"16F1938", 0o466:"16F1939",
+ 0o450:"16F1946", 0o451:"16F1947", 0o440:"16LF1933", 0o442:"16LF1934", 0o443:"16LF1936", 0o444:"16LF1937",
+ 0o445:"16LF1938", 0o446:"16LF1939", 0o454:"16LF1946", 0o455:"16LF1947", 0o541:"16LF1902", 0o540:"16LF1903",
+ 0o544:"16LF1904", 0o543:"16LF1906", 0o542:"16LF1907",
+ 0x3020:"16F1454", 0x3024:"16LF1454", 0x3021:"16F1455", 0x3025:"16LF1455", 0x3023:"16F1459", 0x3027:"16LF1459",
+ }
def __init__(self,
chipPackage, chipPinVCC, chipPinsVPP, chipPinGND,
@@ -107,7 +124,13 @@ class microchip8_splittedPMarea(Chip_Microchip8_common):
self.readSDOBufferHigh()
self.incrementPC(1)
self.progressMeterFinish()
- return self.top.cmdReadBufferReg()[0:2 * idSize]
+ signature = self.top.cmdReadBufferReg()[0:2 * idSize]
+ devId = ((byte2int(signature[1]) << 8) | byte2int(signature[0])) >> self.nDeviceIdRevisionBits
+ if(devId in self.deviceIdMapDict):
+ print("device: {:s}".format(self.deviceIdMapDict.get(devId)))
+ else:
+ print("WARNING: device id {:o} not found in local dictionary".format(devId))
+ return signature
def sendWriteFlashInstrExternallyTimed(self):
'''
diff --git a/libtoprammer/chips/microchip8/pic10f320dip8.py b/libtoprammer/chips/microchip8/pic10f320dip8.py
index 69c73dc..264c55d 100644
--- a/libtoprammer/chips/microchip8/pic10f320dip8.py
+++ b/libtoprammer/chips/microchip8/pic10f320dip8.py
@@ -24,6 +24,9 @@ from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic10F320dip8(microchip8_splittedPMarea_hasResetPC):
+ rowSize = 16
+ nLatches = 16
+
logicalFlashProgramMemorySize = 0x2000
logicalFlashConfigurationMemorySize = 0x2000
diff --git a/libtoprammer/chips/microchip8/pic10f320sip6.py b/libtoprammer/chips/microchip8/pic10f320sip6.py
index b533e24..09cb4d9 100644
--- a/libtoprammer/chips/microchip8/pic10f320sip6.py
+++ b/libtoprammer/chips/microchip8/pic10f320sip6.py
@@ -29,6 +29,9 @@ from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic10F320sip6(microchip8_splittedPMarea_hasResetPC):
+ rowSize = 16
+ nLatches = 16
+
logicalFlashProgramMemorySize = 0x2000
logicalFlashConfigurationMemorySize = 0x2000
diff --git a/libtoprammer/chips/microchip8/pic10f322dip8.py b/libtoprammer/chips/microchip8/pic10f322dip8.py
index 9ad7d96..90c4c9a 100644
--- a/libtoprammer/chips/microchip8/pic10f322dip8.py
+++ b/libtoprammer/chips/microchip8/pic10f322dip8.py
@@ -24,6 +24,9 @@ from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic10F322dip8(microchip8_splittedPMarea_hasResetPC):
+ rowSize = 16
+ nLatches = 16
+
logicalFlashProgramMemorySize = 0x2000
logicalFlashConfigurationMemorySize = 0x2000
diff --git a/libtoprammer/chips/microchip8/pic10f322sip6.py b/libtoprammer/chips/microchip8/pic10f322sip6.py
index e559a11..84bc72b 100644
--- a/libtoprammer/chips/microchip8/pic10f322sip6.py
+++ b/libtoprammer/chips/microchip8/pic10f322sip6.py
@@ -29,6 +29,9 @@ from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic10F322sip6(microchip8_splittedPMarea_hasResetPC):
+ rowSize = 16
+ nLatches = 16
+
logicalFlashProgramMemorySize = 0x2000
logicalFlashConfigurationMemorySize = 0x2000
diff --git a/libtoprammer/chips/microchip8/pic12f1501dip8.py b/libtoprammer/chips/microchip8/pic12f1501dip8.py
new file mode 100644
index 0000000..e2fa62e
--- /dev/null
+++ b/libtoprammer/chips/microchip8/pic12f1501dip8.py
@@ -0,0 +1,88 @@
+"""
+# TOP2049 Open Source programming suite
+#
+# Microchip PIC12F1501 DIP8
+#
+# Copyright (c) 2013 Pavel Stemberk <stemberk@gmail.com>
+#
+# 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.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+"""
+
+from microchip8_splittedPMarea_hasResetPC import *
+
+class Chip_Pic12F1501dip8(microchip8_splittedPMarea_hasResetPC):
+
+ rowSize = 32
+ nLatches = 32
+
+ def __init__(self):
+ microchip8_splittedPMarea_hasResetPC.__init__(self,
+ chipPackage="DIP8",
+ chipPinVCC=1,
+ chipPinsVPP=4,
+ chipPinGND=8,
+ signature="\x80\x27",
+ flashPageSize=0x400,
+ flashPages=1,
+ eepromPageSize=256,
+ eepromPages=0,
+ fuseBytes=4
+ )
+
+fuseDesc = (
+ BitDescription(0, "FOSC[0], 0=LP, 00=INTOSC"),
+ BitDescription(1, "FOSC[1]"),
+ BitDescription(2, "Unused"),
+ BitDescription(3, "WDTE[0], 00=WDT disabled, 11=WDT enabled"),
+ BitDescription(4, "WDTE[1]"),
+ BitDescription(5, "nPWRTE"),
+ BitDescription(6, "MCLRE, 1=nMCLR/Vpp pin is nMCLR, weak pull-up enabled, ignored if LVP=1 "),
+ BitDescription(7, "nCP 1=program memory code protection is disabled"),
+ BitDescription(8, "Unused"),
+ BitDescription(9, "BOREN[0], 00=BOR disabled"),
+ BitDescription(10, "BOREN[1]"),
+ BitDescription(11, "nCLKOUTEN, 0=CLKOUT is enabled on CLKOUT pin"),
+ BitDescription(12, "Unused"),
+ BitDescription(13, "Unused"),
+ BitDescription(14, "NA"),
+ BitDescription(15, "NA"),
+
+ BitDescription(16, "WRT[0], 11=Write protection off"),
+ BitDescription(17, "WRT[1]"),
+ BitDescription(18, "Unused"),
+ BitDescription(19, "Unused"),
+ BitDescription(20, "Unused"),
+ BitDescription(21, "Unused"),
+ BitDescription(22, "Unused"),
+ BitDescription(23, "Unused"),
+ BitDescription(24, "Unused"),
+ BitDescription(25, "STVREN, 1=Stack overflow or underflow will cause a reset"),
+ BitDescription(26, "BORV"),
+ BitDescription(27, "nLPBOR, 1=Low-Power BOR is disabled"),
+ BitDescription(28, "Unused"),
+ BitDescription(29, "LVP 1=Low-voltage programming enabled"),
+)
+
+ChipDescription(
+ Chip_Pic12F1501dip8,
+ bitfile="microchip01dip8",
+ chipID="pic12f1501dip8",
+ runtimeID=(0xDE02, 0x01),
+ chipVendors="Microchip",
+ description="PIC12F1501, PIC12LF1501",
+ packages=(("DIP8", ""),),
+ fuseDesc=fuseDesc,
+ maintainer="Pavel Stemberk <stemberk@gmail.com>",
+)
diff --git a/libtoprammer/chips/microchip8/pic16f1454dip14.py b/libtoprammer/chips/microchip8/pic16f1454dip14.py
new file mode 100644
index 0000000..b07e9ab
--- /dev/null
+++ b/libtoprammer/chips/microchip8/pic16f1454dip14.py
@@ -0,0 +1,89 @@
+"""
+# TOP2049 Open Source programming suite
+#
+# Microchip PIC16F1454 DIP14
+#
+# Copyright (c) 2013 Pavel Stemberk <stemberk@gmail.com>
+#
+# 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.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+"""
+
+from microchip8_splittedPMarea_hasResetPC import *
+
+class Chip_Pic16F1454dip14(microchip8_splittedPMarea_hasResetPC):
+
+ nLatches = 32
+ rowSize = 32
+ nDeviceIdRevisionBits = 0
+
+ def __init__(self):
+ microchip8_splittedPMarea_hasResetPC.__init__(self,
+ chipPackage="DIP14",
+ chipPinVCC=1,
+ chipPinsVPP=4,
+ chipPinGND=14,
+ signature="\x43\x27",
+ flashPageSize=0x2000,
+ flashPages=1,
+ eepromPageSize=256,
+ eepromPages=0,
+ fuseBytes=4
+ )
+
+fuseDesc = (
+ BitDescription(0, "FOSC[0], 0=LP, 100=INTOSC"),
+ BitDescription(1, "FOSC[1]"),
+ BitDescription(2, "FOSC[2]"),
+ BitDescription(3, "WDTE[0], 00=WDT disabled, 11=WDT enabled"),
+ BitDescription(4, "WDTE[1]"),
+ BitDescription(5, "nPWRTE"),
+ BitDescription(6, "MCLRE, 1=nMCLR/Vpp pin is nMCLR, weak pull-up enabled, ignored if LVP=1 "),
+ BitDescription(7, "nCP 1=program memory code protection is disabled"),
+ BitDescription(8, "Unused"),
+ BitDescription(9, "BOREN[0], 00=BOR disabled"),
+ BitDescription(10, "BOREN[1]"),
+ BitDescription(11, "nCLKOUTEN, 0=CLKOUT is enabled on CLKOUT pin"),
+ BitDescription(12, "IESO, 0=Internal/External Switchover mode is disabled"),
+ BitDescription(13, "FCMEN, 0=Fail-Safe Clock Monitor is disabled"),
+ BitDescription(14, "NA"),
+ BitDescription(15, "NA"),
+
+ BitDescription(16, "WRT[0], 11=Write protection off"),
+ BitDescription(17, "WRT[1]"),
+ BitDescription(18, "Unused"),
+ BitDescription(19, "Unused"),
+ BitDescription(20, "CPUDIV[0], 00=No CPU system clock divide"),
+ BitDescription(21, "CPUDIV[1], 11=CPU system clock divided by 6"),
+ BitDescription(22, "USBLSCLK, 1 = USB Clock divide-by 8, (48 MHz System input clock expected)"),
+ BitDescription(23, "PLLMULT, 0=4x PLL Output Frequency is selected"),
+ BitDescription(24, "PLLEN, 1=PLL enabled"),
+ BitDescription(25, "STVREN, 1=Stack overflow or underflow will cause a reset"),
+ BitDescription(26, "BORV"),
+ BitDescription(27, "nLPBOR, 1=Low-Power BOR is disabled"),
+ BitDescription(28, "nDEBUG, 0=ICSPCLK and ICSPDAT are dedicated to the debugger"),
+ BitDescription(29, "LVP 1=Low-voltage programming enabled"),
+)
+
+ChipDescription(
+ Chip_Pic16F1454dip14,
+ bitfile="microchip01dip14dip20a",
+ chipID="pic16f1454dip14",
+ runtimeID=(0xDE09, 0x01),
+ chipVendors="Microchip",
+ description="PIC16F1454, PIC16F1455, PIC16LF1454, PIC16LF1455,",
+ packages=(("DIP14", ""),),
+ fuseDesc=fuseDesc,
+ maintainer="Pavel Stemberk <stemberk@gmail.com>",
+)
diff --git a/libtoprammer/chips/microchip8/pic16f1459dip20.py b/libtoprammer/chips/microchip8/pic16f1459dip20.py
new file mode 100644
index 0000000..9a3fba1
--- /dev/null
+++ b/libtoprammer/chips/microchip8/pic16f1459dip20.py
@@ -0,0 +1,89 @@
+"""
+# TOP2049 Open Source programming suite
+#
+# Microchip PIC16F1459 DIP20
+#
+# Copyright (c) 2013 Pavel Stemberk <stemberk@gmail.com>
+#
+# 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.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+"""
+
+from microchip8_splittedPMarea_hasResetPC import *
+
+class Chip_Pic16F1459dip20(microchip8_splittedPMarea_hasResetPC):
+
+ nLatches = 32
+ rowSize = 32
+ nDeviceIdRevisionBits = 0
+
+ def __init__(self):
+ microchip8_splittedPMarea_hasResetPC.__init__(self,
+ chipPackage="DIP20",
+ chipPinVCC=1,
+ chipPinsVPP=4,
+ chipPinGND=20,
+ signature="\x00\x2E",
+ flashPageSize=0x2000,
+ flashPages=1,
+ eepromPageSize=256,
+ eepromPages=0,
+ fuseBytes=4
+ )
+
+fuseDesc = (
+ BitDescription(0, "FOSC[0], 0=LP, 100=INTOSC"),
+ BitDescription(1, "FOSC[1]"),
+ BitDescription(2, "FOSC[2]"),
+ BitDescription(3, "WDTE[0], 00=WDT disabled, 11=WDT enabled"),
+ BitDescription(4, "WDTE[1]"),
+ BitDescription(5, "nPWRTE"),
+ BitDescription(6, "MCLRE, 1=nMCLR/Vpp pin is nMCLR, weak pull-up enabled, ignored if LVP=1 "),
+ BitDescription(7, "nCP 1=program memory code protection is disabled"),
+ BitDescription(8, "Unused"),
+ BitDescription(9, "BOREN[0], 00=BOR disabled"),
+ BitDescription(10, "BOREN[1]"),
+ BitDescription(11, "nCLKOUTEN, 0=CLKOUT is enabled on CLKOUT pin"),
+ BitDescription(12, "IESO, 0=Internal/External Switchover mode is disabled"),
+ BitDescription(13, "FCMEN, 0=Fail-Safe Clock Monitor is disabled"),
+ BitDescription(14, "NA"),
+ BitDescription(15, "NA"),
+
+ BitDescription(16, "WRT[0], 11=Write protection off"),
+ BitDescription(17, "WRT[1]"),
+ BitDescription(18, "Unused"),
+ BitDescription(19, "Unused"),
+ BitDescription(20, "CPUDIV[0], 00=No CPU system clock divide"),
+ BitDescription(21, "CPUDIV[1], 11=CPU system clock divided by 6"),
+ BitDescription(22, "USBLSCLK, 1 = USB Clock divide-by 8, (48 MHz System input clock expected)"),
+ BitDescription(23, "PLLMULT, 0=4x PLL Output Frequency is selected"),
+ BitDescription(24, "PLLEN, 1=PLL enabled"),
+ BitDescription(25, "STVREN, 1=Stack overflow or underflow will cause a reset"),
+ BitDescription(26, "BORV"),
+ BitDescription(27, "nLPBOR, 1=Low-Power BOR is disabled"),
+ BitDescription(28, "nDEBUG, 0=ICSPCLK and ICSPDAT are dedicated to the debugger"),
+ BitDescription(29, "LVP 1=Low-voltage programming enabled"),
+)
+
+ChipDescription(
+ Chip_Pic16F1459dip20,
+ bitfile="microchip01dip14dip20a",
+ chipID="pic16F1459dip20",
+ runtimeID=(0xDE09, 0x01),
+ chipVendors="Microchip",
+ description="PIC16F1459, PIC16LF1459",
+ packages=(("DIP20", ""),),
+ fuseDesc=fuseDesc,
+ maintainer="Pavel Stemberk <stemberk@gmail.com>",
+)
diff --git a/libtoprammer/chips/microchip8/pic16f1503dip14.py b/libtoprammer/chips/microchip8/pic16f1503dip14.py
new file mode 100644
index 0000000..de94513
--- /dev/null
+++ b/libtoprammer/chips/microchip8/pic16f1503dip14.py
@@ -0,0 +1,88 @@
+"""
+# TOP2049 Open Source programming suite
+#
+# Microchip PIC16F1503 DIP14
+#
+# Copyright (c) 2013 Pavel Stemberk <stemberk@gmail.com>
+#
+# 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.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+"""
+
+from microchip8_splittedPMarea_hasResetPC import *
+
+class Chip_Pic16F1503dip14(microchip8_splittedPMarea_hasResetPC):
+
+ nLatches = 16
+ rowSize = 16
+
+ def __init__(self):
+ microchip8_splittedPMarea_hasResetPC.__init__(self,
+ chipPackage="DIP14",
+ chipPinVCC=1,
+ chipPinsVPP=4,
+ chipPinGND=14,
+ signature="\x43\x27",
+ flashPageSize=0x800,
+ flashPages=1,
+ eepromPageSize=256,
+ eepromPages=0,
+ fuseBytes=4
+ )
+
+fuseDesc = (
+ BitDescription(0, "FOSC[0], 0=LP, 00=INTOSC"),
+ BitDescription(1, "FOSC[1]"),
+ BitDescription(2, "Unused"),
+ BitDescription(3, "WDTE[0], 00=WDT disabled, 11=WDT enabled"),
+ BitDescription(4, "WDTE[1]"),
+ BitDescription(5, "nPWRTE"),
+ BitDescription(6, "MCLRE, 1=nMCLR/Vpp pin is nMCLR, weak pull-up enabled, ignored if LVP=1 "),
+ BitDescription(7, "nCP 1=program memory code protection is disabled"),
+ BitDescription(8, "Unused"),
+ BitDescription(9, "BOREN[0], 00=BOR disabled"),
+ BitDescription(10, "BOREN[1]"),
+ BitDescription(11, "nCLKOUTEN, 0=CLKOUT is enabled on CLKOUT pin"),
+ BitDescription(12, "Unused"),
+ BitDescription(13, "Unused"),
+ BitDescription(14, "NA"),
+ BitDescription(15, "NA"),
+
+ BitDescription(16, "WRT[0], 11=Write protection off"),
+ BitDescription(17, "WRT[1]"),
+ BitDescription(18, "Unused"),
+ BitDescription(19, "Unused"),
+ BitDescription(20, "Unused"),
+ BitDescription(21, "Unused"),
+ BitDescription(22, "Unused"),
+ BitDescription(23, "Unused"),
+ BitDescription(24, "Unused"),
+ BitDescription(25, "STVREN, 1=Stack overflow or underflow will cause a reset"),
+ BitDescription(26, "BORV"),
+ BitDescription(27, "nLPBOR, 1=Low-Power BOR is disabled"),
+ BitDescription(28, "Unused"),
+ BitDescription(29, "LVP 1=Low-voltage programming enabled"),
+)
+
+ChipDescription(
+ Chip_Pic16F1503dip14,
+ bitfile="microchip01dip14dip20",
+ chipID="pic16f1503dip14",
+ runtimeID=(0xDE03, 0x01),
+ chipVendors="Microchip",
+ description="PIC16F1503, PIC16LF1503",
+ packages=(("DIP14", ""),),
+ fuseDesc=fuseDesc,
+ maintainer="Pavel Stemberk <stemberk@gmail.com>",
+)
diff --git a/libtoprammer/chips/microchip8/pic16f1507dip20.py b/libtoprammer/chips/microchip8/pic16f1507dip20.py
new file mode 100644
index 0000000..aa0da48
--- /dev/null
+++ b/libtoprammer/chips/microchip8/pic16f1507dip20.py
@@ -0,0 +1,88 @@
+"""
+# TOP2049 Open Source programming suite
+#
+# Microchip PIC16F1507 DIP20
+#
+# Copyright (c) 2013 Pavel Stemberk <stemberk@gmail.com>
+#
+# 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.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+"""
+
+from microchip8_splittedPMarea_hasResetPC import *
+
+class Chip_Pic16F1507dip20(microchip8_splittedPMarea_hasResetPC):
+
+ nLatches = 16
+ rowSize = 16
+
+ def __init__(self):
+ microchip8_splittedPMarea_hasResetPC.__init__(self,
+ chipPackage="DIP20",
+ chipPinVCC=1,
+ chipPinsVPP=4,
+ chipPinGND=20,
+ signature="\x80\x2D",
+ flashPageSize=0x800,
+ flashPages=1,
+ eepromPageSize=256,
+ eepromPages=0,
+ fuseBytes=4
+ )
+
+fuseDesc = (
+ BitDescription(0, "FOSC[0], 0=LP, 00=INTOSC"),
+ BitDescription(1, "FOSC[1]"),
+ BitDescription(2, "Unused"),
+ BitDescription(3, "WDTE[0], 00=WDT disabled, 11=WDT enabled"),
+ BitDescription(4, "WDTE[1]"),
+ BitDescription(5, "nPWRTE"),
+ BitDescription(6, "MCLRE, 1=nMCLR/Vpp pin is nMCLR, weak pull-up enabled, ignored if LVP=1 "),
+ BitDescription(7, "nCP 1=program memory code protection is disabled"),
+ BitDescription(8, "Unused"),
+ BitDescription(9, "BOREN[0], 00=BOR disabled"),
+ BitDescription(10, "BOREN[1]"),
+ BitDescription(11, "nCLKOUTEN, 0=CLKOUT is enabled on CLKOUT pin"),
+ BitDescription(12, "Unused"),
+ BitDescription(13, "Unused"),
+ BitDescription(14, "NA"),
+ BitDescription(15, "NA"),
+
+ BitDescription(16, "WRT[0], 11=Write protection off"),
+ BitDescription(17, "WRT[1]"),
+ BitDescription(18, "Unused"),
+ BitDescription(19, "Unused"),
+ BitDescription(20, "Unused"),
+ BitDescription(21, "Unused"),
+ BitDescription(22, "Unused"),
+ BitDescription(23, "Unused"),
+ BitDescription(24, "Unused"),
+ BitDescription(25, "STVREN, 1=Stack overflow or underflow will cause a reset"),
+ BitDescription(26, "BORV"),
+ BitDescription(27, "nLPBOR, 1=Low-Power BOR is disabled"),
+ BitDescription(28, "Unused"),
+ BitDescription(29, "LVP 1=Low-voltage programming enabled"),
+)
+
+ChipDescription(
+ Chip_Pic16F1507dip20,
+ bitfile="microchip01dip14dip20",
+ chipID="pic16F1507dip20",
+ runtimeID=(0xDE03, 0x01),
+ chipVendors="Microchip",
+ description="PIC16F1507, PIC16LF1507",
+ packages=(("DIP20", ""),),
+ fuseDesc=fuseDesc,
+ maintainer="Pavel Stemberk <stemberk@gmail.com>",
+)
diff --git a/libtoprammer/chips/microchip8/pic16f1508dip20.py b/libtoprammer/chips/microchip8/pic16f1508dip20.py
new file mode 100644
index 0000000..649bc9d
--- /dev/null
+++ b/libtoprammer/chips/microchip8/pic16f1508dip20.py
@@ -0,0 +1,88 @@
+"""
+# TOP2049 Open Source programming suite
+#
+# Microchip PIC16F1508 DIP20
+#
+# Copyright (c) 2013 Pavel Stemberk <stemberk@gmail.com>
+#
+# 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.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+"""
+
+from microchip8_splittedPMarea_hasResetPC import *
+
+class Chip_Pic16F1508dip20(microchip8_splittedPMarea_hasResetPC):
+
+ nLatches = 32
+ rowSize = 32
+
+ def __init__(self):
+ microchip8_splittedPMarea_hasResetPC.__init__(self,
+ chipPackage="DIP20",
+ chipPinVCC=1,
+ chipPinsVPP=4,
+ chipPinGND=20,
+ signature="\x20\x2D",
+ flashPageSize=0x1000,
+ flashPages=1,
+ eepromPageSize=256,
+ eepromPages=0,
+ fuseBytes=4
+ )
+
+fuseDesc = (
+ BitDescription(0, "FOSC[0], 0=LP, 100=INTOSC"),
+ BitDescription(1, "FOSC[1]"),
+ BitDescription(2, "FOSC[2]"),
+ BitDescription(3, "WDTE[0], 00=WDT disabled, 11=WDT enabled"),
+ BitDescription(4, "WDTE[1]"),
+ BitDescription(5, "nPWRTE"),
+ BitDescription(6, "MCLRE, 1=nMCLR/Vpp pin is nMCLR, weak pull-up enabled, ignored if LVP=1 "),
+ BitDescription(7, "nCP 1=program memory code protection is disabled"),
+ BitDescription(8, "Unused"),
+ BitDescription(9, "BOREN[0], 00=BOR disabled"),
+ BitDescription(10, "BOREN[1]"),
+ BitDescription(11, "nCLKOUTEN, 0=CLKOUT is enabled on CLKOUT pin"),
+ BitDescription(12, "IESO, 0=Internal/External Switchover mode is disabled"),
+ BitDescription(13, "FCMEN, 0=Fail-Safe Clock Monitor is disabled"),
+ BitDescription(14, "NA"),
+ BitDescription(15, "NA"),
+
+ BitDescription(16, "WRT[0], 11=Write protection off"),
+ BitDescription(17, "WRT[1]"),
+ BitDescription(18, "Unused"),
+ BitDescription(19, "Unused"),
+ BitDescription(20, "Unused"),
+ BitDescription(21, "Unused"),
+ BitDescription(22, "Unused"),
+ BitDescription(23, "Unused"),
+ BitDescription(24, "Unused"),
+ BitDescription(25, "STVREN, 1=Stack overflow or underflow will cause a reset"),
+ BitDescription(26, "BORV"),
+ BitDescription(27, "nLPBOR, 1=Low-Power BOR is disabled"),
+ BitDescription(28, "nDEBUG, 0=ICSPCLK and ICSPDAT are dedicated to the debugger"),
+ BitDescription(29, "LVP 1=Low-voltage programming enabled"),
+)
+
+ChipDescription(
+ Chip_Pic16F1508dip20,
+ bitfile="microchip01dip14dip20",
+ chipID="pic16F1508dip20",
+ runtimeID=(0xDE03, 0x01),
+ chipVendors="Microchip",
+ description="PIC16F1508, PIC16LF1508",
+ packages=(("DIP20", ""),),
+ fuseDesc=fuseDesc,
+ maintainer="Pavel Stemberk <stemberk@gmail.com>",
+)
diff --git a/libtoprammer/chips/microchip8/pic16f1509dip20.py b/libtoprammer/chips/microchip8/pic16f1509dip20.py
new file mode 100644
index 0000000..fedb191
--- /dev/null
+++ b/libtoprammer/chips/microchip8/pic16f1509dip20.py
@@ -0,0 +1,88 @@
+"""
+# TOP2049 Open Source programming suite
+#
+# Microchip PIC16F1509 DIP20
+#
+# Copyright (c) 2013 Pavel Stemberk <stemberk@gmail.com>
+#
+# 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.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+"""
+
+from microchip8_splittedPMarea_hasResetPC import *
+
+class Chip_Pic16F1509dip20(microchip8_splittedPMarea_hasResetPC):
+
+ nLatches = 32
+ rowSize = 32
+
+ def __init__(self):
+ microchip8_splittedPMarea_hasResetPC.__init__(self,
+ chipPackage="DIP20",
+ chipPinVCC=1,
+ chipPinsVPP=4,
+ chipPinGND=20,
+ signature="\x00\x2E",
+ flashPageSize=0x2000,
+ flashPages=1,
+ eepromPageSize=256,
+ eepromPages=0,
+ fuseBytes=4
+ )
+
+fuseDesc = (
+ BitDescription(0, "FOSC[0], 0=LP, 100=INTOSC"),
+ BitDescription(1, "FOSC[1]"),
+ BitDescription(2, "FOSC[2]"),
+ BitDescription(3, "WDTE[0], 00=WDT disabled, 11=WDT enabled"),
+ BitDescription(4, "WDTE[1]"),
+ BitDescription(5, "nPWRTE"),
+ BitDescription(6, "MCLRE, 1=nMCLR/Vpp pin is nMCLR, weak pull-up enabled, ignored if LVP=1 "),
+ BitDescription(7, "nCP 1=program memory code protection is disabled"),
+ BitDescription(8, "Unused"),
+ BitDescription(9, "BOREN[0], 00=BOR disabled"),
+ BitDescription(10, "BOREN[1]"),
+ BitDescription(11, "nCLKOUTEN, 0=CLKOUT is enabled on CLKOUT pin"),
+ BitDescription(12, "IESO, 0=Internal/External Switchover mode is disabled"),
+ BitDescription(13, "FCMEN, 0=Fail-Safe Clock Monitor is disabled"),
+ BitDescription(14, "NA"),
+ BitDescription(15, "NA"),
+
+ BitDescription(16, "WRT[0], 11=Write protection off"),
+ BitDescription(17, "WRT[1]"),
+ BitDescription(18, "Unused"),
+ BitDescription(19, "Unused"),
+ BitDescription(20, "Unused"),
+ BitDescription(21, "Unused"),
+ BitDescription(22, "Unused"),
+ BitDescription(23, "Unused"),
+ BitDescription(24, "Unused"),
+ BitDescription(25, "STVREN, 1=Stack overflow or underflow will cause a reset"),
+ BitDescription(26, "BORV"),
+ BitDescription(27, "nLPBOR, 1=Low-Power BOR is disabled"),
+ BitDescription(28, "nDEBUG, 0=ICSPCLK and ICSPDAT are dedicated to the debugger"),
+ BitDescription(29, "LVP 1=Low-voltage programming enabled"),
+)
+
+ChipDescription(
+ Chip_Pic16F1509dip20,
+ bitfile="microchip01dip14dip20",
+ chipID="pic16F1509dip20",
+ runtimeID=(0xDE03, 0x01),
+ chipVendors="Microchip",
+ description="PIC16F1509, PIC16LF1509",
+ packages=(("DIP20", ""),),
+ fuseDesc=fuseDesc,
+ maintainer="Pavel Stemberk <stemberk@gmail.com>",
+)
diff --git a/libtoprammer/chips/microchip8/pic16f1823dip14.py b/libtoprammer/chips/microchip8/pic16f1823dip14.py
index 9c1e130..74df2a9 100644
--- a/libtoprammer/chips/microchip8/pic16f1823dip14.py
+++ b/libtoprammer/chips/microchip8/pic16f1823dip14.py
@@ -24,8 +24,8 @@ from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1823dip14(microchip8_splittedPMarea_hasResetPC):
- rowSize = 32
- nLatches = 32
+ rowSize = 16
+ nLatches = 16
hasEEPROM = True
def __init__(self):
diff --git a/libtoprammer/chips/microchip8/pic16f1824dip14.py b/libtoprammer/chips/microchip8/pic16f1824dip14.py
index d78f757..c272977 100644
--- a/libtoprammer/chips/microchip8/pic16f1824dip14.py
+++ b/libtoprammer/chips/microchip8/pic16f1824dip14.py
@@ -23,8 +23,10 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1824dip14(microchip8_splittedPMarea_hasResetPC):
-
+
nLatches = 32
+ rowSize = 32
+
hasEEPROM = True
def __init__(self):
diff --git a/libtoprammer/chips/microchip8/pic16f1824sip6.py b/libtoprammer/chips/microchip8/pic16f1824sip6.py
index 4b4bcba..70bd383 100644
--- a/libtoprammer/chips/microchip8/pic16f1824sip6.py
+++ b/libtoprammer/chips/microchip8/pic16f1824sip6.py
@@ -28,8 +28,10 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1824sip6(microchip8_splittedPMarea_hasResetPC):
-
+
nLatches = 32
+ rowSize = 32
+
hasEEPROM = True
def __init__(self):
diff --git a/libtoprammer/chips/microchip8/pic16f1825dip14.py b/libtoprammer/chips/microchip8/pic16f1825dip14.py
index cf3a752..bca82d7 100644
--- a/libtoprammer/chips/microchip8/pic16f1825dip14.py
+++ b/libtoprammer/chips/microchip8/pic16f1825dip14.py
@@ -24,6 +24,9 @@ from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1825dip14(microchip8_splittedPMarea_hasResetPC):
+ nLatches = 32
+ rowSize = 32
+
hasEEPROM = True
def __init__(self):
diff --git a/libtoprammer/chips/microchip8/pic16f1825sip6.py b/libtoprammer/chips/microchip8/pic16f1825sip6.py
index d5e6c7b..4f8a057 100644
--- a/libtoprammer/chips/microchip8/pic16f1825sip6.py
+++ b/libtoprammer/chips/microchip8/pic16f1825sip6.py
@@ -29,6 +29,9 @@ from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1825sip6(microchip8_splittedPMarea_hasResetPC):
+ nLatches = 32
+ rowSize = 32
+
hasEEPROM = True
def __init__(self):
diff --git a/libtoprammer/chips/microchip8/pic16f1826dip18.py b/libtoprammer/chips/microchip8/pic16f1826dip18.py
index eef4411..966ed6d 100644
--- a/libtoprammer/chips/microchip8/pic16f1826dip18.py
+++ b/libtoprammer/chips/microchip8/pic16f1826dip18.py
@@ -23,6 +23,9 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_PIC16F1826dip18(microchip8_splittedPMarea_hasResetPC):
+
+ nLatches = 8
+ rowSize = 32
hasEEPROM = True
diff --git a/libtoprammer/chips/microchip8/pic16f1826sip6.py b/libtoprammer/chips/microchip8/pic16f1826sip6.py
index 789c8fb..d9f4f46 100644
--- a/libtoprammer/chips/microchip8/pic16f1826sip6.py
+++ b/libtoprammer/chips/microchip8/pic16f1826sip6.py
@@ -28,6 +28,9 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_PIC16F1826sip6(microchip8_splittedPMarea_hasResetPC):
+
+ nLatches = 8
+ rowSize = 32
hasEEPROM = True
diff --git a/libtoprammer/chips/microchip8/pic16f1827dip18.py b/libtoprammer/chips/microchip8/pic16f1827dip18.py
index e541e99..5158503 100644
--- a/libtoprammer/chips/microchip8/pic16f1827dip18.py
+++ b/libtoprammer/chips/microchip8/pic16f1827dip18.py
@@ -23,6 +23,9 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1827dip18(microchip8_splittedPMarea_hasResetPC):
+
+ nLatches = 8
+ rowSize = 32
hasEEPROM = True
diff --git a/libtoprammer/chips/microchip8/pic16f1827sip6.py b/libtoprammer/chips/microchip8/pic16f1827sip6.py
index 6909541..cc1dcaf 100644
--- a/libtoprammer/chips/microchip8/pic16f1827sip6.py
+++ b/libtoprammer/chips/microchip8/pic16f1827sip6.py
@@ -28,6 +28,9 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1827sip6(microchip8_splittedPMarea_hasResetPC):
+
+ nLatches = 8
+ rowSize = 32
hasEEPROM = True
diff --git a/libtoprammer/chips/microchip8/pic16f1828dip20.py b/libtoprammer/chips/microchip8/pic16f1828dip20.py
index c7d61d4..02516d2 100644
--- a/libtoprammer/chips/microchip8/pic16f1828dip20.py
+++ b/libtoprammer/chips/microchip8/pic16f1828dip20.py
@@ -23,6 +23,9 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1828dip20(microchip8_splittedPMarea_hasResetPC):
+
+ nLatches = 32
+ rowSize = 32
hasEEPROM = True
diff --git a/libtoprammer/chips/microchip8/pic16f1828sip6.py b/libtoprammer/chips/microchip8/pic16f1828sip6.py
index 92529c5..40c2115 100644
--- a/libtoprammer/chips/microchip8/pic16f1828sip6.py
+++ b/libtoprammer/chips/microchip8/pic16f1828sip6.py
@@ -28,6 +28,9 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1828sip6(microchip8_splittedPMarea_hasResetPC):
+
+ nLatches = 32
+ rowSize = 32
hasEEPROM = True
diff --git a/libtoprammer/chips/microchip8/pic16f1829dip20.py b/libtoprammer/chips/microchip8/pic16f1829dip20.py
index 3e65099..ee52059 100644
--- a/libtoprammer/chips/microchip8/pic16f1829dip20.py
+++ b/libtoprammer/chips/microchip8/pic16f1829dip20.py
@@ -24,6 +24,9 @@ from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1829dip20(microchip8_splittedPMarea_hasResetPC):
+ nLatches = 32
+ rowSize = 32
+
hasEEPROM = True
def __init__(self):
diff --git a/libtoprammer/chips/microchip8/pic16f1829sip6.py b/libtoprammer/chips/microchip8/pic16f1829sip6.py
index 031935d..ba6a5c0 100644
--- a/libtoprammer/chips/microchip8/pic16f1829sip6.py
+++ b/libtoprammer/chips/microchip8/pic16f1829sip6.py
@@ -29,6 +29,9 @@ from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1829sip6(microchip8_splittedPMarea_hasResetPC):
+ nLatches = 32
+ rowSize = 32
+
hasEEPROM = True
def __init__(self):
diff --git a/libtoprammer/chips/microchip8/pic16f1933dip28.py b/libtoprammer/chips/microchip8/pic16f1933dip28.py
index fdb13bb..1a2f39c 100644
--- a/libtoprammer/chips/microchip8/pic16f1933dip28.py
+++ b/libtoprammer/chips/microchip8/pic16f1933dip28.py
@@ -23,7 +23,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1933dip28(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
hasEEPROM = True
def __init__(self):
@@ -82,7 +83,7 @@ ChipDescription(
chipID="pic16f1933dip28",
runtimeID=(0xDE07, 0x01),
chipVendors="Microchip",
- description="PIC16F1933",
+ description="PIC16F1933, PIC16LF1933",
packages=(("dip28", ""),),
fuseDesc=fuseDesc,
maintainer="Pavel Stemberk <stemberk@gmail.com>",
diff --git a/libtoprammer/chips/microchip8/pic16f1933sip6.py b/libtoprammer/chips/microchip8/pic16f1933sip6.py
index 18ac46e..03548c5 100644
--- a/libtoprammer/chips/microchip8/pic16f1933sip6.py
+++ b/libtoprammer/chips/microchip8/pic16f1933sip6.py
@@ -28,7 +28,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1933sip6(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
hasEEPROM = True
def __init__(self):
@@ -87,7 +88,7 @@ ChipDescription(
chipID="pic16f1933sip6",
runtimeID = (0xDE05, 0x01),
chipVendors="Microchip",
- description = "PIC16F1933 - ICD",
+ description = "PIC16F1933, PIC16LF1933 - ICD",
packages = (("DIP10", ""), ),
fuseDesc=fuseDesc,
maintainer="Pavel Stemberk <stemberk@gmail.com>",
diff --git a/libtoprammer/chips/microchip8/pic16f1934dip40.py b/libtoprammer/chips/microchip8/pic16f1934dip40.py
index 4cffd7a..4fa36ba 100644
--- a/libtoprammer/chips/microchip8/pic16f1934dip40.py
+++ b/libtoprammer/chips/microchip8/pic16f1934dip40.py
@@ -23,7 +23,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1934dip40(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
hasEEPROM = True
def __init__(self):
@@ -82,7 +83,7 @@ ChipDescription(
chipID="pic16f1934dip40a",
runtimeID=(0xDE08, 0x01),
chipVendors="Microchip",
- description="PIC16F1934",
+ description="PIC16F1934,PIC16LF1934",
packages=(("dip40", ""),),
fuseDesc=fuseDesc,
maintainer="Pavel Stemberk <stemberk@gmail.com>",
diff --git a/libtoprammer/chips/microchip8/pic16f1934sip6.py b/libtoprammer/chips/microchip8/pic16f1934sip6.py
index cb56129..a0c8113 100644
--- a/libtoprammer/chips/microchip8/pic16f1934sip6.py
+++ b/libtoprammer/chips/microchip8/pic16f1934sip6.py
@@ -28,7 +28,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1934sip6(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
hasEEPROM = True
def __init__(self):
@@ -84,10 +85,10 @@ fuseDesc = (
ChipDescription(
Chip_Pic16F1934sip6,
bitfile = "microchip01sip6",
- chipID="pic16f1934sip6",
+ chipID="pic16f1934sip6a",
runtimeID = (0xDE05, 0x01),
chipVendors="Microchip",
- description = "PIC16F1934 - ICD",
+ description = "PIC16F1934,PIC16LF1934 - ICD",
packages = (("DIP10", ""), ),
fuseDesc=fuseDesc,
maintainer="Pavel Stemberk <stemberk@gmail.com>",
diff --git a/libtoprammer/chips/microchip8/pic16f1936dip28.py b/libtoprammer/chips/microchip8/pic16f1936dip28.py
index ca36445..b3fe5c2 100644
--- a/libtoprammer/chips/microchip8/pic16f1936dip28.py
+++ b/libtoprammer/chips/microchip8/pic16f1936dip28.py
@@ -23,7 +23,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1936dip28(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
hasEEPROM = True
def __init__(self):
@@ -82,7 +83,7 @@ ChipDescription(
chipID="pic16f1936dip28",
runtimeID=(0xDE07, 0x01),
chipVendors="Microchip",
- description="PIC16F1936",
+ description="PIC16F1936, PIC16LF1936",
packages=(("dip28", ""),),
fuseDesc=fuseDesc,
maintainer="Pavel Stemberk <stemberk@gmail.com>",
diff --git a/libtoprammer/chips/microchip8/pic16f1936sip6.py b/libtoprammer/chips/microchip8/pic16f1936sip6.py
index 2219b6a..92506b6 100644
--- a/libtoprammer/chips/microchip8/pic16f1936sip6.py
+++ b/libtoprammer/chips/microchip8/pic16f1936sip6.py
@@ -28,7 +28,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1936sip6(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
hasEEPROM = True
def __init__(self):
@@ -87,7 +88,7 @@ ChipDescription(
chipID="pic16f1936sip6",
runtimeID = (0xDE05, 0x01),
chipVendors="Microchip",
- description = "PIC16F1936 - ICD",
+ description = "PIC16F1936, PIC16LF1936 - ICD",
packages = (("DIP10", ""), ),
fuseDesc=fuseDesc,
maintainer="Pavel Stemberk <stemberk@gmail.com>",
diff --git a/libtoprammer/chips/microchip8/pic16f1937dip40.py b/libtoprammer/chips/microchip8/pic16f1937dip40.py
index 7a073b9..48c3303 100644
--- a/libtoprammer/chips/microchip8/pic16f1937dip40.py
+++ b/libtoprammer/chips/microchip8/pic16f1937dip40.py
@@ -23,7 +23,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1937dip40(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
hasEEPROM = True
def __init__(self):
@@ -82,7 +83,7 @@ ChipDescription(
chipID="pic16f1937dip40",
runtimeID=(0xDE08, 0x01),
chipVendors="Microchip",
- description="PIC16F1937",
+ description="PIC16F1937, PIC16LF1937",
packages=(("dip40", ""),),
fuseDesc=fuseDesc,
maintainer="Pavel Stemberk <stemberk@gmail.com>",
diff --git a/libtoprammer/chips/microchip8/pic16f1937sip6.py b/libtoprammer/chips/microchip8/pic16f1937sip6.py
index df66d16..b93bc7c 100644
--- a/libtoprammer/chips/microchip8/pic16f1937sip6.py
+++ b/libtoprammer/chips/microchip8/pic16f1937sip6.py
@@ -28,7 +28,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1937sip6(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
hasEEPROM = True
def __init__(self):
@@ -87,7 +88,7 @@ ChipDescription(
chipID="pic16f1937sip6",
runtimeID = (0xDE05, 0x01),
chipVendors="Microchip",
- description = "PIC16F1937 - ICD",
+ description = "PIC16F1937, PIC16LF1937 - ICD",
packages = (("DIP10", ""), ),
fuseDesc=fuseDesc,
maintainer="Pavel Stemberk <stemberk@gmail.com>",
diff --git a/libtoprammer/chips/microchip8/pic16f1938dip28.py b/libtoprammer/chips/microchip8/pic16f1938dip28.py
index ea18683..4fa3105 100644
--- a/libtoprammer/chips/microchip8/pic16f1938dip28.py
+++ b/libtoprammer/chips/microchip8/pic16f1938dip28.py
@@ -23,7 +23,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1938dip28(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
hasEEPROM = True
def __init__(self):
@@ -82,7 +83,7 @@ ChipDescription(
chipID="pic16f1938dip28",
runtimeID=(0xDE07, 0x01),
chipVendors="Microchip",
- description="PIC16F1938",
+ description="PIC16F1938, PIC16LF1938",
packages=(("dip28", ""),),
fuseDesc=fuseDesc,
maintainer="Pavel Stemberk <stemberk@gmail.com>",
diff --git a/libtoprammer/chips/microchip8/pic16f1938sip6.py b/libtoprammer/chips/microchip8/pic16f1938sip6.py
index fcb5285..31c0087 100644
--- a/libtoprammer/chips/microchip8/pic16f1938sip6.py
+++ b/libtoprammer/chips/microchip8/pic16f1938sip6.py
@@ -28,7 +28,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1938sip6(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
hasEEPROM = True
def __init__(self):
@@ -87,7 +88,7 @@ ChipDescription(
chipID="pic16f1938sip6",
runtimeID = (0xDE05, 0x01),
chipVendors="Microchip",
- description = "PIC16F1938 - ICD",
+ description = "PIC16F1938, PIC16LF1938 - ICD",
packages = (("DIP10", ""), ),
fuseDesc=fuseDesc,
maintainer="Pavel Stemberk <stemberk@gmail.com>",
diff --git a/libtoprammer/chips/microchip8/pic16f1939dip40.py b/libtoprammer/chips/microchip8/pic16f1939dip40.py
index d20d1aa..a538ba3 100644
--- a/libtoprammer/chips/microchip8/pic16f1939dip40.py
+++ b/libtoprammer/chips/microchip8/pic16f1939dip40.py
@@ -23,7 +23,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1939dip40(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
hasEEPROM = True
def __init__(self):
@@ -82,7 +83,7 @@ ChipDescription(
chipID="pic16f1939dip40",
runtimeID=(0xDE08, 0x01),
chipVendors="Microchip",
- description="PIC16F1939",
+ description="PIC16F1939, PIC16LF1939",
packages=(("dip40", ""),),
fuseDesc=fuseDesc,
maintainer="Pavel Stemberk <stemberk@gmail.com>",
diff --git a/libtoprammer/chips/microchip8/pic16f1939sip6.py b/libtoprammer/chips/microchip8/pic16f1939sip6.py
index 8790484..fa92705 100644
--- a/libtoprammer/chips/microchip8/pic16f1939sip6.py
+++ b/libtoprammer/chips/microchip8/pic16f1939sip6.py
@@ -28,7 +28,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16F1939sip6(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
hasEEPROM = True
def __init__(self):
@@ -87,7 +88,7 @@ ChipDescription(
chipID="pic16f1939sip6",
runtimeID = (0xDE05, 0x01),
chipVendors="Microchip",
- description = "PIC16F1939 - ICD",
+ description = "PIC16F1939, PIC16LF1939 - ICD",
packages = (("DIP10", ""), ),
fuseDesc=fuseDesc,
maintainer="Pavel Stemberk <stemberk@gmail.com>",
diff --git a/libtoprammer/chips/microchip8/pic16lf1902dip28.py b/libtoprammer/chips/microchip8/pic16lf1902dip28.py
index d20ec7d..fb6a4fa 100644
--- a/libtoprammer/chips/microchip8/pic16lf1902dip28.py
+++ b/libtoprammer/chips/microchip8/pic16lf1902dip28.py
@@ -23,7 +23,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16LF1902dip28(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
def __init__(self):
microchip8_splittedPMarea_hasResetPC.__init__(self,
chipPackage="dip28",
diff --git a/libtoprammer/chips/microchip8/pic16lf1902sip6.py b/libtoprammer/chips/microchip8/pic16lf1902sip6.py
index 674c04d..ee6bdef 100644
--- a/libtoprammer/chips/microchip8/pic16lf1902sip6.py
+++ b/libtoprammer/chips/microchip8/pic16lf1902sip6.py
@@ -28,7 +28,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16LF1902sip6(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
def __init__(self):
microchip8_splittedPMarea_hasResetPC.__init__(self,
chipPackage = "DIP10",
diff --git a/libtoprammer/chips/microchip8/pic16lf1903dip28.py b/libtoprammer/chips/microchip8/pic16lf1903dip28.py
index b47961c..4cc6fcb 100644
--- a/libtoprammer/chips/microchip8/pic16lf1903dip28.py
+++ b/libtoprammer/chips/microchip8/pic16lf1903dip28.py
@@ -23,7 +23,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16LF1903dip28(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
def __init__(self):
microchip8_splittedPMarea_hasResetPC.__init__(self,
chipPackage="dip28",
diff --git a/libtoprammer/chips/microchip8/pic16lf1903sip6.py b/libtoprammer/chips/microchip8/pic16lf1903sip6.py
index 7d78e91..6c35b0d 100644
--- a/libtoprammer/chips/microchip8/pic16lf1903sip6.py
+++ b/libtoprammer/chips/microchip8/pic16lf1903sip6.py
@@ -28,7 +28,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16LF1903sip6(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
def __init__(self):
microchip8_splittedPMarea_hasResetPC.__init__(self,
chipPackage = "DIP10",
diff --git a/libtoprammer/chips/microchip8/pic16lf1904dip40.py b/libtoprammer/chips/microchip8/pic16lf1904dip40.py
index 88b0f1d..858219c 100644
--- a/libtoprammer/chips/microchip8/pic16lf1904dip40.py
+++ b/libtoprammer/chips/microchip8/pic16lf1904dip40.py
@@ -23,7 +23,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16LF1904dip40(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
def __init__(self):
microchip8_splittedPMarea_hasResetPC.__init__(self,
chipPackage="dip40",
diff --git a/libtoprammer/chips/microchip8/pic16lf1904sip6.py b/libtoprammer/chips/microchip8/pic16lf1904sip6.py
index 4444b36..18105d5 100644
--- a/libtoprammer/chips/microchip8/pic16lf1904sip6.py
+++ b/libtoprammer/chips/microchip8/pic16lf1904sip6.py
@@ -28,7 +28,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16LF1904sip6(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
def __init__(self):
microchip8_splittedPMarea_hasResetPC.__init__(self,
chipPackage = "DIP10",
diff --git a/libtoprammer/chips/microchip8/pic16lf1906dip28.py b/libtoprammer/chips/microchip8/pic16lf1906dip28.py
index 451acd5..b92b696 100644
--- a/libtoprammer/chips/microchip8/pic16lf1906dip28.py
+++ b/libtoprammer/chips/microchip8/pic16lf1906dip28.py
@@ -23,7 +23,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16LF1906dip28(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
def __init__(self):
microchip8_splittedPMarea_hasResetPC.__init__(self,
chipPackage="dip28",
diff --git a/libtoprammer/chips/microchip8/pic16lf1906sip6.py b/libtoprammer/chips/microchip8/pic16lf1906sip6.py
index e944f66..145dd84 100644
--- a/libtoprammer/chips/microchip8/pic16lf1906sip6.py
+++ b/libtoprammer/chips/microchip8/pic16lf1906sip6.py
@@ -28,7 +28,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16LF1906sip6(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
def __init__(self):
microchip8_splittedPMarea_hasResetPC.__init__(self,
chipPackage = "DIP10",
diff --git a/libtoprammer/chips/microchip8/pic16lf1907dip40.py b/libtoprammer/chips/microchip8/pic16lf1907dip40.py
index 210bd07..82fa34a 100644
--- a/libtoprammer/chips/microchip8/pic16lf1907dip40.py
+++ b/libtoprammer/chips/microchip8/pic16lf1907dip40.py
@@ -23,7 +23,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16LF1907dip40(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
def __init__(self):
microchip8_splittedPMarea_hasResetPC.__init__(self,
chipPackage="dip40",
diff --git a/libtoprammer/chips/microchip8/pic16lf1907sip6.py b/libtoprammer/chips/microchip8/pic16lf1907sip6.py
index d63983c..d1550ca 100644
--- a/libtoprammer/chips/microchip8/pic16lf1907sip6.py
+++ b/libtoprammer/chips/microchip8/pic16lf1907sip6.py
@@ -28,7 +28,8 @@
from microchip8_splittedPMarea_hasResetPC import *
class Chip_Pic16LF1907sip6(microchip8_splittedPMarea_hasResetPC):
-
+
+ nLatches = 8
def __init__(self):
microchip8_splittedPMarea_hasResetPC.__init__(self,
chipPackage = "DIP10",
diff --git a/libtoprammer/chips/microchip8/pic18f1220sip6.py b/libtoprammer/chips/microchip8/pic18f1220sip6.py
index 18d0a55..d07aab0 100644
--- a/libtoprammer/chips/microchip8/pic18f1220sip6.py
+++ b/libtoprammer/chips/microchip8/pic18f1220sip6.py
@@ -58,7 +58,7 @@ fuseDesc = (
BitDescription(0o05, "NA"),
BitDescription(0o06, "NA"),
BitDescription(0o07, "NA"),
- BitDescription(0o10, "FOSC[0], 0=LP, 100=INTOSC"),
+ BitDescription(0o10, "FOSC[0], 0000=LP, 1000=internal RC oscillator, RA6=CLKO"),
BitDescription(0o11, "FOSC[1]"),
BitDescription(0o12, "FOSC[2]"),
BitDescription(0o13, "FOSC[3]"),
diff --git a/libtoprammer/fpga/bin/microchip01dip14dip20a.bit b/libtoprammer/fpga/bin/microchip01dip14dip20a.bit
new file mode 100644
index 0000000..f0e3ed0
--- /dev/null
+++ b/libtoprammer/fpga/bin/microchip01dip14dip20a.bit
Binary files differ
diff --git a/libtoprammer/fpga/src/microchip01/microchip01dip14dip20a/Makefile b/libtoprammer/fpga/src/microchip01/microchip01dip14dip20a/Makefile
new file mode 100644
index 0000000..bc778ca
--- /dev/null
+++ b/libtoprammer/fpga/src/microchip01/microchip01dip14dip20a/Makefile
@@ -0,0 +1,3 @@
+NAME:=microchip01dip14dip20a
+include ../../../common/makefile
+COMMONDIR:=../../../common
diff --git a/libtoprammer/fpga/src/microchip01/microchip01dip14dip20a/microchip01dip14dip20a.v b/libtoprammer/fpga/src/microchip01/microchip01dip14dip20a/microchip01dip14dip20a.v
new file mode 100644
index 0000000..aba8310
--- /dev/null
+++ b/libtoprammer/fpga/src/microchip01/microchip01dip14dip20a/microchip01dip14dip20a.v
@@ -0,0 +1,76 @@
+/*
+ * TOP2049 Open Source programming suite
+ *
+ * Microchip DIP14 and DIP20 implementation for pic16f145x
+ * FPGA bottomhalf implementation
+ *
+ * Copyright (c) 2013 Pavel Stemberk <stemberk@gmail.com>
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+`define DUT_SDIO 30
+`include "microchip01.vh"
+`ALL_WITHOUT_ZIF(microchip01dip14dip20a, 32'hDE09, 1)
+
+ `ZIF_UNUSED(1)
+ `ZIF_UNUSED(2)
+ `ZIF_UNUSED(3)
+ `ZIF_UNUSED(4)
+ `ZIF_UNUSED(5)
+ `ZIF_UNUSED(6)
+ `ZIF_UNUSED(7)
+ `ZIF_UNUSED(8)
+ `ZIF_UNUSED(9)
+ `ZIF_UNUSED(10)
+ `ZIF_UNUSED(11)
+ `ZIF_UNUSED(12)
+ `ZIF_UNUSED(13)
+ `ZIF_UNUSED(14)
+ bufif0(zif[15], high, low); /* VCC */
+ `ZIF_UNUSED(16)
+ `ZIF_UNUSED(17)
+ bufif0(zif[18], low, dut_vpp); /* VPP/Reset */
+ `ZIF_UNUSED(19)
+ `ZIF_UNUSED(20)
+ `ZIF_UNUSED(21)
+ `ZIF_UNUSED(22)
+ `ZIF_UNUSED(23)
+ `ZIF_UNUSED(24)
+ `ZIF_UNUSED(25)
+ `ZIF_UNUSED(26)
+ `ZIF_UNUSED(27)
+ `ZIF_UNUSED(28)
+ bufif0(zif[29], dut_sci, low); /* SCI */
+ bufif0(zif[30], dut_sdio_value, !dut_sdio_driven); /* SDO */
+ `ZIF_UNUSED(31)
+ `ZIF_UNUSED(32)
+ `ZIF_UNUSED(33)
+ bufif0(zif[34], low, low); /* GND */
+ `ZIF_UNUSED(35)
+ `ZIF_UNUSED(36)
+ `ZIF_UNUSED(37)
+ `ZIF_UNUSED(38)
+ `ZIF_UNUSED(39)
+ `ZIF_UNUSED(40)
+ `ZIF_UNUSED(41)
+ `ZIF_UNUSED(42)
+ `ZIF_UNUSED(43)
+ `ZIF_UNUSED(44)
+ `ZIF_UNUSED(45)
+ `ZIF_UNUSED(46)
+ `ZIF_UNUSED(47)
+ `ZIF_UNUSED(48)
+`BOTTOMHALF_END
bues.ch cgit interface