Skip to content

Instantly share code, notes, and snippets.

@K4zuki
Last active December 28, 2021 07:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save K4zuki/d70585511978b38c6fcd2b498559a953 to your computer and use it in GitHub Desktop.
Save K4zuki/d70585511978b38c6fcd2b498559a953 to your computer and use it in GitHub Desktop.
two ports 6 bits I2C general purpose output IC by greenpak SLG46826 and sample python code for Raspberry Pi
<?xml version="1.0" encoding="UTF-8"?>
<GPDProject version="22" oldestCompatibleVersion="22" GPDVersion="6.27.001" lastChange="2021/11/29 21:28">
<generalProjectSettings/>
<chip family="04" type="06" friendlyName="GreenPAK 6" partNumber="36" package="7">
<nvmData registerLenght="2048">F6 D 0 F6 D 0 1C EC 73 B1 CF C9 3E 37 FB 1C ED 73 B5 F 0 0 0 0 0 B0 F9 F0 E6 C7 9B 2F 6F FE BC F9 F4 E6 D7 0 0 3C E 0 0 0 0 0 0 0 48 D3 4F 55 0 0 0 80 75 FD ED CF FE EB AF FE E9 8F FE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 0 0 80 80 30 30 0 0 30 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 22 30 C 0 0 0 0 0 0 0 DE 0 0 0 0 0 0 0 0 0 D0 2F 0 68 0 0 0 0 0 20 0 1 0 8 0 2 1 0 0 2 4 1 8 0 2 1 0 0 2 4 1 8 0 2 1 0 0 2 4 1 0 0 2 0 1 0 0 0 C1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A5</nvmData>
<eepromData id="0">0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</eepromData>
<checksum crc32="0xC0E91AAB" version="7"/>
<VDDItem id="0">
<item id="0" caption="VDD (PIN 1)">
<graphics pos="(-64.72,571.53)" angle="0" flipping="0" hidden="0" tOrigin="(20.00,10.00)"/>
</item>
</VDDItem>
<IOPad id="1" useCaseMode="2">
<item id="1" caption="PIN 2 (IO0)">
<graphics pos="(489.15,279.31)" angle="0" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(30.82,-15.78)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO0 - P00</textLabel>
</item>
</IOPad>
<IOPad id="2" useCaseMode="2">
<item id="2" caption="PIN 3 (IO1)">
<graphics pos="(489.15,353.48)" angle="0" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(30.82,-15.78)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO1 - P01</textLabel>
</item>
</IOPad>
<IOPad id="3" useCaseMode="2">
<item id="3" caption="PIN 4 (IO2)">
<graphics pos="(489.15,427.09)" angle="0" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(30.82,-15.78)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO2 - P02</textLabel>
</item>
</IOPad>
<IOPad id="4" useCaseMode="2">
<item id="4" caption="PIN 5 (IO3)">
<graphics pos="(489.15,497.09)" angle="0" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(30.82,-15.78)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO3 - P03</textLabel>
</item>
</IOPad>
<IOPad id="5" useCaseMode="1">
<item id="5" caption="PIN 6 (IO4)">
<graphics pos="(-170.27,211.89)" angle="0" flipping="0" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(-4.27,-29.00)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO4 - A6</textLabel>
</item>
</IOPad>
<IOPad id="6" useCaseMode="1">
<item id="6" caption="PIN 7 (IO5)">
<graphics pos="(-170.27,293.93)" angle="0" flipping="0" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(-4.27,-29.00)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO5 - A7</textLabel>
</item>
</IOPad>
<IOPad id="7" useCaseMode="1">
<item id="7" caption="PIN 8 (SCL)">
<graphics pos="(-170.27,379.00)" angle="0" flipping="0" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(7.09,-29.00)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">SCL</textLabel>
</item>
</IOPad>
<IOPad id="8" useCaseMode="1">
<item id="8" caption="PIN 9 (SDA)">
<graphics pos="(-170.27,409.00)" angle="0" flipping="0" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(6.81,26.33)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">SDA</textLabel>
</item>
</IOPad>
<IOPad id="9" useCaseMode="0">
<item id="9" caption="PIN 10 (IO6)">
<graphics pos="(-170.27,496.70)" angle="0" flipping="3" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(-16.19,-29.00)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO6 - Unused</textLabel>
</item>
</IOPad>
<item id="10" caption="GND (PIN 11)">
<graphics pos="(-64.72,690.71)" angle="180" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
</item>
<IOPad id="11" useCaseMode="2">
<item id="11" caption="PIN 12 (IO7)">
<graphics pos="(489.15,569.59)" angle="0" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(30.82,-15.78)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO7 - P04</textLabel>
</item>
</IOPad>
<IOPad id="12" useCaseMode="2">
<item id="12" caption="PIN 13 (IO8)">
<graphics pos="(489.15,639.59)" angle="0" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(30.82,-15.78)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO8 - P05</textLabel>
</item>
</IOPad>
<VDDItem id="13">
<item id="13" caption="VDD2 (PIN 14)">
<graphics pos="(-64.72,528.87)" angle="0" flipping="0" hidden="0" tOrigin="(20.00,10.00)"/>
</item>
</VDDItem>
<IOPad id="14" useCaseMode="2">
<item id="14" caption="PIN 15 (IO9)">
<graphics pos="(853.50,639.59)" angle="0" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(30.12,-19.26)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO9 - P15</textLabel>
</item>
</IOPad>
<IOPad id="15" useCaseMode="2">
<item id="15" caption="PIN 16 (IO10)">
<graphics pos="(853.50,569.59)" angle="0" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(27.16,-19.26)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO10 - P14</textLabel>
</item>
</IOPad>
<IOPad id="16" useCaseMode="2">
<item id="16" caption="PIN 17 (IO11)">
<graphics pos="(853.50,497.09)" angle="0" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(27.16,-19.26)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO11 - P13</textLabel>
</item>
</IOPad>
<IOPad id="17" useCaseMode="2">
<item id="17" caption="PIN 18 (IO12)">
<graphics pos="(853.50,427.09)" angle="0" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(27.16,-19.26)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO12 - P12</textLabel>
</item>
</IOPad>
<IOPad id="18" useCaseMode="2">
<item id="18" caption="PIN 19 (IO13)">
<graphics pos="(853.50,353.48)" angle="0" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(27.16,-19.26)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO13 - P11</textLabel>
</item>
</IOPad>
<IOPad id="19" useCaseMode="2">
<item id="19" caption="PIN 20 (IO14)">
<graphics pos="(853.50,279.31)" angle="0" flipping="1" hidden="0" tOrigin="(20.00,10.00)"/>
<textLabel pos="(27.16,-19.26)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">IO14 - P10</textLabel>
</item>
</IOPad>
<item id="20" caption="A CMP0H">
<graphics pos="(50.00,30.00)" angle="0" flipping="0" hidden="1" tOrigin="(25.00,28.00)"/>
</item>
<item id="21" caption="A CMP1H">
<graphics pos="(150.00,30.00)" angle="0" flipping="0" hidden="1" tOrigin="(25.00,28.00)"/>
</item>
<item id="22" caption="A CMP2L">
<graphics pos="(50.00,130.00)" angle="0" flipping="0" hidden="1" tOrigin="(25.00,28.00)"/>
</item>
<item id="23" caption="A CMP3L">
<graphics pos="(150.00,130.00)" angle="0" flipping="0" hidden="1" tOrigin="(25.00,28.00)"/>
</item>
<item id="24" caption="P DLY">
<graphics pos="(376.25,201.41)" angle="0" flipping="0" hidden="0" tOrigin="(17.50,10.00)"/>
<textLabel pos="(-24.91,-29.00)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">Fall edge detect</textLabel>
</item>
<item id="25" caption="VREF0">
<graphics pos="(320.00,120.00)" angle="0" flipping="0" hidden="1" tOrigin="(17.50,10.00)"/>
</item>
<item id="26" caption="VREF1">
<graphics pos="(320.00,190.00)" angle="0" flipping="0" hidden="1" tOrigin="(17.50,10.00)"/>
</item>
<item id="27" caption="POR">
<graphics pos="(483.31,182.97)" angle="0" flipping="0" hidden="0" tOrigin="(17.50,10.00)"/>
</item>
<item id="28" caption="OSC0">
<graphics pos="(-70.00,100.00)" angle="0" flipping="0" hidden="1" tOrigin="(30.00,40.00)"/>
</item>
<item id="29" caption="OSC1">
<graphics pos="(-70.00,200.00)" angle="0" flipping="0" hidden="1" tOrigin="(30.00,25.00)"/>
</item>
<item id="30" caption="OSC2">
<graphics pos="(-70.00,270.00)" angle="0" flipping="0" hidden="1" tOrigin="(30.00,20.00)"/>
</item>
<item id="31" caption="I2C">
<graphics pos="(-70.00,360.00)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,45.00)"/>
<textLabel pos="(98.73,-36.45)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">Access via register 0x7A
Write only
-.
|
|
|
|
|
|
-'</textLabel>
</item>
<item id="32" caption="TEMP SENSOR">
<graphics pos="(320.00,370.00)" angle="0" flipping="0" hidden="1" tOrigin="(28.00,15.00)"/>
</item>
<item id="33" caption="FILTER/EDGE DET">
<graphics pos="(686.67,734.67)" angle="0" flipping="0" hidden="0" tOrigin="(27.50,15.00)"/>
<textLabel pos="(-23.78,39.15)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">Fall edge detect</textLabel>
</item>
<item id="34" caption="BG">
<graphics pos="(320.00,30.00)" angle="0" flipping="0" hidden="1" tOrigin="(17.50,10.00)"/>
</item>
<LUT id="35" regularShape="1" mode="0">
<item id="35" caption="2-bit LUT0/DFF/LATCH0">
<graphics pos="(287.32,207.41)" angle="90" flipping="0" hidden="0" tOrigin="(20.00,15.00)"/>
<textLabel pos="(-30.00,25.04)" angle="-90.00" textColor="#ffff00ff" backgroundColor="#14141464">P0</textLabel>
</item>
</LUT>
<LUT id="36" regularShape="1" mode="0">
<item id="36" caption="2-bit LUT1/DFF/LATCH1">
<graphics pos="(587.00,740.67)" angle="90" flipping="0" hidden="0" tOrigin="(20.00,15.00)"/>
<textLabel pos="(-30.00,25.04)" angle="-90.00" textColor="#ffff00ff" backgroundColor="#14141464">P1</textLabel>
</item>
</LUT>
<LUT id="37" regularShape="0" mode="0">
<item id="37" caption="2-bit LUT2/DFF/LATCH2">
<graphics pos="(136.25,430.00)" angle="90" flipping="0" hidden="1" tOrigin="(20.00,15.00)"/>
</item>
</LUT>
<LUT id="38" regularShape="0" mode="0">
<item id="38" caption="2-bit LUT3/PGEN">
<graphics pos="(130.00,250.00)" angle="90" flipping="0" hidden="1" tOrigin="(20.00,15.00)"/>
</item>
</LUT>
<item id="39" caption="3-bit LUT0/DFF/LATCH3">
<graphics pos="(345.07,279.31)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,10.00)"/>
</item>
<item id="40" caption="3-bit LUT1/DFF/LATCH4">
<graphics pos="(345.07,353.48)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,10.00)"/>
</item>
<item id="41" caption="3-bit LUT2/DFF/LATCH5">
<graphics pos="(345.07,427.09)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,10.00)"/>
</item>
<item id="42" caption="3-bit LUT3/DFF/LATCH6">
<graphics pos="(346.18,497.09)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,10.00)"/>
</item>
<item id="43" caption="3-bit LUT4/DFF/LATCH7">
<graphics pos="(345.07,569.59)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,10.00)"/>
</item>
<item id="44" caption="3-bit LUT5/DFF/LATCH8">
<graphics pos="(345.07,639.59)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,10.00)"/>
</item>
<LUT id="45" regularShape="0" mode="0">
<item id="45" caption="3-bit LUT6/Pipe Delay/Ripple Counter">
<graphics pos="(210.00,430.00)" angle="90" flipping="0" hidden="1" tOrigin="(20.00,15.00)"/>
</item>
</LUT>
<item id="46" caption="MF0 (4-bit LUT0, DFF/LATCH9, WS Ctrl, 16-bit CNT0/DLY0/FSM0)">
<graphics pos="(-500.00,-20.00)" angle="0" flipping="0" hidden="1" tOrigin="(155.00,60.00)"/>
</item>
<item id="47" caption="MF1 (3-bit LUT7, DFF/LATCH10, 8-bit CNT1/DLY1)">
<graphics pos="(-500.00,140.00)" angle="0" flipping="0" hidden="1" tOrigin="(155.00,60.00)"/>
</item>
<item id="48" caption="MF2 (3-bit LUT8, DFF/LATCH11, 8-bit CNT2/DLY2)">
<graphics pos="(371.33,346.00)" angle="0" flipping="0" hidden="1" tOrigin="(155.00,60.00)"/>
</item>
<item id="49" caption="MF3 (3-bit LUT9, DFF/LATCH12, 8-bit CNT3/DLY3)">
<graphics pos="(356.67,423.33)" angle="0" flipping="0" hidden="1" tOrigin="(155.00,60.00)"/>
</item>
<item id="50" caption="MF4 (3-bit LUT10, DFF/LATCH13, 8-bit CNT4/DLY4)">
<graphics pos="(340.00,513.33)" angle="0" flipping="0" hidden="1" tOrigin="(155.00,60.00)"/>
</item>
<item id="51" caption="MF5 (3-bit LUT11, DFF/LATCH14, 8-bit CNT5/DLY5)">
<graphics pos="(353.75,564.58)" angle="0" flipping="0" hidden="1" tOrigin="(155.00,60.00)"/>
</item>
<item id="52" caption="MF6 (3-bit LUT12, DFF/LATCH15, 8-bit CNT6/DLY6)">
<graphics pos="(352.92,623.33)" angle="0" flipping="0" hidden="1" tOrigin="(155.00,60.00)"/>
</item>
<item id="53" caption="MF7 (3-bit LUT13, DFF/LATCH16, 8-bit CNT7/DLY7)">
<graphics pos="(278.89,638.89)" angle="0" flipping="0" hidden="1" tOrigin="(155.00,60.00)"/>
</item>
<LUT id="54" regularShape="0" mode="0">
<item id="54" caption="4-bit LUT0 (MF0)">
<graphics pos="(-365.00,25.00)" angle="90" flipping="0" hidden="1" tOrigin="(20.00,15.00)"/>
</item>
</LUT>
<item id="55" caption="DFF/LATCH9 (MF0)">
<graphics pos="(-450.00,-20.00)" angle="0" flipping="0" hidden="1" tOrigin="(25.00,10.00)"/>
</item>
<CNTDLY id="56" externalClockFrequence="0" externalClockFreqUnit="kHz">
<item id="56" caption="16-bit CNT0/DLY0/FSM0 (MF0)">
<graphics pos="(-450.00,-20.00)" angle="0" flipping="0" hidden="1" tOrigin="(35.00,16.00)"/>
</item>
</CNTDLY>
<LUT id="57" regularShape="0" mode="0">
<item id="57" caption="3-bit LUT7 (MF1)">
<graphics pos="(-276.50,198.50)" angle="90" flipping="0" hidden="1" tOrigin="(20.00,15.00)"/>
</item>
</LUT>
<item id="58" caption="DFF/LATCH10 (MF1)">
<graphics pos="(666.00,279.31)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,10.00)"/>
</item>
<CNTDLY id="59" externalClockFrequence="0" externalClockFreqUnit="kHz">
<item id="59" caption="8-bit CNT1/DLY1 (MF1)">
<graphics pos="(-448.50,184.50)" angle="0" flipping="0" hidden="1" tOrigin="(30.00,16.00)"/>
</item>
</CNTDLY>
<LUT id="60" regularShape="0" mode="0">
<item id="60" caption="3-bit LUT8 (MF2)">
<graphics pos="(506.33,391.00)" angle="90" flipping="0" hidden="1" tOrigin="(20.00,15.00)"/>
</item>
</LUT>
<item id="61" caption="DFF/LATCH11 (MF2)">
<graphics pos="(666.00,353.48)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,10.00)"/>
</item>
<CNTDLY id="62" externalClockFrequence="0" externalClockFreqUnit="kHz">
<item id="62" caption="8-bit CNT2/DLY2 (MF2)">
<graphics pos="(-550.00,300.00)" angle="0" flipping="0" hidden="1" tOrigin="(30.00,16.00)"/>
</item>
</CNTDLY>
<LUT id="63" regularShape="0" mode="0">
<item id="63" caption="3-bit LUT9 (MF3)">
<graphics pos="(491.67,468.33)" angle="90" flipping="0" hidden="1" tOrigin="(20.00,15.00)"/>
</item>
</LUT>
<item id="64" caption="DFF/LATCH12 (MF3)">
<graphics pos="(666.00,427.09)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,10.00)"/>
</item>
<CNTDLY id="65" externalClockFrequence="0" externalClockFreqUnit="kHz">
<item id="65" caption="8-bit CNT3/DLY3 (MF3)">
<graphics pos="(-730.00,460.00)" angle="0" flipping="0" hidden="1" tOrigin="(30.00,16.00)"/>
</item>
</CNTDLY>
<LUT id="66" regularShape="0" mode="0">
<item id="66" caption="3-bit LUT10 (MF4)">
<graphics pos="(475.00,558.33)" angle="90" flipping="0" hidden="1" tOrigin="(20.00,15.00)"/>
</item>
</LUT>
<item id="67" caption="DFF/LATCH13 (MF4)">
<graphics pos="(666.00,497.09)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,10.00)"/>
</item>
<CNTDLY id="68" externalClockFrequence="0" externalClockFreqUnit="kHz">
<item id="68" caption="8-bit CNT4/DLY4 (MF4)">
<graphics pos="(660.00,-210.00)" angle="0" flipping="0" hidden="1" tOrigin="(30.00,16.00)"/>
</item>
</CNTDLY>
<LUT id="69" regularShape="0" mode="0">
<item id="69" caption="3-bit LUT11 (MF5)">
<graphics pos="(488.75,609.58)" angle="90" flipping="0" hidden="1" tOrigin="(20.00,15.00)"/>
</item>
</LUT>
<item id="70" caption="DFF/LATCH14 (MF5)">
<graphics pos="(666.00,569.59)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,10.00)"/>
</item>
<CNTDLY id="71" externalClockFrequence="0" externalClockFreqUnit="kHz">
<item id="71" caption="8-bit CNT5/DLY5 (MF5)">
<graphics pos="(500.00,-50.00)" angle="0" flipping="0" hidden="1" tOrigin="(30.00,16.00)"/>
</item>
</CNTDLY>
<LUT id="72" regularShape="0" mode="0">
<item id="72" caption="3-bit LUT12 (MF6)">
<graphics pos="(487.92,668.33)" angle="90" flipping="0" hidden="1" tOrigin="(20.00,15.00)"/>
</item>
</LUT>
<item id="73" caption="DFF/LATCH15 (MF6)">
<graphics pos="(666.00,639.59)" angle="0" flipping="0" hidden="0" tOrigin="(25.00,10.00)"/>
</item>
<CNTDLY id="74" externalClockFrequence="0" externalClockFreqUnit="kHz">
<item id="74" caption="8-bit CNT6/DLY6 (MF6)">
<graphics pos="(330.00,110.00)" angle="0" flipping="0" hidden="1" tOrigin="(30.00,16.00)"/>
</item>
</CNTDLY>
<LUT id="75" regularShape="0" mode="0">
<item id="75" caption="3-bit LUT13 (MF7)">
<graphics pos="(413.89,683.89)" angle="90" flipping="0" hidden="1" tOrigin="(20.00,15.00)"/>
</item>
</LUT>
<item id="76" caption="DFF/LATCH16 (MF7)">
<graphics pos="(408.89,688.89)" angle="0" flipping="0" hidden="1" tOrigin="(25.00,10.00)"/>
</item>
<CNTDLY id="77" externalClockFrequence="0" externalClockFreqUnit="kHz">
<item id="77" caption="8-bit CNT7/DLY7 (MF7)">
<graphics pos="(170.00,270.00)" angle="0" flipping="0" hidden="1" tOrigin="(30.00,16.00)"/>
</item>
</CNTDLY>
<EEPROM id="78">
<data>0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</data>
<item id="78" caption="EEPROM">
<graphics pos="(-70.00,48.00)" angle="0" flipping="0" hidden="1" tOrigin="(30.00,16.00)"/>
</item>
</EEPROM>
<wire output="147" input="111" autoRouting="1" pen="#ff8000ff;1.00;1;32;128" lineType="2" protected="1" CWLid="0" wireText="NET0" wireState="0">
<points>(-108.00,390.00); (-91.00,390.00)</points>
</wire>
<wire output="148" input="112" autoRouting="1" pen="#ff8000ff;1.00;1;32;128" lineType="2" protected="1" CWLid="1" wireText="NET1" wireState="0">
<points>(-108.00,420.00); (-91.00,420.00)</points>
</wire>
<wire output="0" input="497" autoRouting="1" pen="#ff8000ff;1.00;1;32;128" lineType="2" protected="1" CWLid="-1" wireText="VDD" wireState="1">
<points/>
</wire>
<wire output="0" input="522" autoRouting="1" pen="#ff8000ff;1.00;1;32;128" lineType="2" protected="1" CWLid="-1" wireText="VDD" wireState="1">
<points/>
</wire>
<wire output="0" input="540" autoRouting="1" pen="#ff8000ff;1.00;1;32;128" lineType="2" protected="1" CWLid="-1" wireText="VDD" wireState="1">
<points/>
</wire>
<wire output="0" input="537" autoRouting="1" pen="#ff8000ff;1.00;1;32;128" lineType="2" protected="1" CWLid="-1" wireText="VDD" wireState="1">
<points/>
</wire>
<wire output="0" input="534" autoRouting="1" pen="#ff8000ff;1.00;1;32;128" lineType="2" protected="1" CWLid="-1" wireText="VDD" wireState="1">
<points/>
</wire>
<wire output="0" input="531" autoRouting="1" pen="#ff8000ff;1.00;1;32;128" lineType="2" protected="1" CWLid="-1" wireText="VDD" wireState="1">
<points/>
</wire>
<wire output="0" input="528" autoRouting="1" pen="#ff8000ff;1.00;1;32;128" lineType="2" protected="1" CWLid="-1" wireText="VDD" wireState="1">
<points/>
</wire>
<wire output="0" input="525" autoRouting="1" pen="#ff8000ff;1.00;1;32;128" lineType="2" protected="1" CWLid="-1" wireText="VDD" wireState="1">
<points/>
</wire>
<wire output="39" input="550" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="-1" wireText="POR" wireState="1">
<points/>
</wire>
<wire output="39" input="553" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="-1" wireText="POR" wireState="1">
<points/>
</wire>
<wire output="39" input="556" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="-1" wireText="POR" wireState="1">
<points/>
</wire>
<wire output="39" input="559" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="-1" wireText="POR" wireState="1">
<points/>
</wire>
<wire output="39" input="562" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="-1" wireText="POR" wireState="1">
<points/>
</wire>
<wire output="39" input="565" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="-1" wireText="POR" wireState="1">
<points/>
</wire>
<wire output="39" input="626" autoRouting="1" pen="#2dffaaff;1.00;1;32;128" lineType="3" protected="0" CWLid="-1" wireText="POR" wireState="1">
<points/>
</wire>
<wire output="39" input="630" autoRouting="1" pen="#2dffaaff;1.00;1;32;128" lineType="3" protected="0" CWLid="-1" wireText="POR" wireState="1">
<points/>
</wire>
<wire output="39" input="634" autoRouting="1" pen="#2dffaaff;1.00;1;32;128" lineType="3" protected="0" CWLid="-1" wireText="POR" wireState="1">
<points/>
</wire>
<wire output="39" input="638" autoRouting="1" pen="#2dffaaff;1.00;1;32;128" lineType="3" protected="0" CWLid="-1" wireText="POR" wireState="1">
<points/>
</wire>
<wire output="39" input="642" autoRouting="1" pen="#2dffaaff;1.00;1;32;128" lineType="3" protected="0" CWLid="-1" wireText="POR" wireState="1">
<points/>
</wire>
<wire output="39" input="646" autoRouting="1" pen="#2dffaaff;1.00;1;32;128" lineType="3" protected="0" CWLid="-1" wireText="POR" wireState="1">
<points/>
</wire>
<wire output="162" input="496" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="8" wireText="NET8" wireState="0">
<points>(415.00,363.00); (460.00,363.00); (460.00,359.00); (466.00,359.00)</points>
</wire>
<wire output="163" input="499" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="9" wireText="NET9" wireState="0">
<points>(415.00,437.00); (460.00,437.00); (460.00,433.00); (466.00,433.00)</points>
</wire>
<wire output="164" input="502" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="10" wireText="NET10" wireState="0">
<points>(416.00,507.00); (460.00,507.00); (460.00,503.00); (466.00,503.00)</points>
</wire>
<wire output="166" input="521" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="12" wireText="NET12" wireState="0">
<points>(415.00,649.00); (460.00,649.00); (460.00,645.00); (466.00,645.00)</points>
</wire>
<wire output="193" input="539" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="13" wireText="NET13" wireState="0">
<points>(736.00,290.00); (811.00,290.00); (811.00,285.00); (831.00,285.00)</points>
</wire>
<wire output="195" input="536" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="14" wireText="NET14" wireState="0">
<points>(736.00,364.00); (811.00,364.00); (811.00,359.00); (831.00,359.00)</points>
</wire>
<wire output="197" input="533" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="15" wireText="NET15" wireState="0">
<points>(736.00,438.00); (811.00,438.00); (811.00,433.00); (831.00,433.00)</points>
</wire>
<wire output="199" input="530" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="16" wireText="NET16" wireState="0">
<points>(736.00,508.00); (811.00,508.00); (811.00,503.00); (831.00,503.00)</points>
</wire>
<wire output="201" input="527" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="17" wireText="NET17" wireState="0">
<points>(736.00,580.00); (811.00,580.00); (811.00,575.00); (831.00,575.00)</points>
</wire>
<wire output="203" input="524" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="18" wireText="NET18" wireState="0">
<points>(736.00,650.00); (811.00,650.00); (811.00,645.00); (831.00,645.00)</points>
</wire>
<wire output="56" input="262" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="7" wireText="NET7" wireState="0">
<points>(0.00,369.00); (259.00,369.00); (259.00,213.00); (271.00,213.00)</points>
</wire>
<wire output="56" input="543" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="7" wireText="NET7" wireState="0">
<points>(0.00,369.00); (307.00,369.00); (307.00,746.00); (571.00,746.00)</points>
</wire>
<wire output="57" input="261" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="20" wireText="NET20" wireState="0">
<points>(0.00,379.00); (247.00,379.00); (247.00,233.00); (271.00,233.00)</points>
</wire>
<wire output="57" input="542" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="20" wireText="NET20" wireState="0">
<points>(0.00,379.00); (295.00,379.00); (295.00,766.00); (571.00,766.00)</points>
</wire>
<wire output="61" input="555" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="21" wireText="bit2" wireState="1">
<points/>
</wire>
<wire output="61" input="635" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="21" wireText="bit2" wireState="1">
<points/>
</wire>
<wire output="60" input="558" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="22" wireText="bit3" wireState="1">
<points/>
</wire>
<wire output="60" input="639" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="22" wireText="bit3" wireState="1">
<points/>
</wire>
<wire output="63" input="549" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="23" wireText="bit0" wireState="1">
<points/>
</wire>
<wire output="62" input="552" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="24" wireText="bit1" wireState="1">
<points/>
</wire>
<wire output="63" input="627" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="23" wireText="bit0" wireState="1">
<points/>
</wire>
<wire output="62" input="631" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="24" wireText="bit1" wireState="1">
<points/>
</wire>
<wire output="58" input="564" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="26" wireText="bit5" wireState="1">
<points/>
</wire>
<wire output="59" input="643" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="25" wireText="bit4" wireState="1">
<points/>
</wire>
<wire output="58" input="647" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="26" wireText="bit5" wireState="1">
<points/>
</wire>
<wire output="161" input="493" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="27" wireText="NET27" wireState="0">
<points>(415.00,289.00); (460.00,289.00); (460.00,285.00); (466.00,285.00)</points>
</wire>
<wire output="36" input="554" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="19" wireText="NET19" wireState="0">
<points>(431.00,212.00); (437.00,212.00); (437.00,416.00); (318.00,416.00); (318.00,443.00); (324.00,443.00)</points>
</wire>
<wire output="36" input="557" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="19" wireText="NET19" wireState="0">
<points>(431.00,212.00); (437.00,212.00); (437.00,488.00); (319.00,488.00); (319.00,513.00); (325.00,513.00)</points>
</wire>
<wire output="36" input="551" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="19" wireText="NET19" wireState="0">
<points>(431.00,212.00); (437.00,212.00); (437.00,344.00); (318.00,344.00); (318.00,369.00); (324.00,369.00)</points>
</wire>
<wire output="36" input="548" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="19" wireText="NET19" wireState="0">
<points>(431.00,212.00); (437.00,212.00); (437.00,272.00); (318.00,272.00); (318.00,295.00); (324.00,295.00)</points>
</wire>
<wire output="36" input="563" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="19" wireText="NET19" wireState="0">
<points>(431.00,212.00); (437.00,212.00); (437.00,632.00); (318.00,632.00); (318.00,655.00); (324.00,655.00)</points>
</wire>
<wire output="84" input="104" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="29" wireText="NET29" wireState="0">
<points>(342.00,223.00); (351.00,223.00); (351.00,212.00); (355.00,212.00)</points>
</wire>
<wire output="83" input="645" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="28" wireText="NET28" wireState="0">
<points>(753.00,750.00); (759.00,750.00); (759.00,692.00); (639.00,692.00); (639.00,655.00); (645.00,655.00)</points>
</wire>
<wire output="83" input="625" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="28" wireText="NET28" wireState="0">
<points>(753.00,750.00); (759.00,750.00); (759.00,332.00); (639.00,332.00); (639.00,295.00); (645.00,295.00)</points>
</wire>
<wire output="83" input="633" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="28" wireText="NET28" wireState="0">
<points>(753.00,750.00); (759.00,750.00); (759.00,476.00); (639.00,476.00); (639.00,443.00); (645.00,443.00)</points>
</wire>
<wire output="83" input="637" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="28" wireText="NET28" wireState="0">
<points>(753.00,750.00); (759.00,750.00); (759.00,548.00); (639.00,548.00); (639.00,513.00); (645.00,513.00)</points>
</wire>
<wire output="83" input="641" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="28" wireText="NET28" wireState="0">
<points>(753.00,750.00); (759.00,750.00); (759.00,620.00); (639.00,620.00); (639.00,585.00); (645.00,585.00)</points>
</wire>
<wire output="83" input="629" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="28" wireText="NET28" wireState="0">
<points>(753.00,750.00); (759.00,750.00); (759.00,404.00); (639.00,404.00); (639.00,369.00); (645.00,369.00)</points>
</wire>
<wire output="158" input="260" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="30" wireText="NET30" wireState="0">
<points>(642.00,756.00); (662.00,756.00); (662.00,750.00); (666.00,750.00)</points>
</wire>
<wire output="165" input="518" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="11" wireText="NET11" wireState="0">
<points>(415.00,579.00); (460.00,579.00); (460.00,580.00); (466.00,580.00)</points>
</wire>
<wire output="36" input="560" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="19" wireText="NET19" wireState="0">
<points>(431.00,212.00); (437.00,212.00); (437.00,560.00); (318.00,560.00); (318.00,585.00); (324.00,585.00)</points>
</wire>
<wire output="59" input="561" autoRouting="1" pen="#00ff00ff;1.00;1;32;128" lineType="1" protected="0" CWLid="25" wireText="bit4" wireState="1">
<points/>
</wire>
<wire output="145" input="1031" autoRouting="1" pen="#ff8000ff;1.00;1;32;128" lineType="2" protected="1" CWLid="-1" wireText="SA_SEL2" wireState="1">
<points/>
</wire>
<wire output="146" input="1032" autoRouting="1" pen="#ff8000ff;1.00;1;32;128" lineType="2" protected="1" CWLid="-1" wireText="SA_SEL3" wireState="1">
<points/>
</wire>
<textLabel pos="(275.05,197.92)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">0
0
0</textLabel>
<textLabel pos="(573.09,732.25)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">0
0
1</textLabel>
<textLabel pos="(-21.95,200.83)" angle="0.00" textColor="#ffff00ff" backgroundColor="#14141464">XY01_0000
X(A7) Y(A6) A(7-bit) A(8-bit)
0 0 0x08 0x10
0 1 0x28 0x50
1 0 0x48 0x90
1 1 0x68 0xD0</textLabel>
</chip>
<emulatorConfiguration version="1">
<settings>
<autoApply value="1"/>
<programmingOptions programNVM="1" programEEPROM="0"/>
<platformSelector id="4"/>
</settings>
<platform id="0" friendlyName="GreenPAK DIP Development Platform">
<lastConfiguration modified="0">
<SaveEmulator Name="Default">
<PowerOptions synced="0"/>
<PowerSwitch internalPower="1" externalPower="0"/>
<ExpansionConnector>1:0;2:0;3:0;4:0;5:0;6:0;7:0;8:0;9:0;10:0;11:0;12:0;13:0;14:0;15:0;16:0;17:0;18:0;19:0;20:0</ExpansionConnector>
<TestPoints>
<TPC ID="1" Type="8">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="81" GlobalLink="0"/>
<GeneratorOpt GenType="5">
<constantVoltageGenerator v="3.299377e+00|4">
<abstractGenerator repeat="0" repeatCount="0" shownPeriod="0" startPoint="0.000000e+00|5" stopPoint="1.000000e-01|5" pauseState="0" prestartState="1" outputState="0" prestartDelay="0.000000e+00|5" endState="0" link="0" sync="0"/>
</constantVoltageGenerator>
</GeneratorOpt>
</TPC>
<TPC ID="2" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="87" GlobalLink="1"/>
</TPC>
<TPC ID="3" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="69" GlobalLink="1"/>
</TPC>
<TPC ID="4" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="82" GlobalLink="1"/>
</TPC>
<TPC ID="5" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="84" GlobalLink="1"/>
</TPC>
<TPC ID="6" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="89" GlobalLink="1"/>
</TPC>
<TPC ID="7" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="85" GlobalLink="1"/>
</TPC>
<TPC ID="8" Type="4">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="73" GlobalLink="1"/>
</TPC>
<TPC ID="9" Type="4">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="79" GlobalLink="1"/>
</TPC>
<TPC ID="10" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="80" GlobalLink="1"/>
</TPC>
<TPC ID="11" Type="3">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="-1" GlobalLink="1"/>
</TPC>
<TPC ID="12" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="65" GlobalLink="1"/>
</TPC>
<TPC ID="13" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="83" GlobalLink="1"/>
</TPC>
<TPC ID="14" Type="8">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="68" GlobalLink="0"/>
<GeneratorOpt GenType="5">
<constantVoltageGenerator v="3.299377e+00|4">
<abstractGenerator repeat="0" repeatCount="0" shownPeriod="0" startPoint="0.000000e+00|5" stopPoint="1.000000e-01|5" pauseState="0" prestartState="1" outputState="0" prestartDelay="0.000000e+00|5" endState="0" link="0" sync="0"/>
</constantVoltageGenerator>
</GeneratorOpt>
</TPC>
<TPC ID="15" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="70" GlobalLink="1"/>
</TPC>
<TPC ID="16" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="71" GlobalLink="1"/>
</TPC>
<TPC ID="17" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="74" GlobalLink="1"/>
</TPC>
<TPC ID="18" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="75" GlobalLink="1"/>
</TPC>
<TPC ID="19" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="76" GlobalLink="1"/>
</TPC>
<TPC ID="20" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="92" GlobalLink="1"/>
</TPC>
</TestPoints>
<I2C slaveAddress="-1"/>
</SaveEmulator>
</lastConfiguration>
<savedConfigurations/>
</platform>
<platform id="1" friendlyName="GreenPAK Advanced Development Platform">
<lastConfiguration modified="1">
<SaveEmulator Name="Default">
<PowerOptions synced="0"/>
<PowerSwitch internalPower="1" externalPower="0"/>
<ExpansionConnector>1:0;2:0;3:0;4:0;5:0;6:0;7:0;8:0;9:0;10:0;11:0;12:0;13:0;14:0;15:0;16:0;17:0;18:0;19:0;20:0</ExpansionConnector>
<TestPoints>
<TPC ID="1" Type="8">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="81" GlobalLink="0"/>
<GeneratorOpt GenType="5">
<constantVoltageGenerator v="3.299377e+00|4">
<abstractGenerator repeat="0" repeatCount="0" shownPeriod="0" startPoint="0.000000e+00|5" stopPoint="1.000000e-01|5" pauseState="0" prestartState="1" outputState="0" prestartDelay="0.000000e+00|5" endState="0" link="0" sync="0"/>
</constantVoltageGenerator>
</GeneratorOpt>
</TPC>
<TPC ID="2" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="87" GlobalLink="1"/>
</TPC>
<TPC ID="3" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="69" GlobalLink="1"/>
</TPC>
<TPC ID="4" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="82" GlobalLink="1"/>
</TPC>
<TPC ID="5" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="84" GlobalLink="1"/>
</TPC>
<TPC ID="6" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="89" GlobalLink="1"/>
</TPC>
<TPC ID="7" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="85" GlobalLink="1"/>
</TPC>
<TPC ID="8" Type="10">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="73" GlobalLink="1"/>
</TPC>
<TPC ID="9" Type="9">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="79" GlobalLink="1"/>
<GeneratorOpt GenType="8">
<i2cGenerator sclId="8" speed="1.000000e+00|3">
<commands>
<command type="s"/>
<command type="p"/>
</commands>
<abstractGenerator repeat="1" repeatCount="2" shownPeriod="2" startPoint="0.000000e+00|5" stopPoint="1.000000e-01|5" pauseState="0" prestartState="1" outputState="4" prestartDelay="0.000000e+00|5" endState="0" link="1" sync="0"/>
</i2cGenerator>
</GeneratorOpt>
</TPC>
<TPC ID="10" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="80" GlobalLink="1"/>
</TPC>
<TPC ID="11" Type="3">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="-1" GlobalLink="1"/>
</TPC>
<TPC ID="12" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="65" GlobalLink="1"/>
</TPC>
<TPC ID="13" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="83" GlobalLink="1"/>
</TPC>
<TPC ID="14" Type="8">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="68" GlobalLink="0"/>
<GeneratorOpt GenType="5">
<constantVoltageGenerator v="3.299377e+00|4">
<abstractGenerator repeat="0" repeatCount="0" shownPeriod="0" startPoint="0.000000e+00|5" stopPoint="1.000000e-01|5" pauseState="0" prestartState="1" outputState="0" prestartDelay="0.000000e+00|5" endState="0" link="0" sync="0"/>
</constantVoltageGenerator>
</GeneratorOpt>
</TPC>
<TPC ID="15" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="70" GlobalLink="1"/>
</TPC>
<TPC ID="16" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="71" GlobalLink="1"/>
</TPC>
<TPC ID="17" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="74" GlobalLink="1"/>
</TPC>
<TPC ID="18" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="75" GlobalLink="1"/>
</TPC>
<TPC ID="19" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="76" GlobalLink="1"/>
</TPC>
<TPC ID="20" Type="1">
<BaseOption LEDEnable="0" LEDInvertion="0" HotKey="92" GlobalLink="1"/>
</TPC>
</TestPoints>
<I2C slaveAddress="-1"/>
</SaveEmulator>
</lastConfiguration>
<savedConfigurations/>
</platform>
<platform id="2" friendlyName="GreenPAK Pro Development Platform">
<lastConfiguration modified="0">
<SaveEmulator Name="Default">
<PowerOptions synced="0"/>
<PowerSwitch internalPower="1" externalPower="0"/>
<ExpansionConnector></ExpansionConnector>
<TestPoints/>
<I2C slaveAddress="-1"/>
</SaveEmulator>
</lastConfiguration>
<savedConfigurations/>
</platform>
<platform id="4" friendlyName="GreenPAK Serial Debugger">
<lastConfiguration modified="0">
<SaveEmulator Name="Default">
<PowerOptions synced="0"/>
<PowerSwitch internalPower="1" externalPower="0"/>
<ExpansionConnector></ExpansionConnector>
<TestPoints/>
<I2C slaveAddress="-1"/>
</SaveEmulator>
</lastConfiguration>
<savedConfigurations/>
</platform>
<platform id="5" friendlyName="GreenPAK Advanced Development Platform w/ Logic Level Adapter #1">
<lastConfiguration modified="0">
<SaveEmulator Name="Default">
<PowerOptions synced="0"/>
<PowerSwitch internalPower="1" externalPower="0"/>
<ExpansionConnector></ExpansionConnector>
<TestPoints/>
<I2C slaveAddress="-1"/>
</SaveEmulator>
</lastConfiguration>
<savedConfigurations/>
</platform>
<platform id="6" friendlyName="ForgeFPGA Development Platform">
<lastConfiguration modified="0">
<SaveEmulator Name="Default">
<PowerOptions synced="0"/>
<PowerSwitch internalPower="1" externalPower="0"/>
<ExpansionConnector></ExpansionConnector>
<TestPoints/>
<I2C slaveAddress="-1"/>
</SaveEmulator>
</lastConfiguration>
<savedConfigurations/>
</platform>
</emulatorConfiguration>
<simulationConfiguration version="13" compatibleVersion="13" activePreset="-1">
<draftPreset>
<simulationPreset index="-1" name="Default" customGroupLayout="false" customParametricDcGroupLayout="false">
<transientAnalyses>
<transientAnalysis stopTime="12m" maxTimeStep="20u" startTime="0" stepTime="20u" temperature="25" useInitialConditions="false" vdd="3.3"/>
</transientAnalyses>
<parametricDcAnalyses/>
<pinProbes>
<pinProbe instrumentId="0" measurementFlags="1">
<IdDto category="5" componentType="43" componentNumber="1" pinNumber="0"/>
</pinProbe>
</pinProbes>
<groups/>
<parametricDcGroups/>
<waveforms/>
<components>
<component simulationModel="">
<componentId category="5" componentType="0" componentNumber="1"/>
<componentSpec manufacturer="" partNumber=""/>
<componentUiSettings isFlippedHorizontally="false" isFlippedVertically="false" visible="true" position="(-167.273;743.612)" rotationState="0" sceneIndex="0"/>
<schematicProps>
<param id="name" affinity="4" value="GND"/>
</schematicProps>
<instanceProps/>
</component>
<component simulationModel="">
<componentId category="5" componentType="43" componentNumber="1"/>
<componentSpec manufacturer="" partNumber=""/>
<componentUiSettings isFlippedHorizontally="false" isFlippedVertically="false" visible="true" position="(-172.273;624.478)" rotationState="3" sceneIndex="0"/>
<schematicProps>
<param id="name" affinity="4" value="V1"/>
<param id="has_rc" affinity="1" value="1"/>
<param id="int_r" affinity="3" value="10"/>
<param id="int_c" affinity="3" value="100n"/>
<param id="show_one_period" affinity="1" value="0"/>
<param id="has_limited_voltage" affinity="1" value="0"/>
<param id="dc_analysis_voltage" affinity="3" value="3.3"/>
<param id="signal_type" affinity="1" value="1"/>
<param id="prestart_delay" affinity="3" value="0"/>
<param id="ramp_voltage" affinity="3" value="3.3"/>
<param id="ramp_rise_time" affinity="3" value="1m"/>
</schematicProps>
<instanceProps/>
</component>
</components>
<networks>
<network networkId="5" name="NET5">
<connections>
<connection connectionType="0" routingType="0" sceneIndex="0">
<from>
<IdDto category="5" componentType="43" componentNumber="1" pinNumber="0"/>
</from>
<to>
<IdDto category="100" componentType="45" componentNumber="0" pinNumber="1"/>
</to>
<path>
<point value="(-151;602)"/>
<point value="(-151;582)"/>
<point value="(-88;582)"/>
</path>
</connection>
<connection connectionType="0" routingType="0" sceneIndex="0">
<from>
<IdDto category="5" componentType="43" componentNumber="1" pinNumber="0"/>
</from>
<to>
<IdDto category="100" componentType="45" componentNumber="0" pinNumber="14"/>
</to>
<path>
<point value="(-151;602)"/>
<point value="(-151;539)"/>
<point value="(-88;539)"/>
</path>
</connection>
</connections>
</network>
<network networkId="2" name="NET2">
<connections>
<connection connectionType="0" routingType="0" sceneIndex="0">
<from>
<IdDto category="100" componentType="45" componentNumber="0" pinNumber="11"/>
</from>
<to>
<IdDto category="5" componentType="0" componentNumber="1" pinNumber="0"/>
</to>
<path>
<point value="(-88;700)"/>
<point value="(-151;700)"/>
<point value="(-151;722)"/>
</path>
</connection>
<connection connectionType="0" routingType="0" sceneIndex="0">
<from>
<IdDto category="5" componentType="43" componentNumber="1" pinNumber="1"/>
</from>
<to>
<IdDto category="5" componentType="0" componentNumber="1" pinNumber="0"/>
</to>
<path>
<point value="(-151;687)"/>
<point value="(-151;722)"/>
</path>
</connection>
</connections>
</network>
</networks>
</simulationPreset>
</draftPreset>
<simulationPresets/>
</simulationConfiguration>
<projectData>
<specs>
<lastModify lastModifyValue="20.10.2021 22:50:36"/>
<vddSpecs vddMin="2.3" vddTyp="3.3" vddMax="5.5"/>
<vdd2Specs vdd2Min="1.71" vdd2Typ="3.3" vdd2Max="5.5"/>
<tempSpecs tempMin="-40" tempTyp="25" tempMax="85"/>
</specs>
<projectDataFields>
<textLineDataField name="Customer&#10;Name:" id="2" text=""/>
<textLineDataField name="Customer&#10;Project Name:" id="3" text=""/>
<textLineDataField name="Customer&#10;Project Number:" id="4" text=""/>
<textLineDataField name="Customer&#10;Version Number:" id="5" text=""/>
<multiTextLineDataField>
<textLineDataField name="Notes:" id="6" text=""/>
</multiTextLineDataField>
</projectDataFields>
</projectData>
<i2cTool>
<i2cDebugger version="1"/>
<i2cStepper version="1" rowCount="0"/>
<i2cRegsTable version="1" tabCount="0"/>
</i2cTool>
</GPDProject>
from smbus2 import SMBus, i2c_msg
import time
ioexpander_address = 0x08 # 7-bit addressing
WRITE_REG = 0x7A
P0_REG = 0x76
P1_REG = 0x79
class Bit:
val = 0
def __init__(self, read, write):
self.reading_bit = read
self.writing_bit = write
class Port:
write_address = WRITE_REG
read_address = 0
mask = 0
bit0 = Bit(0, 0)
bit1 = Bit(1, 1)
bit2 = Bit(2, 2)
bit3 = Bit(3, 3)
bit4 = Bit(4, 4)
bit5 = Bit(5, 5)
def __init__(self, _bus, address):
self.address = address
self.bus = _bus
self.bits = [self.bit0,
self.bit1,
self.bit2,
self.bit3,
self.bit4,
self.bit5]
def get_bit(self, bit):
assert 6 > bit >= 0
return self.bits[bit].val
def set_bit(self, bit, value):
assert 6 > bit >= 0
self.bits[bit].val = value
def send(self):
self.bits = [self.bit0,
self.bit1,
self.bit2,
self.bit3,
self.bit4,
self.bit5]
data = 0
for _bit in self.bits:
data = data | (_bit.val << _bit.writing_bit)
data = (data & 0x3F) | (self.mask << 6)
clock = data | 0xC0
msg_clock = i2c_msg.write(self.address, [self.write_address, clock])
msg_data = i2c_msg.write(self.address, [self.write_address, data])
self.bus.i2c_rdwr(msg_clock, msg_data)
self.bus.i2c_rdwr(msg_clock)
def write(self, data):
assert 256 > data >= 0
[self.set_bit(sft, 0x01 & (data >> sft)) for sft in range(6)]
self.send()
def read(self):
data = self.bus.read_byte_data(self.address, self.read_address)
for bit in self.bits:
bit.val = 0x01 & (data >> bit.reading_bit)
return data
class Mux:
def __init__(self, bus, address):
self.address = address
self.bus = bus # type: SMBus
self.port0 = Port(self.bus, self.address)
self.port0.read_address = P0_REG
self.port0.mask = 1
self.port0.bit0 = Bit(2, 0)
self.port0.bit1 = Bit(3, 1)
self.port0.bit2 = Bit(4, 2)
self.port0.bit3 = Bit(5, 3)
self.port0.bit4 = Bit(6, 4)
self.port0.bit5 = Bit(7, 5)
self.port1 = Port(self.bus, self.address)
self.port1.read_address = P1_REG
self.port1.mask = 2
self.cross_points = {
1: { # ROW
1: (self.port1, 0), # COL
2: (self.port1, 2),
3: (self.port1, 4),
4: (self.port0, 1),
5: (self.port0, 3),
6: (self.port0, 5),
},
2: { # ROW
1: (self.port1, 1), # COL
2: (self.port1, 3),
3: (self.port1, 5),
4: (self.port0, 4),
5: (self.port0, 2),
6: (self.port0, 0),
}
}
def connect(self, row, column):
port, bit = self.cross_points[row][column]
port.set_bit(bit, 1)
port.send()
def disconnect(self, row, column):
port, bit = self.cross_points[row][column]
port.set_bit(bit, 0)
port.send()
def disconnect_all(self):
self.port0.write(0x00)
self.port1.write(0x00)
def main():
with SMBus(1) as bus:
mux = Mux(bus, ioexpander_address)
for row in [1, 2]:
for col in [1, 2, 3, 4, 5, 6]:
print("connect", row, col)
mux.connect(row, col)
time.sleep(0.5)
print("disconnect", row, col)
mux.disconnect(row, col)
time.sleep(0.5)
if __name__ == '__main__':
main()

design overview

ioexpander-12bit

Pin QFN TSSOP Rail Function
VDD 1 20 VDD VDD
IO0 2 19 VDD Port0 bit0
IO1 3 18 VDD Port0 bit1
IO2 4 17 VDD Port0 bit2
IO3 5 16 VDD Port0 bit3
IO4 6 15 VDD Slave address selection 2 (bit6 (8-bit addressing))
IO5 7 14 VDD Slave address selection 3 (bit7 (8-bit addressing))
SCL 8 13 VDD I2C SDL
SDA 9 12 VDD I2C SDA
IO6 10 11 VDD Unused; leave open
GND 11 10 GND GND
IO7 12 9 VDD2 Port0 bit4
IO8 13 8 VDD2 Port0 bit5
VDD2 14 7 VDD2 VDD2
IO9 15 6 VDD2 Port1 bit5
IO10 16 5 VDD2 Port1 bit4
IO11 17 4 VDD2 Port1 bit3
IO12 18 3 VDD2 Port1 bit2
IO13 19 2 VDD2 Port1 bit1
IO14 20 1 VDD2 Port1 bit0

I2c slave addresses

SLA_3/GPIO5 and SLA_2/GPIO4 pins are internally pulled down, address select pins. As this is an SLG46826 design the chip reserves 4 address per selection. Use bold ones to write/read ports. If, and only if you know what you are doing, other three may be used for specific purpose (read SLG46826 datasheet yourself!)

SLA_3 SLA_2 7-bit Addresses 8-bit Addresses
0 0 0x08 0x09 0x0a 0x0b 0x10 0x12 0x14 0x16
0 1 0x28 0x29 0x2a 0x2b 0x50 0x52 0x54 0x56
1 0 0x48 0x49 0x4a 0x4b 0x90 0x92 0x94 0x96
1 1 0x68 0x69 0x6a 0x6b 0xD0 0xD2 0xD4 0xD6

Registers to use

register 0x7A is to send IO state for both P0 and P1. MSB 2 bits are port selector bits.

0x76[7:2] is to read P0 output state. 0x79[5:0] is to read P1 output state.

register bit purpose
0x76 7 read P05
6 P04
5 P03
4 P02
3 P01
2 P00
1..0 reserved
0x79 7..6 reserved
5 read P15
4 P14
3 P13
2 P12
1 P11
0 P10
0x7A 7..6 port selection
00 : P0
01 : P1
1x : reserved
5 write bit5
4 bit4
3 bit3
2 bit2
1 bit1
0 bit0

How to send value to each port?

Data sending process is a bit tricky. Falling edge of 2-bit LUT is trigger source for DFFs for each port. This means MSB of register 0x7A must be 11 before sending data. Like so:

  1. send 0b11XX_XXXX to register 0x7A. XX_XXXX is dont care.
  2. send 0bPPDD_DDDD to register 0x7A where PP is either 00 or 01 and DD_DDDD is state to write
  3. send 0b11XX_XXXX to register 0x7A. XX_XXXX is dont care.

Ideas

Following ideas are not tested.

lose slave address choice/tricky software requirement vs. multi rail/extend bit width

If you don't mind losing slave address area, one may use IO4 and 5 for output pins for Port0. This change allows to have one more bit per port, also have different VDD levels for each port i.e. Port0 uses VDD while Port1 is VDD2 level (keep VDD >= VDD2 relationship!). But when this idea is applied, output state reading registers and bit assignment will be different so that driver software will be a bit tricky. Two more DFF macrocells are required to achieve this change.

2-port 6-bit 1x GPO and 1x GPIO expander?

The most pins in VDD2 rail could be configured as digital IO pins so Port1 can be either GPI or GPO port. IO6 pin cannot be an I/O selection pin as it is a GPO pin. IO6 may be assigned to Port0 so that one of VDD2 pin could be used for IO selection, but this requires even more tricky driver software. Keep in mind register 0x79[5:0] reads output state and 0x75[7:2] reads input state.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment