]> sigrok.org Git - libsigrokdecode.git/blame - decoders/eeprom24xx/lists.py
atsha204a: Shorten a few more code chunks, add helpers.
[libsigrokdecode.git] / decoders / eeprom24xx / lists.py
CommitLineData
c4d52210
UH
1##
2## This file is part of the libsigrokdecode project.
3##
4## Copyright (C) 2014 Uwe Hermann <uwe@hermann-uwe.de>
5##
6## This program is free software; you can redistribute it and/or modify
7## it under the terms of the GNU General Public License as published by
8## the Free Software Foundation; either version 2 of the License, or
9## (at your option) any later version.
10##
11## This program is distributed in the hope that it will be useful,
12## but WITHOUT ANY WARRANTY; without even the implied warranty of
13## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14## GNU General Public License for more details.
15##
16## You should have received a copy of the GNU General Public License
4539e9ca 17## along with this program; if not, see <http://www.gnu.org/licenses/>.
c4d52210
UH
18##
19
20#
21# Chip specific properties:
22#
23# - vendor: chip manufacturer
24# - model: chip model
25# - size: total EEPROM size (in number of bytes)
26# - page_size: page size (in number of bytes)
27# - page_wraparound: Whether writes wrap-around at page boundaries
28# - addr_bytes: number of EEPROM address bytes used
29# - addr_pins: number of address pins (A0/A1/A2) on this chip
30# - max_speed: max. supported I²C speed (in kHz)
31#
32chips = {
33 # Generic chip (128 bytes, 8 bytes page size)
34 'generic': {
35 'vendor': '',
36 'model': 'Generic',
37 'size': 128,
38 'page_size': 8,
39 'page_wraparound': True,
40 'addr_bytes': 1,
41 'addr_pins': 3,
42 'max_speed': 400,
43 },
44
45 # Microchip
46 'microchip_24aa65': {
47 'vendor': 'Microchip',
48 'model': '24AA65',
49 'size': 8 * 1024,
50 'page_size': 64, # Actually 8, but there are 8 pages of "input cache"
51 'page_wraparound': True,
52 'addr_bytes': 2,
53 'addr_pins': 3,
54 'max_speed': 400,
55 },
56 'microchip_24lc65': {
57 'vendor': 'Microchip',
58 'model': '24LC65',
59 'size': 8 * 1024,
60 'page_size': 64, # Actually 8, but there are 8 pages of "input cache"
61 'page_wraparound': True,
62 'addr_bytes': 2,
63 'addr_pins': 3,
64 'max_speed': 400,
65 },
66 'microchip_24c65': {
67 'vendor': 'Microchip',
68 'model': '24C65',
69 'size': 8 * 1024,
70 'page_size': 64, # Actually 8, but there are 8 pages of "input cache"
71 'page_wraparound': True,
72 'addr_bytes': 2,
73 'addr_pins': 3,
74 'max_speed': 400,
75 },
76 'microchip_24aa64': {
77 'vendor': 'Microchip',
78 'model': '24AA64',
79 'size': 8 * 1024,
80 'page_size': 32,
81 'page_wraparound': True,
82 'addr_bytes': 2,
83 'addr_pins': 3,
84 'max_speed': 400, # 100 for VCC < 2.5V
85 },
86 'microchip_24lc64': {
87 'vendor': 'Microchip',
88 'model': '24LC64',
89 'size': 8 * 1024,
90 'page_size': 32,
91 'page_wraparound': True,
92 'addr_bytes': 2,
93 'addr_pins': 3,
94 'max_speed': 400,
95 },
96 'microchip_24aa02uid': {
97 'vendor': 'Microchip',
98 'model': '24AA02UID',
99 'size': 256,
100 'page_size': 8,
101 'page_wraparound': True,
102 'addr_bytes': 1,
103 'addr_pins': 0, # Pins A0, A1, A2 not used
104 'max_speed': 400,
105 },
106 'microchip_24aa025uid': {
107 'vendor': 'Microchip',
108 'model': '24AA025UID',
109 'size': 256,
110 'page_size': 16,
111 'page_wraparound': True,
112 'addr_bytes': 1,
113 'addr_pins': 3,
114 'max_speed': 400,
115 },
116 'microchip_24aa025uid_sot23': {
117 'vendor': 'Microchip',
118 'model': '24AA025UID (SOT-23)',
119 'size': 256,
120 'page_size': 16,
121 'page_wraparound': True,
122 'addr_bytes': 1,
123 'addr_pins': 2, # SOT-23 package: A2 not available
124 'max_speed': 400,
125 },
126
e8c72a33 127 # ON Semiconductor
128 'onsemi_cat24c256': {
129 'vendor': 'ON Semiconductor',
130 'model': 'CAT24C256',
131 'size': 32 * 1024,
132 'page_size': 64,
133 'page_wraparound': True,
134 'addr_bytes': 2,
135 'addr_pins': 3,
136 'max_speed': 1000,
137 },
138 'onsemi_cat24m01': {
139 'vendor': 'ON Semiconductor',
140 'model': 'CAT24M01',
141 'size': 128 * 1024,
142 'page_size': 256,
143 'page_wraparound': True,
144 'addr_bytes': 2,
145 'addr_pins': 2, # Pin A0 not connected
146 'max_speed': 1000,
147 },
148
c4d52210
UH
149 # Siemens
150 'siemens_slx_24c01': {
151 'vendor': 'Siemens',
152 'model': 'SLx 24C01',
153 'size': 128,
154 'page_size': 8,
155 'page_wraparound': True,
156 'addr_bytes': 1,
157 'addr_pins': 0, # Pins A0, A1, A2 are not connected (NC)
158 'max_speed': 400,
159 },
160 'siemens_slx_24c02': {
161 'vendor': 'Siemens',
162 'model': 'SLx 24C02',
163 'size': 256,
164 'page_size': 8,
165 'page_wraparound': True,
166 'addr_bytes': 1,
167 'addr_pins': 0, # Pins A0, A1, A2 are not connected (NC)
168 'max_speed': 400,
169 },
170
171 # ST
172 'st_m24c01': {
173 'vendor': 'ST',
174 'model': 'M24C01',
175 'size': 128,
176 'page_size': 16,
177 'page_wraparound': True,
178 'addr_bytes': 1,
179 'addr_pins': 3, # Called E0, E1, E2 on this chip.
180 'max_speed': 400,
181 },
182 'st_m24c02': {
183 'vendor': 'ST',
184 'model': 'M24C02',
185 'size': 256,
186 'page_size': 16,
187 'page_wraparound': True,
188 'addr_bytes': 1,
189 'addr_pins': 3, # Called E0, E1, E2 on this chip.
190 'max_speed': 400,
191 },
e125d0f7 192
193 # Xicor
194 'xicor_x24c02': {
195 'vendor': 'Xicor',
196 'model': 'X24C02',
197 'size': 256,
198 'page_size': 4,
199 'page_wraparound': True,
200 'addr_bytes': 1,
201 'addr_pins': 3,
202 'max_speed': 100,
203 },
c4d52210 204}