├── README.md
├── audprog.VC.db
├── audprog.exe
├── audprog.sdf
├── audprog.sln
├── audprog.v12.suo
├── audprog
├── AUD.cpp
├── AUD.h
├── Debug
│ ├── audprog.Build.CppClean.log
│ └── audprog.log
├── ReadMe.txt
├── Release
│ ├── audprog.Build.CppClean.log
│ ├── audprog.log
│ └── audprog.obj
├── SPI_EE.cpp
├── SPI_EE.h
├── audprog.cbp
├── audprog.cbp.save-failed
├── audprog.cpp
├── audprog.h
├── audprog.layout
├── audprog.vcxproj
├── audprog.vcxproj.filters
├── audprog.vcxproj.user
├── ftd2xx.h
├── ftd2xx.lib
├── stdafx.cpp
├── stdafx.h
└── targetver.h
└── hw
├── audprog_v2-F.Cu.pdf
├── audprog_v2-cache.lib
├── audprog_v2.kicad_pcb
├── audprog_v2.net
├── audprog_v2.pdf
├── audprog_v2.pro
├── audprog_v2.sch
└── page_layout.kicad_wks
/README.md:
--------------------------------------------------------------------------------
1 | # audprog
2 | AUD interface read/write utility for SH7055 and SH7058 CPUs based on FTDI's FT232R/FT2232x chips
3 |
4 | connections:
5 | FTDI - SH705x CPU
6 | DBUS0 - Not Connected
7 | DBUS1 - AUD_DATA1
8 | DBUS2 - AUD_DATA0
9 | DBUS3 - AUD_SYNC
10 | DBUS4 - AUD_RST
11 | DBUS5 - AUD_DATA3
12 | DBUS6 - AUD_CK
13 | DBUS7 - AUD_DATA2
14 |
15 | FTDI - ST95xxx EEPROM
16 | DBUS0 - DO
17 | DBUS3 - DI
18 | DBUS4 - CS
19 | DBUS6 - CK
20 |
21 | HW schematics in KiCAD format is also inclueded in .\hw\ folder
--------------------------------------------------------------------------------
/audprog.VC.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v-ladimir/audprog/2f5b9a235e91062f2966746c037435bd77d34cca/audprog.VC.db
--------------------------------------------------------------------------------
/audprog.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v-ladimir/audprog/2f5b9a235e91062f2966746c037435bd77d34cca/audprog.exe
--------------------------------------------------------------------------------
/audprog.sdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v-ladimir/audprog/2f5b9a235e91062f2966746c037435bd77d34cca/audprog.sdf
--------------------------------------------------------------------------------
/audprog.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Express 2013 for Windows Desktop
4 | VisualStudioVersion = 12.0.40629.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "audprog", "audprog\audprog.vcxproj", "{79CE91B5-8758-40B7-A7BB-563B870FFD47}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Win32 = Debug|Win32
11 | Release|Win32 = Release|Win32
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {79CE91B5-8758-40B7-A7BB-563B870FFD47}.Debug|Win32.ActiveCfg = Debug|Win32
15 | {79CE91B5-8758-40B7-A7BB-563B870FFD47}.Debug|Win32.Build.0 = Debug|Win32
16 | {79CE91B5-8758-40B7-A7BB-563B870FFD47}.Release|Win32.ActiveCfg = Release|Win32
17 | {79CE91B5-8758-40B7-A7BB-563B870FFD47}.Release|Win32.Build.0 = Release|Win32
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | EndGlobal
23 |
--------------------------------------------------------------------------------
/audprog.v12.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v-ladimir/audprog/2f5b9a235e91062f2966746c037435bd77d34cca/audprog.v12.suo
--------------------------------------------------------------------------------
/audprog/AUD.cpp:
--------------------------------------------------------------------------------
1 | #include "audprog.h"
2 |
3 | unsigned long AUD_readLWord(FT_HANDLE ftDevice, unsigned long a) {
4 | unsigned long addr = a;
5 | unsigned long lData = 0;
6 | unsigned long b = 0;
7 |
8 | unsigned char cData[5 * 2 * 2 + 2] = {};
9 | unsigned char rData[4 * 2 * 3 + 3] = {};
10 |
11 | // filling up command sequense
12 | AUD_cDataFill(cData, sizeof(cData), 0xA0, a);
13 |
14 | //filling up read sequense
15 | AUD_rDataFill(rData, sizeof(rData));
16 |
17 | //send command DWORD read
18 | FT_SetBitMode(ftDevice, 0xFF, FT_BITMODE_SYNC_BITBANG); // all pins are outputs
19 | FT_Write(ftDevice, cData, sizeof(cData), &b);
20 | FT_Read(ftDevice, cData, sizeof(cData), &b);
21 |
22 | AUD_Poll(ftDevice); // polling for READY state
23 |
24 | //reading DWORD
25 | // FT_SetBitMode(ftDevice, 0x0F, FT_BITMODE_SYNC_BITBANG);
26 | FT_Write(ftDevice, rData, sizeof(rData), &b);
27 | FT_Read(ftDevice, rData, sizeof(rData), &b);
28 | for (int q = 3; q < sizeof(rData); q += 3) {
29 | lData <<= 4;
30 | lData |= 0x0F & AUD_bitUnSwap(rData[q] & AUD_DMASK);
31 | }
32 | return ((lData & 0x0F0F0F0F) << 4) | ((lData & 0xF0F0F0F0) >> 4);
33 | }
34 |
35 | unsigned char AUD_readByte(FT_HANDLE ftDevice, unsigned long a) {
36 | unsigned long addr = a;
37 | unsigned long bData = 0;
38 | unsigned long b = 0;
39 |
40 | unsigned char cData[5 * 2 * 2 + 2] = {};
41 | unsigned char rData[1 * 2 * 3 + 3] = {};
42 |
43 | // filling up command sequense
44 | AUD_cDataFill(cData, sizeof(cData), 0x80, a);
45 |
46 | //filling up read sequense
47 | AUD_rDataFill(rData, sizeof(rData));
48 |
49 | //send command BYTE read
50 | FT_SetBitMode(ftDevice, 0xFF, FT_BITMODE_SYNC_BITBANG); // all pins are outputs
51 | FT_Write(ftDevice, cData, sizeof(cData), &b);
52 | FT_Read(ftDevice, cData, sizeof(cData), &b);
53 |
54 | AUD_Poll(ftDevice); // polling for READY state
55 |
56 | //reading BYTE
57 | FT_Write(ftDevice, rData, sizeof(rData), &b);
58 | FT_Read(ftDevice, rData, sizeof(rData), &b);
59 |
60 | for (int q = 3; q < sizeof(rData); q += 3) {
61 | bData <<= 4;
62 | bData |= 0x0F & AUD_bitUnSwap(rData[q] & AUD_DMASK);
63 | }
64 | return ((bData & 0x0F) << 4) | ((bData & 0xF0) >> 4);
65 | }
66 |
67 | unsigned short AUD_readWord(FT_HANDLE ftDevice, unsigned long a) {
68 | unsigned long addr = a;
69 | unsigned short wData = 0;
70 | unsigned long b = 0;
71 |
72 | unsigned char cData[5 * 2 * 2 + 2] = {};
73 | unsigned char rData[2 * 2 * 3 + 3] = {};
74 |
75 | // filling up command sequense
76 | AUD_cDataFill(cData, sizeof(cData), 0x90, a);
77 |
78 | //filling up read sequense
79 | AUD_rDataFill(rData, sizeof(rData));
80 |
81 | //send command WORD read
82 | FT_SetBitMode(ftDevice, 0xFF, FT_BITMODE_SYNC_BITBANG); // all pins are outputs
83 | FT_Write(ftDevice, cData, sizeof(cData), &b);
84 | FT_Read(ftDevice, cData, sizeof(cData), &b);
85 |
86 | AUD_Poll(ftDevice); // polling for READY state
87 |
88 | //reading BYTE
89 | FT_Write(ftDevice, rData, sizeof(rData), &b);
90 | FT_Read(ftDevice, rData, sizeof(rData), &b);
91 |
92 | for (int q = 3; q < sizeof(rData); q += 3) {
93 | wData <<= 4;
94 | wData |= 0x0F & AUD_bitUnSwap(rData[q] & (AUD_DMASK));
95 | }
96 | return ((wData & 0x0F0F) << 4) | ((wData & 0xF0F0) >> 4);
97 | }
98 |
99 | unsigned char AUD_writeByte(FT_HANDLE ftDevice, unsigned long a, unsigned char bData) {
100 |
101 | unsigned long b = 0;
102 | unsigned char cwData[5 * 2 * 2 + 2 + 1 * 2 * 2] = {};
103 |
104 | // filling up command sequense
105 | AUD_cwDataFill(cwData, sizeof(cwData), 0xC0, a, bData);
106 |
107 | //BYTE write
108 | FT_SetBitMode(ftDevice, 0xFF, FT_BITMODE_SYNC_BITBANG); // all pins are outputs
109 | FT_Write(ftDevice, cwData, sizeof(cwData), &b);
110 | FT_Read(ftDevice, cwData, sizeof(cwData), &b);
111 |
112 | AUD_Poll(ftDevice); // polling for READY state
113 | AUD_wTick(ftDevice);
114 | return 0;
115 | }
116 |
117 | unsigned char AUD_writeWord(FT_HANDLE ftDevice, unsigned long a, unsigned int wData) {
118 | unsigned long b = 0;
119 | unsigned char cwData[5 * 2 * 2 + 2 + 2 * 2 * 2] = {};
120 |
121 | // filling up command sequense
122 | AUD_cwDataFill(cwData, sizeof(cwData), 0xD0, a, wData);
123 |
124 | //WORD write
125 | FT_SetBitMode(ftDevice, 0xFF, FT_BITMODE_SYNC_BITBANG); // all pins are outputs
126 | FT_Write(ftDevice, cwData, sizeof(cwData), &b);
127 | FT_Read(ftDevice, cwData, sizeof(cwData), &b);
128 |
129 | AUD_Poll(ftDevice); // polling for READY state
130 | AUD_wTick(ftDevice);
131 | return 0;
132 | }
133 |
134 | unsigned char AUD_writeLWord(FT_HANDLE ftDevice, unsigned long a, unsigned long lData) {
135 | unsigned long b = 0;
136 | unsigned char cwData[5 * 2 * 2 + 2 + 4 * 2 * 2] = {};
137 |
138 | // filling up command sequense
139 | AUD_cwDataFill(cwData, sizeof(cwData), 0xE0, a, lData);
140 |
141 | //DWORD write
142 | FT_SetBitMode(ftDevice, 0xFF, FT_BITMODE_SYNC_BITBANG); // all pins are outputs
143 | FT_Write(ftDevice, cwData, sizeof(cwData), &b);
144 | FT_Read(ftDevice, cwData, sizeof(cwData), &b);
145 |
146 | AUD_Poll(ftDevice); // polling for READY state
147 | AUD_wTick(ftDevice);
148 | return 0;
149 | }
150 |
151 | void AUD_wTick(FT_HANDLE ftDevice) {
152 | unsigned long b = 0;
153 | unsigned char tData[] = {
154 | _AUD_RST | _AUD_SYNC,
155 | _AUD_RST | _AUD_SYNC | AUD_CK,
156 | _AUD_RST | _AUD_SYNC,
157 | _AUD_RST | _AUD_SYNC | AUD_CK
158 | };
159 |
160 | FT_SetBitMode(ftDevice, 0xFF, FT_BITMODE_SYNC_BITBANG); // all pins outputs
161 | FT_Write(ftDevice, tData, sizeof(tData), &b);
162 | FT_Read(ftDevice, tData, sizeof(tData), &b);
163 | }
164 |
165 | void AUD_Poll(FT_HANDLE ftDevice) { // pooling for READY
166 | unsigned long b = 0;
167 | unsigned char pollStatus = 0;
168 | int a = 0;
169 | unsigned char pollData[] = {
170 | _AUD_RST,
171 | _AUD_RST | AUD_CK,
172 | _AUD_RST,
173 | _AUD_RST | AUD_CK,
174 | _AUD_RST,
175 | _AUD_RST | AUD_CK,
176 | _AUD_RST,
177 | _AUD_RST | AUD_CK,
178 | _AUD_RST,
179 | _AUD_RST | AUD_CK,
180 | _AUD_RST,
181 | _AUD_RST | AUD_CK
182 | };
183 |
184 | FT_SetBitMode(ftDevice, 0xff & (~AUD_DMASK), FT_BITMODE_SYNC_BITBANG); // AUD_D0..3 are inputs
185 | unsigned char r = 1;
186 | while (r) {
187 | FT_Write(ftDevice, pollData, sizeof(pollData), &b);
188 | FT_Read(ftDevice, pollData, sizeof(pollData), &b);
189 | for (int q = 0; q < sizeof(pollData); q++) {
190 | pollStatus = pollData[q] & AUD_DMASK;
191 | // Sleep(200);
192 | // printf("pool status 0x%02x\n", pollStatus);
193 | if (pollStatus == AUD_D0) {
194 | r = 0;
195 | break;
196 | }
197 | if (pollStatus == (AUD_D0 | AUD_D2)) {
198 | printf("Bus error!\n");
199 | r = 0;
200 | break;
201 | }
202 | if (pollStatus == (AUD_D0 | AUD_D1)) {
203 | printf("Command error!\n");
204 | r = 0;
205 | break;
206 | }
207 | }
208 | a++;
209 | if (a > 50) {
210 | printf_s("Uknown AUD bus error! Status 0x%02x Please on/off the ECU. \n", pollStatus);
211 | break;
212 | }
213 | }
214 | }
215 |
216 | void AUD_SHSetRAMmode(FT_HANDLE ftDevice) {
217 | unsigned long b = 0;
218 | unsigned char pData[] = {
219 | _AUD_SYNC | _AUD_RST | AUD_CK,
220 | _AUD_SYNC,
221 | _AUD_SYNC | AUD_CK,
222 | _AUD_SYNC,
223 | _AUD_SYNC | AUD_CK,
224 | _AUD_SYNC,
225 | _AUD_SYNC | AUD_CK,
226 | _AUD_SYNC,
227 | _AUD_SYNC | AUD_CK,
228 | _AUD_SYNC,
229 | _AUD_SYNC | AUD_CK,
230 | _AUD_SYNC,
231 | _AUD_SYNC | _AUD_RST,
232 | _AUD_SYNC | _AUD_RST | AUD_CK,
233 | _AUD_SYNC | _AUD_RST,
234 | _AUD_SYNC | _AUD_RST | AUD_CK
235 | };
236 | FT_SetBitMode(ftDevice, 0xFF, FT_BITMODE_SYNC_BITBANG); // all pins are outputs
237 | FT_Write(ftDevice, pData, sizeof(pData), &b);
238 | FT_Read(ftDevice, pData, sizeof(pData), &b);
239 | }
240 |
241 |
242 | unsigned char * AUD_cDataFill(unsigned char * cData, unsigned int cDataSize, unsigned char cmd, unsigned long addr) {
243 | // filling up command sequense
244 | cData[0] = _AUD_RST | _AUD_SYNC;
245 | cData[1] = _AUD_RST | _AUD_SYNC | AUD_CK;
246 | for (int q = 2; q < 6; q++) {
247 | cData[q] = _AUD_RST | AUD_bitSwap(cmd & 0x0f);
248 | q++;
249 | cData[q] = _AUD_RST | AUD_CK | AUD_bitSwap(cmd & 0x0f);
250 | cmd >>= 4;
251 | }
252 | for (unsigned int q = 6; q < cDataSize - 2; q++) {
253 | cData[q] = _AUD_RST | AUD_bitSwap(addr & 0x0f);
254 | q++;
255 | cData[q] = _AUD_RST | AUD_CK | AUD_bitSwap(addr & 0x0f);
256 | addr >>= 4;
257 | };
258 | cData[cDataSize - 2] = cData[cDataSize - 4]; // additional clock after CMD
259 | cData[cDataSize - 1] = cData[cDataSize - 3];
260 |
261 | return cData;
262 | }
263 |
264 | unsigned char * AUD_cwDataFill(unsigned char * cwData, unsigned int cwDataSize, unsigned char cmd, unsigned long addr, unsigned long data) {
265 | // filling up command sequense
266 | cwData[0] = _AUD_RST | _AUD_SYNC;
267 | cwData[1] = _AUD_RST | _AUD_SYNC | AUD_CK;
268 |
269 | for (int q = 2; q < 2*2*2 + 2; q++) {
270 | cwData[q] = _AUD_RST | AUD_bitSwap(cmd & 0x0f);
271 | q++;
272 | cwData[q] = _AUD_RST | AUD_CK | AUD_bitSwap(cmd & 0x0f);
273 | cmd >>= 4;
274 | }
275 |
276 | for (unsigned int q = 6; q < (4*2*2) + 6; q++) {
277 | cwData[q] = _AUD_RST | AUD_bitSwap(addr & 0x0f);
278 | q++;
279 | cwData[q] = _AUD_RST | AUD_CK | AUD_bitSwap(addr & 0x0f);
280 | addr >>= 4;
281 | };
282 |
283 | for (unsigned int q = 22; q < cwDataSize; q++) {
284 | cwData[q] = _AUD_RST | AUD_bitSwap((unsigned char)data & 0x0f);
285 | q++;
286 | cwData[q] = _AUD_RST | AUD_CK | AUD_bitSwap((unsigned char)data & 0x0f);
287 | data >>= 4;
288 | };
289 |
290 | return cwData;
291 | }
292 |
293 | unsigned char * AUD_wDataFill(unsigned char * wData, unsigned int wDataSize, unsigned long data) {
294 | for (unsigned int q = 0; q < wDataSize; q++) {
295 | wData[q] = _AUD_RST | AUD_bitSwap(data & 0x0F);
296 | q++;
297 | wData[q] = _AUD_RST | AUD_CK | AUD_bitSwap(data & 0x0F);
298 | data >>= 4;
299 | };
300 | return wData;
301 | }
302 |
303 | unsigned char * AUD_rDataFill(unsigned char * rData, unsigned int rDataSize) {
304 | for (unsigned int q = 0; q < rDataSize; q++) {
305 | rData[q] = _AUD_RST | _AUD_SYNC;
306 | q++;
307 | rData[q] = _AUD_RST | _AUD_SYNC | AUD_CK;
308 | q++;
309 | rData[q] = _AUD_RST | _AUD_SYNC | AUD_CK;
310 | };
311 | return rData;
312 | }
313 |
314 | unsigned char AUD_bitSwap(unsigned char in) {
315 | unsigned char out = 0;
316 | if (in & (1 << 0)) out |= AUD_D0;
317 | if (in & (1 << 1)) out |= AUD_D1;
318 | if (in & (1 << 2)) out |= AUD_D2;
319 | if (in & (1 << 3)) out |= AUD_D3;
320 | return out;
321 | }
322 |
323 | unsigned char AUD_bitUnSwap(unsigned char in) {
324 | unsigned char out = 0;
325 | if (in & AUD_D0) out |= (1 << 0);
326 | if (in & AUD_D1) out |= (1 << 1);
327 | if (in & AUD_D2) out |= (1 << 2);
328 | if (in & AUD_D3) out |= (1 << 3);
329 | return out;
330 | }
--------------------------------------------------------------------------------
/audprog/AUD.h:
--------------------------------------------------------------------------------
1 | #ifndef __AUD_H_
2 | #define __AUD_H_
3 |
4 | #include "stdafx.h"
5 | #include "ftd2xx.h"
6 |
7 | // AUD pin definition
8 |
9 |
10 | // NEW HW
11 |
12 | #define _AUD_RST (1<<4)
13 | #define _AUD_SYNC (1<<3)
14 |
15 | #define AUD_CK (1<<6)
16 | #define AUD_D0 (1<<2)
17 | #define AUD_D1 (1<<1)
18 | #define AUD_D2 (1<<7)
19 | #define AUD_D3 (1<<5)
20 |
21 | #define AUD_DMASK (AUD_D0 | AUD_D1 | AUD_D2 | AUD_D3)
22 |
23 |
24 | // OLD HW
25 |
26 | /*
27 | #define _AUD_RST (1<<0)
28 | #define _AUD_SYNC (1<<1)
29 |
30 | #define AUD_CK (1<<3)
31 | #define AUD_D0 (1<<4)
32 | #define AUD_D1 (1<<6)
33 | #define AUD_D2 (1<<7)
34 | #define AUD_D3 (1<<5)
35 |
36 | */
37 |
38 | // AUD routines prototypes
39 | unsigned long AUD_readLWord(FT_HANDLE ftDevice, unsigned long a);
40 | unsigned char AUD_readByte(FT_HANDLE ftDevice, unsigned long a);
41 | unsigned short AUD_readWord(FT_HANDLE ftDevice, unsigned long a);
42 |
43 | unsigned char AUD_writeByte(FT_HANDLE ftDevice, unsigned long a, unsigned char bData);
44 | unsigned char AUD_writeWord(FT_HANDLE ftDevice, unsigned long a, unsigned int wData);
45 | unsigned char AUD_writeLWord(FT_HANDLE ftDevice, unsigned long a, unsigned long lData);
46 |
47 | unsigned char AUD_bitSwap(unsigned char in);
48 | unsigned char AUD_bitUnSwap(unsigned char in);
49 | unsigned char * AUD_cDataFill(unsigned char * cData, unsigned int cDataSize, unsigned char cmd, unsigned long addr);
50 | unsigned char * AUD_cwDataFill(unsigned char * cData, unsigned int cDataSize, unsigned char cmd, unsigned long addr, unsigned long data);
51 | unsigned char * AUD_rDataFill(unsigned char * rData, unsigned int rDataSize);
52 | unsigned char * AUD_wDataFill(unsigned char * wData, unsigned int wDataSize, unsigned long data);
53 |
54 | void AUD_Poll(FT_HANDLE ftDevice);
55 | void AUD_SHSetRAMmode(FT_HANDLE ftDevice);
56 | void AUD_wTick(FT_HANDLE ftDevice);
57 |
58 | #endif
--------------------------------------------------------------------------------
/audprog/Debug/audprog.Build.CppClean.log:
--------------------------------------------------------------------------------
1 | d:\documents\dropbox\projects\pc\audprog\audprog\debug\stdafx.obj
2 | d:\documents\dropbox\projects\pc\audprog\audprog\debug\spi_ee.obj
3 | d:\documents\dropbox\projects\pc\audprog\audprog\debug\aud.obj
4 | d:\documents\dropbox\projects\pc\audprog\audprog\debug\audprog.obj
5 | d:\documents\dropbox\projects\pc\audprog\audprog\debug\vc120.pdb
6 | d:\documents\dropbox\projects\pc\audprog\debug\audprog.exe
7 | d:\documents\dropbox\projects\pc\audprog\debug\audprog.pdb
8 | d:\documents\dropbox\projects\pc\audprog\audprog\debug\audprog.tlog\cl.command.1.tlog
9 | d:\documents\dropbox\projects\pc\audprog\audprog\debug\audprog.tlog\cl.read.1.tlog
10 | d:\documents\dropbox\projects\pc\audprog\audprog\debug\audprog.tlog\cl.write.1.tlog
11 | d:\documents\dropbox\projects\pc\audprog\audprog\debug\audprog.tlog\link.command.1.tlog
12 | d:\documents\dropbox\projects\pc\audprog\audprog\debug\audprog.tlog\link.read.1.tlog
13 | d:\documents\dropbox\projects\pc\audprog\audprog\debug\audprog.tlog\link.write.1.tlog
14 |
--------------------------------------------------------------------------------
/audprog/Debug/audprog.log:
--------------------------------------------------------------------------------
1 | Build started 08.10.2016 21:05:44.
2 | 1>Project "D:\Documents\Dropbox\Projects\PC\audprog\audprog\audprog.vcxproj" on node 2 (Rebuild target(s)).
3 | 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB8020: The build tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, please install v140 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution...".
4 | 1>Done Building Project "D:\Documents\Dropbox\Projects\PC\audprog\audprog\audprog.vcxproj" (Rebuild target(s)) -- FAILED.
5 |
6 | Build FAILED.
7 |
8 | Time Elapsed 00:00:00.15
9 |
--------------------------------------------------------------------------------
/audprog/ReadMe.txt:
--------------------------------------------------------------------------------
1 | ========================================================================
2 | CONSOLE APPLICATION : audprog Project Overview
3 | ========================================================================
4 |
5 | AppWizard has created this audprog application for you.
6 |
7 | This file contains a summary of what you will find in each of the files that
8 | make up your audprog application.
9 |
10 |
11 | audprog.vcxproj
12 | This is the main project file for VC++ projects generated using an Application Wizard.
13 | It contains information about the version of Visual C++ that generated the file, and
14 | information about the platforms, configurations, and project features selected with the
15 | Application Wizard.
16 |
17 | audprog.vcxproj.filters
18 | This is the filters file for VC++ projects generated using an Application Wizard.
19 | It contains information about the association between the files in your project
20 | and the filters. This association is used in the IDE to show grouping of files with
21 | similar extensions under a specific node (for e.g. ".cpp" files are associated with the
22 | "Source Files" filter).
23 |
24 | audprog.cpp
25 | This is the main application source file.
26 |
27 | /////////////////////////////////////////////////////////////////////////////
28 | Other standard files:
29 |
30 | StdAfx.h, StdAfx.cpp
31 | These files are used to build a precompiled header (PCH) file
32 | named audprog.pch and a precompiled types file named StdAfx.obj.
33 |
34 | /////////////////////////////////////////////////////////////////////////////
35 | Other notes:
36 |
37 | AppWizard uses "TODO:" comments to indicate parts of the source code you
38 | should add to or customize.
39 |
40 | /////////////////////////////////////////////////////////////////////////////
41 |
--------------------------------------------------------------------------------
/audprog/Release/audprog.Build.CppClean.log:
--------------------------------------------------------------------------------
1 | d:\documents\dropbox\projects\pc\audprog\audprog\release\vc120.pdb
2 | d:\documents\dropbox\projects\pc\audprog\audprog\release\stdafx.obj
3 | d:\documents\dropbox\projects\pc\audprog\audprog\release\spi_ee.obj
4 | d:\documents\dropbox\projects\pc\audprog\audprog\release\aud.obj
5 | d:\documents\dropbox\projects\pc\audprog\audprog\release\audprog.obj
6 | d:\documents\dropbox\projects\pc\audprog\release\audprog.exe
7 | d:\documents\dropbox\projects\pc\audprog\release\audprog.pdb
8 | d:\documents\dropbox\projects\pc\audprog\audprog\release\audprog.tlog\cl.command.1.tlog
9 | d:\documents\dropbox\projects\pc\audprog\audprog\release\audprog.tlog\cl.read.1.tlog
10 | d:\documents\dropbox\projects\pc\audprog\audprog\release\audprog.tlog\cl.write.1.tlog
11 | d:\documents\dropbox\projects\pc\audprog\audprog\release\audprog.tlog\link.command.1.tlog
12 | d:\documents\dropbox\projects\pc\audprog\audprog\release\audprog.tlog\link.read.1.tlog
13 | d:\documents\dropbox\projects\pc\audprog\audprog\release\audprog.tlog\link.write.1.tlog
14 |
--------------------------------------------------------------------------------
/audprog/Release/audprog.log:
--------------------------------------------------------------------------------
1 | Build started 17.10.2016 22:18:59.
2 | 1>Project "d:\Documents\Dropbox\Projects\PC\audprog\audprog\audprog.vcxproj" on node 2 (Clean target(s)).
3 | 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppClean.targets(76,5): warning : The process cannot access the file 'd:\documents\dropbox\projects\pc\audprog\audprog\release\audprog.obj' because it is being used by another process.
4 | 1>Done Building Project "d:\Documents\Dropbox\Projects\PC\audprog\audprog\audprog.vcxproj" (Clean target(s)).
5 |
6 | Build succeeded.
7 |
8 | Time Elapsed 00:00:00.08
9 |
--------------------------------------------------------------------------------
/audprog/Release/audprog.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v-ladimir/audprog/2f5b9a235e91062f2966746c037435bd77d34cca/audprog/Release/audprog.obj
--------------------------------------------------------------------------------
/audprog/SPI_EE.cpp:
--------------------------------------------------------------------------------
1 | #include "SPI_EE.h"
2 |
3 | void serialize(unsigned char* data, unsigned char* rawData, const unsigned int dataSize) {
4 | for (unsigned int q = 0; q < dataSize; q++) {
5 | for (unsigned char i = 0; i < 8; i++) {
6 | if (*data & (1 << (7 - i))) {
7 | *rawData = MOSI;
8 | rawData++;
9 | *rawData = MOSI | CLK;
10 | rawData++;
11 | }
12 | else {
13 | *rawData = 0;
14 | rawData++;
15 | *rawData = CLK;
16 | rawData++;
17 | }
18 | }
19 | data++;
20 | }
21 | }
22 |
23 | void deserialize(unsigned char* rawData, unsigned char* data, unsigned int rawDataSize) {
24 | for (unsigned char q = 0; q < (rawDataSize / 16); q++) {
25 | *data = 0;
26 | for (unsigned char i = 0; i < 8; i++) {
27 | rawData++;
28 | if (*rawData & MISO) {
29 | *data |= 1 << (7 - i);
30 | };
31 | rawData++;
32 | }
33 | data++;
34 | }
35 | }
36 |
37 |
38 | void writeEnable(FT_HANDLE ftDevice) {
39 | unsigned char header[] = { 0x06 };
40 | DWORD b;
41 | struct {
42 | unsigned char csInit;
43 | unsigned char data[sizeof(header) * 16];
44 | unsigned char csHigh;
45 | } rawData;
46 |
47 | rawData.csHigh = CS;
48 | rawData.csInit = CS;
49 |
50 | serialize(header, rawData.data, sizeof(header));
51 | FT_Write(ftDevice, &rawData, sizeof(rawData), &b);
52 | FT_Read(ftDevice, &rawData, sizeof(rawData), &b);
53 | }
54 |
55 | void writeDisable(FT_HANDLE ftDevice) {
56 | unsigned char header[] = { 0x04 };
57 | DWORD b;
58 | struct {
59 | unsigned char csInit;
60 | unsigned char data[sizeof(header) * 16];
61 | unsigned char csHigh;
62 | } rawData;
63 |
64 | rawData.csHigh = CS;
65 | rawData.csInit = CS;
66 |
67 | serialize(header, rawData.data, sizeof(header));
68 | FT_Write(ftDevice, &rawData, sizeof(rawData), &b);
69 | FT_Read(ftDevice, &rawData, sizeof(rawData), &b);
70 | }
71 |
72 |
73 |
74 | void devWriteByte(FT_HANDLE ftDevice, unsigned char wByte, unsigned short address) {
75 | unsigned char header[] = {0x06};
76 | unsigned char packet[] = {0x02, (unsigned char)((address >> 8) & 0xFF), (unsigned char)(address & 0xFF), wByte };
77 | DWORD b = 0;
78 | struct {
79 | unsigned char csInit;
80 | unsigned char header[sizeof(header) * 16];
81 | unsigned char csHighMid;
82 | unsigned char data[sizeof(packet) * 16];
83 | unsigned char csHigh;
84 | } rawData;
85 |
86 | rawData = { CS, {}, CS, {}, CS};
87 | serialize(header, rawData.header, sizeof(header));
88 | serialize(packet, rawData.data, sizeof(packet));
89 | FT_Write(ftDevice, &rawData, sizeof(rawData), &b);
90 | FT_Read(ftDevice, &rawData, sizeof(rawData), &b);
91 | while (getStatus(ftDevice) & 1);
92 | }
93 |
94 |
95 | unsigned char devReadByte(FT_HANDLE ftDevice, unsigned short address) {
96 | unsigned char packet[] = { 0x03, (unsigned char)((address >> 8) & 0xFF), (unsigned char)(address & 0xFF), 0x00 };
97 | DWORD b;
98 | struct {
99 | unsigned char csInit;
100 | unsigned char data[sizeof(packet) * 16];
101 | unsigned char csHigh;
102 | } rawData;
103 |
104 | rawData.csInit = CS;
105 | rawData.csHigh = CS;
106 |
107 | serialize(packet, rawData.data, sizeof(packet));
108 | FT_Write(ftDevice, &rawData, sizeof(rawData), &b);
109 | FT_Read(ftDevice, &rawData, sizeof(rawData), &b);
110 | deserialize(rawData.data, packet, sizeof(rawData));
111 | return(packet[3]);
112 | }
113 |
114 | unsigned char getStatus(FT_HANDLE ftDevice) {
115 | unsigned char header[] = { 0x05 };
116 | unsigned char data[] = { 0x00 };
117 | DWORD b;
118 | struct {
119 | unsigned char csInit;
120 | unsigned char header[sizeof(header) * 16];
121 | unsigned char data[(sizeof(data)) * 16];
122 | unsigned char csHigh;
123 | } rawData;
124 |
125 | rawData = { CS, {}, {}, CS};
126 |
127 | serialize(header, rawData.header, sizeof(header));
128 | serialize(data, rawData.data, sizeof(data));
129 | FT_Write(ftDevice, &rawData, sizeof(rawData), &b);
130 | FT_Read(ftDevice, &rawData, sizeof(rawData), &b);
131 | unsigned char status = 0;
132 | deserialize(rawData.data, &status, sizeof(rawData.data));
133 | return status;
134 | }
135 |
--------------------------------------------------------------------------------
/audprog/SPI_EE.h:
--------------------------------------------------------------------------------
1 | #ifndef __SPI_EE_H_
2 | #define __SPI_EE_H_
3 |
4 | #include "stdafx.h"
5 | #include "ftd2xx.h"
6 |
7 | // pin definition
8 | // NEW HW
9 |
10 | #define CS ((unsigned char)((1<<4)|(1<<6)))
11 | #define CLK ((unsigned char)(1<<6))
12 | #define MOSI ((unsigned char)(1<<3))
13 | #define MISO ((unsigned char)(1<<0))
14 |
15 |
16 | // OLD HW
17 | /*
18 | #define CS ((unsigned char)((1<<3)|(1<<0)))
19 | #define CLK (1<<0)
20 | #define MOSI (1<<2)
21 | #define MISO (1<<1)
22 | */
23 |
24 |
25 | //EEPROM routines prototypes
26 | unsigned char getStatus(FT_HANDLE ftDevice);
27 | void writeEnable(FT_HANDLE ftDevice);
28 | void writeDisable(FT_HANDLE ftDevice);
29 | void devWriteByte(FT_HANDLE ftDevice, unsigned char wByte, unsigned short address);
30 | unsigned char devReadByte(FT_HANDLE ftDevice, unsigned short address);
31 |
32 | #endif
--------------------------------------------------------------------------------
/audprog/audprog.cbp:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/audprog/audprog.cbp.save-failed:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/audprog/audprog.cpp:
--------------------------------------------------------------------------------
1 | #include "audprog.h"
2 |
3 | #define exit() printf_s("\nPress any key...");\
4 | getchar();\
5 | return 0\
6 |
7 | void printHelp() {
8 | const wchar_t* help = L"AUD Programmimg utility v0.1. Please report errors to shuher@list.ru\nUsage:\n\
9 | audprog.exe -d -i -m -a -o -s -l -f \n\
10 | - number of FTDI device (useful for multichannel devices like FT2232)\n\
11 | <--list> - use \"audprog.exe --list\" to query the list of FTDI devices attached to the system to determine the correct one for usage\n\
12 | - \"AUD\" or \"EE\"\n\
13 | - \"byte\", \"word\" or \"longword\"\n\
14 | - \"read\", \"write\", \"print\", \"dump\" or \"monitor\"\n\
15 | - to start from, decimal or hexadecimal\n\
16 | - ROM size for AUD dumping - \"512\" or \"1024\", EEPROM size for EEPROM dumping (in kBytes) - \"1\" or \"4\" for 93cxx ICs, \"32\" or \"64\" for 95xxx ICs\n\
17 | - data size to be read from AUD (in bytes, words or longwords depending on AUD mode)\n\
18 | - file to save/dump to or to read from";
19 |
20 | wprintf(help);
21 | }
22 |
23 | unsigned long le2be(unsigned long leData)
24 | {
25 | return ((leData & 0xFF00FF00) >> 8) | ((leData & 0x00FF00FF) << 8);
26 | }
27 |
28 | unsigned long lw2bw(unsigned long leData)
29 | {
30 | return ((leData & 0xFFFF0000) >> 16) | ((leData & 0x0000FFFF) << 16);
31 | }
32 |
33 | HANDLE CreateStorage(wchar_t* filename) {
34 | HANDLE hStorage = CreateFile(filename,
35 | GENERIC_READ | GENERIC_WRITE,
36 | 0,
37 | NULL, // no security attributes
38 | CREATE_ALWAYS,
39 | 0, // not overlapped I/O
40 | NULL // hTemplate must be NULL for comm devices
41 | );
42 | if (hStorage == INVALID_HANDLE_VALUE) {
43 | // Handle the error.
44 | wprintf(L"CreateFile %s failed with error %d.\n", filename, GetLastError());
45 | return (INVALID_HANDLE_VALUE);
46 | }
47 | return hStorage;
48 | }
49 |
50 | HANDLE OpenStorage(wchar_t* filename) {
51 | HANDLE hStorage = CreateFile(filename,
52 | GENERIC_READ,
53 | 0,
54 | NULL, // no security attributes
55 | OPEN_EXISTING,
56 | 0, // not overlapped I/O
57 | NULL // hTemplate must be NULL for comm devices
58 | );
59 | if (hStorage == INVALID_HANDLE_VALUE) {
60 | // Handle the error.
61 | wprintf(L"Open file %s failed with error %d.\n", filename, GetLastError());
62 | return (INVALID_HANDLE_VALUE);
63 | }
64 | return hStorage;
65 | }
66 |
67 | void FT_PrintDeviceList() {
68 | FT_DEVICE_LIST_INFO_NODE *devInfo;
69 | unsigned long numDevs;
70 | FT_CreateDeviceInfoList(&numDevs);
71 |
72 | if (numDevs > 0) {
73 | devInfo = (FT_DEVICE_LIST_INFO_NODE*)malloc(sizeof(FT_DEVICE_LIST_INFO_NODE)*numDevs);
74 |
75 | if (FT_GetDeviceInfoList(devInfo, &numDevs) == FT_OK) {
76 | for (unsigned int i = 0; i < numDevs; i++) {
77 | printf_s("Device %d: \"%s\"\n", i, devInfo[i].Description);
78 | }
79 | }
80 | } else {
81 | wprintf_s(L"No FTDI deivces found\n");
82 | }
83 | }
84 |
85 | FT_HANDLE FTDI_Init(unsigned int devNum) {
86 | FT_HANDLE ftDevice;
87 | unsigned long numDevs = 0;
88 |
89 | if (FT_CreateDeviceInfoList(&numDevs) != FT_OK) {
90 | printf("No FTDI devices found\n");
91 | return NULL;
92 | }
93 |
94 | if (devNum > numDevs) {
95 | printf("Incorrect deivice number specified\n");
96 | return NULL;
97 | }
98 |
99 | FT_DEVICE_LIST_INFO_NODE *devInfo = (FT_DEVICE_LIST_INFO_NODE*)malloc(sizeof(FT_DEVICE_LIST_INFO_NODE)*numDevs);
100 | FT_GetDeviceInfoList(devInfo, &numDevs);
101 | FT_OpenEx(devInfo[devNum].Description, FT_OPEN_BY_DESCRIPTION, &ftDevice);
102 |
103 | FT_ResetDevice(ftDevice);
104 |
105 | if (FT_SetBaudRate(ftDevice, 460800) != FT_OK)
106 | {
107 | printf("Baudraet set error\n");
108 | return NULL;
109 | }
110 |
111 | if (FT_SetLatencyTimer(ftDevice, 1) != FT_OK) {
112 | printf("Latency set error\n");
113 | return NULL;
114 | }
115 |
116 | if (FT_SetUSBParameters(ftDevice, 128, 128) != FT_OK) {
117 | printf("USB transfer size error\n");
118 | return NULL;
119 | }
120 |
121 | return ftDevice;
122 | }
123 |
124 | int getopts(PARAMS *params, int argc, wchar_t* argv[]){
125 |
126 | for (int q = 1; q < argc - 1; q++) {
127 |
128 | // getting filename
129 | if (wcscmp(argv[q], L"-f") == 0) {
130 | if (wcsstr(argv[q + 1], L"-") != argv[q + 1]) { // filename starting from "-" is probably a result of ommiting filename itself
131 | params->fileName = (wchar_t*)(argv[q + 1]);
132 | }
133 | else {
134 | wprintf_s(L"Filename seems to be omitted \"%s\"\nPlease enter filename not starting from \"-\" symbol\n", argv[q + 1]);
135 | return 1;
136 | }
137 | }
138 |
139 | // getting FTDI device number
140 | if (wcscmp(argv[q], L"-d") == 0) {
141 | if (swscanf_s(argv[q + 1], L"%i", ¶ms->ftDeviceNum) != 1) {
142 | wprintf_s(L"Incorrect device numder - \"%s\" Using default value %d\n", argv[q + 1], params->ftDeviceNum);
143 | }
144 | }
145 |
146 | // choosing EEPROM or AUD
147 | if (wcscmp(argv[q], L"-i") == 0) {
148 | if (wcscmp(argv[q + 1], L"AUD") == 0) {
149 | params->iface = AUD;
150 | }
151 | if (wcscmp(argv[q + 1], L"EE") == 0) params->iface = EEPROM;
152 | if (params->iface == DEVICE_IFACE_NONE) {
153 | wprintf_s(L"Incorrect interface type specified - \"%s\"\n", argv[q + 1]);
154 | return 1;
155 | }
156 | }
157 |
158 | // choosing AUD mode
159 | if (wcscmp(argv[q], L"-m") == 0) {
160 | if (wcscmp(argv[q + 1], L"byte") == 0) params->mode = AUD_BYTE;
161 | if (wcscmp(argv[q + 1], L"word") == 0) params->mode = AUD_WORD;
162 | if (wcscmp(argv[q + 1], L"longword") == 0) params->mode = AUD_LONGWORD;
163 | if ((params->mode == AUD_LONGWORD) && (wcscmp(argv[q + 1], L"longword") != 0)) {
164 | wprintf_s(L"Incorrect AUD mode specified - \"%s\" Using default mode - \"LONGWORD\"\n", argv[q + 1]);
165 | }
166 | }
167 |
168 | // setting action
169 | if (wcscmp(argv[q], L"-a") == 0) {
170 | if (wcscmp(argv[q + 1], L"read") == 0) params->action = READ;
171 | if (wcscmp(argv[q + 1], L"write") == 0) params->action = WRITE;
172 | if (wcscmp(argv[q + 1], L"dump") == 0) params->action = DUMP;
173 | if (wcscmp(argv[q + 1], L"print") == 0) params->action = PRINT;
174 | if (wcscmp(argv[q + 1], L"monitor") == 0) params->action = MONITOR;
175 | if (params->action == DEVICE_ACTION_NONE) {
176 | wprintf_s(L"Incorrect action specified - \"%s\"\n", argv[q + 1]);
177 | return 1;
178 | }
179 | }
180 |
181 | // getting offset
182 | if (wcscmp(argv[q], L"-o") == 0) {
183 | if (swscanf_s(argv[q + 1], L"%i", ¶ms->offset) != 1) {
184 | wprintf_s(L"Incorrect offset specified - \"%s\" Using default value %d\n", argv[q + 1], params->offset);
185 | }
186 | }
187 |
188 | // getting lenght
189 | if (wcscmp(argv[q], L"-l") == 0) {
190 | if (swscanf_s(argv[q + 1], L"%i", ¶ms->len) != 1) {
191 | wprintf_s(L"Incorrect lenght specified - \"%s\" Using default value %d\n", argv[q + 1], params->len);
192 | }
193 | }
194 |
195 | // choosing ROM size for dumping
196 | if (wcscmp(argv[q], L"-s") == 0) {
197 | if (wcscmp(argv[q + 1], L"512") == 0) params->romSize = ROM_512;
198 | if (wcscmp(argv[q + 1], L"1024") == 0) params->romSize = ROM_1024;
199 | if (wcscmp(argv[q + 1], L"32") == 0) params->romSize = EE_32;
200 | if (wcscmp(argv[q + 1], L"64") == 0) params->romSize = EE_64;
201 | if ((params->romSize == ROM_512) && (wcscmp(argv[q + 1], L"512") != 0)) {
202 | wprintf_s(L"Incorrect ROM size specified - \"%s\" Using default size - \"512\"\n", argv[q + 1]);
203 | }
204 | }
205 |
206 | }
207 |
208 | params->ftDevice = FTDI_Init(params->ftDeviceNum);
209 | return 0;
210 | }
211 |
212 |
213 | int AUD_uploadFile(PARAMS* params) {
214 | HANDLE iFile = OpenStorage(params->fileName);
215 | params->len = GetFileSize(iFile, NULL);
216 | unsigned long b;
217 | unsigned long a = params->offset;
218 | unsigned char bData;
219 | unsigned short wData;
220 | unsigned long lData;
221 |
222 | if (params->mode == AUD_WORD) a = (a / 2) * 2; // to avoid unaligned access 4n+1 or 4n+3
223 | if (params->mode == AUD_LONGWORD) a = (a / 4) * 4; // to avoid unaligned access 4n+1, 4n+2 or 4n+3
224 | printf("\nUploading from offset 0x%06x\n", a);
225 | AUD_SHSetRAMmode(params->ftDevice);
226 |
227 | while (a < params->offset + params->len) {
228 | switch (params->mode) {
229 | case AUD_BYTE:
230 | ReadFile(iFile, &bData, sizeof(bData), &b, NULL);
231 | AUD_writeByte(params->ftDevice, a, bData);
232 | a++;
233 | printf("%2d%%\r", (100 * (a - params->offset) / (params->len)));
234 | break;
235 | case AUD_WORD:
236 | ReadFile(iFile, &wData, sizeof(wData), &b, NULL);
237 | AUD_writeWord(params->ftDevice, a, wData);
238 | a += 2;
239 | printf("%2d%%\r", (100 * (a - params->offset) / (params->len)));
240 | break;
241 | case AUD_LONGWORD:
242 | ReadFile(iFile, &lData, sizeof(lData), &b, NULL);
243 | AUD_writeLWord(params->ftDevice, a, lData);
244 | a += 4;
245 | printf("%2d%%\r", (100 * (a - params->offset) / (params->len)));
246 | break;
247 | }
248 | }
249 | CloseHandle(iFile);
250 | printf_s("%d bytes written\n", params->len);
251 | return 0;
252 | }
253 |
254 | int AUD_readToFile(PARAMS* params) {
255 | HANDLE oFile = CreateStorage(params->fileName);
256 | unsigned long b;
257 | unsigned long a = params->offset;
258 | unsigned char bData;
259 | unsigned short wData;
260 | unsigned long lData;
261 |
262 | if (params->mode == AUD_WORD) {
263 | a = (a / 2) * 2; // to avoid unaligned access 4n+1 or 4n+3
264 | params->len *= 2;
265 | }
266 | if (params->mode == AUD_LONGWORD) {
267 | a = (a / 4) * 4; // to avoid unaligned access 4n+1, 4n+2 or 4n+3
268 | params->len *= 4;
269 | }
270 | printf("\nReading from offset 0x%06x\n", a);
271 |
272 | AUD_SHSetRAMmode(params->ftDevice);
273 |
274 | while (a < params->offset + params->len) {
275 | switch (params->mode) {
276 | case AUD_BYTE:
277 | bData = AUD_readByte(params->ftDevice, a);
278 | WriteFile(oFile, &bData, sizeof(bData), &b, NULL);
279 | a++;
280 | printf("%2d%%\r", (100 * (a - params->offset) / (params->len)));
281 | break;
282 | case AUD_WORD:
283 | wData = AUD_readWord(params->ftDevice, a);
284 | WriteFile(oFile, &wData, sizeof(wData), &b, NULL);
285 | a += 2;
286 | printf("%2d%%\r", (100 * (a - params->offset) / (params->len)));
287 | break;
288 | case AUD_LONGWORD:
289 | lData = AUD_readLWord(params->ftDevice, a);
290 | WriteFile(oFile, &lData, sizeof(lData), &b, NULL);
291 | a += 4;
292 | printf("%2d%%\r", (100 * (a - params->offset) / (params->len)));
293 | break;
294 | }
295 | }
296 | CloseHandle(oFile);
297 | return 0;
298 | }
299 |
300 | int AUD_readToScreen(PARAMS* params) {
301 |
302 | unsigned long pData;
303 |
304 | if (params->mode == AUD_WORD) params->offset = (params->offset / 2) * 2; // to avoid unaligned access 4n+1 or 4n+3
305 | if (params->mode == AUD_LONGWORD) params->offset = (params->offset / 4) * 4; // to avoid unaligned access 4n+1, 4n+2 or 4n+3
306 | unsigned long a = params->offset;
307 |
308 | printf_s("\n");
309 |
310 | AUD_SHSetRAMmode(params->ftDevice);
311 |
312 | while (a < params->offset + params->len) {
313 | switch (params->mode) {
314 | case AUD_BYTE:
315 | pData = le2be(AUD_readByte(params->ftDevice, a));
316 | if ((a - params->offset) % 0x10 == 0) printf_s("\n0x%06x ", a);
317 | printf_s("%02x ", pData);
318 | a++;
319 | break;
320 | case AUD_WORD:
321 | pData = le2be(AUD_readWord(params->ftDevice, a));
322 | if ((a - params->offset) % 0x10 == 0) printf_s("\n0x%06x ", a);
323 | printf_s("%04x ", pData);
324 | a += 2;
325 | break;
326 | case AUD_LONGWORD:
327 | pData = lw2bw(le2be(AUD_readLWord(params->ftDevice, a)));
328 | if ((a - params->offset) % 0x010 == 0) printf_s("\n0x%06x ", a);
329 | printf_s("%08x ", pData);
330 | a += 4;
331 | break;
332 | }
333 | }
334 | return 0;
335 | }
336 |
337 | int AUD_monitor(PARAMS* params) {
338 |
339 | unsigned long lData;
340 |
341 | params->offset = (params->offset / 4) * 4; // to avoid unaligned access 4n+1, 4n+2 or 4n+3
342 | unsigned long a = params->offset;
343 |
344 | AUD_SHSetRAMmode(params->ftDevice);
345 | while (1) {
346 | lData = lw2bw(le2be(AUD_readLWord(params->ftDevice, a)));
347 | printf_s("\r0x%06x ", a);
348 | printf_s("%08x ", lData);
349 | }
350 | return 0;
351 | }
352 |
353 |
354 | int AUD_dumpToFile(PARAMS* params) {
355 | unsigned long a = 0;
356 | int speed = 0, total = 0, elapsed = 0, left = 0;
357 | unsigned long b;
358 | unsigned long long oTick = GetTickCount64();
359 | unsigned long long iTick = GetTickCount64();
360 | unsigned long size = 0x80000;
361 |
362 | if (params->romSize == ROM_1024) size *= 2;
363 | printf("\nDumping %d bytes\n", size);
364 |
365 | AUD_SHSetRAMmode(params->ftDevice);
366 |
367 | HANDLE oFile = CreateStorage(params->fileName);
368 | while (a < size) {
369 | unsigned long d = (AUD_readLWord(params->ftDevice, a));
370 | WriteFile(oFile, &d, sizeof(d), &b, NULL);
371 | a += 4;
372 | if (a % 0x400 == 0) {
373 | unsigned long long cTick = GetTickCount64();
374 | speed = (int)(0x400 * 1000 / (cTick - oTick));
375 |
376 | total = (int)(size / speed) / 60;
377 | elapsed = (int)((cTick - iTick) / 1000) / 60;
378 | left = total - elapsed;
379 | oTick = cTick;
380 | }
381 | wprintf(L"Reading... 0x0%06x %02d%% %d bps ", a, (a * 100 / size), speed);
382 | wprintf(L"%d min elapsed, %d min left.\r", elapsed, left);
383 | }
384 | CloseHandle(oFile);
385 | return 0;
386 | }
387 |
388 | //EEPROM
389 | int EE_readToFile(PARAMS* params) {
390 | if (!((params->romSize == EE_32) || (params->romSize == EE_64))) {
391 | wprintf(L"\nERROR - incorrect EEPROM size\n");
392 | return 1;
393 | };
394 |
395 | HANDLE oFile = CreateStorage(params->fileName);
396 | DWORD b;
397 | unsigned int a = 0;
398 |
399 | printf("\nReading\n");
400 |
401 | if (FT_SetBitMode(params->ftDevice, MOSI | CS | CLK, FT_BITMODE_SYNC_BITBANG) != FT_OK) {
402 | printf("Error setting bit bang mode\n");
403 | return 1;
404 | }
405 |
406 | unsigned long size = 0xFFF;
407 | if (params->romSize == EE_64) size = 0x1FFF;
408 |
409 | for (a = 0; a <= size; a++) {
410 | unsigned char data = devReadByte(params->ftDevice, a);
411 | WriteFile(oFile, &data, sizeof(data), &b, NULL);
412 | printf(" \r%02d%%", ((100 * a) / size));
413 | }
414 | printf("\r100%%\n%d bytes saved\n", a);
415 | CloseHandle(oFile);
416 | return 0;
417 | }
418 |
419 | int EE_writeFile(PARAMS* params) {
420 | DWORD b;
421 | unsigned int a = 0;
422 | HANDLE iFile = OpenStorage(params->fileName);
423 | unsigned int len = GetFileSize(iFile, NULL);
424 | unsigned char data = 0;
425 |
426 | printf("\nWriting...\n");
427 |
428 | if (FT_SetBitMode(params->ftDevice, MOSI | CS | CLK, FT_BITMODE_SYNC_BITBANG) != FT_OK) {
429 | printf("Error setting bit bang mode\n");
430 | return 1;
431 | }
432 |
433 | for (a = 0; a < len; a++) {
434 | ReadFile(iFile, &data, sizeof(data), &b, NULL);
435 | devWriteByte(params->ftDevice, data, a);
436 | printf(" \r%02d%%", ((100 * a) / len));
437 | }
438 |
439 | writeDisable(params->ftDevice);
440 | printf("\r100%%\n%d bytes written.\n", a);
441 | CloseHandle(iFile);
442 | return 0;
443 | }
444 |
445 | int _tmain(int argc, _TCHAR* argv[]) {
446 | // audprog.exe -d -i -m -a -o -l -s -f
447 |
448 | PARAMS params;
449 | unsigned long num = 0;
450 | FT_CreateDeviceInfoList(&num);
451 |
452 | if (argc == 1) {
453 | printHelp();
454 | return 0;
455 | }
456 |
457 | //printing FTDI device list
458 | if ((wcscmp(argv[1], L"--list") == 0) && argc == 2) {
459 | FT_PrintDeviceList();
460 | return 0;
461 | }
462 | else {
463 | if (num > 1) wprintf_s(L"There are %d FTDI devices found, please ensure that the correct one is used. Use \"audprog.exe --list\" to query available devices.\n", num);
464 | }
465 |
466 | if (getopts(¶ms, argc, argv) != 0) return 1; // parameters were exctracted OK, let's decide what to do next
467 |
468 | if (params.iface == AUD) {
469 | switch (params.action) {
470 | case READ:
471 | AUD_readToFile(¶ms); break;
472 | case WRITE:
473 | AUD_uploadFile(¶ms); break;
474 | case PRINT:
475 | AUD_readToScreen(¶ms); break;
476 | case DUMP:
477 | AUD_dumpToFile(¶ms); break;
478 | case MONITOR:
479 | AUD_monitor(¶ms); break;
480 | }
481 | return 0;
482 | }
483 |
484 | if (params.iface == EEPROM) {
485 | switch (params.action) {
486 | case READ:
487 | if (params.romSize == ROM_512 || params.romSize == ROM_1024) {
488 | params.romSize = EE_32; // stupid way to process EE_SIZE options in the same way as ROM_SIZE
489 | wprintf_s(L"Incorrect EEPROM size specified (use \"-s 32\" or \"-s 64\" option for this), defaulting to 32kb EEPROM size\n");
490 | }
491 | EE_readToFile(¶ms);
492 | break;
493 | case WRITE: EE_writeFile(¶ms); break;
494 | default: wprintf_s(L"Requested action cannot be performed for EEPROM\n");
495 | }
496 | return 0;
497 | }
498 | printHelp();
499 | return 1;
500 | }
--------------------------------------------------------------------------------
/audprog/audprog.h:
--------------------------------------------------------------------------------
1 | #ifndef __AUDPROG_H_
2 | #define __AUDPROG_H_
3 |
4 | #include "stdafx.h"
5 | #include "ftd2xx.h"
6 | #include "AUD.h"
7 | #include "SPI_EE.h"
8 |
9 | enum DEVICE_IFACE {AUD, EEPROM, DEVICE_IFACE_NONE};
10 | enum AUD_MODE {AUD_BYTE, AUD_WORD, AUD_LONGWORD};
11 | enum DEVICE_ACTION {READ, WRITE, PRINT, DUMP, MONITOR, DEVICE_ACTION_NONE};
12 | enum ROM_SIZE {ROM_512, ROM_1024, EE_32, EE_64};
13 |
14 | struct PARAMS {
15 | int ftDeviceNum = 0;
16 | FT_HANDLE ftDevice = NULL;
17 | unsigned long offset = 0;
18 | unsigned long len = 1;
19 | wchar_t * fileName = NULL;
20 | DEVICE_IFACE iface = DEVICE_IFACE_NONE;
21 | DEVICE_ACTION action = DEVICE_ACTION_NONE;
22 | AUD_MODE mode = AUD_LONGWORD;
23 | ROM_SIZE romSize = ROM_512;
24 | };
25 |
26 | //main functions prototypes
27 | // AUD
28 | int AUD_uploadFile(PARAMS* params);
29 | int AUD_readToFile(PARAMS* params);
30 | int AUD_readToScreen(PARAMS* params);
31 | int AUD_dumpToFile(PARAMS* params);
32 |
33 | //EEPROM
34 | int EE_readToFile(PARAMS* params);
35 | int EE_writeFile(PARAMS* params);
36 |
37 | #endif
--------------------------------------------------------------------------------
/audprog/audprog.layout:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/audprog/audprog.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 |
14 | {79CE91B5-8758-40B7-A7BB-563B870FFD47}
15 | Win32Proj
16 | audprog
17 |
18 |
19 |
20 | Application
21 | true
22 | v120
23 | Unicode
24 | true
25 |
26 |
27 | Application
28 | false
29 | v120
30 | true
31 | Unicode
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | true
45 |
46 |
47 | false
48 |
49 |
50 |
51 |
52 |
53 | Level3
54 | Disabled
55 | WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)
56 | true
57 | true
58 | StreamingSIMDExtensions2
59 | None
60 | false
61 | Default
62 |
63 |
64 | Console
65 | true
66 | ftd2xx.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
67 |
68 |
69 |
70 |
71 | Level3
72 |
73 |
74 | MaxSpeed
75 | true
76 | true
77 | WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)
78 | true
79 | StreamingSIMDExtensions2
80 | Default
81 |
82 |
83 | Console
84 | true
85 | true
86 | true
87 | ftd2xx.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/audprog/audprog.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hh;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | Header Files
23 |
24 |
25 | Header Files
26 |
27 |
28 | Header Files
29 |
30 |
31 | Header Files
32 |
33 |
34 | Header Files
35 |
36 |
37 | Header Files
38 |
39 |
40 |
41 |
42 | Source Files
43 |
44 |
45 | Source Files
46 |
47 |
48 | Source Files
49 |
50 |
51 | Source Files
52 |
53 |
54 |
--------------------------------------------------------------------------------
/audprog/audprog.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/audprog/ftd2xx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v-ladimir/audprog/2f5b9a235e91062f2966746c037435bd77d34cca/audprog/ftd2xx.h
--------------------------------------------------------------------------------
/audprog/ftd2xx.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v-ladimir/audprog/2f5b9a235e91062f2966746c037435bd77d34cca/audprog/ftd2xx.lib
--------------------------------------------------------------------------------
/audprog/stdafx.cpp:
--------------------------------------------------------------------------------
1 | // stdafx.cpp : source file that includes just the standard includes
2 | // audprog.pch will be the pre-compiled header
3 | // stdafx.obj will contain the pre-compiled type information
4 |
5 | #include "stdafx.h"
6 |
7 | // TODO: reference any additional headers you need in STDAFX.H
8 | // and not in this file
9 |
--------------------------------------------------------------------------------
/audprog/stdafx.h:
--------------------------------------------------------------------------------
1 | // stdafx.h : include file for standard system include files,
2 | // or project specific include files that are used frequently, but
3 | // are changed infrequently
4 | //
5 |
6 | #pragma once
7 |
8 | #include "targetver.h"
9 |
10 | #include
11 | #include
12 |
13 |
14 |
15 | // TODO: reference additional headers your program requires here
16 |
--------------------------------------------------------------------------------
/audprog/targetver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // Including SDKDDKVer.h defines the highest available Windows platform.
4 |
5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
7 |
8 | #include
9 |
--------------------------------------------------------------------------------
/hw/audprog_v2-F.Cu.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v-ladimir/audprog/2f5b9a235e91062f2966746c037435bd77d34cca/hw/audprog_v2-F.Cu.pdf
--------------------------------------------------------------------------------
/hw/audprog_v2-cache.lib:
--------------------------------------------------------------------------------
1 | EESchema-LIBRARY Version 2.3
2 | #encoding utf-8
3 | #
4 | # +3V3
5 | #
6 | DEF +3V3 #PWR 0 0 Y Y 1 F P
7 | F0 "#PWR" 0 -150 50 H I C CNN
8 | F1 "+3V3" 0 140 50 H V C CNN
9 | F2 "" 0 0 50 H V C CNN
10 | F3 "" 0 0 50 H V C CNN
11 | ALIAS +3.3V
12 | DRAW
13 | P 2 0 1 0 -30 50 0 100 N
14 | P 2 0 1 0 0 0 0 100 N
15 | P 2 0 1 0 0 100 30 50 N
16 | X +3V3 1 0 0 0 U 50 50 1 1 W N
17 | ENDDRAW
18 | ENDDEF
19 | #
20 | # +5V
21 | #
22 | DEF +5V #PWR 0 0 Y Y 1 F P
23 | F0 "#PWR" 0 -150 50 H I C CNN
24 | F1 "+5V" 0 140 50 H V C CNN
25 | F2 "" 0 0 50 H V C CNN
26 | F3 "" 0 0 50 H V C CNN
27 | DRAW
28 | P 2 0 1 0 -30 50 0 100 N
29 | P 2 0 1 0 0 0 0 100 N
30 | P 2 0 1 0 0 100 30 50 N
31 | X +5V 1 0 0 0 U 50 50 1 1 W N
32 | ENDDRAW
33 | ENDDEF
34 | #
35 | # AP1117
36 | #
37 | DEF AP1117 U 0 30 Y Y 1 F N
38 | F0 "U" 100 -250 50 H V C CNN
39 | F1 "AP1117" 0 250 50 H V C CNN
40 | F2 "" 0 0 50 H V C CNN
41 | F3 "" 0 0 50 H V C CNN
42 | ALIAS AP1117D15 AP1117D18 AP1117D25 AP1117D33 AP1117D50 AP1117E15 AP1117E18 AP1117E25 AP1117E33 AP1117E50 AP1117K15 AP1117K18 AP1117K25 AP1117K33 AP1117K50 AP1117T15 AP1117T18 AP1117T25 AP1117T33 AP1117T50 AP1117Y15 AP1117Y18 AP1117Y25 AP1117Y33 AP1117Y50
43 | $FPLIST
44 | SOT223
45 | SOT89-3
46 | TO220-3
47 | TO252
48 | TO263
49 | $ENDFPLIST
50 | DRAW
51 | S -200 -200 200 200 0 1 10 f
52 | X GND/ADJ 1 0 -300 100 U 50 50 1 1 W
53 | X VO 2 300 0 100 L 50 50 1 1 w
54 | X VI 3 -300 0 100 R 50 50 1 1 W
55 | ENDDRAW
56 | ENDDEF
57 | #
58 | # BC817-40
59 | #
60 | DEF BC817-40 Q 0 0 Y Y 1 F N
61 | F0 "Q" 200 75 50 H V L CNN
62 | F1 "BC817-40" 200 0 50 H V L CNN
63 | F2 "SOT-23" 200 -75 50 H V L CIN
64 | F3 "" 0 0 50 H V L CNN
65 | ALIAS BC818-40
66 | $FPLIST
67 | SOT-23*
68 | $ENDFPLIST
69 | DRAW
70 | C 50 0 111 0 1 10 N
71 | P 2 0 1 0 0 0 25 0 N
72 | P 2 0 1 0 100 100 25 25 N
73 | P 3 0 1 0 25 -25 100 -100 100 -100 N
74 | P 3 0 1 20 25 75 25 -75 25 -75 N
75 | P 5 0 1 0 50 -70 70 -50 90 -90 50 -70 50 -70 F
76 | X B 1 -200 0 200 R 50 50 1 1 I
77 | X E 2 100 -200 100 U 50 50 1 1 P
78 | X C 3 100 200 100 D 50 50 1 1 P
79 | ENDDRAW
80 | ENDDEF
81 | #
82 | # CONN_01X05
83 | #
84 | DEF CONN_01X05 P 0 40 Y N 1 F N
85 | F0 "P" 0 300 50 H V C CNN
86 | F1 "CONN_01X05" 100 0 50 V V C CNN
87 | F2 "" 0 0 50 H V C CNN
88 | F3 "" 0 0 50 H V C CNN
89 | $FPLIST
90 | Pin_Header_Straight_1X05
91 | Pin_Header_Angled_1X05
92 | Socket_Strip_Straight_1X05
93 | Socket_Strip_Angled_1X05
94 | $ENDFPLIST
95 | DRAW
96 | S -50 -195 10 -205 0 1 0 N
97 | S -50 -95 10 -105 0 1 0 N
98 | S -50 5 10 -5 0 1 0 N
99 | S -50 105 10 95 0 1 0 N
100 | S -50 205 10 195 0 1 0 N
101 | S -50 250 50 -250 0 1 0 N
102 | X P1 1 -200 200 150 R 50 50 1 1 P
103 | X P2 2 -200 100 150 R 50 50 1 1 P
104 | X P3 3 -200 0 150 R 50 50 1 1 P
105 | X P4 4 -200 -100 150 R 50 50 1 1 P
106 | X P5 5 -200 -200 150 R 50 50 1 1 P
107 | ENDDRAW
108 | ENDDEF
109 | #
110 | # CONN_02X04
111 | #
112 | DEF CONN_02X04 P 0 1 Y N 1 F N
113 | F0 "P" 0 250 50 H V C CNN
114 | F1 "CONN_02X04" 0 -250 50 H V C CNN
115 | F2 "" 0 -1200 50 H V C CNN
116 | F3 "" 0 -1200 50 H V C CNN
117 | $FPLIST
118 | Pin_Header_Straight_2X04
119 | Pin_Header_Angled_2X04
120 | Socket_Strip_Straight_2X04
121 | Socket_Strip_Angled_2X04
122 | $ENDFPLIST
123 | DRAW
124 | S -100 -145 -50 -155 0 1 0 N
125 | S -100 -45 -50 -55 0 1 0 N
126 | S -100 55 -50 45 0 1 0 N
127 | S -100 155 -50 145 0 1 0 N
128 | S -100 200 100 -200 0 1 0 N
129 | S 50 -145 100 -155 0 1 0 N
130 | S 50 -45 100 -55 0 1 0 N
131 | S 50 55 100 45 0 1 0 N
132 | S 50 155 100 145 0 1 0 N
133 | X P1 1 -250 150 150 R 50 50 1 1 P
134 | X P2 2 250 150 150 L 50 50 1 1 P
135 | X P3 3 -250 50 150 R 50 50 1 1 P
136 | X P4 4 250 50 150 L 50 50 1 1 P
137 | X P5 5 -250 -50 150 R 50 50 1 1 P
138 | X P6 6 250 -50 150 L 50 50 1 1 P
139 | X P7 7 -250 -150 150 R 50 50 1 1 P
140 | X P8 8 250 -150 150 L 50 50 1 1 P
141 | ENDDRAW
142 | ENDDEF
143 | #
144 | # CONN_02X08
145 | #
146 | DEF CONN_02X08 P 0 1 Y N 1 F N
147 | F0 "P" 0 450 50 H V C CNN
148 | F1 "CONN_02X08" 0 0 50 V V C CNN
149 | F2 "" 0 -1200 50 H V C CNN
150 | F3 "" 0 -1200 50 H V C CNN
151 | $FPLIST
152 | Pin_Header_Straight_2X08
153 | Pin_Header_Angled_2X08
154 | Socket_Strip_Straight_2X08
155 | Socket_Strip_Angled_2X08
156 | $ENDFPLIST
157 | DRAW
158 | S -100 -345 -50 -355 0 1 0 N
159 | S -100 -245 -50 -255 0 1 0 N
160 | S -100 -145 -50 -155 0 1 0 N
161 | S -100 -45 -50 -55 0 1 0 N
162 | S -100 55 -50 45 0 1 0 N
163 | S -100 155 -50 145 0 1 0 N
164 | S -100 255 -50 245 0 1 0 N
165 | S -100 355 -50 345 0 1 0 N
166 | S -100 400 100 -400 0 1 0 N
167 | S 50 -345 100 -355 0 1 0 N
168 | S 50 -245 100 -255 0 1 0 N
169 | S 50 -145 100 -155 0 1 0 N
170 | S 50 -45 100 -55 0 1 0 N
171 | S 50 55 100 45 0 1 0 N
172 | S 50 155 100 145 0 1 0 N
173 | S 50 255 100 245 0 1 0 N
174 | S 50 355 100 345 0 1 0 N
175 | X P1 1 -250 350 150 R 50 50 1 1 P
176 | X P2 2 250 350 150 L 50 50 1 1 P
177 | X P3 3 -250 250 150 R 50 50 1 1 P
178 | X P4 4 250 250 150 L 50 50 1 1 P
179 | X P5 5 -250 150 150 R 50 50 1 1 P
180 | X P6 6 250 150 150 L 50 50 1 1 P
181 | X P7 7 -250 50 150 R 50 50 1 1 P
182 | X P8 8 250 50 150 L 50 50 1 1 P
183 | X P9 9 -250 -50 150 R 50 50 1 1 P
184 | X P10 10 250 -50 150 L 50 50 1 1 P
185 | X P11 11 -250 -150 150 R 50 50 1 1 P
186 | X P12 12 250 -150 150 L 50 50 1 1 P
187 | X P13 13 -250 -250 150 R 50 50 1 1 P
188 | X P14 14 250 -250 150 L 50 50 1 1 P
189 | X P15 15 -250 -350 150 R 50 50 1 1 P
190 | X P16 16 250 -350 150 L 50 50 1 1 P
191 | ENDDRAW
192 | ENDDEF
193 | #
194 | # C_Small
195 | #
196 | DEF C_Small C 0 10 N N 1 F N
197 | F0 "C" 10 70 50 H V L CNN
198 | F1 "C_Small" 10 -80 50 H V L CNN
199 | F2 "" 0 0 50 H V C CNN
200 | F3 "" 0 0 50 H V C CNN
201 | $FPLIST
202 | C?
203 | C_????_*
204 | C_????
205 | SMD*_c
206 | Capacitor*
207 | $ENDFPLIST
208 | DRAW
209 | P 2 0 1 13 -60 -20 60 -20 N
210 | P 2 0 1 12 -60 20 60 20 N
211 | X ~ 1 0 100 75 D 40 40 1 1 P
212 | X ~ 2 0 -100 80 U 40 40 1 1 P
213 | ENDDRAW
214 | ENDDEF
215 | #
216 | # FT232RL
217 | #
218 | DEF FT232RL U 0 40 Y Y 1 F N
219 | F0 "U" -650 900 50 H V L CNN
220 | F1 "FT232RL" 400 900 50 H V L CNN
221 | F2 "SSOP-28" 0 0 50 H V C CNN
222 | F3 "" 0 0 50 H V C CNN
223 | $FPLIST
224 | SSOP*
225 | $ENDFPLIST
226 | DRAW
227 | S -650 850 650 -850 0 1 10 f
228 | X TXD 1 800 700 150 L 50 50 1 1 O
229 | X DTR 2 800 300 150 L 50 50 1 1 O V
230 | X RTS 3 800 500 150 L 50 50 1 1 O V
231 | X VCCIO 4 -100 1000 150 D 50 50 1 1 I
232 | X RXD 5 800 600 150 L 50 50 1 1 I
233 | X RI 6 800 0 150 L 50 50 1 1 I L
234 | X GND 7 0 -1000 150 U 50 50 1 1 W
235 | X DCR 9 800 200 150 L 50 50 1 1 I L
236 | X DCD 10 800 100 150 L 50 50 1 1 I L
237 | X VCC 20 100 1000 150 D 50 50 1 1 W
238 | X CTS 11 800 400 150 L 50 50 1 1 I L
239 | X GND 21 200 -1000 150 U 50 50 1 1 W
240 | X CBUS4 12 800 -700 150 L 50 50 1 1 B
241 | X CBUS1 22 800 -400 150 L 50 50 1 1 O
242 | X CBUS2 13 800 -500 150 L 50 50 1 1 B
243 | X CBUS0 23 800 -300 150 L 50 50 1 1 B
244 | X CBUS3 14 800 -600 150 L 50 50 1 1 B
245 | X USBD+ 15 -800 400 150 R 50 50 1 1 B
246 | X AGND 25 -200 -1000 150 U 50 50 1 1 W
247 | X USBD- 16 -800 300 150 R 50 50 1 1 B
248 | X TEST 26 -800 -700 150 R 50 50 1 1 W
249 | X 3V3OUT 17 -800 700 150 R 50 50 1 1 I
250 | X OSCI 27 -800 -200 150 R 50 50 1 1 I
251 | X GND 18 100 -1000 150 U 50 50 1 1 W
252 | X OSCO 28 -800 -400 150 R 50 50 1 1 O
253 | X ~RESET~ 19 -800 0 150 R 50 50 1 1 I
254 | ENDDRAW
255 | ENDDEF
256 | #
257 | # GND
258 | #
259 | DEF GND #PWR 0 0 Y Y 1 F P
260 | F0 "#PWR" 0 -250 50 H I C CNN
261 | F1 "GND" 0 -150 50 H V C CNN
262 | F2 "" 0 0 50 H V C CNN
263 | F3 "" 0 0 50 H V C CNN
264 | DRAW
265 | P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
266 | X GND 1 0 0 0 D 50 50 1 1 W N
267 | ENDDRAW
268 | ENDDEF
269 | #
270 | # JUMPER3
271 | #
272 | DEF JUMPER3 JP 0 30 Y N 1 F N
273 | F0 "JP" 50 -100 50 H V L CNN
274 | F1 "JUMPER3" 0 100 50 H V C BNN
275 | F2 "" 0 0 50 H V C CNN
276 | F3 "" 0 0 50 H V C CNN
277 | DRAW
278 | A -60 10 64 386 1413 0 1 0 N -10 50 -110 50
279 | A 60 10 64 386 1413 0 1 0 N 110 50 10 50
280 | C -120 0 35 0 1 0 N
281 | C 0 0 36 0 1 0 N
282 | C 120 0 35 0 1 0 N
283 | X 1 1 -250 0 95 R 40 40 0 1 P
284 | X 2 2 0 -100 60 U 40 40 0 1 P
285 | X 3 3 250 0 95 L 40 40 0 1 P
286 | ENDDRAW
287 | ENDDEF
288 | #
289 | # LM555N
290 | #
291 | DEF LM555N U 0 40 Y Y 1 F N
292 | F0 "U" -400 350 50 H V L CNN
293 | F1 "LM555N" -400 -350 50 H V L CNN
294 | F2 "" 0 0 50 H V C CNN
295 | F3 "" 0 0 50 H V C CNN
296 | ALIAS NE555
297 | $FPLIST
298 | DIP*
299 | TSSOP*
300 | SOIC*
301 | $ENDFPLIST
302 | DRAW
303 | X GND 1 0 -400 100 U 50 50 0 0 W N
304 | X VCC 8 0 400 100 D 50 50 0 0 W N
305 | S -350 -300 350 300 0 1 10 f
306 | S -350 -300 350 300 0 1 10 f
307 | X TR 2 -500 200 150 R 50 50 1 1 I
308 | X Q 3 500 200 150 L 50 50 1 1 O
309 | X R 4 -500 -200 150 R 50 50 1 1 I I
310 | X CV 5 -500 0 150 R 50 50 1 1 I
311 | X THR 6 500 -200 150 L 50 50 1 1 I
312 | X DIS 7 500 0 150 L 50 50 1 1 I
313 | ENDDRAW
314 | ENDDEF
315 | #
316 | # R_Small
317 | #
318 | DEF R_Small R 0 10 N N 1 F N
319 | F0 "R" 30 20 50 H V L CNN
320 | F1 "R_Small" 30 -40 50 H V L CNN
321 | F2 "" 0 0 50 H V C CNN
322 | F3 "" 0 0 50 H V C CNN
323 | $FPLIST
324 | Resistor_*
325 | R_*
326 | $ENDFPLIST
327 | DRAW
328 | S -30 70 30 -70 0 1 8 N
329 | X ~ 1 0 100 30 D 40 40 1 1 P
330 | X ~ 2 0 -100 30 U 40 40 1 1 P
331 | ENDDRAW
332 | ENDDEF
333 | #
334 | # USB_OTG
335 | #
336 | DEF USB_OTG P 0 40 Y Y 1 F N
337 | F0 "P" 325 -125 50 H V C CNN
338 | F1 "USB_OTG" 0 200 50 H V C CNN
339 | F2 "" -50 -100 50 V V C CNN
340 | F3 "" -50 -100 50 V V C CNN
341 | $FPLIST
342 | USB*
343 | $ENDFPLIST
344 | DRAW
345 | S -250 -150 250 150 0 1 0 N
346 | S -205 -150 -195 -120 0 1 0 N
347 | S -105 -150 -95 -120 0 1 0 N
348 | S -5 -150 5 -120 0 1 0 N
349 | S 95 -150 105 -120 0 1 0 N
350 | S 195 -150 205 -120 0 1 0 N
351 | X VCC 1 -200 -300 150 U 50 50 1 1 w
352 | X D- 2 -100 -300 150 U 50 50 1 1 P
353 | X D+ 3 0 -300 150 U 50 50 1 1 P
354 | X ID 4 100 -300 150 U 50 50 1 1 W
355 | X GND 5 200 -300 150 U 50 50 1 1 W
356 | X shield 6 400 100 150 L 50 50 1 1 P
357 | ENDDRAW
358 | ENDDEF
359 | #
360 | #End Library
361 |
--------------------------------------------------------------------------------
/hw/audprog_v2.net:
--------------------------------------------------------------------------------
1 | (export (version D)
2 | (design
3 | (source D:/Documents/Dropbox/Projects/HW/audprog_v2/audprog_v2.sch)
4 | (date "10.10.2016 22:38:36")
5 | (tool "Eeschema 4.0.3-stable")
6 | (sheet (number 1) (name /) (tstamps /)
7 | (title_block
8 | (title)
9 | (company)
10 | (rev)
11 | (date)
12 | (source audprog_v2.sch)
13 | (comment (number 1) (value ""))
14 | (comment (number 2) (value ""))
15 | (comment (number 3) (value ""))
16 | (comment (number 4) (value "")))))
17 | (components
18 | (comp (ref P4)
19 | (value CONN_02X08)
20 | (footprint Pin_Headers:Pin_Header_Straight_2x08)
21 | (libsource (lib conn) (part CONN_02X08))
22 | (sheetpath (names /) (tstamps /))
23 | (tstamp 56DCE10F))
24 | (comp (ref P3)
25 | (value CONN_02X04)
26 | (footprint Pin_Headers:Pin_Header_Straight_2x04)
27 | (libsource (lib conn) (part CONN_02X04))
28 | (sheetpath (names /) (tstamps /))
29 | (tstamp 56DCE1F6))
30 | (comp (ref U3)
31 | (value LM555N)
32 | (footprint Housings_SOIC:SOIJ-8_5.3x5.3mm_Pitch1.27mm)
33 | (libsource (lib linear) (part LM555N))
34 | (sheetpath (names /) (tstamps /))
35 | (tstamp 56DCE25E))
36 | (comp (ref U1)
37 | (value FT232RL)
38 | (footprint Housings_SSOP:SSOP-28_5.3x10.2mm_Pitch0.65mm)
39 | (libsource (lib ftdi) (part FT232RL))
40 | (sheetpath (names /) (tstamps /))
41 | (tstamp 57B99297))
42 | (comp (ref P1)
43 | (value USB_OTG)
44 | (footprint Connect:USB_Micro-B)
45 | (libsource (lib conn) (part USB_OTG))
46 | (sheetpath (names /) (tstamps /))
47 | (tstamp 57B99EA5))
48 | (comp (ref C1)
49 | (value 100n)
50 | (footprint Capacitors_SMD:C_0805_HandSoldering)
51 | (libsource (lib device) (part C_Small))
52 | (sheetpath (names /) (tstamps /))
53 | (tstamp 57B9A4A7))
54 | (comp (ref U2)
55 | (value AP1117E33)
56 | (footprint TO_SOT_Packages_SMD:SOT-223)
57 | (libsource (lib audprog_v2-cache) (part AP1117E33))
58 | (sheetpath (names /) (tstamps /))
59 | (tstamp 57B9A7EA))
60 | (comp (ref C3)
61 | (value 470u)
62 | (footprint Capacitors_ThroughHole:C_Radial_D5_L11_P2.5)
63 | (libsource (lib device) (part C_Small))
64 | (sheetpath (names /) (tstamps /))
65 | (tstamp 57B9BA88))
66 | (comp (ref C2)
67 | (value 0,1u)
68 | (footprint Capacitors_SMD:C_0805_HandSoldering)
69 | (libsource (lib device) (part C_Small))
70 | (sheetpath (names /) (tstamps /))
71 | (tstamp 57B9BAE1))
72 | (comp (ref C4)
73 | (value 0,1u)
74 | (footprint Capacitors_SMD:C_0805_HandSoldering)
75 | (libsource (lib device) (part C_Small))
76 | (sheetpath (names /) (tstamps /))
77 | (tstamp 57B9BB08))
78 | (comp (ref C5)
79 | (value 470u)
80 | (footprint Capacitors_ThroughHole:C_Radial_D5_L11_P2.5)
81 | (libsource (lib device) (part C_Small))
82 | (sheetpath (names /) (tstamps /))
83 | (tstamp 57B9BB47))
84 | (comp (ref JP1)
85 | (value Vcc_IO_SW)
86 | (footprint Pin_Headers:Pin_Header_Straight_1x03)
87 | (libsource (lib device) (part JUMPER3))
88 | (sheetpath (names /) (tstamps /))
89 | (tstamp 57B9C69B))
90 | (comp (ref C6)
91 | (value 100n)
92 | (footprint Capacitors_SMD:C_0805_HandSoldering)
93 | (libsource (lib device) (part C_Small))
94 | (sheetpath (names /) (tstamps /))
95 | (tstamp 57B9D5D9))
96 | (comp (ref C7)
97 | (value 10n)
98 | (footprint Capacitors_SMD:C_0805_HandSoldering)
99 | (libsource (lib device) (part C_Small))
100 | (sheetpath (names /) (tstamps /))
101 | (tstamp 57B9D64D))
102 | (comp (ref R16)
103 | (value 47,5k)
104 | (footprint Resistors_SMD:R_0805_HandSoldering)
105 | (libsource (lib device) (part R_Small))
106 | (sheetpath (names /) (tstamps /))
107 | (tstamp 57B9DB58))
108 | (comp (ref R13)
109 | (value 1k)
110 | (footprint Resistors_SMD:R_0805_HandSoldering)
111 | (libsource (lib device) (part R_Small))
112 | (sheetpath (names /) (tstamps /))
113 | (tstamp 57B9DBB5))
114 | (comp (ref R15)
115 | (value 10k)
116 | (footprint Resistors_SMD:R_0805_HandSoldering)
117 | (libsource (lib device) (part R_Small))
118 | (sheetpath (names /) (tstamps /))
119 | (tstamp 57B9DBF8))
120 | (comp (ref Q1)
121 | (value BC817)
122 | (footprint TO_SOT_Packages_SMD:SOT-23_Handsoldering)
123 | (libsource (lib transistors) (part BC817-40))
124 | (sheetpath (names /) (tstamps /))
125 | (tstamp 57B9DC7C))
126 | (comp (ref R17)
127 | (value 10k)
128 | (footprint Resistors_SMD:R_0805_HandSoldering)
129 | (libsource (lib device) (part R_Small))
130 | (sheetpath (names /) (tstamps /))
131 | (tstamp 57B9DE59))
132 | (comp (ref R1)
133 | (value 5,6k)
134 | (footprint Resistors_SMD:R_0805_HandSoldering)
135 | (libsource (lib device) (part R_Small))
136 | (sheetpath (names /) (tstamps /))
137 | (tstamp 57BA14DF))
138 | (comp (ref R2)
139 | (value 5,6k)
140 | (footprint Resistors_SMD:R_0805_HandSoldering)
141 | (libsource (lib device) (part R_Small))
142 | (sheetpath (names /) (tstamps /))
143 | (tstamp 57BA1542))
144 | (comp (ref R9)
145 | (value 22)
146 | (footprint Resistors_SMD:R_0805_HandSoldering)
147 | (libsource (lib device) (part R_Small))
148 | (sheetpath (names /) (tstamps /))
149 | (tstamp 57BA19FC))
150 | (comp (ref R4)
151 | (value 22)
152 | (footprint Resistors_SMD:R_0805_HandSoldering)
153 | (libsource (lib device) (part R_Small))
154 | (sheetpath (names /) (tstamps /))
155 | (tstamp 57BA1A61))
156 | (comp (ref R6)
157 | (value 22)
158 | (footprint Resistors_SMD:R_0805_HandSoldering)
159 | (libsource (lib device) (part R_Small))
160 | (sheetpath (names /) (tstamps /))
161 | (tstamp 57BA279F))
162 | (comp (ref R8)
163 | (value 22)
164 | (footprint Resistors_SMD:R_0805_HandSoldering)
165 | (libsource (lib device) (part R_Small))
166 | (sheetpath (names /) (tstamps /))
167 | (tstamp 57BA281D))
168 | (comp (ref R10)
169 | (value 22)
170 | (footprint Resistors_SMD:R_0805_HandSoldering)
171 | (libsource (lib device) (part R_Small))
172 | (sheetpath (names /) (tstamps /))
173 | (tstamp 57BA289A))
174 | (comp (ref R5)
175 | (value 22)
176 | (footprint Resistors_SMD:R_0805_HandSoldering)
177 | (libsource (lib device) (part R_Small))
178 | (sheetpath (names /) (tstamps /))
179 | (tstamp 57BA2A8A))
180 | (comp (ref R3)
181 | (value 5,6k)
182 | (footprint Resistors_SMD:R_0805_HandSoldering)
183 | (libsource (lib device) (part R_Small))
184 | (sheetpath (names /) (tstamps /))
185 | (tstamp 57BA3976))
186 | (comp (ref R7)
187 | (value 22)
188 | (footprint Resistors_SMD:R_0805_HandSoldering)
189 | (libsource (lib device) (part R_Small))
190 | (sheetpath (names /) (tstamps /))
191 | (tstamp 57BA3CD1))
192 | (comp (ref R11)
193 | (value 22)
194 | (footprint Resistors_SMD:R_0805_HandSoldering)
195 | (libsource (lib device) (part R_Small))
196 | (sheetpath (names /) (tstamps /))
197 | (tstamp 57BA3F48))
198 | (comp (ref R12)
199 | (value 10k)
200 | (footprint Resistors_SMD:R_0805_HandSoldering)
201 | (libsource (lib device) (part R_Small))
202 | (sheetpath (names /) (tstamps /))
203 | (tstamp 57BA63F4))
204 | (comp (ref R14)
205 | (value 10k)
206 | (footprint Resistors_SMD:R_0805_HandSoldering)
207 | (libsource (lib device) (part R_Small))
208 | (sheetpath (names /) (tstamps /))
209 | (tstamp 57BA66A4))
210 | (comp (ref P2)
211 | (value CONN_01X05)
212 | (footprint Pin_Headers:Pin_Header_Straight_1x05)
213 | (libsource (lib conn) (part CONN_01X05))
214 | (sheetpath (names /) (tstamps /))
215 | (tstamp 57BAE288)))
216 | (libparts
217 | (libpart (lib audprog_v2-cache) (part AP1117)
218 | (aliases
219 | (alias AP1117D15)
220 | (alias AP1117D18)
221 | (alias AP1117D25)
222 | (alias AP1117D33)
223 | (alias AP1117D50)
224 | (alias AP1117E15)
225 | (alias AP1117E18)
226 | (alias AP1117E25)
227 | (alias AP1117E33)
228 | (alias AP1117E50)
229 | (alias AP1117K15)
230 | (alias AP1117K18)
231 | (alias AP1117K25)
232 | (alias AP1117K33)
233 | (alias AP1117K50)
234 | (alias AP1117T15)
235 | (alias AP1117T18)
236 | (alias AP1117T25)
237 | (alias AP1117T33)
238 | (alias AP1117T50)
239 | (alias AP1117Y15)
240 | (alias AP1117Y18)
241 | (alias AP1117Y25)
242 | (alias AP1117Y33)
243 | (alias AP1117Y50))
244 | (footprints
245 | (fp SOT223)
246 | (fp SOT89-3)
247 | (fp TO220-3)
248 | (fp TO252)
249 | (fp TO263))
250 | (fields
251 | (field (name Reference) U)
252 | (field (name Value) AP1117))
253 | (pins
254 | (pin (num 1) (name GND/ADJ) (type power_in))
255 | (pin (num 2) (name VO) (type power_out))
256 | (pin (num 3) (name VI) (type power_in))))
257 | (libpart (lib transistors) (part BC817-40)
258 | (aliases
259 | (alias BC818-40))
260 | (description "45V Vce, 0.8A Ic, NPN, SOT-23")
261 | (docs http://www.fairchildsemi.com/ds/BC/BC817.pdf)
262 | (footprints
263 | (fp SOT-23*))
264 | (fields
265 | (field (name Reference) Q)
266 | (field (name Value) BC817-40)
267 | (field (name Footprint) SOT-23))
268 | (pins
269 | (pin (num 1) (name B) (type input))
270 | (pin (num 2) (name E) (type passive))
271 | (pin (num 3) (name C) (type passive))))
272 | (libpart (lib conn) (part CONN_01X05)
273 | (description "Connector, single row, 01x05")
274 | (footprints
275 | (fp Pin_Header_Straight_1X05)
276 | (fp Pin_Header_Angled_1X05)
277 | (fp Socket_Strip_Straight_1X05)
278 | (fp Socket_Strip_Angled_1X05))
279 | (fields
280 | (field (name Reference) P)
281 | (field (name Value) CONN_01X05))
282 | (pins
283 | (pin (num 1) (name P1) (type passive))
284 | (pin (num 2) (name P2) (type passive))
285 | (pin (num 3) (name P3) (type passive))
286 | (pin (num 4) (name P4) (type passive))
287 | (pin (num 5) (name P5) (type passive))))
288 | (libpart (lib conn) (part CONN_02X04)
289 | (description "Connector, double row, 02x04")
290 | (footprints
291 | (fp Pin_Header_Straight_2X04)
292 | (fp Pin_Header_Angled_2X04)
293 | (fp Socket_Strip_Straight_2X04)
294 | (fp Socket_Strip_Angled_2X04))
295 | (fields
296 | (field (name Reference) P)
297 | (field (name Value) CONN_02X04))
298 | (pins
299 | (pin (num 1) (name P1) (type passive))
300 | (pin (num 2) (name P2) (type passive))
301 | (pin (num 3) (name P3) (type passive))
302 | (pin (num 4) (name P4) (type passive))
303 | (pin (num 5) (name P5) (type passive))
304 | (pin (num 6) (name P6) (type passive))
305 | (pin (num 7) (name P7) (type passive))
306 | (pin (num 8) (name P8) (type passive))))
307 | (libpart (lib conn) (part CONN_02X08)
308 | (description "Connector, double row, 02x08")
309 | (footprints
310 | (fp Pin_Header_Straight_2X08)
311 | (fp Pin_Header_Angled_2X08)
312 | (fp Socket_Strip_Straight_2X08)
313 | (fp Socket_Strip_Angled_2X08))
314 | (fields
315 | (field (name Reference) P)
316 | (field (name Value) CONN_02X08))
317 | (pins
318 | (pin (num 1) (name P1) (type passive))
319 | (pin (num 2) (name P2) (type passive))
320 | (pin (num 3) (name P3) (type passive))
321 | (pin (num 4) (name P4) (type passive))
322 | (pin (num 5) (name P5) (type passive))
323 | (pin (num 6) (name P6) (type passive))
324 | (pin (num 7) (name P7) (type passive))
325 | (pin (num 8) (name P8) (type passive))
326 | (pin (num 9) (name P9) (type passive))
327 | (pin (num 10) (name P10) (type passive))
328 | (pin (num 11) (name P11) (type passive))
329 | (pin (num 12) (name P12) (type passive))
330 | (pin (num 13) (name P13) (type passive))
331 | (pin (num 14) (name P14) (type passive))
332 | (pin (num 15) (name P15) (type passive))
333 | (pin (num 16) (name P16) (type passive))))
334 | (libpart (lib device) (part C_Small)
335 | (description "Unpolarized capacitor")
336 | (footprints
337 | (fp C?)
338 | (fp C_????_*)
339 | (fp C_????)
340 | (fp SMD*_c)
341 | (fp Capacitor*))
342 | (fields
343 | (field (name Reference) C)
344 | (field (name Value) C_Small))
345 | (pins
346 | (pin (num 1) (name ~) (type passive))
347 | (pin (num 2) (name ~) (type passive))))
348 | (libpart (lib ftdi) (part FT232RL)
349 | (description "USB to Serial Interface, SSOP-28")
350 | (docs http://www.ftdichip.com/Products/ICs/FT232RL.htm)
351 | (footprints
352 | (fp SSOP*))
353 | (fields
354 | (field (name Reference) U)
355 | (field (name Value) FT232RL)
356 | (field (name Footprint) SSOP-28))
357 | (pins
358 | (pin (num 1) (name TXD) (type output))
359 | (pin (num 2) (name DTR) (type output))
360 | (pin (num 3) (name RTS) (type output))
361 | (pin (num 4) (name VCCIO) (type input))
362 | (pin (num 5) (name RXD) (type input))
363 | (pin (num 6) (name RI) (type input))
364 | (pin (num 7) (name GND) (type power_in))
365 | (pin (num 9) (name DCR) (type input))
366 | (pin (num 10) (name DCD) (type input))
367 | (pin (num 11) (name CTS) (type input))
368 | (pin (num 12) (name CBUS4) (type BiDi))
369 | (pin (num 13) (name CBUS2) (type BiDi))
370 | (pin (num 14) (name CBUS3) (type BiDi))
371 | (pin (num 15) (name USBD+) (type BiDi))
372 | (pin (num 16) (name USBD-) (type BiDi))
373 | (pin (num 17) (name 3V3OUT) (type input))
374 | (pin (num 18) (name GND) (type power_in))
375 | (pin (num 19) (name ~RESET~) (type input))
376 | (pin (num 20) (name VCC) (type power_in))
377 | (pin (num 21) (name GND) (type power_in))
378 | (pin (num 22) (name CBUS1) (type output))
379 | (pin (num 23) (name CBUS0) (type BiDi))
380 | (pin (num 25) (name AGND) (type power_in))
381 | (pin (num 26) (name TEST) (type power_in))
382 | (pin (num 27) (name OSCI) (type input))
383 | (pin (num 28) (name OSCO) (type output))))
384 | (libpart (lib device) (part JUMPER3)
385 | (fields
386 | (field (name Reference) JP)
387 | (field (name Value) JUMPER3))
388 | (pins
389 | (pin (num 1) (name 1) (type passive))
390 | (pin (num 2) (name 2) (type passive))
391 | (pin (num 3) (name 3) (type passive))))
392 | (libpart (lib linear) (part LM555N)
393 | (aliases
394 | (alias NE555))
395 | (description "555-series timer IC")
396 | (docs ns/lm555.pdf)
397 | (footprints
398 | (fp DIP*)
399 | (fp TSSOP*)
400 | (fp SOIC*))
401 | (fields
402 | (field (name Reference) U)
403 | (field (name Value) LM555N))
404 | (pins
405 | (pin (num 1) (name GND) (type power_in))
406 | (pin (num 2) (name TR) (type input))
407 | (pin (num 3) (name Q) (type output))
408 | (pin (num 4) (name R) (type input))
409 | (pin (num 5) (name CV) (type input))
410 | (pin (num 6) (name THR) (type input))
411 | (pin (num 7) (name DIS) (type input))
412 | (pin (num 8) (name VCC) (type power_in))))
413 | (libpart (lib device) (part R_Small)
414 | (description Resistor)
415 | (footprints
416 | (fp Resistor_*)
417 | (fp R_*))
418 | (fields
419 | (field (name Reference) R)
420 | (field (name Value) R_Small))
421 | (pins
422 | (pin (num 1) (name ~) (type passive))
423 | (pin (num 2) (name ~) (type passive))))
424 | (libpart (lib conn) (part USB_OTG)
425 | (description "USB micro/mini connector")
426 | (footprints
427 | (fp USB*))
428 | (fields
429 | (field (name Reference) P)
430 | (field (name Value) USB_OTG))
431 | (pins
432 | (pin (num 1) (name VCC) (type power_out))
433 | (pin (num 2) (name D-) (type passive))
434 | (pin (num 3) (name D+) (type passive))
435 | (pin (num 4) (name ID) (type power_in))
436 | (pin (num 5) (name GND) (type power_in))
437 | (pin (num 6) (name shield) (type passive)))))
438 | (libraries
439 | (library (logical device)
440 | (uri D:\Dev\KiCad\share\kicad\library\device.lib))
441 | (library (logical transistors)
442 | (uri D:\Dev\KiCad\share\kicad\library\transistors.lib))
443 | (library (logical conn)
444 | (uri D:\Dev\KiCad\share\kicad\library\conn.lib))
445 | (library (logical linear)
446 | (uri D:\Dev\KiCad\share\kicad\library\linear.lib))
447 | (library (logical ftdi)
448 | (uri D:\Dev\KiCad\share\kicad\library\ftdi.lib))
449 | (library (logical audprog_v2-cache)
450 | (uri D:\Documents\Dropbox\Projects\HW\audprog_v2\audprog_v2-cache.lib)))
451 | (nets
452 | (net (code 1) (name "Net-(P3-Pad5)")
453 | (node (ref R12) (pin 1))
454 | (node (ref P3) (pin 5)))
455 | (net (code 2) (name "Net-(P3-Pad4)")
456 | (node (ref R14) (pin 2))
457 | (node (ref P3) (pin 4)))
458 | (net (code 3) (name "Net-(Q1-Pad1)")
459 | (node (ref Q1) (pin 1))
460 | (node (ref R15) (pin 1)))
461 | (net (code 4) (name "Net-(R13-Pad2)")
462 | (node (ref R16) (pin 2))
463 | (node (ref R13) (pin 2))
464 | (node (ref U3) (pin 7)))
465 | (net (code 5) (name "Net-(R15-Pad2)")
466 | (node (ref U3) (pin 3))
467 | (node (ref R15) (pin 2)))
468 | (net (code 6) (name CBUS3)
469 | (node (ref P2) (pin 3))
470 | (node (ref U1) (pin 13)))
471 | (net (code 7) (name CBUS1)
472 | (node (ref U1) (pin 23))
473 | (node (ref P2) (pin 1)))
474 | (net (code 8) (name CBUS2)
475 | (node (ref P2) (pin 2))
476 | (node (ref U1) (pin 22)))
477 | (net (code 9) (name CBUS4)
478 | (node (ref U1) (pin 14))
479 | (node (ref P2) (pin 4)))
480 | (net (code 10) (name CBUS5)
481 | (node (ref P2) (pin 5))
482 | (node (ref U1) (pin 12)))
483 | (net (code 11) (name VCC_IO)
484 | (node (ref P4) (pin 1))
485 | (node (ref R1) (pin 1))
486 | (node (ref R2) (pin 1))
487 | (node (ref JP1) (pin 2))
488 | (node (ref R3) (pin 1))
489 | (node (ref R12) (pin 2))
490 | (node (ref R14) (pin 1))
491 | (node (ref R17) (pin 1))
492 | (node (ref U1) (pin 4))
493 | (node (ref P3) (pin 2)))
494 | (net (code 12) (name "Net-(C1-Pad1)")
495 | (node (ref C1) (pin 1))
496 | (node (ref U1) (pin 17)))
497 | (net (code 13) (name GND)
498 | (node (ref Q1) (pin 2))
499 | (node (ref C6) (pin 2))
500 | (node (ref C7) (pin 2))
501 | (node (ref C5) (pin 2))
502 | (node (ref U1) (pin 18))
503 | (node (ref C1) (pin 2))
504 | (node (ref P4) (pin 14))
505 | (node (ref U3) (pin 1))
506 | (node (ref P3) (pin 7))
507 | (node (ref P4) (pin 13))
508 | (node (ref C3) (pin 2))
509 | (node (ref C2) (pin 2))
510 | (node (ref C4) (pin 2))
511 | (node (ref U1) (pin 26))
512 | (node (ref P4) (pin 2))
513 | (node (ref U1) (pin 7))
514 | (node (ref U1) (pin 25))
515 | (node (ref U1) (pin 21))
516 | (node (ref U2) (pin 1))
517 | (node (ref P1) (pin 5)))
518 | (net (code 14) (name +5V)
519 | (node (ref U3) (pin 8))
520 | (node (ref C3) (pin 1))
521 | (node (ref C2) (pin 1))
522 | (node (ref R13) (pin 1))
523 | (node (ref P1) (pin 1))
524 | (node (ref U1) (pin 20))
525 | (node (ref U2) (pin 3))
526 | (node (ref U3) (pin 4))
527 | (node (ref JP1) (pin 1)))
528 | (net (code 15) (name "Net-(C6-Pad1)")
529 | (node (ref U3) (pin 6))
530 | (node (ref R16) (pin 1))
531 | (node (ref U3) (pin 2))
532 | (node (ref C6) (pin 1)))
533 | (net (code 16) (name "Net-(C7-Pad1)")
534 | (node (ref C7) (pin 1))
535 | (node (ref U3) (pin 5)))
536 | (net (code 17) (name "Net-(R4-Pad2)")
537 | (node (ref U1) (pin 1))
538 | (node (ref R4) (pin 2)))
539 | (net (code 18) (name +3V3)
540 | (node (ref JP1) (pin 3))
541 | (node (ref U2) (pin 2))
542 | (node (ref C5) (pin 1))
543 | (node (ref C4) (pin 1)))
544 | (net (code 19) (name AUD_DATA0)
545 | (node (ref R6) (pin 1))
546 | (node (ref P4) (pin 5)))
547 | (net (code 20) (name AUD_DATA2)
548 | (node (ref R11) (pin 1))
549 | (node (ref P4) (pin 7)))
550 | (net (code 21) (name AUD_DATA3)
551 | (node (ref P4) (pin 8))
552 | (node (ref R9) (pin 1)))
553 | (net (code 22) (name "Net-(R3-Pad2)")
554 | (node (ref R7) (pin 2))
555 | (node (ref R3) (pin 2))
556 | (node (ref U1) (pin 11)))
557 | (net (code 23) (name "Net-(R2-Pad2)")
558 | (node (ref R2) (pin 2))
559 | (node (ref U1) (pin 2))
560 | (node (ref R8) (pin 2)))
561 | (net (code 24) (name "Net-(R1-Pad2)")
562 | (node (ref R1) (pin 2))
563 | (node (ref R10) (pin 2))
564 | (node (ref U1) (pin 10)))
565 | (net (code 25) (name AUD_CK)
566 | (node (ref P4) (pin 9))
567 | (node (ref R10) (pin 1))
568 | (node (ref P3) (pin 6)))
569 | (net (code 26) (name "Net-(P4-Pad4)")
570 | (node (ref P4) (pin 4)))
571 | (net (code 27) (name AUD_SYNC)
572 | (node (ref R7) (pin 1))
573 | (node (ref P4) (pin 10))
574 | (node (ref P3) (pin 8)))
575 | (net (code 28) (name AUD_RST)
576 | (node (ref P3) (pin 1))
577 | (node (ref P4) (pin 3))
578 | (node (ref R8) (pin 1)))
579 | (net (code 29) (name BOOT_TX)
580 | (node (ref R4) (pin 1))
581 | (node (ref P4) (pin 11))
582 | (node (ref P3) (pin 3)))
583 | (net (code 30) (name AUD_DATA1)
584 | (node (ref R5) (pin 1))
585 | (node (ref P4) (pin 6))
586 | (node (ref P4) (pin 12)))
587 | (net (code 31) (name "Net-(R11-Pad2)")
588 | (node (ref R11) (pin 2))
589 | (node (ref U1) (pin 6)))
590 | (net (code 32) (name "Net-(R9-Pad2)")
591 | (node (ref R9) (pin 2))
592 | (node (ref U1) (pin 9)))
593 | (net (code 33) (name "Net-(R6-Pad2)")
594 | (node (ref U1) (pin 3))
595 | (node (ref R6) (pin 2)))
596 | (net (code 34) (name "Net-(R5-Pad2)")
597 | (node (ref U1) (pin 5))
598 | (node (ref R5) (pin 2)))
599 | (net (code 35) (name WDT)
600 | (node (ref Q1) (pin 3))
601 | (node (ref R17) (pin 2))
602 | (node (ref P4) (pin 16))
603 | (node (ref P4) (pin 15)))
604 | (net (code 36) (name "Net-(P1-Pad2)")
605 | (node (ref U1) (pin 16))
606 | (node (ref P1) (pin 2)))
607 | (net (code 37) (name "Net-(P1-Pad4)")
608 | (node (ref P1) (pin 4)))
609 | (net (code 38) (name "Net-(P1-Pad6)")
610 | (node (ref P1) (pin 6)))
611 | (net (code 39) (name "Net-(U1-Pad19)")
612 | (node (ref U1) (pin 19)))
613 | (net (code 40) (name "Net-(U1-Pad28)")
614 | (node (ref U1) (pin 28)))
615 | (net (code 41) (name "Net-(U1-Pad27)")
616 | (node (ref U1) (pin 27)))
617 | (net (code 42) (name "Net-(P1-Pad3)")
618 | (node (ref U1) (pin 15))
619 | (node (ref P1) (pin 3)))))
--------------------------------------------------------------------------------
/hw/audprog_v2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/v-ladimir/audprog/2f5b9a235e91062f2966746c037435bd77d34cca/hw/audprog_v2.pdf
--------------------------------------------------------------------------------
/hw/audprog_v2.pro:
--------------------------------------------------------------------------------
1 | update=9/14/2016 11:11:40 AM
2 | version=1
3 | last_client=kicad
4 | [pcbnew]
5 | version=1
6 | LastNetListRead=
7 | UseCmpFile=1
8 | PadDrill=0.600000000000
9 | PadDrillOvalY=0.600000000000
10 | PadSizeH=1.500000000000
11 | PadSizeV=1.500000000000
12 | PcbTextSizeV=1.500000000000
13 | PcbTextSizeH=1.500000000000
14 | PcbTextThickness=0.300000000000
15 | ModuleTextSizeV=1.000000000000
16 | ModuleTextSizeH=1.000000000000
17 | ModuleTextSizeThickness=0.150000000000
18 | SolderMaskClearance=0.000000000000
19 | SolderMaskMinWidth=0.000000000000
20 | DrawSegmentWidth=0.200000000000
21 | BoardOutlineThickness=0.100000000000
22 | ModuleOutlineThickness=0.150000000000
23 | [cvpcb]
24 | version=1
25 | NetIExt=net
26 | [general]
27 | version=1
28 | [eeschema]
29 | version=1
30 | LibDir=C:/Program Files/KiCad/share/kicad/library
31 | [eeschema/libraries]
32 | LibName1=power
33 | LibName2=device
34 | LibName3=transistors
35 | LibName4=conn
36 | LibName5=linear
37 | LibName6=regul
38 | LibName7=74xx
39 | LibName8=cmos4000
40 | LibName9=adc-dac
41 | LibName10=memory
42 | LibName11=xilinx
43 | LibName12=microcontrollers
44 | LibName13=dsp
45 | LibName14=microchip
46 | LibName15=analog_switches
47 | LibName16=motorola
48 | LibName17=texas
49 | LibName18=intel
50 | LibName19=audio
51 | LibName20=interface
52 | LibName21=digital-audio
53 | LibName22=philips
54 | LibName23=display
55 | LibName24=cypress
56 | LibName25=siliconi
57 | LibName26=opto
58 | LibName27=atmel
59 | LibName28=contrib
60 | LibName29=valves
61 | LibName30=C:/Program Files/KiCad/share/kicad/library/ftdi
62 | [schematic_editor]
63 | version=1
64 | PageLayoutDescrFile=page_layout.kicad_wks
65 | PlotDirectoryName=
66 | SubpartIdSeparator=0
67 | SubpartFirstId=65
68 | NetFmtName=Pcbnew
69 | SpiceForceRefPrefix=0
70 | SpiceUseNetNumbers=0
71 | LabSize=39
72 |
--------------------------------------------------------------------------------
/hw/audprog_v2.sch:
--------------------------------------------------------------------------------
1 | EESchema Schematic File Version 2
2 | LIBS:power
3 | LIBS:device
4 | LIBS:transistors
5 | LIBS:conn
6 | LIBS:linear
7 | LIBS:regul
8 | LIBS:74xx
9 | LIBS:cmos4000
10 | LIBS:adc-dac
11 | LIBS:memory
12 | LIBS:xilinx
13 | LIBS:microcontrollers
14 | LIBS:dsp
15 | LIBS:microchip
16 | LIBS:analog_switches
17 | LIBS:motorola
18 | LIBS:texas
19 | LIBS:intel
20 | LIBS:audio
21 | LIBS:interface
22 | LIBS:digital-audio
23 | LIBS:philips
24 | LIBS:display
25 | LIBS:cypress
26 | LIBS:siliconi
27 | LIBS:opto
28 | LIBS:atmel
29 | LIBS:contrib
30 | LIBS:valves
31 | LIBS:ftdi
32 | LIBS:audprog_v2-cache
33 | EELAYER 25 0
34 | EELAYER END
35 | $Descr A4 11693 8268
36 | encoding utf-8
37 | Sheet 1 1
38 | Title ""
39 | Date ""
40 | Rev ""
41 | Comp ""
42 | Comment1 ""
43 | Comment2 ""
44 | Comment3 ""
45 | Comment4 ""
46 | $EndDescr
47 | $Comp
48 | L CONN_02X08 P4
49 | U 1 1 56DCE10F
50 | P 8525 2400
51 | F 0 "P4" H 8525 2850 50 0000 C CNN
52 | F 1 "CONN_02X08" V 8525 2400 50 0000 C CNN
53 | F 2 "Pin_Headers:Pin_Header_Straight_2x08" H 8525 1200 50 0001 C CNN
54 | F 3 "" H 8525 1200 50 0000 C CNN
55 | 1 8525 2400
56 | 1 0 0 -1
57 | $EndComp
58 | $Comp
59 | L CONN_02X04 P3
60 | U 1 1 56DCE1F6
61 | P 8400 3900
62 | F 0 "P3" H 8400 4150 50 0000 C CNN
63 | F 1 "CONN_02X04" H 8400 3650 50 0000 C CNN
64 | F 2 "Pin_Headers:Pin_Header_Straight_2x04" H 8400 2700 50 0001 C CNN
65 | F 3 "" H 8400 2700 50 0000 C CNN
66 | 1 8400 3900
67 | 1 0 0 -1
68 | $EndComp
69 | $Comp
70 | L LM555N U3
71 | U 1 1 56DCE25E
72 | P 7975 5800
73 | F 0 "U3" H 7925 6200 50 0000 L CNN
74 | F 1 "LM555N" H 7775 5450 50 0000 L CNN
75 | F 2 "Housings_SOIC:SOIJ-8_5.3x5.3mm_Pitch1.27mm" H 7975 5800 50 0001 C CNN
76 | F 3 "" H 7975 5800 50 0000 C CNN
77 | 1 7975 5800
78 | 1 0 0 -1
79 | $EndComp
80 | $Comp
81 | L FT232RL U1
82 | U 1 1 57B99297
83 | P 3475 2925
84 | F 0 "U1" H 2825 3825 50 0000 L CNN
85 | F 1 "FT232RL" H 3875 3825 50 0000 L CNN
86 | F 2 "Housings_SSOP:SSOP-28_5.3x10.2mm_Pitch0.65mm" H 3475 2925 50 0001 C CNN
87 | F 3 "" H 3475 2925 50 0000 C CNN
88 | 1 3475 2925
89 | 1 0 0 -1
90 | $EndComp
91 | Text GLabel 2200 6450 2 39 Input ~ 0
92 | AUD_SYNC
93 | Text GLabel 2200 6750 2 39 Input ~ 0
94 | AUD_CK
95 | Text GLabel 2200 6650 2 39 Input ~ 0
96 | AUD_DATA3
97 | Text GLabel 2200 6850 2 39 Input ~ 0
98 | AUD_DATA2
99 | Text GLabel 2200 6250 2 39 Input ~ 0
100 | AUD_DATA1
101 | Text GLabel 2200 6350 2 39 Input ~ 0
102 | AUD_DATA0
103 | Text GLabel 2200 6550 2 39 Input ~ 0
104 | AUD_RST
105 | Text GLabel 2200 5975 2 39 Input ~ 0
106 | SPI_CS
107 | Text GLabel 2200 5875 2 39 Input ~ 0
108 | SPI_DI
109 | Text GLabel 2200 5775 2 39 Input ~ 0
110 | SPI_DO
111 | Text GLabel 2200 5675 2 39 Input ~ 0
112 | SPI_SCK
113 | $Comp
114 | L USB_OTG P1
115 | U 1 1 57B99EA5
116 | P 1675 2525
117 | F 0 "P1" H 2000 2400 50 0000 C CNN
118 | F 1 "USB_OTG" H 1675 2725 50 0000 C CNN
119 | F 2 "Connect:USB_Micro-B" V 1625 2425 50 0001 C CNN
120 | F 3 "" V 1625 2425 50 0000 C CNN
121 | 1 1675 2525
122 | 0 -1 -1 0
123 | $EndComp
124 | NoConn ~ 1975 2425
125 | $Comp
126 | L GND #PWR01
127 | U 1 1 57B9A44E
128 | P 2125 2925
129 | F 0 "#PWR01" H 2125 2675 50 0001 C CNN
130 | F 1 "GND" H 2125 2775 50 0000 C CNN
131 | F 2 "" H 2125 2925 50 0000 C CNN
132 | F 3 "" H 2125 2925 50 0000 C CNN
133 | 1 2125 2925
134 | 1 0 0 -1
135 | $EndComp
136 | $Comp
137 | L C_Small C1
138 | U 1 1 57B9A4A7
139 | P 2125 2125
140 | F 0 "C1" H 2135 2195 50 0000 L CNN
141 | F 1 "100n" H 2135 2045 50 0000 L CNN
142 | F 2 "Capacitors_SMD:C_0805_HandSoldering" H 2125 2125 50 0001 C CNN
143 | F 3 "" H 2125 2125 50 0000 C CNN
144 | 1 2125 2125
145 | 1 0 0 -1
146 | $EndComp
147 | $Comp
148 | L +5V #PWR02
149 | U 1 1 57B9A5D8
150 | P 3575 1625
151 | F 0 "#PWR02" H 3575 1475 50 0001 C CNN
152 | F 1 "+5V" H 3575 1765 50 0000 C CNN
153 | F 2 "" H 3575 1625 50 0000 C CNN
154 | F 3 "" H 3575 1625 50 0000 C CNN
155 | 1 3575 1625
156 | 1 0 0 -1
157 | $EndComp
158 | $Comp
159 | L AP1117E33 U2
160 | U 1 1 57B9A7EA
161 | P 5575 5875
162 | F 0 "U2" H 5675 5625 50 0000 C CNN
163 | F 1 "AP1117E33" H 5575 6125 50 0000 C CNN
164 | F 2 "TO_SOT_Packages_SMD:SOT-223" H 5575 5875 50 0001 C CNN
165 | F 3 "" H 5575 5875 50 0000 C CNN
166 | 1 5575 5875
167 | 1 0 0 -1
168 | $EndComp
169 | Text GLabel 3375 1675 1 39 Input ~ 0
170 | VCC_IO
171 | NoConn ~ 2675 2925
172 | NoConn ~ 2675 3125
173 | NoConn ~ 2675 3325
174 | Text GLabel 4625 3225 2 39 Input ~ 0
175 | CBUS1
176 | Text GLabel 4625 3325 2 39 Input ~ 0
177 | CBUS2
178 | Text GLabel 4625 3425 2 39 Input ~ 0
179 | CBUS3
180 | Text GLabel 4625 3525 2 39 Input ~ 0
181 | CBUS4
182 | Text GLabel 4625 3625 2 39 Input ~ 0
183 | CBUS5
184 | $Comp
185 | L +5V #PWR03
186 | U 1 1 57B9B497
187 | P 2525 1625
188 | F 0 "#PWR03" H 2525 1475 50 0001 C CNN
189 | F 1 "+5V" H 2525 1765 50 0000 C CNN
190 | F 2 "" H 2525 1625 50 0000 C CNN
191 | F 3 "" H 2525 1625 50 0000 C CNN
192 | 1 2525 1625
193 | 1 0 0 -1
194 | $EndComp
195 | NoConn ~ 1575 2125
196 | $Comp
197 | L GND #PWR04
198 | U 1 1 57B9BA66
199 | P 5575 6375
200 | F 0 "#PWR04" H 5575 6125 50 0001 C CNN
201 | F 1 "GND" H 5575 6225 50 0000 C CNN
202 | F 2 "" H 5575 6375 50 0000 C CNN
203 | F 3 "" H 5575 6375 50 0000 C CNN
204 | 1 5575 6375
205 | 1 0 0 -1
206 | $EndComp
207 | $Comp
208 | L C_Small C3
209 | U 1 1 57B9BA88
210 | P 5025 6025
211 | F 0 "C3" H 5035 6095 50 0000 L CNN
212 | F 1 "470u" H 5035 5945 50 0000 L CNN
213 | F 2 "Capacitors_ThroughHole:C_Radial_D5_L11_P2.5" H 5025 6025 50 0001 C CNN
214 | F 3 "" H 5025 6025 50 0000 C CNN
215 | 1 5025 6025
216 | 1 0 0 -1
217 | $EndComp
218 | $Comp
219 | L C_Small C2
220 | U 1 1 57B9BAE1
221 | P 4825 6025
222 | F 0 "C2" H 4835 6095 50 0000 L CNN
223 | F 1 "0,1u" H 4835 5945 50 0000 L CNN
224 | F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4825 6025 50 0001 C CNN
225 | F 3 "" H 4825 6025 50 0000 C CNN
226 | 1 4825 6025
227 | 1 0 0 -1
228 | $EndComp
229 | $Comp
230 | L C_Small C4
231 | U 1 1 57B9BB08
232 | P 6075 6025
233 | F 0 "C4" H 6085 6095 50 0000 L CNN
234 | F 1 "0,1u" H 6085 5945 50 0000 L CNN
235 | F 2 "Capacitors_SMD:C_0805_HandSoldering" H 6075 6025 50 0001 C CNN
236 | F 3 "" H 6075 6025 50 0000 C CNN
237 | 1 6075 6025
238 | 1 0 0 -1
239 | $EndComp
240 | $Comp
241 | L C_Small C5
242 | U 1 1 57B9BB47
243 | P 6325 6025
244 | F 0 "C5" H 6335 6095 50 0000 L CNN
245 | F 1 "470u" H 6335 5945 50 0000 L CNN
246 | F 2 "Capacitors_ThroughHole:C_Radial_D5_L11_P2.5" H 6325 6025 50 0001 C CNN
247 | F 3 "" H 6325 6025 50 0000 C CNN
248 | 1 6325 6025
249 | 1 0 0 -1
250 | $EndComp
251 | $Comp
252 | L +5V #PWR05
253 | U 1 1 57B9BDDA
254 | P 4825 5675
255 | F 0 "#PWR05" H 4825 5525 50 0001 C CNN
256 | F 1 "+5V" H 4825 5815 50 0000 C CNN
257 | F 2 "" H 4825 5675 50 0000 C CNN
258 | F 3 "" H 4825 5675 50 0000 C CNN
259 | 1 4825 5675
260 | 1 0 0 -1
261 | $EndComp
262 | $Comp
263 | L +3.3V #PWR06
264 | U 1 1 57B9BEEC
265 | P 6325 5675
266 | F 0 "#PWR06" H 6325 5525 50 0001 C CNN
267 | F 1 "+3.3V" H 6325 5815 50 0000 C CNN
268 | F 2 "" H 6325 5675 50 0000 C CNN
269 | F 3 "" H 6325 5675 50 0000 C CNN
270 | 1 6325 5675
271 | 1 0 0 -1
272 | $EndComp
273 | $Comp
274 | L JUMPER3 JP1
275 | U 1 1 57B9C69B
276 | P 3925 6025
277 | F 0 "JP1" H 3975 5925 50 0000 L CNN
278 | F 1 "Vcc_IO_SW" H 3925 6125 50 0000 C BNN
279 | F 2 "Pin_Headers:Pin_Header_Straight_1x03" H 3925 6025 50 0001 C CNN
280 | F 3 "" H 3925 6025 50 0000 C CNN
281 | 1 3925 6025
282 | 0 -1 -1 0
283 | $EndComp
284 | Text GLabel 4225 5825 1 39 Input ~ 0
285 | VCC_IO
286 | $Comp
287 | L +3.3V #PWR07
288 | U 1 1 57B9C833
289 | P 3925 5675
290 | F 0 "#PWR07" H 3925 5525 50 0001 C CNN
291 | F 1 "+3.3V" H 3925 5815 50 0000 C CNN
292 | F 2 "" H 3925 5675 50 0000 C CNN
293 | F 3 "" H 3925 5675 50 0000 C CNN
294 | 1 3925 5675
295 | 1 0 0 -1
296 | $EndComp
297 | $Comp
298 | L +5V #PWR08
299 | U 1 1 57B9C8B0
300 | P 3675 5675
301 | F 0 "#PWR08" H 3675 5525 50 0001 C CNN
302 | F 1 "+5V" H 3675 5815 50 0000 C CNN
303 | F 2 "" H 3675 5675 50 0000 C CNN
304 | F 3 "" H 3675 5675 50 0000 C CNN
305 | 1 3675 5675
306 | 1 0 0 -1
307 | $EndComp
308 | $Comp
309 | L C_Small C6
310 | U 1 1 57B9D5D9
311 | P 6875 5950
312 | F 0 "C6" H 6885 6020 50 0000 L CNN
313 | F 1 "100n" H 6885 5870 50 0000 L CNN
314 | F 2 "Capacitors_SMD:C_0805_HandSoldering" H 6875 5950 50 0001 C CNN
315 | F 3 "" H 6875 5950 50 0000 C CNN
316 | 1 6875 5950
317 | 1 0 0 -1
318 | $EndComp
319 | $Comp
320 | L C_Small C7
321 | U 1 1 57B9D64D
322 | P 7125 5950
323 | F 0 "C7" H 7135 6020 50 0000 L CNN
324 | F 1 "10n" H 7135 5870 50 0000 L CNN
325 | F 2 "Capacitors_SMD:C_0805_HandSoldering" H 7125 5950 50 0001 C CNN
326 | F 3 "" H 7125 5950 50 0000 C CNN
327 | 1 7125 5950
328 | 1 0 0 -1
329 | $EndComp
330 | $Comp
331 | L GND #PWR09
332 | U 1 1 57B9D7BE
333 | P 6875 6400
334 | F 0 "#PWR09" H 6875 6150 50 0001 C CNN
335 | F 1 "GND" H 6875 6250 50 0000 C CNN
336 | F 2 "" H 6875 6400 50 0000 C CNN
337 | F 3 "" H 6875 6400 50 0000 C CNN
338 | 1 6875 6400
339 | 1 0 0 -1
340 | $EndComp
341 | $Comp
342 | L R_Small R16
343 | U 1 1 57B9DB58
344 | P 8775 5800
345 | F 0 "R16" V 8675 5675 50 0000 L CNN
346 | F 1 "47,5k" V 8675 5850 50 0000 L CNN
347 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 8775 5800 50 0001 C CNN
348 | F 3 "" H 8775 5800 50 0000 C CNN
349 | 1 8775 5800
350 | 0 1 1 0
351 | $EndComp
352 | $Comp
353 | L R_Small R13
354 | U 1 1 57B9DBB5
355 | P 8575 5350
356 | F 0 "R13" H 8625 5400 50 0000 L CNN
357 | F 1 "1k" H 8625 5325 50 0000 L CNN
358 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 8575 5350 50 0001 C CNN
359 | F 3 "" H 8575 5350 50 0000 C CNN
360 | 1 8575 5350
361 | 1 0 0 -1
362 | $EndComp
363 | $Comp
364 | L R_Small R15
365 | U 1 1 57B9DBF8
366 | P 8775 5600
367 | F 0 "R15" V 8675 5475 50 0000 L CNN
368 | F 1 "10k" V 8675 5650 50 0000 L CNN
369 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 8775 5600 50 0001 C CNN
370 | F 3 "" H 8775 5600 50 0000 C CNN
371 | 1 8775 5600
372 | 0 1 1 0
373 | $EndComp
374 | $Comp
375 | L BC817-40 Q1
376 | U 1 1 57B9DC7C
377 | P 9275 5900
378 | F 0 "Q1" H 9475 5975 50 0000 L CNN
379 | F 1 "BC817" H 9475 5900 50 0000 L CNN
380 | F 2 "TO_SOT_Packages_SMD:SOT-23_Handsoldering" H 9475 5825 50 0001 L CIN
381 | F 3 "" H 9275 5900 50 0000 L CNN
382 | 1 9275 5900
383 | 1 0 0 -1
384 | $EndComp
385 | $Comp
386 | L R_Small R17
387 | U 1 1 57B9DE59
388 | P 9375 5500
389 | F 0 "R17" H 9405 5520 50 0000 L CNN
390 | F 1 "10k" H 9405 5460 50 0000 L CNN
391 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 9375 5500 50 0001 C CNN
392 | F 3 "" H 9375 5500 50 0000 C CNN
393 | 1 9375 5500
394 | 1 0 0 -1
395 | $EndComp
396 | $Comp
397 | L GND #PWR010
398 | U 1 1 57B9E591
399 | P 9375 6400
400 | F 0 "#PWR010" H 9375 6150 50 0001 C CNN
401 | F 1 "GND" H 9375 6250 50 0000 C CNN
402 | F 2 "" H 9375 6400 50 0000 C CNN
403 | F 3 "" H 9375 6400 50 0000 C CNN
404 | 1 9375 6400
405 | 1 0 0 -1
406 | $EndComp
407 | $Comp
408 | L +5V #PWR011
409 | U 1 1 57B9E6AF
410 | P 8575 5150
411 | F 0 "#PWR011" H 8575 5000 50 0001 C CNN
412 | F 1 "+5V" H 8575 5290 50 0000 C CNN
413 | F 2 "" H 8575 5150 50 0000 C CNN
414 | F 3 "" H 8575 5150 50 0000 C CNN
415 | 1 8575 5150
416 | 1 0 0 -1
417 | $EndComp
418 | $Comp
419 | L +5V #PWR012
420 | U 1 1 57B9E84B
421 | P 7425 5150
422 | F 0 "#PWR012" H 7425 5000 50 0001 C CNN
423 | F 1 "+5V" H 7425 5290 50 0000 C CNN
424 | F 2 "" H 7425 5150 50 0000 C CNN
425 | F 3 "" H 7425 5150 50 0000 C CNN
426 | 1 7425 5150
427 | 1 0 0 -1
428 | $EndComp
429 | Text GLabel 9375 5250 1 39 Input ~ 0
430 | VCC_IO
431 | Text GLabel 9675 5650 2 39 Input ~ 0
432 | WDT
433 | Text Notes 9100 1675 2 49 ~ 0
434 | AUD & BOOTMODE connector
435 | Text Notes 8800 3425 2 49 ~ 0
436 | SPI EEPROM connector
437 | Text Notes 8325 4850 2 49 ~ 0
438 | Watchdog generator
439 | Text Notes 5875 5275 2 49 ~ 0
440 | IO power supply
441 | Text Notes 4125 5275 2 49 ~ 0
442 | Vcc IO switch
443 | $Comp
444 | L GND #PWR013
445 | U 1 1 57BA107E
446 | P 8925 2850
447 | F 0 "#PWR013" H 8925 2600 50 0001 C CNN
448 | F 1 "GND" H 8925 2700 50 0000 C CNN
449 | F 2 "" H 8925 2850 50 0000 C CNN
450 | F 3 "" H 8925 2850 50 0000 C CNN
451 | 1 8925 2850
452 | 1 0 0 -1
453 | $EndComp
454 | Text GLabel 4550 1675 1 39 Input ~ 0
455 | VCC_IO
456 | $Comp
457 | L R_Small R1
458 | U 1 1 57BA14DF
459 | P 4550 2000
460 | F 0 "R1" H 4400 1950 50 0000 L CNN
461 | F 1 "5,6k" H 4350 1875 50 0000 L CNN
462 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 4550 2000 50 0001 C CNN
463 | F 3 "" H 4550 2000 50 0000 C CNN
464 | 1 4550 2000
465 | 1 0 0 -1
466 | $EndComp
467 | $Comp
468 | L R_Small R2
469 | U 1 1 57BA1542
470 | P 4775 2000
471 | F 0 "R2" H 4625 1950 50 0000 L CNN
472 | F 1 "5,6k" H 4600 1875 50 0000 L CNN
473 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 4775 2000 50 0001 C CNN
474 | F 3 "" H 4775 2000 50 0000 C CNN
475 | 1 4775 2000
476 | 1 0 0 -1
477 | $EndComp
478 | $Comp
479 | L R_Small R9
480 | U 1 1 57BA19FC
481 | P 5500 2725
482 | F 0 "R9" V 5425 2625 50 0000 L CNN
483 | F 1 "22" V 5425 2750 50 0000 L CNN
484 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 5500 2725 50 0001 C CNN
485 | F 3 "" H 5500 2725 50 0000 C CNN
486 | 1 5500 2725
487 | 0 1 1 0
488 | $EndComp
489 | $Comp
490 | L R_Small R4
491 | U 1 1 57BA1A61
492 | P 5225 2225
493 | F 0 "R4" V 5150 2125 50 0000 L CNN
494 | F 1 "22" V 5150 2250 50 0000 L CNN
495 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 5225 2225 50 0001 C CNN
496 | F 3 "" H 5225 2225 50 0000 C CNN
497 | 1 5225 2225
498 | 0 1 1 0
499 | $EndComp
500 | $Comp
501 | L R_Small R6
502 | U 1 1 57BA279F
503 | P 5225 2425
504 | F 0 "R6" V 5150 2325 50 0000 L CNN
505 | F 1 "22" V 5150 2450 50 0000 L CNN
506 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 5225 2425 50 0001 C CNN
507 | F 3 "" H 5225 2425 50 0000 C CNN
508 | 1 5225 2425
509 | 0 1 1 0
510 | $EndComp
511 | $Comp
512 | L R_Small R8
513 | U 1 1 57BA281D
514 | P 5225 2625
515 | F 0 "R8" V 5150 2525 50 0000 L CNN
516 | F 1 "22" V 5150 2650 50 0000 L CNN
517 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 5225 2625 50 0001 C CNN
518 | F 3 "" H 5225 2625 50 0000 C CNN
519 | 1 5225 2625
520 | 0 1 1 0
521 | $EndComp
522 | $Comp
523 | L R_Small R10
524 | U 1 1 57BA289A
525 | P 5225 2825
526 | F 0 "R10" V 5150 2725 50 0000 L CNN
527 | F 1 "22" V 5150 2875 50 0000 L CNN
528 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 5225 2825 50 0001 C CNN
529 | F 3 "" H 5225 2825 50 0000 C CNN
530 | 1 5225 2825
531 | 0 1 1 0
532 | $EndComp
533 | $Comp
534 | L R_Small R5
535 | U 1 1 57BA2A8A
536 | P 5500 2325
537 | F 0 "R5" V 5425 2225 50 0000 L CNN
538 | F 1 "22" V 5425 2350 50 0000 L CNN
539 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 5500 2325 50 0001 C CNN
540 | F 3 "" H 5500 2325 50 0000 C CNN
541 | 1 5500 2325
542 | 0 1 1 0
543 | $EndComp
544 | Text GLabel 9075 2450 2 39 Input ~ 0
545 | AUD_SYNC
546 | Text GLabel 7975 2450 0 39 Input ~ 0
547 | AUD_CK
548 | Text GLabel 9075 2350 2 39 Input ~ 0
549 | AUD_DATA3
550 | Text GLabel 7975 2350 0 39 Input ~ 0
551 | AUD_DATA2
552 | Text GLabel 7975 2550 0 39 Input ~ 0
553 | BOOT_TX
554 | Text GLabel 9075 2550 2 39 Input ~ 0
555 | BOOT_RX
556 | $Comp
557 | L R_Small R3
558 | U 1 1 57BA3976
559 | P 4975 2000
560 | F 0 "R3" H 4825 1950 50 0000 L CNN
561 | F 1 "5,6k" H 4800 1875 50 0000 L CNN
562 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 4975 2000 50 0001 C CNN
563 | F 3 "" H 4975 2000 50 0000 C CNN
564 | 1 4975 2000
565 | 1 0 0 -1
566 | $EndComp
567 | $Comp
568 | L R_Small R7
569 | U 1 1 57BA3CD1
570 | P 5500 2525
571 | F 0 "R7" V 5425 2425 50 0000 L CNN
572 | F 1 "22" V 5425 2600 50 0000 L CNN
573 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 5500 2525 50 0001 C CNN
574 | F 3 "" H 5500 2525 50 0000 C CNN
575 | 1 5500 2525
576 | 0 1 1 0
577 | $EndComp
578 | $Comp
579 | L R_Small R11
580 | U 1 1 57BA3F48
581 | P 5500 2925
582 | F 0 "R11" V 5425 2825 50 0000 L CNN
583 | F 1 "22" V 5425 3000 50 0000 L CNN
584 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 5500 2925 50 0001 C CNN
585 | F 3 "" H 5500 2925 50 0000 C CNN
586 | 1 5500 2925
587 | 0 1 1 0
588 | $EndComp
589 | Text GLabel 7975 2150 0 39 Input ~ 0
590 | AUD_RST
591 | Text GLabel 7975 2250 0 39 Input ~ 0
592 | AUD_DATA0
593 | Text GLabel 9075 2250 2 39 Input ~ 0
594 | AUD_DATA1
595 | Text GLabel 7975 2750 0 39 Input ~ 0
596 | WDT
597 | Text GLabel 2050 5375 2 39 Input ~ 0
598 | BOOT_TX
599 | Text GLabel 2050 5475 2 39 Input ~ 0
600 | BOOT_RX
601 | $Comp
602 | L R_Small R12
603 | U 1 1 57BA63F4
604 | P 7800 3950
605 | F 0 "R12" V 7875 3800 50 0000 L CNN
606 | F 1 "10k" V 7875 3975 50 0000 L CNN
607 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 7800 3950 50 0001 C CNN
608 | F 3 "" H 7800 3950 50 0000 C CNN
609 | 1 7800 3950
610 | 0 1 1 0
611 | $EndComp
612 | $Comp
613 | L R_Small R14
614 | U 1 1 57BA66A4
615 | P 8900 3850
616 | F 0 "R14" V 8750 3725 50 0000 L CNN
617 | F 1 "10k" V 8750 3900 50 0000 L CNN
618 | F 2 "Resistors_SMD:R_0805_HandSoldering" H 8900 3850 50 0001 C CNN
619 | F 3 "" H 8900 3850 50 0000 C CNN
620 | 1 8900 3850
621 | 0 1 1 0
622 | $EndComp
623 | Text GLabel 7575 3950 0 39 Input ~ 0
624 | VCC_IO
625 | Text GLabel 9150 3850 2 39 Input ~ 0
626 | VCC_IO
627 | $Comp
628 | L GND #PWR014
629 | U 1 1 57BA6D2C
630 | P 7975 4100
631 | F 0 "#PWR014" H 7975 3850 50 0001 C CNN
632 | F 1 "GND" H 7975 3950 50 0000 C CNN
633 | F 2 "" H 7975 4100 50 0000 C CNN
634 | F 3 "" H 7975 4100 50 0000 C CNN
635 | 1 7975 4100
636 | 1 0 0 -1
637 | $EndComp
638 | Text GLabel 7575 3850 0 39 Input ~ 0
639 | SPI_DO
640 | Text GLabel 7575 3750 0 39 Input ~ 0
641 | SPI_CS
642 | Text GLabel 9150 3950 2 39 Input ~ 0
643 | SPI_SCK
644 | Text GLabel 9150 4050 2 39 Input ~ 0
645 | SPI_DI
646 | $Comp
647 | L CONN_01X05 P2
648 | U 1 1 57BAE288
649 | P 6125 3425
650 | F 0 "P2" H 6125 3725 50 0000 C CNN
651 | F 1 "CONN_01X05" V 6225 3425 50 0000 C CNN
652 | F 2 "Pin_Headers:Pin_Header_Straight_1x05" H 6125 3425 50 0001 C CNN
653 | F 3 "" H 6125 3425 50 0000 C CNN
654 | 1 6125 3425
655 | 1 0 0 -1
656 | $EndComp
657 | Text GLabel 5750 3225 0 39 Input ~ 0
658 | CBUS1
659 | Text GLabel 5750 3325 0 39 Input ~ 0
660 | CBUS2
661 | Text GLabel 5750 3425 0 39 Input ~ 0
662 | CBUS3
663 | Text GLabel 5750 3525 0 39 Input ~ 0
664 | CBUS4
665 | Text GLabel 5750 3625 0 39 Input ~ 0
666 | CBUS5
667 | $Comp
668 | L GND #PWR015
669 | U 1 1 57BB184E
670 | P 3475 4200
671 | F 0 "#PWR015" H 3475 3950 50 0001 C CNN
672 | F 1 "GND" H 3475 4050 50 0000 C CNN
673 | F 2 "" H 3475 4200 50 0000 C CNN
674 | F 3 "" H 3475 4200 50 0000 C CNN
675 | 1 3475 4200
676 | 1 0 0 -1
677 | $EndComp
678 | $Comp
679 | L GND #PWR016
680 | U 1 1 57B9F072
681 | P 7975 6400
682 | F 0 "#PWR016" H 7975 6150 50 0001 C CNN
683 | F 1 "GND" H 7975 6250 50 0000 C CNN
684 | F 2 "" H 7975 6400 50 0000 C CNN
685 | F 3 "" H 7975 6400 50 0000 C CNN
686 | 1 7975 6400
687 | 1 0 0 -1
688 | $EndComp
689 | Text GLabel 7975 2050 0 39 Input ~ 0
690 | VCC_IO
691 | $Comp
692 | L GND #PWR017
693 | U 1 1 57BD73C6
694 | P 8075 2850
695 | F 0 "#PWR017" H 8075 2600 50 0001 C CNN
696 | F 1 "GND" H 8075 2700 50 0000 C CNN
697 | F 2 "" H 8075 2850 50 0000 C CNN
698 | F 3 "" H 8075 2850 50 0000 C CNN
699 | 1 8075 2850
700 | 1 0 0 -1
701 | $EndComp
702 | Wire Wire Line
703 | 1975 2525 2675 2525
704 | Wire Wire Line
705 | 1975 2625 2675 2625
706 | Wire Wire Line
707 | 2525 2725 1975 2725
708 | Wire Wire Line
709 | 2525 1625 2525 2725
710 | Wire Wire Line
711 | 3575 1625 3575 1925
712 | Wire Wire Line
713 | 1975 2325 2125 2325
714 | Wire Wire Line
715 | 2125 2225 2125 2925
716 | Connection ~ 2125 2325
717 | Wire Wire Line
718 | 2675 2225 2675 1925
719 | Wire Wire Line
720 | 2675 1925 2125 1925
721 | Wire Wire Line
722 | 2125 1925 2125 2025
723 | Wire Wire Line
724 | 3375 1925 3375 1675
725 | Wire Wire Line
726 | 4625 3625 4275 3625
727 | Wire Wire Line
728 | 4275 3525 4625 3525
729 | Wire Wire Line
730 | 4625 3425 4275 3425
731 | Wire Wire Line
732 | 4275 3325 4625 3325
733 | Wire Wire Line
734 | 4625 3225 4275 3225
735 | Wire Wire Line
736 | 4825 6125 4825 6275
737 | Wire Wire Line
738 | 4825 6275 6325 6275
739 | Wire Wire Line
740 | 6325 6275 6325 6125
741 | Wire Wire Line
742 | 6075 6125 6075 6275
743 | Connection ~ 6075 6275
744 | Wire Wire Line
745 | 5575 6175 5575 6375
746 | Connection ~ 5575 6275
747 | Wire Wire Line
748 | 5025 6125 5025 6275
749 | Connection ~ 5025 6275
750 | Wire Wire Line
751 | 4825 5875 5275 5875
752 | Wire Wire Line
753 | 5025 5875 5025 5925
754 | Wire Wire Line
755 | 4825 5675 4825 5925
756 | Connection ~ 5025 5875
757 | Wire Wire Line
758 | 5875 5875 6325 5875
759 | Wire Wire Line
760 | 6075 5875 6075 5925
761 | Wire Wire Line
762 | 6325 5675 6325 5925
763 | Connection ~ 6075 5875
764 | Connection ~ 4825 5875
765 | Connection ~ 6325 5875
766 | Wire Wire Line
767 | 3925 5775 3925 5675
768 | Wire Wire Line
769 | 3675 5675 3675 6275
770 | Wire Wire Line
771 | 3675 6275 3925 6275
772 | Wire Wire Line
773 | 4225 5825 4225 6025
774 | Wire Wire Line
775 | 4225 6025 4025 6025
776 | Wire Wire Line
777 | 6875 5600 7475 5600
778 | Wire Wire Line
779 | 6875 5600 6875 5850
780 | Wire Wire Line
781 | 7475 5800 7125 5800
782 | Wire Wire Line
783 | 7125 5800 7125 5850
784 | Wire Wire Line
785 | 6875 6050 6875 6400
786 | Wire Wire Line
787 | 7125 6050 7125 6150
788 | Wire Wire Line
789 | 7125 6150 6875 6150
790 | Connection ~ 6875 6150
791 | Wire Wire Line
792 | 8475 6000 8925 6000
793 | Wire Wire Line
794 | 8925 6300 7325 6300
795 | Wire Wire Line
796 | 7325 6300 7325 5600
797 | Connection ~ 7325 5600
798 | Wire Wire Line
799 | 8925 5800 8925 6300
800 | Wire Wire Line
801 | 8925 5800 8875 5800
802 | Wire Wire Line
803 | 8475 5800 8675 5800
804 | Connection ~ 8925 6000
805 | Wire Wire Line
806 | 8675 5600 8475 5600
807 | Wire Wire Line
808 | 8875 5600 9075 5600
809 | Wire Wire Line
810 | 9375 5600 9375 5700
811 | Wire Wire Line
812 | 9375 6400 9375 6100
813 | Wire Wire Line
814 | 8575 5800 8575 5450
815 | Connection ~ 8575 5800
816 | Wire Wire Line
817 | 8575 5250 8575 5150
818 | Wire Wire Line
819 | 7425 5150 7425 6000
820 | Wire Wire Line
821 | 7425 6000 7475 6000
822 | Wire Wire Line
823 | 9375 5400 9375 5250
824 | Wire Wire Line
825 | 9375 5650 9675 5650
826 | Connection ~ 9375 5650
827 | Wire Wire Line
828 | 9075 5600 9075 5900
829 | Wire Wire Line
830 | 8925 2050 8925 2850
831 | Wire Wire Line
832 | 8775 2050 8925 2050
833 | Wire Wire Line
834 | 7975 2050 8275 2050
835 | Wire Wire Line
836 | 7975 2150 8275 2150
837 | Wire Wire Line
838 | 7975 2550 8275 2550
839 | Wire Wire Line
840 | 7975 2350 8275 2350
841 | Wire Wire Line
842 | 7700 3950 7575 3950
843 | Wire Wire Line
844 | 9000 3850 9150 3850
845 | Wire Wire Line
846 | 8800 3850 8650 3850
847 | Wire Wire Line
848 | 7900 3950 8150 3950
849 | Wire Wire Line
850 | 8150 4050 7975 4050
851 | Wire Wire Line
852 | 7975 4050 7975 4100
853 | Wire Wire Line
854 | 7575 3850 8150 3850
855 | Wire Wire Line
856 | 8150 3750 7575 3750
857 | Wire Wire Line
858 | 9150 4050 8650 4050
859 | Wire Wire Line
860 | 8650 3950 9150 3950
861 | Wire Wire Line
862 | 8650 3750 9100 3750
863 | Wire Wire Line
864 | 9100 3750 9100 3850
865 | Connection ~ 9100 3850
866 | Wire Wire Line
867 | 5925 3225 5750 3225
868 | Wire Wire Line
869 | 5925 3325 5750 3325
870 | Wire Wire Line
871 | 5925 3425 5750 3425
872 | Wire Wire Line
873 | 5925 3525 5750 3525
874 | Wire Wire Line
875 | 5925 3625 5750 3625
876 | Wire Wire Line
877 | 2675 3625 2625 3625
878 | Wire Wire Line
879 | 2625 3625 2625 4175
880 | Wire Wire Line
881 | 2625 4175 3675 4175
882 | Wire Wire Line
883 | 3475 3925 3475 4200
884 | Connection ~ 3475 4175
885 | Wire Wire Line
886 | 3575 3925 3575 4175
887 | Connection ~ 3575 4175
888 | Wire Wire Line
889 | 3275 3925 3275 4175
890 | Connection ~ 3275 4175
891 | Wire Wire Line
892 | 7975 6200 7975 6400
893 | Wire Wire Line
894 | 7975 5300 7425 5300
895 | Connection ~ 7425 5300
896 | Wire Wire Line
897 | 7975 5400 7975 5300
898 | Wire Wire Line
899 | 3675 4175 3675 3925
900 | Wire Wire Line
901 | 4275 2225 5125 2225
902 | Wire Wire Line
903 | 4275 2325 5400 2325
904 | Wire Wire Line
905 | 4275 2425 5125 2425
906 | Wire Wire Line
907 | 4275 2525 5400 2525
908 | Wire Wire Line
909 | 4275 2625 5125 2625
910 | Wire Wire Line
911 | 4275 2725 5400 2725
912 | Wire Wire Line
913 | 4275 2825 5125 2825
914 | Wire Wire Line
915 | 4275 2925 5400 2925
916 | Wire Wire Line
917 | 1450 6250 2200 6250
918 | Wire Wire Line
919 | 1450 6350 2200 6350
920 | Wire Wire Line
921 | 1450 6450 2200 6450
922 | Wire Wire Line
923 | 1450 6550 2200 6550
924 | Wire Wire Line
925 | 1450 6650 2200 6650
926 | Wire Wire Line
927 | 1450 6750 2200 6750
928 | Wire Wire Line
929 | 1450 6850 2200 6850
930 | Wire Wire Line
931 | 4550 1675 4550 1900
932 | Wire Wire Line
933 | 4775 1900 4775 1800
934 | Wire Wire Line
935 | 4550 1800 4975 1800
936 | Connection ~ 4550 1800
937 | Wire Wire Line
938 | 4975 1800 4975 1900
939 | Connection ~ 4775 1800
940 | Wire Wire Line
941 | 2200 5975 2150 5975
942 | Wire Wire Line
943 | 2200 5875 2100 5875
944 | Wire Wire Line
945 | 2200 5775 2050 5775
946 | Wire Wire Line
947 | 1900 5475 1900 6250
948 | Connection ~ 1900 6250
949 | Wire Wire Line
950 | 2200 5675 2000 5675
951 | Wire Wire Line
952 | 1850 5375 1850 6150
953 | Connection ~ 1850 6150
954 | Wire Wire Line
955 | 1850 5375 2050 5375
956 | Wire Wire Line
957 | 1900 5475 2050 5475
958 | Wire Wire Line
959 | 7975 2250 8275 2250
960 | Wire Wire Line
961 | 8275 2450 7975 2450
962 | Wire Wire Line
963 | 8775 2250 9075 2250
964 | Wire Wire Line
965 | 8775 2350 9075 2350
966 | Wire Wire Line
967 | 9075 2450 8775 2450
968 | Wire Wire Line
969 | 8775 2550 9075 2550
970 | Wire Wire Line
971 | 8775 2875 8775 2750
972 | Wire Wire Line
973 | 8200 2875 8775 2875
974 | Wire Wire Line
975 | 8200 2875 8200 2750
976 | Wire Wire Line
977 | 7975 2750 8275 2750
978 | Connection ~ 8200 2750
979 | Wire Wire Line
980 | 8775 2650 8925 2650
981 | Connection ~ 8925 2650
982 | Wire Wire Line
983 | 8275 2650 8075 2650
984 | Wire Wire Line
985 | 8075 2650 8075 2850
986 | Wire Wire Line
987 | 2150 5975 2150 6550
988 | Connection ~ 2150 6550
989 | Wire Wire Line
990 | 2050 5775 2050 6150
991 | Wire Wire Line
992 | 2000 5675 2000 6750
993 | Connection ~ 2000 6750
994 | Wire Wire Line
995 | 2100 5875 2100 6450
996 | Connection ~ 2100 6450
997 | Wire Wire Line
998 | 4550 2100 4550 2825
999 | Connection ~ 4550 2825
1000 | Wire Wire Line
1001 | 4775 2100 4775 2625
1002 | Connection ~ 4775 2625
1003 | Wire Wire Line
1004 | 4975 2100 4975 2525
1005 | Connection ~ 4975 2525
1006 | Text GLabel 1450 6150 0 39 Input ~ 0
1007 | FTDI_DBUS0
1008 | Text GLabel 1450 6250 0 39 Input ~ 0
1009 | FTDI_DBUS1
1010 | Text GLabel 1450 6350 0 39 Input ~ 0
1011 | FTDI_DBUS2
1012 | Text GLabel 1450 6450 0 39 Input ~ 0
1013 | FTDI_DBUS3
1014 | Text GLabel 1450 6550 0 39 Input ~ 0
1015 | FTDI_DBUS4
1016 | Text GLabel 1450 6650 0 39 Input ~ 0
1017 | FTDI_DBUS5
1018 | Text GLabel 1450 6750 0 39 Input ~ 0
1019 | FTDI_DBUS6
1020 | Text GLabel 1450 6850 0 39 Input ~ 0
1021 | FTDI_DBUS7
1022 | Text Notes 1075 5075 0 49 ~ 0
1023 | Generic FTDI chip bitbang DBUS pins mapping
1024 | Text GLabel 6025 2525 2 39 Input ~ 0
1025 | AUD_SYNC
1026 | Text GLabel 6025 2825 2 39 Input ~ 0
1027 | AUD_CK
1028 | Text GLabel 6025 2725 2 39 Input ~ 0
1029 | AUD_DATA3
1030 | Text GLabel 6025 2925 2 39 Input ~ 0
1031 | AUD_DATA2
1032 | Text GLabel 6025 2325 2 39 Input ~ 0
1033 | AUD_DATA1
1034 | Text GLabel 6025 2425 2 39 Input ~ 0
1035 | AUD_DATA0
1036 | Text GLabel 6025 2625 2 39 Input ~ 0
1037 | AUD_RST
1038 | Text GLabel 6025 2050 2 39 Input ~ 0
1039 | SPI_CS
1040 | Text GLabel 6025 1950 2 39 Input ~ 0
1041 | SPI_DI
1042 | Text GLabel 6025 1850 2 39 Input ~ 0
1043 | SPI_DO
1044 | Text GLabel 6025 1750 2 39 Input ~ 0
1045 | SPI_SCK
1046 | Text GLabel 5875 1450 2 39 Input ~ 0
1047 | BOOT_TX
1048 | Text GLabel 5875 1550 2 39 Input ~ 0
1049 | BOOT_RX
1050 | Wire Wire Line
1051 | 6025 2050 5975 2050
1052 | Wire Wire Line
1053 | 6025 1950 5925 1950
1054 | Wire Wire Line
1055 | 6025 1850 5875 1850
1056 | Wire Wire Line
1057 | 5725 1550 5725 2325
1058 | Connection ~ 5725 2325
1059 | Wire Wire Line
1060 | 6025 1750 5825 1750
1061 | Wire Wire Line
1062 | 5675 1450 5675 2225
1063 | Connection ~ 5675 2225
1064 | Wire Wire Line
1065 | 5675 1450 5875 1450
1066 | Wire Wire Line
1067 | 5725 1550 5875 1550
1068 | Wire Wire Line
1069 | 5975 2050 5975 2625
1070 | Connection ~ 5975 2625
1071 | Wire Wire Line
1072 | 5875 1850 5875 2225
1073 | Wire Wire Line
1074 | 5825 1750 5825 2825
1075 | Connection ~ 5825 2825
1076 | Wire Wire Line
1077 | 5925 1950 5925 2525
1078 | Connection ~ 5925 2525
1079 | Wire Wire Line
1080 | 5600 2925 6025 2925
1081 | Wire Wire Line
1082 | 5325 2825 6025 2825
1083 | Wire Wire Line
1084 | 5600 2725 6025 2725
1085 | Wire Wire Line
1086 | 5325 2625 6025 2625
1087 | Wire Wire Line
1088 | 5600 2525 6025 2525
1089 | Wire Wire Line
1090 | 5325 2425 6025 2425
1091 | Wire Wire Line
1092 | 5600 2325 6025 2325
1093 | Wire Wire Line
1094 | 5875 2225 5325 2225
1095 | NoConn ~ 8775 2150
1096 | Wire Wire Line
1097 | 2050 6150 1450 6150
1098 | $EndSCHEMATC
1099 |
--------------------------------------------------------------------------------
/hw/page_layout.kicad_wks:
--------------------------------------------------------------------------------
1 | (page_layout
2 | (setup (textsize 1.5 1.5)(linewidth 0.15)(textlinewidth 0.15)
3 | (left_margin 10)(right_margin 10)(top_margin 10)(bottom_margin 10))
4 | (rect (name rect1:Rect) (start 0 0 ltcorner) (end 0 0) (repeat 2) (incrx 2) (incry 2))
5 | (line (name segm1:Line) (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50))
6 | (tbtext 1 (name text1:Text) (pos 25 1 ltcorner) (font (size 1.3 1.3)) (repeat 100) (incrx 50))
7 | (line (name segm2:Line) (start 50 2 lbcorner) (end 50 0 lbcorner) (repeat 30) (incrx 50))
8 | (tbtext 1 (name text2:Text) (pos 25 1 lbcorner) (font (size 1.3 1.3)) (repeat 100) (incrx 50))
9 | (line (name segm3:Line) (start 0 50 ltcorner) (end 2 50 ltcorner) (repeat 30) (incry 50))
10 | (tbtext A (name text3:Text) (pos 1 25 ltcorner) (font (size 1.3 1.3)) (justify center) (repeat 100) (incry 50))
11 | (line (name segm4:Line) (start 0 50 rtcorner) (end 2 50 rtcorner) (repeat 30) (incry 50))
12 | (tbtext A (name text4:Text) (pos 1 25 rtcorner) (font (size 1.3 1.3)) (justify center) (repeat 100) (incry 50))
13 | (tbtext %Y (name text5:Text) (pos 109 20) (font bold))
14 | (tbtext %C0 (name text6:Text) (pos 109 23))
15 | (tbtext %C1 (name text7:Text) (pos 109 26))
16 | (tbtext %C2 (name text8:Text) (pos 109 29))
17 | (tbtext %C3 (name text9:Text) (pos 109 32))
18 | )
19 |
--------------------------------------------------------------------------------