Added morreeeee

Signed-off-by: Tyrolyean <tyrolyean@tyrolyean.net>
This commit is contained in:
Tyrolyean 2020-03-23 10:04:40 +01:00
parent fe336cda09
commit 8a28b339ab
No known key found for this signature in database
GPG Key ID: 81EC9BAC5E9667C6
50 changed files with 72427 additions and 33465 deletions

View File

@ -17,22 +17,114 @@
title = {DUAL 8-BIT MUTLIPLYING DIGITAL-TO-ANALOG CONVERTERS},
organization = {Texas Instruments Inc.},
year = {1987},
url = {http://www.komponenten.es.aau.dk/fileadmin/komponenten/Data_Sheet/Memory/IDT7201.pdf},
url = {https://www.ti.com/lit/ds/symlink/tlc7528.pdf},
}
@techreport{rs232,
type = {Standard},
key = {TIA-/EIA-232-F},
month = October,
month = Oct,
year = {1997},
title = {Interface Between Data Terminal Equipment and Data Circuit- Terminating Equipment Employing Serial Binary Data Interchange},
volume = {1997}
}
@Manual{max232,
month = February,
month = Feb,
year = {1989},
title = {MAX232x Dual EIA-232 Drivers/Receivers},
organization = {Texas Instruments Inc.},
url = {https://www.ti.com/lit/ds/symlink/max232.pdf}
}
@Manual{74hc374,
month = Feb,
year = {1998},
title = {High-Speed CMOS Logic Octal D-Type Flip-Flop, 3-State Positive-Edge Triggered},
organization = {Texas Instruments Inc.},
url = {https://www.ti.com/lit/ds/schs183c/schs183c.pdf}
}
@Manual{74hc00,
month = Dec,
year = {1982},
title = {SNx4HC00 Quadruple 2-Input Positive-NAND Gates},
organization = {Texas Instruments Inc.},
url = {https://www.ti.com/lit/ds/symlink/sn74hc00.pdf}
}
@Manual{ad2,
month = Sep,
year = {2015},
title = {Analog Discovery 2™ Reference Manual},
organization = {Digilent, Inc.},
url = {https://reference.digilentinc.com/_media/reference/instrumentation/analog-discovery-2/ad2_rm.pdf}
}
@Manual{atmega2560,
month = Feb,
year = {2014},
title = {Atmel ATmega640/V-1280/V-1281/V-2560/V-2561/V},
organization = {Atmel Corporation},
url = {https://ww1.microchip.com/downloads/en/devicedoc/atmel-2549-8-bit-avr-microcontroller-atmega640-1280-1281-2560-2561_datasheet.pdf}
}
@techreport{iec60908,
type = {Standard},
key = {IEC 60908},
month = Sep,
year = {1987},
institution = {International Electrotechnical Commission},
title = {Compact disc digital audio system},
volume = {1987}
}
@book{audiob,
title = {The Audio Expert: Everything You Need to Know About Audio},
author = {Winer, Ethan},
publisher = {Focal Press},
year = {2013},
url = {https://books.google.com/books?id=TIfOAwAAQBAJ&pg=PA107#v=onepage&q=-%2010%20dbv&f=false}
}
@article{lvlshift,
title = {Taking It To Another Level: Making 3.3V Speak With 5V},
author = {Jenny List},
publisher = {Hackaday},
year = {2016},
month = Dec,
url = {https://hackaday.com/2016/12/05/taking-it-to-another-level-making-3-3v-and-5v-logic-communicate-with-level-shifters/}
}
@Manual{DB3S406F0L,
month = Mar,
year = {2010},
title = {Schottky Barrier Diode DB3S406F0L Silicon epitaxial planar type},
organization = {Panasonic},
url = {https://industrial.panasonic.com/content/data/SC/ds/ds4/DB3S406F0L_E.pdf}
}
@Manual{dunnet,
year = {1982},
title = {Dunnet Source Code},
organization = {Emacs},
author = {Ron Schnell},
url = {https://github.com/jwiegley/emacs-release/blob/master/lisp/play/dunnet.el}
}
@Manual{vt100,
year = {1979},
title = {VT100 SERIES TECHNICAL MANUAL},
organization = {Digital Equipment Corporation},
url = {https://vt100.net/docs/vt100-tm/ek-vt100-tm-002.pdf}
}
@techreport{ascii,
type = {Standard},
key = {RFC 20},
month = Oct,
year = {1969},
institution = {Network Working Group},
title = {ASCII Format for Network Interchange},
volume = {1969},
url = {https://tools.ietf.org/pdf/rfc20.pdf}
}

View File

@ -72,7 +72,6 @@ int main(){
int routine(){
for(size_t i = 0; i < 256; i++){
//PORTF = (0xFF & ((uint8_t)(sinf(i*3.141592654/255)/3.141592654*255)));
PORTF = (0xFF & i);
PORTK &= ~(0x01<<0);
PORTK |= (0x01<<0);

View File

@ -115,11 +115,6 @@ int main(){
_delay_us(100);
PORTL &= ~(1<<MR_SHIFT);
/* Generate sine table */
for(size_t i = 0; i < 256; i++){
sine_table[i] = 0xFF&((int)((sin(i/((double)255)*(3.141592*2))*127.5+127.5)));
}
sei();
/* Enable the hardware watchdog. In case the microcontroller fails to
* finish it's task within the specified time, the watchdog will reset
@ -139,11 +134,10 @@ int main(){
int routine(){
for(uint8_t i = 0; i < 0xFF; i++){
write_to_dac(i%2, sine_table[i]);
write_to_dac(0x00, i);
}
write_to_dac(0x00, 0x00);
write_to_dac(0x01, 0x00);
_delay_ms(10);
return 0;

View File

@ -0,0 +1,70 @@
MKDIR_P := mkdir -p
CP := cp
MV := mv
CC := avr-gcc
CCC := avr-g++
RM_RF = rm -rf
OCPY := avr-objcopy
AVRDUDE := avrdude
PORT := /dev/ttyACM0
#PORT := usb
#BOARD := atmega328p
BOARD := atmega2560
#PROGRAMMER := arduino
PROGRAMMER := usbasp
#PROGBOARD := m328p
PROGBOARD := m2560
BAUD_RATE_PROG := 115200
FLASH_CMD := $(AVRDUDE) -b $(BAUD_RATE_PROG) -p $(PROGBOARD) -D -P $(PORT) -c $(PROGRAMMER)
AVRSIZE := avr-size
AVRSIZE_FLAGS := -C --mcu=$(PROGBOARD)
# directories
CWD := $(realpath .)
BINDIR := $(CWD)/bin
BUILDDIR := $(CWD)/build
SRCDIR := $(CWD)/src
INCLUDEDIR := $(CWD)/include
# flas
CFLAGS := -mmcu=$(BOARD) -Os -I$(INCLUDEDIR) -Wall -Wextra
LDFLAGS := -mmcu=$(BOARD)
# target files
DIRS_TARGET := $(BINDIR) $(BUILDDIR)
TARGET := $(BINDIR)/mc.hex
TARGET_ELF := $(BINDIR)/mc.elf
SRCFILES := $(wildcard $(SRCDIR)/*.c)
OBJFILES := $(patsubst $(SRCDIR)/%.c,$(BUILDDIR)/%.o,$(SRCFILES))
# fancy targets
all: directories $(TARGET)
directories: $(DIRS_TARGET)
# less fancy targets
$(DIRS_TARGET):
$(MKDIR_P) $@
$(TARGET) : $(TARGET_ELF)
$(OCPY) -O ihex -j .text -j .data $^ $@
$(TARGET_ELF): $(OBJFILES)
$(CC) $(LDFLAGS) -o $@ $^
$(AVRSIZE) $(AVRSIZE_FLAGS) $@
$(BUILDDIR)/%.o: $(SRCDIR)/%.c
$(CC) $(CFLAGS) -c -o $@ $<
flash: $(TARGET)
# For atmega 2560
$(FLASH_CMD) -e -U hfuse:w:0xD9:m -U lfuse:w:0xDF:m -U efuse:w:0xFF:m -U flash:w:$^:i -U efuse:w:0xfa:m
# For atmega 328p:
#$(FLASH_CMD) -e -U hfuse:w:0xD9:m -U efuse:w:0xFF:m -U lfuse:w:0xDF:m -U flash:w:$^:i -U efuse:w:0xfd:m
# If unknown or no fuse bits available over programmer
#$(FLASH_CMD) -U flash:w:$^:i
$(FLASH_CMD) -U flash:v:$^:i
clean:
$(RM_RF) $(DIRS_TARGET)

Binary file not shown.

View File

@ -0,0 +1,140 @@
:100000000C9481000C94A4000C94A4000C94A40003
:100010000C94A4000C94A4000C94A4000C94A400D0
:100020000C94A4000C94A4000C94A4000C94A400C0
:100030000C94A4000C94A4000C94A4000C94A400B0
:100040000C94A4000C94A4000C94A4000C94A400A0
:100050000C94A4000C94A4000C94A4000C94A40090
:100060000C94A4000C94A4000C94A4000C94A40080
:100070000C94A4000C94A4000C94A4000C94A40070
:100080000C94A4000C94A4000C94A4000C94A40060
:100090000C94A4000C94A4000C94A4000C94A40050
:1000A0000C94A4000C94A4000C94A4000C94A40040
:1000B0000C94A4000C94A4000C94A4000C94A40030
:1000C0000C94A4000C94A4000C94A4000C94A40020
:1000D0000C94A4000C94A4000C94A4000C94A40010
:1000E0000C94A40005A84CCDB2D44EB93836A90260
:1000F0000C50B9918688083CA6AAAA2ABE00000026
:10010000803F11241FBECFEFD1E2DEBFCDBF00E0A4
:100110000CBF84B78093000314BE0FB6F894A89563
:1001200080916000886180936000109260000FBE33
:1001300023E0A0E0B2E001C01D92A030B207E1F7D9
:100140000E9409010C9450040C9400008093080153
:100150000895A8E0B1E08C938FEF80BBEBE0F1E075
:1001600080818D7F808361BB80818F7E808385E0ED
:100170008A95F1F700008081806180831C928081E4
:100180008260808311BA0895A8E0B1E08C9310BA20
:1001900011BAEBE0F1E080818B7F808380818F7EDC
:1001A000808385E08A95F1F700008FB1908190619E
:1001B00090831C929081946090839FEF90BB11BAC2
:1001C00095E09A95F1F7000008950F931F93CF9350
:1001D00000E012E0C0E0F80161918F018C2F817086
:1001E0000E94A900CF5FCF3FB1F760E080E00E949E
:1001F000A90060E081E00E94A9008FE39CE90197DB
:10020000F1F700C0000090E080E0CF911F910F91C6
:10021000089500D000D0CDB7DEB7F8948FEF80BB43
:100220008093070180930A0111BA1092080110927D
:100230000B0180910B01826080930B0180910B0177
:10024000846080930B0180910B01806180930B018E
:1002500080910B01816080930B018FE891E0019701
:10026000F1F700C0000080910B018E7F80930B019D
:1002700000E012E01E821D82AD81BE81CD01B0E0A2
:10028000A0E089839A83AB83BC83BC01CD010E942B
:10029000C50220E030E04FE753E469837A838B8323
:1002A0009C8369817A818B819C810E941D0228ED4B
:1002B0003FE049EC50E469837A838B839C836981B6
:1002C0007A818B819C810E94530369837A838B831B
:1002D0009C8369817A818B819C810E94C00320E08C
:1002E00030E04FEF52E469837A838B839C8369818A
:1002F0007A818B819C810E94530320E030E04FEF94
:1003000052E469837A838B839C8369817A818B81B0
:100310009C810E94B10169837A838B839C8369816C
:100320007A818B819C810E948F02F80161938F01F9
:100330008D819E8101969E838D838115914009F068
:100340009BCF789488E19EE00FB6F894A8958093AF
:1003500060000FBE90936000A8950E94E500FCCF5E
:100360005058BB27AA270E94C8010C9419030E9469
:100370000B0338F00E94120320F039F49F3F19F468
:1003800026F40C9408030EF4E095E7FB0C940203AA
:10039000E92F0E942A0358F3BA17620773078407EC
:1003A000950720F079F4A6F50C944C030EF4E09533
:1003B0000B2EBA2FA02D0B01B90190010C01CA011F
:1003C000A0011124FF27591B99F0593F50F4503ECA
:1003D00068F11A16F040A22F232F342F4427585FBC
:1003E000F3CF469537952795A795F0405395C9F7D4
:1003F0007EF41F16BA0B620B730B840BBAF091508C
:10040000A1F0FF0FBB1F661F771F881FC2F70EC02A
:10041000BA0F621F731F841F48F4879577956795FD
:10042000B795F7959E3F08F0B0CF9395880F08F0E9
:100430009927EE0F9795879508950E9431020C94A5
:1004400019030E94120358F00E940B0340F029F494
:100450005F3F29F00C94020351110C944D030C944E
:1004600008030E942A0368F39923B1F3552391F3FB
:10047000951B550BBB27AA2762177307840738F013
:100480009F5F5F4F220F331F441FAA1FA9F335D070
:100490000E2E3AF0E0E832D091505040E695001C24
:1004A000CAF72BD0FE2F29D0660F771F881FBB1FDE
:1004B000261737074807AB07B0E809F0BB0B802DBC
:1004C000BF01FF2793585F4F3AF09E3F510578F0E8
:1004D0000C9402030C944D035F3FE4F3983ED4F375
:1004E000869577956795B795F7959F5FC9F7880FBC
:1004F000911D9695879597F90895E1E0660F771F0E
:10050000881FBB1F621773078407BA0720F0621B9E
:10051000730B840BBA0BEE1F88F7E09508950E94C9
:1005200096026894B1110C944D0308950E94320311
:1005300088F09F5798F0B92F9927B751B0F0E1F0A4
:10054000660F771F881F991F1AF0BA95C9F714C054
:10055000B13091F00E944C03B1E008950C944C032B
:10056000672F782F8827B85F39F0B93FCCF386958D
:1005700077956795B395D9F73EF4909580957095EA
:1005800061957F4F8F4F9F4F0895E89409C097FB67
:100590003EF490958095709561957F4F8F4F9F4F5A
:1005A0009923A9F0F92F96E9BB279395F69587959E
:1005B00077956795B795F111F8CFFAF4BB0F11F461
:1005C00060FF1BC06F5F7F4F8F4F9F4F16C0882308
:1005D00011F096E911C0772321F09EE8872F762F3E
:1005E00005C0662371F096E8862F70E060E02AF07F
:1005F0009A95660F771F881FDAF7880F969587956B
:1006000097F9089597F99F6780E870E060E0089592
:100610009FEF80EC089500240A941616170618061A
:100620000906089500240A941216130614060506F6
:100630000895092E0394000C11F4882352F0BB0F87
:1006400040F4BF2B11F460FF04C06F5F7F4F8F4FEA
:100650009F4F089557FD9058440F551F59F05F3F25
:1006600071F04795880F97FB991F61F09F3F79F0D4
:1006700087950895121613061406551FF2CF469556
:10068000F1DF08C0161617061806991FF1CF8695D8
:100690007105610508940895E894BB2766277727BC
:1006A000CB0197F908950E9466030C9419030E94E8
:1006B0000B0338F00E94120320F0952311F00C94E4
:1006C00002030C94080311240C944D030E942A0386
:1006D00070F3959FC1F3950F50E0551F629FF00195
:1006E000729FBB27F00DB11D639FAA27F00DB11DAE
:1006F000AA1F649F6627B00DA11D661F829F222737
:10070000B00DA11D621F739FB00DA11D621F839FBD
:10071000A00D611D221F749F3327A00D611D231F93
:10072000849F600D211D822F762F6A2F11249F57E1
:1007300050409AF0F1F088234AF0EE0FFF1FBB1FE4
:10074000661F771F881F91505040A9F79E3F5105A3
:1007500080F00C9402030C944D035F3FE4F3983E49
:10076000D4F3869577956795B795F795E7959F5F4D
:10077000C1F7FE2B880F911D9695879597F90895DF
:100780009F930E94CA030F9007FCEE5F0C94F30343
:100790000C9408030E943203D8F3E894E0E0BB27EE
:1007A0009F57F0F02AED3FE049EC06C0EE0FBB0F7B
:1007B000661F771F881F28F0B23A62077307840705
:1007C00028F0B25A620B730B840BE3959A9572F77B
:1007D000803830F49A95BB0F661F771F881FD2F7B9
:1007E00090480C940904EF93E0FF07C0A2EA2AEDB9
:1007F0003FE049EC5FEB0E94C8010E9419030F9093
:10080000039401FC9058E4EEF0E00C9415049F3F33
:1008100031F0915020F4879577956795B795880FBB
:10082000911D9695879597F908959F938F937F9340
:100830006F93FF93EF939B01AC010E945303EF91E1
:10084000FF910E9429042F913F914F915F910C9449
:100850005303DF93CF931F930F93FF92EF92DF9297
:100860007B018C01689406C0DA2EEF010E946603BA
:10087000FE01E894A5912591359145915591A6F3F6
:10088000EF010E94C801FE019701A801DA9469F7FF
:10089000DF90EF90FF900F911F91CF91DF9108951E
:0408A000F894FFCFFA
:00000001FF

Binary file not shown.

View File

@ -0,0 +1,153 @@
/* Copyright © 2020 tyrolyean
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#define F_CPU 16000000UL
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <avr/wdt.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#define BUS_HOLD_US 1
/* Shift values inside the PORTK Register */
#define WR_SHIFT 1
#define RD_SHIFT 2
#define MR_SHIFT 0
#define CS_SHIFT 4
uint8_t mcusr_mirror __attribute__ ((section (".noinit")));
void get_mcusr(void) \
__attribute__((naked)) \
__attribute__((section(".init3")));
void get_mcusr(void)
{
mcusr_mirror = MCUSR;
MCUSR = 0;
wdt_disable();
}
void set_addr(uint8_t addr){
PORTK = addr;
return;
}
uint8_t sine_table[256];
void write_to_dac(uint8_t addr, uint8_t data){
set_addr(addr);
DDRF = 0xFF;
PORTL &= ~(1<<WR_SHIFT);
PORTF = data;
PORTL &= ~(1<<CS_SHIFT);
_delay_us(BUS_HOLD_US); /*Wait for the data and signal lanes to become stable*/
PORTL |= 1<<CS_SHIFT;
set_addr(0x00);
PORTL |= 1<<WR_SHIFT;
PORTF = 0x00;
return;
}
uint8_t read_from_dac(uint8_t addr){
uint8_t data = 0x00;
set_addr(addr);
DDRF = 0x00;
PORTF = 0x00;
PORTL &= ~(1<<RD_SHIFT);
PORTL &= ~(1<<CS_SHIFT);
_delay_us(BUS_HOLD_US); /* Wait for the data and signal lanes to become stable*/
data = PINF;
PORTL |= 1<<CS_SHIFT;
set_addr(0x00);
PORTL |= 1<<RD_SHIFT;
DDRF = 0xFF;
PORTF = 0x00;
_delay_us(BUS_HOLD_US); /*Wait for the data and signal lanes to become stable*/
return data;
}
int routine();
int main(){
/* Disable interrupts during initialisation phase */
cli();
/* Setup Data Direction Registers and populate with sane default
values */
DDRF = 0xFF; /* Data Bus */
DDRK = 0xFF; /* Address Bus */
DDRL = 0xFF; /* Control Bus */
PORTF = 0x00;
PORTK = 0x00;
PORTL = 0x00;
/* Cleanly reset the dac uart */
PORTL |= (1<<WR_SHIFT);
PORTL |= (1<<RD_SHIFT);
PORTL |= (1<<CS_SHIFT);
PORTL |= (1<<MR_SHIFT);
_delay_us(100);
PORTL &= ~(1<<MR_SHIFT);
/* Generate sine table */
uint8_t sine_table[256];
for(size_t i = 0; i < 256; i++){
sine_table[i] = 0xFF&((int)((sin(i/((double)255)*(3.141592*2))*
127.5+127.5)));
}
sei();
/* Enable the hardware watchdog. In case the microcontroller fails to
* finish it's task within the specified time, the watchdog will reset
* the atmel cookie.
*/
wdt_enable(WDTO_1S);
while(1){
wdt_reset();
if(routine() < 0){
}
}
return 0;
}
int routine(){
for(uint8_t i = 0; i < 0xFF; i++){
write_to_dac(i%2, sine_table[i]);
}
write_to_dac(0x00, 0x00);
write_to_dac(0x01, 0x00);
_delay_ms(10);
return 0;
}

View File

@ -59,8 +59,12 @@ uint8_t read_from_dac(uint8_t addr){
}
void feed_dac(){
/* Internal counter for positioning inside the array */
/* Internal counter for positioning inside the currently playing
* waveform */
static uint8_t threash = 0x00;
/* Used to generate the desired frequency offset if the waveform should
* be made "longer" --> the frequency made lower from baseline
*/
static int16_t freq_delay_cnt = 0x00;
switch(dac_mode){
@ -74,8 +78,7 @@ void feed_dac(){
case DAC_MODE_SINE:
/* Generates a sine from a predetermined sine table in program
* space
*/
* space */
for(uint8_t i = 0; i < (0xFF/2); i++){
write_to_dac(1,
pgm_read_byte(&sine_table[threash]));

View File

@ -216,7 +216,9 @@ const struct tone_t intro_track[] PROGMEM =
const struct tone_t *current_track = NULL;
/* Loops a track indefinitely and changes voices according to predefined tables.
* A new track resets the internal state. A voice with a length of 0ms */
* A new track resets the internal state. A voice with a length of 0ms is used
* to mark the end of a track and continue at the beginning
*/
void update_sound(){
static uint16_t audio_time = 0;
@ -246,12 +248,10 @@ void update_sound(){
memcpy_P(&current_tone,&(current_track[tone_pointer]),
sizeof(current_tone));
}
dac_mode = current_tone.waveform;
dac_frequency_deviation = current_tone.frequency_deviation;
audio_time = 0x00;
tone_pointer++;

21
code/textadv/texput.log Normal file
View File

@ -0,0 +1,21 @@
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/Arch Linux) (preloaded format=xelatex 2020.3.10) 22 MAR 2020 23:57
entering extended mode
\write18 enabled.
%&-line parsing enabled.
**main.texx
! Emergency stop.
<*> main.texx
End of file on the terminal!
Here is how much of TeX's memory you used:
3 strings out of 492483
19 string characters out of 6134979
66274 words of memory out of 5000000
4587 multiletter control sequences out of 15000+600000
3640 words of font info for 14 fonts, out of 8000000 for 9000
1348 hyphenation exceptions out of 8191
0i,0n,0p,1b,6s stack positions out of 5000i,500n,10000p,200000b,80000s
No pages of output.

58581
documents/mst1/atmel_2560.pdf Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

BIN
documents/mst1/rfc20.pdf Normal file

Binary file not shown.

232
main.aux
View File

@ -31,16 +31,16 @@
\@writefile{toc}{\contentsline {section}{Kurzfassung/Abstract}{ii}{Doc-Start}\protected@file@percent }
\babel@aux{ngerman}{}
\babel@aux{ngerman}{}
\@writefile{toc}{\contentsline {section}{Projektergebnis}{iii}{Doc-Start}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{Result}{iii}{Doc-Start}\protected@file@percent }
\babel@aux{english}{}
\HyPL@Entry{4<</S/D>>}
\HyPL@Entry{6<</S/D>>}
\@writefile{toc}{\contentsline {section}{\numberline {1}Task description}{1}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Hardware}{1}{subsection.1.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {2}Hardware peripherials}{2}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Parallel bus}{2}{subsection.2.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Atari PBI Pinout;Source: \url {https://www.atarimagazines.com}\relax }}{2}{figure.caption.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {i}{\ignorespaces Atari PBI Pinout;Source: \url {https://www.atarimagazines.com}\relax }}{2}{figure.caption.1}\protected@file@percent }
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
\newlabel{fig:atari_pbi}{{1}{2}{Atari PBI Pinout;Source: \url {https://www.atarimagazines.com}\relax }{figure.caption.1}{}}
\newlabel{fig:atari_pbi}{{i}{2}{Atari PBI Pinout;Source: \url {https://www.atarimagazines.com}\relax }{figure.caption.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.1}Address Bus}{2}{subsubsection.2.1.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Data Bus}{3}{subsection.2.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Control Bus}{3}{subsection.2.3}\protected@file@percent }
@ -48,20 +48,24 @@
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.2}Write Not}{3}{subsubsection.2.3.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.3}Read Not}{3}{subsubsection.2.3.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.4}Module Select 1 and 2 Not}{3}{subsubsection.2.3.4}\protected@file@percent }
\abx@aux@cite{ad2}
\abx@aux@segm{0}{0}{ad2}
\abx@aux@cite{atmega2560}
\abx@aux@segm{0}{0}{atmega2560}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Testing and Measurement}{4}{subsection.2.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.1}Measurements}{4}{subsubsection.2.4.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Digilent Analog Discovery 2;Source: \url {https://www.sparkfun.com/}\relax }}{4}{figure.caption.2}\protected@file@percent }
\newlabel{fig:ad2}{{2}{4}{Digilent Analog Discovery 2;Source: \url {https://www.sparkfun.com/}\relax }{figure.caption.2}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {ii}{\ignorespaces Digilent Analog Discovery 2;Source: \url {https://www.sparkfun.com/}\relax }}{4}{figure.caption.2}\protected@file@percent }
\newlabel{fig:ad2}{{ii}{4}{Digilent Analog Discovery 2;Source: \url {https://www.sparkfun.com/}\relax }{figure.caption.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.2}Testing}{4}{subsubsection.2.4.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Backplane}{5}{subsection.2.5}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Layout of the DIN41612 Connectors on the Backplane\relax }}{5}{figure.caption.3}\protected@file@percent }
\newlabel{fig:schem_back_conn}{{3}{5}{Layout of the DIN41612 Connectors on the Backplane\relax }{figure.caption.3}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {iii}{\ignorespaces Layout of the DIN41612 Connectors on the Backplane\relax }}{5}{figure.caption.3}\protected@file@percent }
\newlabel{fig:schem_back_conn}{{iii}{5}{Layout of the DIN41612 Connectors on the Backplane\relax }{figure.caption.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.1}Termination resistors}{5}{subsubsection.2.5.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Measurement at around 1MHz bus clock on MS1\relax }}{6}{figure.caption.4}\protected@file@percent }
\newlabel{fig:reflex}{{4}{6}{Measurement at around 1MHz bus clock on MS1\relax }{figure.caption.4}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {iv}{\ignorespaces Measurement at around 1MHz bus clock on MS1\relax }}{6}{figure.caption.4}\protected@file@percent }
\newlabel{fig:reflex}{{iv}{6}{Measurement at around 1MHz bus clock on MS1\relax }{figure.caption.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}Case}{6}{subsection.2.6}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces The case with installed backplane\relax }}{7}{figure.caption.5}\protected@file@percent }
\newlabel{fig:case}{{5}{7}{The case with installed backplane\relax }{figure.caption.5}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {v}{\ignorespaces The case with installed backplane\relax }}{7}{figure.caption.5}\protected@file@percent }
\newlabel{fig:case}{{v}{7}{The case with installed backplane\relax }{figure.caption.5}{}}
\abx@aux@cite{pc16550}
\abx@aux@segm{0}{0}{pc16550}
\abx@aux@cite{pc16550}
@ -70,8 +74,8 @@
\abx@aux@segm{0}{0}{max232}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.7}Serial Console}{8}{subsection.2.7}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.7.1}16550 UART}{8}{subsubsection.2.7.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces PC-16550D Pinout\cite {pc16550}\relax }}{8}{figure.caption.6}\protected@file@percent }
\newlabel{fig:16550_pinout}{{6}{8}{PC-16550D Pinout\cite {pc16550}\relax }{figure.caption.6}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {vi}{\ignorespaces PC-16550D Pinout\cite {pc16550}\relax }}{8}{figure.caption.6}\protected@file@percent }
\newlabel{fig:16550_pinout}{{vi}{8}{PC-16550D Pinout\cite {pc16550}\relax }{figure.caption.6}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.7.2}MAX-232}{9}{subsubsection.2.7.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.7.3}Schematics}{9}{subsubsection.2.7.3}\protected@file@percent }
\abx@aux@cite{pc16550}
@ -80,42 +84,192 @@
\abx@aux@segm{0}{0}{pc16550}
\abx@aux@cite{max232}
\abx@aux@segm{0}{0}{max232}
\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces The schematic of the UART Module\relax }}{10}{figure.caption.7}\protected@file@percent }
\newlabel{fig:schem_uart}{{7}{10}{The schematic of the UART Module\relax }{figure.caption.7}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {vii}{\ignorespaces The schematic of the UART Module\relax }}{10}{figure.caption.7}\protected@file@percent }
\newlabel{fig:schem_uart}{{vii}{10}{The schematic of the UART Module\relax }{figure.caption.7}{}}
\@writefile{toc}{\contentsline {paragraph}{Element Description}{11}{figure.caption.7}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Measurement of the 1.8432 MHz Output on J1\relax }}{11}{figure.caption.8}\protected@file@percent }
\newlabel{fig:uartquartz}{{8}{11}{Measurement of the 1.8432 MHz Output on J1\relax }{figure.caption.8}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Measurement of a character transmission before and after MAX-232\relax }}{12}{figure.caption.9}\protected@file@percent }
\newlabel{fig:uart232}{{9}{12}{Measurement of a character transmission before and after MAX-232\relax }{figure.caption.9}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Pinout of the RJ-45 Plug; Src: \url {https://www.wti.com/}\relax }}{12}{figure.caption.10}\protected@file@percent }
\newlabel{fig:rs232rj45}{{10}{12}{Pinout of the RJ-45 Plug; Src: \url {https://www.wti.com/}\relax }{figure.caption.10}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {viii}{\ignorespaces Measurement of the 1.8432 MHz Output on J1\relax }}{11}{figure.caption.8}\protected@file@percent }
\newlabel{fig:uartquartz}{{viii}{11}{Measurement of the 1.8432 MHz Output on J1\relax }{figure.caption.8}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {ix}{\ignorespaces Measurement of a character transmission before and after MAX-232\relax }}{12}{figure.caption.9}\protected@file@percent }
\newlabel{fig:uart232}{{ix}{12}{Measurement of a character transmission before and after MAX-232\relax }{figure.caption.9}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {x}{\ignorespaces Pinout of the RJ-45 Plug; Src: \url {https://www.wti.com/}\relax }}{12}{figure.caption.10}\protected@file@percent }
\newlabel{fig:rs232rj45}{{x}{12}{Pinout of the RJ-45 Plug; Src: \url {https://www.wti.com/}\relax }{figure.caption.10}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.7.4}Demonstration Software}{13}{subsubsection.2.7.4}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Measurement of a character echo\relax }}{13}{figure.caption.11}\protected@file@percent }
\newlabel{fig:232_echo}{{11}{13}{Measurement of a character echo\relax }{figure.caption.11}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {xi}{\ignorespaces Measurement of a character echo\relax }}{13}{figure.caption.11}\protected@file@percent }
\newlabel{fig:232_echo}{{xi}{13}{Measurement of a character echo\relax }{figure.caption.11}{}}
\@writefile{toc}{\contentsline {paragraph}{Transmit code}{13}{figure.caption.11}\protected@file@percent }
\newlabel{lst:16550-general}{{1}{13}{Read and write routines for the 16550 UART}{lstlisting.1}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {1}Read and write routines for the 16550 UART}{13}{lstlisting.1}\protected@file@percent }
\newlabel{lst:16550-general}{{I}{13}{Read and write routines for the 16550 UART}{lstlisting.1}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {I}Read and write routines for the 16550 UART}{13}{lstlisting.1}\protected@file@percent }
\abx@aux@cite{pc16550}
\abx@aux@segm{0}{0}{pc16550}
\newlabel{lst:16550-transmit}{{2}{15}{16550 INIT routines and single char transmission}{lstlisting.2}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {2}16550 INIT routines and single char transmission}{15}{lstlisting.2}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {12}{\ignorespaces Transmission of character A via the 16550 UART\relax }}{16}{figure.caption.12}\protected@file@percent }
\newlabel{fig:16550A}{{12}{16}{Transmission of character A via the 16550 UART\relax }{figure.caption.12}{}}
\newlabel{lst:16550-transmit}{{II}{15}{16550 INIT routines and single char transmission}{lstlisting.2}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {II}16550 INIT routines and single char transmission}{15}{lstlisting.2}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {xii}{\ignorespaces Transmission of character A via the 16550 UART\relax }}{16}{figure.caption.12}\protected@file@percent }
\newlabel{fig:16550A}{{xii}{16}{Transmission of character A via the 16550 UART\relax }{figure.caption.12}{}}
\@writefile{toc}{\contentsline {paragraph}{Echo code}{16}{figure.caption.12}\protected@file@percent }
\newlabel{lst:16550-echo}{{3}{16}{16550 character echo}{lstlisting.3}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {3}16550 character echo}{16}{lstlisting.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3}Textadventure}{17}{section.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}General Implementation details}{18}{subsection.3.1}\protected@file@percent }
\newlabel{lst:textadv-avr.h}{{4}{18}{The avr.h header file}{lstlisting.4}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {4}The avr.h header file}{18}{lstlisting.4}\protected@file@percent }
\newlabel{lst:16550-echo}{{III}{16}{16550 character echo}{lstlisting.3}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {III}16550 character echo}{16}{lstlisting.3}\protected@file@percent }
\abx@aux@cite{tlc7528}
\abx@aux@segm{0}{0}{tlc7528}
\abx@aux@cite{tlc7528}
\abx@aux@segm{0}{0}{tlc7528}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.8}Audio Digital-Analog-Converter}{17}{subsection.2.8}\protected@file@percent }
\abx@aux@cite{tlc7528}
\abx@aux@segm{0}{0}{tlc7528}
\abx@aux@cite{tlc7528}
\abx@aux@segm{0}{0}{tlc7528}
\abx@aux@cite{idt7201}
\abx@aux@segm{0}{0}{idt7201}
\abx@aux@cite{idt7201}
\abx@aux@segm{0}{0}{idt7201}
\abx@aux@cite{idt7201}
\abx@aux@segm{0}{0}{idt7201}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.8.1}TLC 7528 Dual R2R Ladder DAC}{18}{subsubsection.2.8.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {xiii}{\ignorespaces TLC-7528 Pinout\cite {tlc7528}\relax }}{18}{figure.caption.13}\protected@file@percent }
\newlabel{fig:tlc7528_pinout}{{xiii}{18}{TLC-7528 Pinout\cite {tlc7528}\relax }{figure.caption.13}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.8.2}IDT7201 CMOS FIFO Buffer}{18}{subsubsection.2.8.2}\protected@file@percent }
\abx@aux@cite{tlc7528}
\abx@aux@segm{0}{0}{tlc7528}
\abx@aux@cite{tlc7528}
\abx@aux@segm{0}{0}{tlc7528}
\abx@aux@cite{tlc7528}
\abx@aux@segm{0}{0}{tlc7528}
\@writefile{lof}{\contentsline {figure}{\numberline {xiv}{\ignorespaces IDT-7201 Pinout\cite {idt7201}\relax }}{19}{figure.caption.14}\protected@file@percent }
\newlabel{fig:idt7201_pinout}{{xiv}{19}{IDT-7201 Pinout\cite {idt7201}\relax }{figure.caption.14}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.8.3}Theory verfication}{19}{subsubsection.2.8.3}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {xv}{\ignorespaces TLC-7528 in voltage modet\cite {tlc7528}\relax }}{20}{figure.caption.15}\protected@file@percent }
\newlabel{fig:tlc7528_volt}{{xv}{20}{TLC-7528 in voltage modet\cite {tlc7528}\relax }{figure.caption.15}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {xvi}{\ignorespaces Measurement of a generated SAW signal via the TLC7528\relax }}{20}{figure.caption.16}\protected@file@percent }
\newlabel{fig:tlc7528_saw_nonlin}{{xvi}{20}{Measurement of a generated SAW signal via the TLC7528\relax }{figure.caption.16}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.8.4}Schematics}{20}{subsubsection.2.8.4}\protected@file@percent }
\abx@aux@cite{74hc374}
\abx@aux@segm{0}{0}{74hc374}
\@writefile{lof}{\contentsline {figure}{\numberline {xvii}{\ignorespaces The schematic of the DAC Module\relax }}{21}{figure.caption.17}\protected@file@percent }
\newlabel{fig:schem_dac}{{xvii}{21}{The schematic of the DAC Module\relax }{figure.caption.17}{}}
\abx@aux@cite{74hc00}
\abx@aux@segm{0}{0}{74hc00}
\abx@aux@cite{iec60908}
\abx@aux@segm{0}{0}{iec60908}
\abx@aux@cite{audiob}
\abx@aux@segm{0}{0}{audiob}
\@writefile{toc}{\contentsline {paragraph}{Element Description}{22}{figure.caption.17}\protected@file@percent }
\@writefile{toc}{\contentsline {paragraph}{NE55 Clock Source}{22}{figure.caption.17}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.8.5}Demonstration Software}{23}{subsubsection.2.8.5}\protected@file@percent }
\@writefile{toc}{\contentsline {paragraph}{SAW Generator}{23}{subsubsection.2.8.5}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {xviii}{\ignorespaces Measurement of a generated SAW signal with the FIFO Empty flag\relax }}{23}{figure.caption.18}\protected@file@percent }
\newlabel{fig:tlc7528_saw_fifo}{{xviii}{23}{Measurement of a generated SAW signal with the FIFO Empty flag\relax }{figure.caption.18}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {xix}{\ignorespaces A transmission between the FIFO and the DAC\relax }}{24}{figure.caption.19}\protected@file@percent }
\newlabel{fig:fifo_dac}{{xix}{24}{A transmission between the FIFO and the DAC\relax }{figure.caption.19}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {xx}{\ignorespaces A fifo store operation in contrast to the load operation\relax }}{24}{figure.caption.20}\protected@file@percent }
\newlabel{fig:fifo_dac_store}{{xx}{24}{A fifo store operation in contrast to the load operation\relax }{figure.caption.20}{}}
\newlabel{lst:dac_saw}{{IV}{24}{SAW Generation for the DAC with FIFO}{lstlisting.4}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {IV}SAW Generation for the DAC with FIFO}{24}{lstlisting.4}\protected@file@percent }
\abx@aux@cite{atmega2560}
\abx@aux@segm{0}{0}{atmega2560}
\@writefile{toc}{\contentsline {paragraph}{Sine Generator}{25}{lstnumber.4.11}\protected@file@percent }
\newlabel{lst:dac_sine_lut}{{V}{25}{Sine LUT Generation}{lstlisting.5}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {V}Sine LUT Generation}{25}{lstlisting.5}\protected@file@percent }
\newlabel{lst:dac_sine}{{VI}{25}{DAC Sine Generation}{lstlisting.6}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {VI}DAC Sine Generation}{25}{lstlisting.6}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {xxi}{\ignorespaces Storage and retrieval of a sine to and from the FIFO\relax }}{26}{figure.caption.21}\protected@file@percent }
\newlabel{fig:fifo_sine_store}{{xxi}{26}{Storage and retrieval of a sine to and from the FIFO\relax }{figure.caption.21}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {xxii}{\ignorespaces Measuremet of the generated sine from the sine LUT on DACA and DACB\relax }}{26}{figure.caption.22}\protected@file@percent }
\newlabel{fig:sine_dacab}{{xxii}{26}{Measuremet of the generated sine from the sine LUT on DACA and DACB\relax }{figure.caption.22}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Addressing DACA and DACB}{26}{section.3}\protected@file@percent }
\abx@aux@cite{lvlshift}
\abx@aux@segm{0}{0}{lvlshift}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}FPGA to Hardware interface}{27}{subsection.3.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {xxiii}{\ignorespaces 3.3V to 5V conversion using the level shifter\relax }}{27}{figure.caption.23}\protected@file@percent }
\newlabel{fig:3v35v}{{xxiii}{27}{3.3V to 5V conversion using the level shifter\relax }{figure.caption.23}{}}
\abx@aux@cite{lvlshift}
\abx@aux@segm{0}{0}{lvlshift}
\abx@aux@cite{lvlshift}
\abx@aux@segm{0}{0}{lvlshift}
\@writefile{lof}{\contentsline {figure}{\numberline {xxiv}{\ignorespaces 5V to 3.3V conversion using the level shifter\relax }}{28}{figure.caption.24}\protected@file@percent }
\newlabel{fig:5v3v3}{{xxiv}{28}{5V to 3.3V conversion using the level shifter\relax }{figure.caption.24}{}}
\abx@aux@cite{DB3S406F0L}
\abx@aux@segm{0}{0}{DB3S406F0L}
\abx@aux@cite{ad2}
\abx@aux@segm{0}{0}{ad2}
\abx@aux@cite{ad2}
\abx@aux@segm{0}{0}{ad2}
\@writefile{lof}{\contentsline {figure}{\numberline {xxv}{\ignorespaces The internal schematics of the level shifter\cite {lvlshift}\relax }}{29}{figure.caption.25}\protected@file@percent }
\newlabel{fig:schem_lvlshift}{{xxv}{29}{The internal schematics of the level shifter\cite {lvlshift}\relax }{figure.caption.25}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.1}Measurement error}{29}{subsubsection.3.1.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {xxvi}{\ignorespaces The internal clamping diodes of the Analog Discovery 2\cite {ad2}\relax }}{30}{figure.caption.26}\protected@file@percent }
\newlabel{fig:ad2_diode}{{xxvi}{30}{The internal clamping diodes of the Analog Discovery 2\cite {ad2}\relax }{figure.caption.26}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4}Textadventure}{30}{section.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}General Implementation details}{30}{subsection.4.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}General definitions and pinout of the AVR}{30}{subsubsection.4.1.1}\protected@file@percent }
\newlabel{lst:textadv-avr.h}{{VII}{30}{The avr.h header file}{lstlisting.7}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {VII}The avr.h header file}{30}{lstlisting.7}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Read and Write routines}{32}{subsubsection.4.1.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3}UART and DAC update polling}{32}{subsubsection.4.1.3}\protected@file@percent }
\newlabel{lst:textadv-routine}{{VIII}{32}{The routine function looped by the main}{lstlisting.8}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {VIII}The routine function looped by the main}{32}{lstlisting.8}\protected@file@percent }
\newlabel{lst:textadv-routine-uart}{{IX}{32}{The routine function for the UART}{lstlisting.9}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {IX}The routine function for the UART}{32}{lstlisting.9}\protected@file@percent }
\abx@aux@cite{atmega2560}
\abx@aux@segm{0}{0}{atmega2560}
\newlabel{lst:textadv-routine-dac}{{X}{33}{The routine function for the DAC}{lstlisting.10}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {X}The routine function for the DAC}{33}{lstlisting.10}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}DAC sound generation}{33}{subsection.4.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}DAC modes}{33}{subsubsection.4.2.1}\protected@file@percent }
\newlabel{lst:textadv-dac-modes}{{XI}{34}{The DAC operation modes}{lstlisting.11}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XI}The DAC operation modes}{34}{lstlisting.11}\protected@file@percent }
\newlabel{lst:textadv-dac-gen}{{XII}{34}{The DAC waveform generation code}{lstlisting.12}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XII}The DAC waveform generation code}{34}{lstlisting.12}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Tones and Tracks}{37}{subsubsection.4.2.2}\protected@file@percent }
\newlabel{lst:textadv-isr}{{XIII}{37}{The ISR which fires every millisecond}{lstlisting.13}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XIII}The ISR which fires every millisecond}{37}{lstlisting.13}\protected@file@percent }
\newlabel{lst:textadv-upsnd}{{XIV}{38}{The sound update function}{lstlisting.14}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XIV}The sound update function}{38}{lstlisting.14}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {xxvii}{\ignorespaces The output of an example track part 1\relax }}{40}{figure.caption.27}\protected@file@percent }
\newlabel{fig:textadv_track_ex1}{{xxvii}{40}{The output of an example track part 1\relax }{figure.caption.27}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {xxviii}{\ignorespaces The output of an example track part 2\relax }}{41}{figure.caption.28}\protected@file@percent }
\newlabel{fig:textadv_track_ex2}{{xxviii}{41}{The output of an example track part 2\relax }{figure.caption.28}{}}
\abx@aux@cite{dunnet}
\abx@aux@segm{0}{0}{dunnet}
\abx@aux@cite{ascii}
\abx@aux@segm{0}{0}{ascii}
\abx@aux@cite{vt100}
\abx@aux@segm{0}{0}{vt100}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Track switching}{42}{subsubsection.4.2.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}User command interpretation}{42}{subsection.4.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}Command structure and pasring}{42}{subsubsection.4.3.1}\protected@file@percent }
\newlabel{lst:textadv-uart-recv}{{XV}{42}{The UART char receive code}{lstlisting.15}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XV}The UART char receive code}{42}{lstlisting.15}\protected@file@percent }
\newlabel{lst:textadv-ingest}{{XVI}{42}{The character ingest function}{lstlisting.16}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XVI}The character ingest function}{42}{lstlisting.16}\protected@file@percent }
\abx@aux@cite{ascii}
\abx@aux@segm{0}{0}{ascii}
\abx@aux@cite{vt100}
\abx@aux@segm{0}{0}{vt100}
\newlabel{lst:textadv-parsecmd}{{XVII}{43}{The command parsing function}{lstlisting.17}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XVII}The command parsing function}{43}{lstlisting.17}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}Command parameters}{44}{subsubsection.4.3.2}\protected@file@percent }
\newlabel{lst:textadv-perfact}{{XVIII}{44}{The command execution routine}{lstlisting.18}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XVIII}The command execution routine}{44}{lstlisting.18}\protected@file@percent }
\babel@aux{ngerman}{}
\@writefile{toc}{\contentsline {section}{\numberline {4}Erkl"arung der Eigenst"andigkeit der Arbeit}{20}{section.4}\protected@file@percent }
\HyPL@Entry{24<</S/R>>}
\@writefile{toc}{\contentsline {section}{\numberline {5}Erkl"arung der Eigenst"andigkeit der Arbeit}{46}{section.5}\protected@file@percent }
\HyPL@Entry{52<</S/R>>}
\babel@aux{english}{}
\@writefile{toc}{\contentsline {section}{\numberline {I\tmspace +\thickmuskip {.2777em}}List of Figures}{I}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {II\tmspace +\thickmuskip {.2777em}}List of Tables}{I}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {III\tmspace +\thickmuskip {.2777em}}Listings}{I}{section.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{Anhang}{II}{section.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{Anhang}{IV}{section.3}\protected@file@percent }
\abx@aux@refcontextdefaultsdone
\abx@aux@defaultrefcontext{0}{ad2}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{atmega2560}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{pc16550}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{max232}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{tlc7528}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{idt7201}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{74hc374}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{74hc00}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{iec60908}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{audiob}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{lvlshift}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{DB3S406F0L}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{dunnet}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{ascii}{none/global//global/global}
\abx@aux@defaultrefcontext{0}{vt100}{none/global//global/global}

277
main.bbl
View File

@ -19,12 +19,46 @@
\refsection{0}
\datalist[entry]{none/global//global/global}
\entry{ad2}{manual}{}
\list{organization}{1}{%
{Digilent, Inc.}%
}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labeltitlesource}{title}
\field{month}{9}
\field{title}{Analog Discovery 2™ Reference Manual}
\field{year}{2015}
\verb{urlraw}
\verb https://reference.digilentinc.com/_media/reference/instrumentation/analog-discovery-2/ad2_rm.pdf
\endverb
\verb{url}
\verb https://reference.digilentinc.com/_media/reference/instrumentation/analog-discovery-2/ad2_rm.pdf
\endverb
\endentry
\entry{atmega2560}{manual}{}
\list{organization}{1}{%
{Atmel Corporation}%
}
\field{sortinit}{2}
\field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labeltitlesource}{title}
\field{month}{2}
\field{title}{Atmel ATmega640/V-1280/V-1281/V-2560/V-2561/V}
\field{year}{2014}
\verb{urlraw}
\verb https://ww1.microchip.com/downloads/en/devicedoc/atmel-2549-8-bit-avr-microcontroller-atmega640-1280-1281-2560-2561_datasheet.pdf
\endverb
\verb{url}
\verb https://ww1.microchip.com/downloads/en/devicedoc/atmel-2549-8-bit-avr-microcontroller-atmega640-1280-1281-2560-2561_datasheet.pdf
\endverb
\endentry
\entry{pc16550}{manual}{}
\list{organization}{1}{%
{Texas Instruments Inc.}%
}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{sortinit}{3}
\field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
\field{labeltitlesource}{title}
\field{title}{PC16550D Universal Asynchronous Receiver/Transmitter With FIFOs}
\field{year}{1995}
@ -39,9 +73,10 @@
\list{organization}{1}{%
{Texas Instruments Inc.}%
}
\field{sortinit}{3}
\field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
\field{sortinit}{5}
\field{sortinithash}{5dd416adbafacc8226114bc0202d5fdd}
\field{labeltitlesource}{title}
\field{month}{2}
\field{title}{MAX232x Dual EIA-232 Drivers/Receivers}
\field{year}{1989}
\verb{urlraw}
@ -51,6 +86,240 @@
\verb https://www.ti.com/lit/ds/symlink/max232.pdf
\endverb
\endentry
\entry{tlc7528}{manual}{}
\list{organization}{1}{%
{Texas Instruments Inc.}%
}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labeltitlesource}{title}
\field{title}{DUAL 8-BIT MUTLIPLYING DIGITAL-TO-ANALOG CONVERTERS}
\field{year}{1987}
\verb{urlraw}
\verb https://www.ti.com/lit/ds/symlink/tlc7528.pdf
\endverb
\verb{url}
\verb https://www.ti.com/lit/ds/symlink/tlc7528.pdf
\endverb
\endentry
\entry{idt7201}{manual}{}
\name{author}{1}{}{%
{{hash=3fd136290539037a6bf765ed8447308f}{%
family={{Integrated Device Technology, Inc.}},
familyi={I\bibinitperiod}}}%
}
\list{organization}{1}{%
{RENESAS}%
}
\strng{namehash}{3fd136290539037a6bf765ed8447308f}
\strng{fullhash}{3fd136290539037a6bf765ed8447308f}
\strng{bibnamehash}{3fd136290539037a6bf765ed8447308f}
\strng{authorbibnamehash}{3fd136290539037a6bf765ed8447308f}
\strng{authornamehash}{3fd136290539037a6bf765ed8447308f}
\strng{authorfullhash}{3fd136290539037a6bf765ed8447308f}
\field{sortinit}{1}
\field{sortinithash}{50c6687d7fc80f50136d75228e3c59ba}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{title}{CMOS ASYNCHRONOUS FIFO}
\field{year}{2002}
\verb{urlraw}
\verb http://www.komponenten.es.aau.dk/fileadmin/komponenten/Data_Sheet/Memory/IDT7201.pdf
\endverb
\verb{url}
\verb http://www.komponenten.es.aau.dk/fileadmin/komponenten/Data_Sheet/Memory/IDT7201.pdf
\endverb
\endentry
\entry{74hc374}{manual}{}
\list{organization}{1}{%
{Texas Instruments Inc.}%
}
\field{sortinit}{2}
\field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labeltitlesource}{title}
\field{month}{2}
\field{title}{High-Speed CMOS Logic Octal D-Type Flip-Flop, 3-State Positive-Edge Triggered}
\field{year}{1998}
\verb{urlraw}
\verb https://www.ti.com/lit/ds/schs183c/schs183c.pdf
\endverb
\verb{url}
\verb https://www.ti.com/lit/ds/schs183c/schs183c.pdf
\endverb
\endentry
\entry{74hc00}{manual}{}
\list{organization}{1}{%
{Texas Instruments Inc.}%
}
\field{sortinit}{2}
\field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labeltitlesource}{title}
\field{month}{12}
\field{title}{SNx4HC00 Quadruple 2-Input Positive-NAND Gates}
\field{year}{1982}
\verb{urlraw}
\verb https://www.ti.com/lit/ds/symlink/sn74hc00.pdf
\endverb
\verb{url}
\verb https://www.ti.com/lit/ds/symlink/sn74hc00.pdf
\endverb
\endentry
\entry{iec60908}{report}{}
\list{institution}{1}{%
{International Electrotechnical Commission}%
}
\field{sortinit}{2}
\field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labeltitlesource}{title}
\field{month}{9}
\field{title}{Compact disc digital audio system}
\field{type}{Standard}
\field{volume}{1987}
\field{year}{1987}
\endentry
\entry{audiob}{book}{}
\name{author}{1}{}{%
{{hash=5b6241a937e3e4b67f7d6ba3e7461374}{%
family={Winer},
familyi={W\bibinitperiod},
given={Ethan},
giveni={E\bibinitperiod}}}%
}
\list{publisher}{1}{%
{Focal Press}%
}
\strng{namehash}{5b6241a937e3e4b67f7d6ba3e7461374}
\strng{fullhash}{5b6241a937e3e4b67f7d6ba3e7461374}
\strng{bibnamehash}{5b6241a937e3e4b67f7d6ba3e7461374}
\strng{authorbibnamehash}{5b6241a937e3e4b67f7d6ba3e7461374}
\strng{authornamehash}{5b6241a937e3e4b67f7d6ba3e7461374}
\strng{authorfullhash}{5b6241a937e3e4b67f7d6ba3e7461374}
\field{sortinit}{2}
\field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{title}{The Audio Expert: Everything You Need to Know About Audio}
\field{year}{2013}
\verb{urlraw}
\verb https://books.google.com/books?id=TIfOAwAAQBAJ&pg=PA107#v=onepage&q=-%2010%20dbv&f=false
\endverb
\verb{url}
\verb https://books.google.com/books?id=TIfOAwAAQBAJ&pg=PA107#v=onepage&q=-%2010%20dbv&f=false
\endverb
\endentry
\entry{lvlshift}{article}{}
\name{author}{1}{}{%
{{hash=dad533e93fb5b066698ef5641942d10e}{%
family={List},
familyi={L\bibinitperiod},
given={Jenny},
giveni={J\bibinitperiod}}}%
}
\list{publisher}{1}{%
{Hackaday}%
}
\strng{namehash}{dad533e93fb5b066698ef5641942d10e}
\strng{fullhash}{dad533e93fb5b066698ef5641942d10e}
\strng{bibnamehash}{dad533e93fb5b066698ef5641942d10e}
\strng{authorbibnamehash}{dad533e93fb5b066698ef5641942d10e}
\strng{authornamehash}{dad533e93fb5b066698ef5641942d10e}
\strng{authorfullhash}{dad533e93fb5b066698ef5641942d10e}
\field{sortinit}{2}
\field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{month}{12}
\field{title}{Taking It To Another Level: Making 3.3V Speak With 5V}
\field{year}{2016}
\verb{urlraw}
\verb https://hackaday.com/2016/12/05/taking-it-to-another-level-making-3-3v-and-5v-logic-communicate-with-level-shifters/
\endverb
\verb{url}
\verb https://hackaday.com/2016/12/05/taking-it-to-another-level-making-3-3v-and-5v-logic-communicate-with-level-shifters/
\endverb
\endentry
\entry{DB3S406F0L}{manual}{}
\list{organization}{1}{%
{Panasonic}%
}
\field{sortinit}{2}
\field{sortinithash}{ed39bb39cf854d5250e95b1c1f94f4ed}
\field{labeltitlesource}{title}
\field{month}{3}
\field{title}{Schottky Barrier Diode DB3S406F0L Silicon epitaxial planar type}
\field{year}{2010}
\verb{urlraw}
\verb https://industrial.panasonic.com/content/data/SC/ds/ds4/DB3S406F0L_E.pdf
\endverb
\verb{url}
\verb https://industrial.panasonic.com/content/data/SC/ds/ds4/DB3S406F0L_E.pdf
\endverb
\endentry
\entry{dunnet}{manual}{}
\name{author}{1}{}{%
{{hash=00390d643d2da62a5fdea9aa008b03ec}{%
family={Schnell},
familyi={S\bibinitperiod},
given={Ron},
giveni={R\bibinitperiod}}}%
}
\list{organization}{1}{%
{Emacs}%
}
\strng{namehash}{00390d643d2da62a5fdea9aa008b03ec}
\strng{fullhash}{00390d643d2da62a5fdea9aa008b03ec}
\strng{bibnamehash}{00390d643d2da62a5fdea9aa008b03ec}
\strng{authorbibnamehash}{00390d643d2da62a5fdea9aa008b03ec}
\strng{authornamehash}{00390d643d2da62a5fdea9aa008b03ec}
\strng{authorfullhash}{00390d643d2da62a5fdea9aa008b03ec}
\field{sortinit}{3}
\field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{title}{Dunnet Source Code}
\field{year}{1982}
\verb{urlraw}
\verb https://github.com/jwiegley/emacs-release/blob/master/lisp/play/dunnet.el
\endverb
\verb{url}
\verb https://github.com/jwiegley/emacs-release/blob/master/lisp/play/dunnet.el
\endverb
\endentry
\entry{ascii}{report}{}
\list{institution}{1}{%
{Network Working Group}%
}
\field{sortinit}{3}
\field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
\field{labeltitlesource}{title}
\field{month}{10}
\field{title}{ASCII Format for Network Interchange}
\field{type}{Standard}
\field{volume}{1969}
\field{year}{1969}
\verb{urlraw}
\verb https://tools.ietf.org/pdf/rfc20.pdf
\endverb
\verb{url}
\verb https://tools.ietf.org/pdf/rfc20.pdf
\endverb
\endentry
\entry{vt100}{manual}{}
\list{organization}{1}{%
{Digital Equipment Corporation}%
}
\field{sortinit}{3}
\field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
\field{labeltitlesource}{title}
\field{title}{VT100 SERIES TECHNICAL MANUAL}
\field{year}{1979}
\verb{urlraw}
\verb https://vt100.net/docs/vt100-tm/ek-vt100-tm-002.pdf
\endverb
\verb{url}
\verb https://vt100.net/docs/vt100-tm/ek-vt100-tm-002.pdf
\endverb
\endentry
\enddatalist
\endrefsection
\endinput

View File

@ -2129,13 +2129,42 @@
<bcf:datasource type="file" datatype="bibtex">./bibliographies/DP.bib</bcf:datasource>
</bcf:bibdata>
<bcf:section number="0">
<bcf:citekey order="1">pc16550</bcf:citekey>
<bcf:citekey order="2">pc16550</bcf:citekey>
<bcf:citekey order="3">max232</bcf:citekey>
<bcf:citekey order="1">ad2</bcf:citekey>
<bcf:citekey order="2">atmega2560</bcf:citekey>
<bcf:citekey order="3">pc16550</bcf:citekey>
<bcf:citekey order="4">pc16550</bcf:citekey>
<bcf:citekey order="5">pc16550</bcf:citekey>
<bcf:citekey order="6">max232</bcf:citekey>
<bcf:citekey order="5">max232</bcf:citekey>
<bcf:citekey order="6">pc16550</bcf:citekey>
<bcf:citekey order="7">pc16550</bcf:citekey>
<bcf:citekey order="8">max232</bcf:citekey>
<bcf:citekey order="9">pc16550</bcf:citekey>
<bcf:citekey order="10">tlc7528</bcf:citekey>
<bcf:citekey order="11">tlc7528</bcf:citekey>
<bcf:citekey order="12">tlc7528</bcf:citekey>
<bcf:citekey order="13">tlc7528</bcf:citekey>
<bcf:citekey order="14">idt7201</bcf:citekey>
<bcf:citekey order="15">idt7201</bcf:citekey>
<bcf:citekey order="16">idt7201</bcf:citekey>
<bcf:citekey order="17">tlc7528</bcf:citekey>
<bcf:citekey order="18">tlc7528</bcf:citekey>
<bcf:citekey order="19">tlc7528</bcf:citekey>
<bcf:citekey order="20">74hc374</bcf:citekey>
<bcf:citekey order="21">74hc00</bcf:citekey>
<bcf:citekey order="22">iec60908</bcf:citekey>
<bcf:citekey order="23">audiob</bcf:citekey>
<bcf:citekey order="24">atmega2560</bcf:citekey>
<bcf:citekey order="25">lvlshift</bcf:citekey>
<bcf:citekey order="26">lvlshift</bcf:citekey>
<bcf:citekey order="27">lvlshift</bcf:citekey>
<bcf:citekey order="28">DB3S406F0L</bcf:citekey>
<bcf:citekey order="29">ad2</bcf:citekey>
<bcf:citekey order="30">ad2</bcf:citekey>
<bcf:citekey order="31">atmega2560</bcf:citekey>
<bcf:citekey order="32">dunnet</bcf:citekey>
<bcf:citekey order="33">ascii</bcf:citekey>
<bcf:citekey order="34">vt100</bcf:citekey>
<bcf:citekey order="35">ascii</bcf:citekey>
<bcf:citekey order="36">vt100</bcf:citekey>
</bcf:section>
<!-- SORTING TEMPLATES -->
<bcf:sortingtemplate name="none">

View File

@ -1,20 +1,17 @@
[0] Config.pm:304> INFO - This is Biber 2.13
[0] Config.pm:307> INFO - Logfile is 'main.blg'
[28] biber:315> INFO - === Thu Mar 19, 2020, 23:48:20
[48] Biber.pm:375> INFO - Reading 'main.bcf'
[105] Biber.pm:905> INFO - Found 2 citekeys in bib section 0
[116] Biber.pm:4196> INFO - Processing section 0
[117] Utils.pm:75> INFO - Globbing data source './bibliographies/DP.bib'
[117] Utils.pm:91> INFO - Globbed data source './bibliographies/DP.bib' to ./bibliographies/DP.bib
[128] Biber.pm:4373> INFO - Looking for bibtex format file './bibliographies/DP.bib' for section 0
[133] bibtex.pm:1462> INFO - LaTeX decoding ...
[140] bibtex.pm:1281> INFO - Found BibTeX data source './bibliographies/DP.bib'
[141] Utils.pm:300> WARN - BibTeX subsystem: /tmp/fPv9oRu8Nq/DP.bib_66732.utf8, line 26, warning: undefined macro "October"
[142] Utils.pm:300> WARN - BibTeX subsystem: /tmp/fPv9oRu8Nq/DP.bib_66732.utf8, line 33, warning: undefined macro "February"
[148] UCollate.pm:68> INFO - Overriding locale 'de-DE' defaults 'variable = shifted' with 'variable = non-ignorable'
[148] UCollate.pm:68> INFO - Overriding locale 'de-DE' defaults 'normalization = NFD' with 'normalization = prenormalized'
[148] Biber.pm:4024> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'de-DE'
[148] Biber.pm:4030> INFO - No sort tailoring available for locale 'de-DE'
[158] bbl.pm:648> INFO - Writing 'main.bbl' with encoding 'UTF-8'
[158] bbl.pm:751> INFO - Output to main.bbl
[159] Biber.pm:110> INFO - WARNINGS: 2
[19] biber:315> INFO - === Mon Mar 23, 2020, 02:06:00
[30] Biber.pm:375> INFO - Reading 'main.bcf'
[85] Biber.pm:905> INFO - Found 15 citekeys in bib section 0
[96] Biber.pm:4196> INFO - Processing section 0
[97] Utils.pm:75> INFO - Globbing data source './bibliographies/DP.bib'
[97] Utils.pm:91> INFO - Globbed data source './bibliographies/DP.bib' to ./bibliographies/DP.bib
[106] Biber.pm:4373> INFO - Looking for bibtex format file './bibliographies/DP.bib' for section 0
[107] bibtex.pm:1462> INFO - LaTeX decoding ...
[120] bibtex.pm:1281> INFO - Found BibTeX data source './bibliographies/DP.bib'
[147] UCollate.pm:68> INFO - Overriding locale 'de-DE' defaults 'variable = shifted' with 'variable = non-ignorable'
[147] UCollate.pm:68> INFO - Overriding locale 'de-DE' defaults 'normalization = NFD' with 'normalization = prenormalized'
[147] Biber.pm:4024> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'de-DE'
[147] Biber.pm:4030> INFO - No sort tailoring available for locale 'de-DE'
[157] bbl.pm:648> INFO - Writing 'main.bbl' with encoding 'UTF-8'
[160] bbl.pm:751> INFO - Output to main.bbl

View File

@ -5,17 +5,33 @@
\babel@toc {ngerman}{}
\babel@toc {ngerman}{}
\babel@toc {english}{}
\contentsline {figure}{\numberline {1}{\ignorespaces Atari PBI Pinout;Source: \url {https://www.atarimagazines.com}\relax }}{2}{figure.caption.1}%
\contentsline {figure}{\numberline {2}{\ignorespaces Digilent Analog Discovery 2;Source: \url {https://www.sparkfun.com/}\relax }}{4}{figure.caption.2}%
\contentsline {figure}{\numberline {3}{\ignorespaces Layout of the DIN41612 Connectors on the Backplane\relax }}{5}{figure.caption.3}%
\contentsline {figure}{\numberline {4}{\ignorespaces Measurement at around 1MHz bus clock on MS1\relax }}{6}{figure.caption.4}%
\contentsline {figure}{\numberline {5}{\ignorespaces The case with installed backplane\relax }}{7}{figure.caption.5}%
\contentsline {figure}{\numberline {6}{\ignorespaces PC-16550D Pinout\cite {pc16550}\relax }}{8}{figure.caption.6}%
\contentsline {figure}{\numberline {7}{\ignorespaces The schematic of the UART Module\relax }}{10}{figure.caption.7}%
\contentsline {figure}{\numberline {8}{\ignorespaces Measurement of the 1.8432 MHz Output on J1\relax }}{11}{figure.caption.8}%
\contentsline {figure}{\numberline {9}{\ignorespaces Measurement of a character transmission before and after MAX-232\relax }}{12}{figure.caption.9}%
\contentsline {figure}{\numberline {10}{\ignorespaces Pinout of the RJ-45 Plug; Src: \url {https://www.wti.com/}\relax }}{12}{figure.caption.10}%
\contentsline {figure}{\numberline {11}{\ignorespaces Measurement of a character echo\relax }}{13}{figure.caption.11}%
\contentsline {figure}{\numberline {12}{\ignorespaces Transmission of character A via the 16550 UART\relax }}{16}{figure.caption.12}%
\contentsline {figure}{\numberline {i}{\ignorespaces Atari PBI Pinout;Source: \url {https://www.atarimagazines.com}\relax }}{2}{figure.caption.1}%
\contentsline {figure}{\numberline {ii}{\ignorespaces Digilent Analog Discovery 2;Source: \url {https://www.sparkfun.com/}\relax }}{4}{figure.caption.2}%
\contentsline {figure}{\numberline {iii}{\ignorespaces Layout of the DIN41612 Connectors on the Backplane\relax }}{5}{figure.caption.3}%
\contentsline {figure}{\numberline {iv}{\ignorespaces Measurement at around 1MHz bus clock on MS1\relax }}{6}{figure.caption.4}%
\contentsline {figure}{\numberline {v}{\ignorespaces The case with installed backplane\relax }}{7}{figure.caption.5}%
\contentsline {figure}{\numberline {vi}{\ignorespaces PC-16550D Pinout\cite {pc16550}\relax }}{8}{figure.caption.6}%
\contentsline {figure}{\numberline {vii}{\ignorespaces The schematic of the UART Module\relax }}{10}{figure.caption.7}%
\contentsline {figure}{\numberline {viii}{\ignorespaces Measurement of the 1.8432 MHz Output on J1\relax }}{11}{figure.caption.8}%
\contentsline {figure}{\numberline {ix}{\ignorespaces Measurement of a character transmission before and after MAX-232\relax }}{12}{figure.caption.9}%
\contentsline {figure}{\numberline {x}{\ignorespaces Pinout of the RJ-45 Plug; Src: \url {https://www.wti.com/}\relax }}{12}{figure.caption.10}%
\contentsline {figure}{\numberline {xi}{\ignorespaces Measurement of a character echo\relax }}{13}{figure.caption.11}%
\contentsline {figure}{\numberline {xii}{\ignorespaces Transmission of character A via the 16550 UART\relax }}{16}{figure.caption.12}%
\contentsline {figure}{\numberline {xiii}{\ignorespaces TLC-7528 Pinout\cite {tlc7528}\relax }}{18}{figure.caption.13}%
\contentsline {figure}{\numberline {xiv}{\ignorespaces IDT-7201 Pinout\cite {idt7201}\relax }}{19}{figure.caption.14}%
\contentsline {figure}{\numberline {xv}{\ignorespaces TLC-7528 in voltage modet\cite {tlc7528}\relax }}{20}{figure.caption.15}%
\contentsline {figure}{\numberline {xvi}{\ignorespaces Measurement of a generated SAW signal via the TLC7528\relax }}{20}{figure.caption.16}%
\contentsline {figure}{\numberline {xvii}{\ignorespaces The schematic of the DAC Module\relax }}{21}{figure.caption.17}%
\contentsline {figure}{\numberline {xviii}{\ignorespaces Measurement of a generated SAW signal with the FIFO Empty flag\relax }}{23}{figure.caption.18}%
\contentsline {figure}{\numberline {xix}{\ignorespaces A transmission between the FIFO and the DAC\relax }}{24}{figure.caption.19}%
\contentsline {figure}{\numberline {xx}{\ignorespaces A fifo store operation in contrast to the load operation\relax }}{24}{figure.caption.20}%
\contentsline {figure}{\numberline {xxi}{\ignorespaces Storage and retrieval of a sine to and from the FIFO\relax }}{26}{figure.caption.21}%
\contentsline {figure}{\numberline {xxii}{\ignorespaces Measuremet of the generated sine from the sine LUT on DACA and DACB\relax }}{26}{figure.caption.22}%
\contentsline {figure}{\numberline {xxiii}{\ignorespaces 3.3V to 5V conversion using the level shifter\relax }}{27}{figure.caption.23}%
\contentsline {figure}{\numberline {xxiv}{\ignorespaces 5V to 3.3V conversion using the level shifter\relax }}{28}{figure.caption.24}%
\contentsline {figure}{\numberline {xxv}{\ignorespaces The internal schematics of the level shifter\cite {lvlshift}\relax }}{29}{figure.caption.25}%
\contentsline {figure}{\numberline {xxvi}{\ignorespaces The internal clamping diodes of the Analog Discovery 2\cite {ad2}\relax }}{30}{figure.caption.26}%
\contentsline {figure}{\numberline {xxvii}{\ignorespaces The output of an example track part 1\relax }}{40}{figure.caption.27}%
\contentsline {figure}{\numberline {xxviii}{\ignorespaces The output of an example track part 2\relax }}{41}{figure.caption.28}%
\babel@toc {ngerman}{}
\babel@toc {english}{}

218
main.log
View File

@ -1,4 +1,4 @@
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/Arch Linux) (preloaded format=xelatex 2020.3.10) 20 MAR 2020 00:08
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/Arch Linux) (preloaded format=xelatex 2020.3.10) 23 MAR 2020 02:07
entering extended mode
\write18 enabled.
%&-line parsing enabled.
@ -2678,7 +2678,7 @@ LaTeX Font Info: Trying to load font information for OT1+pxtt on input line
File: ot1pxtt.fd 2000/12/14 v1.0
)
Package svg Info: Last page of `./svg-inkscape/logoBpdf_svg-tex.pdf' is 1 on in
put line 26.
put line 31.
(./svg-inkscape/logoBpdf_svg-tex.pdf_tex
File: ./svg-inkscape/logoBpdf_svg-tex.pdf Graphic file (type pdf)
@ -2691,24 +2691,27 @@ File: pics/HTLgenlogo02.png Graphic file (type bmp)
] [1
] (./sections/abstract.tex)
Underfull \hbox (badness 1168) in paragraph at lines 3--96
Underfull \hbox (badness 1168) in paragraph at lines 3--101
\T1/pxss/m/n/12 Diese Di-plom-ar-beit be-schäf-tigt sich mit der Ar-beits-wei-s
e von Pro-zes-so-ren und
[]
Underfull \hbox (badness 10000) in paragraph at lines 3--96
Underfull \hbox (badness 10000) in paragraph at lines 3--101
[]
[2
] (./main.toc)
\tf@toc=\write7
\openout7 = `main.toc'.
] (./sections/result.tex
LaTeX Font Info: Trying to load font information for T1+fvm on input line 7.
(/usr/share/texmf-dist/tex/latex/bera/t1fvm.fd
File: t1fvm.fd 2004/09/07 scalable font definitions for T1/fvm.
))
[3] (./main.toc
Package svg Info: Last page of `./svg-inkscape/logoBpdf_svg-tex.pdf' is 1 on in
put line 104.
put line 52.
(./svg-inkscape/logoBpdf_svg-tex.pdf_tex
File: ./svg-inkscape/logoBpdf_svg-tex.pdf Graphic file (type pdf)
<use ./svg-inkscape/logoBpdf_svg-tex.pdf, page 1>
@ -2722,14 +2725,24 @@ Make it at least 67.34535pt.
We now make it that large for the rest of the document.
This may cause the page layout to be inconsistent, however.
[3] (./planung/DP/aufgabenstellung.tex) [1] (./sections/DP/PARALLELBUS/main.tex
[4])
\tf@toc=\write7
\openout7 = `main.toc'.
Package svg Info: Last page of `./svg-inkscape/logoBpdf_svg-tex.pdf' is 1 on in
put line 110.
(./svg-inkscape/logoBpdf_svg-tex.pdf_tex
File: ./svg-inkscape/logoBpdf_svg-tex.pdf Graphic file (type pdf)
<use ./svg-inkscape/logoBpdf_svg-tex.pdf, page 1>
)
File: pics/HTLgenlogo02.png Graphic file (type bmp)
<pics/HTLgenlogo02.png>
[5]
(./planung/DP/aufgabenstellung.tex) [1] (./sections/DP/PARALLELBUS/main.tex
File: pics/atari_pbi.png Graphic file (type bmp)
<pics/atari_pbi.png>
LaTeX Font Info: Trying to load font information for T1+fvm on input line 19
.
(/usr/share/texmf-dist/tex/latex/bera/t1fvm.fd
File: t1fvm.fd 2004/09/07 scalable font definitions for T1/fvm.
) [2
[2
]
LaTeX Font Info: Trying to load font information for OMS+pxss on input line
@ -2791,25 +2804,108 @@ File: lstmisc.sty 2019/09/10 1.8c (Carsten Heinz)
[15])
File: meas/20200211_first_trans.png Graphic file (type bmp)
<meas/20200211_first_trans.png>
(./code/16550/echo/src/main.c [16])) (./sections/DP/textadv/main.tex
[17] (./code/textadv/include/avr.h [18])
Underfull \hbox (badness 10000) in paragraph at lines 18--22
[]\T1/pxss/m/n/12 The in list-ing []4[] shown de-fines MR_SHIFT, WR_SHIFT, RD_S
HIFT,
[]
(./code/16550/echo/src/main.c [16])) (./sections/DP/dac/main.tex [17]
Package svg Info: Last page of `./svg-inkscape/slas062e_pinout_svg-tex.pdf' is
1 on input line 25.
(./svg-inkscape/slas062e_pinout_svg-tex.pdf_tex
File: ./svg-inkscape/slas062e_pinout_svg-tex.pdf Graphic file (type pdf)
<use ./svg-inkscape/slas062e_pinout_svg-tex.pdf, page 1>
)
Package svg Info: Last page of `./svg-inkscape/idt7201_pinout_svg-tex.pdf' is 1
on input line 41.
(./svg-inkscape/idt7201_pinout_svg-tex.pdf_tex
File: ./svg-inkscape/idt7201_pinout_svg-tex.pdf Graphic file (type pdf)
<use ./svg-inkscape/idt7201_pinout_svg-tex.pdf, page 1>
) [18]
Package svg Info: Last page of `./svg-inkscape/slas062e_volt_svg-tex.pdf' is 1
on input line 64.
(./svg-inkscape/slas062e_volt_svg-tex.pdf_tex
File: ./svg-inkscape/slas062e_volt_svg-tex.pdf Graphic file (type pdf)
<use ./svg-inkscape/slas062e_volt_svg-tex.pdf, page 1>
) [19]
Overfull \hbox (2.54398pt too wide) in paragraph at lines 145--170
PGFPlots: reading {meas/20200210_saw_nonlin.csv}
File: schem_pdf/dac.pdf Graphic file (type pdf)
<use schem_pdf/dac.pdf>
Overfull \hbox (1.5606pt too wide) in paragraph at lines 95--96
[][]
[]
[20] [21] [22]
PGFPlots: reading {meas/20200308fifo_44_1_saw_withfifoempty.csv}
PGFPlots: reading {meas/20200308fifo_44_1_saw_withfifoempty.csv}
File: meas/20200308fifo_44_1_cnt.png Graphic file (type bmp)
<meas/20200308fifo_44_1_cnt.png>
[23]
File: meas/20200308fifo_44_1_saw.png Graphic file (type bmp)
<meas/20200308fifo_44_1_saw.png>
(./code/dac/saw_fifo_backplane/src/main.c [24])
(./code/dac/sine_fifo_backplane/src/main.c)
(./code/dac/sine_fifo_backplane/src/main.c) [25]
File: meas/20200310sine_dac.png Graphic file (type bmp)
<meas/20200310sine_dac.png>
PGFPlots: reading {meas/20200310sine_dac_osz.csv}
PGFPlots: reading {meas/20200310sine_dac_osz.csv}
[26])
(./sections/DP/fpga_interface/main.tex
PGFPlots: reading {meas/20200301shift3v35v.csv}
PGFPlots: reading {meas/20200301shift3v35v.csv}
PGFPlots: reading {meas/20200301shift5v3v3.csv}
PGFPlots: reading {meas/20200301shift5v3v3.csv}
Overfull \hbox (4.69403pt too wide) in paragraph at lines 54--55
[][]
[]
[27]
File: pics/bidirectonal-mosfet-level-shifter.png Graphic file (type bmp)
<pics/bidirectonal-mosfet-level-shifter.png>
[28]
File: pics/ad2_dio.png Graphic file (type bmp)
<pics/ad2_dio.png>
) (./sections/DP/textadv/main.tex [29] (./code/textadv/include/avr.h
[30]) [31] (./code/textadv/src/main.c) (./code/textadv/src/16550.c) [32]
(./code/textadv/src/dac.c) [33] (./code/textadv/include/dac.h)
(./code/textadv/src/dac.c [34] [35] [36]) (./code/textadv/src/interrupt.c)
(./code/textadv/src/sound.c [37]) [38] [39]
PGFPlots: reading {meas/20200315audio_multiple_voices.csv}
PGFPlots: reading {meas/20200315audio_multiple_voices.csv}
Overfull \hbox (16.78128pt too wide) in paragraph at lines 178--179
[][]
[]
Overfull \vbox (5.92023pt too high) has occurred while \output is active []
[40]
PGFPlots: reading {meas/20200315audio_multiple_voices.csv}
PGFPlots: reading {meas/20200315audio_multiple_voices.csv}
Overfull \hbox (18.29266pt too wide) in paragraph at lines 200--201
[][]
[]
Overfull \vbox (2.2876pt too high) has occurred while \output is active []
[41] (./code/textadv/src/16550.c) (./code/textadv/src/game.c [42])
(./code/textadv/src/game.c [43]) (./code/textadv/src/game.c [44])) [45]
Overfull \hbox (2.54398pt too wide) in paragraph at lines 148--173
[]$ $[]$
[]
Overfull \hbox (2.54398pt too wide) in paragraph at lines 145--170
Overfull \hbox (2.54398pt too wide) in paragraph at lines 148--173
[]$ $[]$
[]
[20
[46
] (./main.lof)
@ -2820,19 +2916,26 @@ Overfull \hbox (2.54398pt too wide) in paragraph at lines 145--170
\tf@lot=\write9
\openout9 = `main.lot'.
(./main.lol)
(./main.lol [1
])
\tf@lol=\write10
\openout10 = `main.lol'.
[1
Missing character: There is no ™ in font t1xss!
] [2
Underfull \hbox (badness 3557) in paragraph at lines 184--184
[]\T1/pxss/m/n/12 Analog Dis-cov-ery 2 Ref-er-ence Man-ual. Dig-i-lent, Inc. Se
pt. 2015. \T1/pxss/m/sc/12 url\T1/pxss/m/n/12 :
[]
[2] [3] [4
]
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 214.
Package atveryend Info: Empty hook `AfterLastShipout' on input line 214.
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 217.
Package atveryend Info: Empty hook `AfterLastShipout' on input line 217.
(./main.aux)
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 214.
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 217.
*File List*
@ -3074,13 +3177,17 @@ siunitx-abbreviations.cfg 2017/11/26 v2.7k siunitx: Abbreviated units
./svg-inkscape/logoBpdf_svg-tex.pdf
pics/HTLgenlogo02.png
sections/abstract.tex
sections/result.tex
t1fvm.fd 2004/09/07 scalable font definitions for T1/fvm.
./svg-inkscape/logoBpdf_svg-tex.pdf_tex
./svg-inkscape/logoBpdf_svg-tex.pdf
pics/HTLgenlogo02.png
./svg-inkscape/logoBpdf_svg-tex.pdf_tex
./svg-inkscape/logoBpdf_svg-tex.pdf
pics/HTLgenlogo02.png
planung/DP/aufgabenstellung.tex
sections/DP/PARALLELBUS/main.tex
pics/atari_pbi.png
t1fvm.fd 2004/09/07 scalable font definitions for T1/fvm.
sections/DP/MEAS_TEST/main.tex
pics/ad2.jpg
sections/DP/CASE_BACKPLANE/main.tex
@ -3097,31 +3204,62 @@ code/16550/transmit/src/main.c
code/16550/transmit/src/main.c
meas/20200211_first_trans.png
code/16550/echo/src/main.c
sections/DP/dac/main.tex
./svg-inkscape/slas062e_pinout_svg-tex.pdf_tex
./svg-inkscape/slas062e_pinout_svg-tex.pdf
./svg-inkscape/idt7201_pinout_svg-tex.pdf_tex
./svg-inkscape/idt7201_pinout_svg-tex.pdf
./svg-inkscape/slas062e_volt_svg-tex.pdf_tex
./svg-inkscape/slas062e_volt_svg-tex.pdf
schem_pdf/dac.pdf
meas/20200308fifo_44_1_cnt.png
meas/20200308fifo_44_1_saw.png
code/dac/saw_fifo_backplane/src/main.c
code/dac/sine_fifo_backplane/src/main.c
code/dac/sine_fifo_backplane/src/main.c
meas/20200310sine_dac.png
sections/DP/fpga_interface/main.tex
pics/bidirectonal-mosfet-level-shifter.png
pics/ad2_dio.png
sections/DP/textadv/main.tex
./code/textadv/include/avr.h
code/textadv/src/main.c
code/textadv/src/16550.c
code/textadv/src/dac.c
code/textadv/include/dac.h
code/textadv/src/dac.c
code/textadv/src/interrupt.c
code/textadv/src/sound.c
code/textadv/src/16550.c
code/textadv/src/game.c
code/textadv/src/game.c
code/textadv/src/game.c
***********
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 214.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 217.
Package rerunfilecheck Info: File `main.out' has not changed.
(rerunfilecheck) Checksum: 70016B18B3D3B15CD82406346449A284.
(rerunfilecheck) Checksum: EF751B3F7A69F84698797A4DD5318A21.
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
Package logreq Info: Writing requests to 'main.run.xml'.
\openout1 = `main.run.xml'.
)
(\end occurred inside a group at level 1)
### semi simple group (level 1) entered at line 70 (\begingroup)
### semi simple group (level 1) entered at line 75 (\begingroup)
### bottom level
Here is how much of TeX's memory you used:
81789 strings out of 492483
1818622 string characters out of 6134979
4934719 words of memory out of 5000000
85021 multiletter control sequences out of 15000+600000
82303 strings out of 492483
1830483 string characters out of 6134979
4963517 words of memory out of 5000000
85459 multiletter control sequences out of 15000+600000
615741 words of font info for 133 fonts, out of 8000000 for 9000
1350 hyphenation exceptions out of 8191
67i,18n,108p,1149b,7721s stack positions out of 5000i,500n,10000p,200000b,80000s
67i,19n,108p,1149b,8528s stack positions out of 5000i,500n,10000p,200000b,80000s
Output written on main.pdf (26 pages).
Output written on main.pdf (56 pages).

View File

@ -4,9 +4,23 @@
\babel@toc {ngerman}{}
\babel@toc {ngerman}{}
\babel@toc {english}{}
\contentsline {lstlisting}{\numberline {1}Read and write routines for the 16550 UART}{13}{lstlisting.1}%
\contentsline {lstlisting}{\numberline {2}16550 INIT routines and single char transmission}{15}{lstlisting.2}%
\contentsline {lstlisting}{\numberline {3}16550 character echo}{16}{lstlisting.3}%
\contentsline {lstlisting}{\numberline {4}The avr.h header file}{18}{lstlisting.4}%
\contentsline {lstlisting}{\numberline {I}Read and write routines for the 16550 UART}{13}{lstlisting.1}%
\contentsline {lstlisting}{\numberline {II}16550 INIT routines and single char transmission}{15}{lstlisting.2}%
\contentsline {lstlisting}{\numberline {III}16550 character echo}{16}{lstlisting.3}%
\contentsline {lstlisting}{\numberline {IV}SAW Generation for the DAC with FIFO}{24}{lstlisting.4}%
\contentsline {lstlisting}{\numberline {V}Sine LUT Generation}{25}{lstlisting.5}%
\contentsline {lstlisting}{\numberline {VI}DAC Sine Generation}{25}{lstlisting.6}%
\contentsline {lstlisting}{\numberline {VII}The avr.h header file}{30}{lstlisting.7}%
\contentsline {lstlisting}{\numberline {VIII}The routine function looped by the main}{32}{lstlisting.8}%
\contentsline {lstlisting}{\numberline {IX}The routine function for the UART}{32}{lstlisting.9}%
\contentsline {lstlisting}{\numberline {X}The routine function for the DAC}{33}{lstlisting.10}%
\contentsline {lstlisting}{\numberline {XI}The DAC operation modes}{34}{lstlisting.11}%
\contentsline {lstlisting}{\numberline {XII}The DAC waveform generation code}{34}{lstlisting.12}%
\contentsline {lstlisting}{\numberline {XIII}The ISR which fires every millisecond}{37}{lstlisting.13}%
\contentsline {lstlisting}{\numberline {XIV}The sound update function}{38}{lstlisting.14}%
\contentsline {lstlisting}{\numberline {XV}The UART char receive code}{42}{lstlisting.15}%
\contentsline {lstlisting}{\numberline {XVI}The character ingest function}{42}{lstlisting.16}%
\contentsline {lstlisting}{\numberline {XVII}The command parsing function}{43}{lstlisting.17}%
\contentsline {lstlisting}{\numberline {XVIII}The command execution routine}{44}{lstlisting.18}%
\babel@toc {ngerman}{}
\babel@toc {english}{}

View File

@ -1,6 +1,6 @@
\BOOKMARK [1][-]{Doc-Start}{\376\377\000G\000e\000n\000d\000e\000r\000e\000r\000k\000l\000\344\000r\000u\000n\000g}{}% 1
\BOOKMARK [1][-]{Doc-Start}{\376\377\000K\000u\000r\000z\000f\000a\000s\000s\000u\000n\000g\000/\000A\000b\000s\000t\000r\000a\000c\000t}{}% 2
\BOOKMARK [1][-]{Doc-Start}{\376\377\000P\000r\000o\000j\000e\000k\000t\000e\000r\000g\000e\000b\000n\000i\000s}{}% 3
\BOOKMARK [1][-]{Doc-Start}{\376\377\000R\000e\000s\000u\000l\000t}{}% 3
\BOOKMARK [1][-]{section.1}{\376\377\000T\000a\000s\000k\000\040\000d\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{}% 4
\BOOKMARK [2][-]{subsection.1.1}{\376\377\000H\000a\000r\000d\000w\000a\000r\000e}{section.1}% 5
\BOOKMARK [1][-]{section.2}{\376\377\000H\000a\000r\000d\000w\000a\000r\000e\000\040\000p\000e\000r\000i\000p\000h\000e\000r\000i\000a\000l\000s}{}% 6
@ -23,10 +23,29 @@
\BOOKMARK [3][-]{subsubsection.2.7.2}{\376\377\000M\000A\000X\000-\0002\0003\0002}{subsection.2.7}% 23
\BOOKMARK [3][-]{subsubsection.2.7.3}{\376\377\000S\000c\000h\000e\000m\000a\000t\000i\000c\000s}{subsection.2.7}% 24
\BOOKMARK [3][-]{subsubsection.2.7.4}{\376\377\000D\000e\000m\000o\000n\000s\000t\000r\000a\000t\000i\000o\000n\000\040\000S\000o\000f\000t\000w\000a\000r\000e}{subsection.2.7}% 25
\BOOKMARK [1][-]{section.3}{\376\377\000T\000e\000x\000t\000a\000d\000v\000e\000n\000t\000u\000r\000e}{}% 26
\BOOKMARK [2][-]{subsection.3.1}{\376\377\000G\000e\000n\000e\000r\000a\000l\000\040\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\040\000d\000e\000t\000a\000i\000l\000s}{section.3}% 27
\BOOKMARK [1][-]{section.4}{\376\377\000E\000r\000k\000l\000\344\000r\000u\000n\000g\000\040\000d\000e\000r\000\040\000E\000i\000g\000e\000n\000s\000t\000\344\000n\000d\000i\000g\000k\000e\000i\000t\000\040\000d\000e\000r\000\040\000A\000r\000b\000e\000i\000t}{}% 28
\BOOKMARK [1][-]{section.1}{\376\377\000L\000i\000s\000t\000\040\000o\000f\000\040\000F\000i\000g\000u\000r\000e\000s}{}% 29
\BOOKMARK [1][-]{section.2}{\376\377\000L\000i\000s\000t\000\040\000o\000f\000\040\000T\000a\000b\000l\000e\000s}{}% 30
\BOOKMARK [1][-]{section.3}{\376\377\000L\000i\000s\000t\000i\000n\000g\000s}{}% 31
\BOOKMARK [1][-]{section.3}{\376\377\000A\000n\000h\000a\000n\000g}{}% 32
\BOOKMARK [2][-]{subsection.2.8}{\376\377\000A\000u\000d\000i\000o\000\040\000D\000i\000g\000i\000t\000a\000l\000-\000A\000n\000a\000l\000o\000g\000-\000C\000o\000n\000v\000e\000r\000t\000e\000r}{section.2}% 26
\BOOKMARK [3][-]{subsubsection.2.8.1}{\376\377\000T\000L\000C\000\040\0007\0005\0002\0008\000\040\000D\000u\000a\000l\000\040\000R\0002\000R\000\040\000L\000a\000d\000d\000e\000r\000\040\000D\000A\000C}{subsection.2.8}% 27
\BOOKMARK [3][-]{subsubsection.2.8.2}{\376\377\000I\000D\000T\0007\0002\0000\0001\000\040\000C\000M\000O\000S\000\040\000F\000I\000F\000O\000\040\000B\000u\000f\000f\000e\000r}{subsection.2.8}% 28
\BOOKMARK [3][-]{subsubsection.2.8.3}{\376\377\000T\000h\000e\000o\000r\000y\000\040\000v\000e\000r\000f\000i\000c\000a\000t\000i\000o\000n}{subsection.2.8}% 29
\BOOKMARK [3][-]{subsubsection.2.8.4}{\376\377\000S\000c\000h\000e\000m\000a\000t\000i\000c\000s}{subsection.2.8}% 30
\BOOKMARK [3][-]{subsubsection.2.8.5}{\376\377\000D\000e\000m\000o\000n\000s\000t\000r\000a\000t\000i\000o\000n\000\040\000S\000o\000f\000t\000w\000a\000r\000e}{subsection.2.8}% 31
\BOOKMARK [1][-]{section.3}{\376\377\000A\000d\000d\000r\000e\000s\000s\000i\000n\000g\000\040\000D\000A\000C\000A\000\040\000a\000n\000d\000\040\000D\000A\000C\000B}{}% 32
\BOOKMARK [2][-]{subsection.3.1}{\376\377\000F\000P\000G\000A\000\040\000t\000o\000\040\000H\000a\000r\000d\000w\000a\000r\000e\000\040\000i\000n\000t\000e\000r\000f\000a\000c\000e}{section.3}% 33
\BOOKMARK [3][-]{subsubsection.3.1.1}{\376\377\000M\000e\000a\000s\000u\000r\000e\000m\000e\000n\000t\000\040\000e\000r\000r\000o\000r}{subsection.3.1}% 34
\BOOKMARK [1][-]{section.4}{\376\377\000T\000e\000x\000t\000a\000d\000v\000e\000n\000t\000u\000r\000e}{}% 35
\BOOKMARK [2][-]{subsection.4.1}{\376\377\000G\000e\000n\000e\000r\000a\000l\000\040\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\040\000d\000e\000t\000a\000i\000l\000s}{section.4}% 36
\BOOKMARK [3][-]{subsubsection.4.1.1}{\376\377\000G\000e\000n\000e\000r\000a\000l\000\040\000d\000e\000f\000i\000n\000i\000t\000i\000o\000n\000s\000\040\000a\000n\000d\000\040\000p\000i\000n\000o\000u\000t\000\040\000o\000f\000\040\000t\000h\000e\000\040\000A\000V\000R}{subsection.4.1}% 37
\BOOKMARK [3][-]{subsubsection.4.1.2}{\376\377\000R\000e\000a\000d\000\040\000a\000n\000d\000\040\000W\000r\000i\000t\000e\000\040\000r\000o\000u\000t\000i\000n\000e\000s}{subsection.4.1}% 38
\BOOKMARK [3][-]{subsubsection.4.1.3}{\376\377\000U\000A\000R\000T\000\040\000a\000n\000d\000\040\000D\000A\000C\000\040\000u\000p\000d\000a\000t\000e\000\040\000p\000o\000l\000l\000i\000n\000g}{subsection.4.1}% 39
\BOOKMARK [2][-]{subsection.4.2}{\376\377\000D\000A\000C\000\040\000s\000o\000u\000n\000d\000\040\000g\000e\000n\000e\000r\000a\000t\000i\000o\000n}{section.4}% 40
\BOOKMARK [3][-]{subsubsection.4.2.1}{\376\377\000D\000A\000C\000\040\000m\000o\000d\000e\000s}{subsection.4.2}% 41
\BOOKMARK [3][-]{subsubsection.4.2.2}{\376\377\000T\000o\000n\000e\000s\000\040\000a\000n\000d\000\040\000T\000r\000a\000c\000k\000s}{subsection.4.2}% 42
\BOOKMARK [3][-]{subsubsection.4.2.3}{\376\377\000T\000r\000a\000c\000k\000\040\000s\000w\000i\000t\000c\000h\000i\000n\000g}{subsection.4.2}% 43
\BOOKMARK [2][-]{subsection.4.3}{\376\377\000U\000s\000e\000r\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000i\000n\000t\000e\000r\000p\000r\000e\000t\000a\000t\000i\000o\000n}{section.4}% 44
\BOOKMARK [3][-]{subsubsection.4.3.1}{\376\377\000C\000o\000m\000m\000a\000n\000d\000\040\000s\000t\000r\000u\000c\000t\000u\000r\000e\000\040\000a\000n\000d\000\040\000p\000a\000s\000r\000i\000n\000g}{subsection.4.3}% 45
\BOOKMARK [3][-]{subsubsection.4.3.2}{\376\377\000C\000o\000m\000m\000a\000n\000d\000\040\000p\000a\000r\000a\000m\000e\000t\000e\000r\000s}{subsection.4.3}% 46
\BOOKMARK [1][-]{section.5}{\376\377\000E\000r\000k\000l\000\344\000r\000u\000n\000g\000\040\000d\000e\000r\000\040\000E\000i\000g\000e\000n\000s\000t\000\344\000n\000d\000i\000g\000k\000e\000i\000t\000\040\000d\000e\000r\000\040\000A\000r\000b\000e\000i\000t}{}% 47
\BOOKMARK [1][-]{section.1}{\376\377\000L\000i\000s\000t\000\040\000o\000f\000\040\000F\000i\000g\000u\000r\000e\000s}{}% 48
\BOOKMARK [1][-]{section.2}{\376\377\000L\000i\000s\000t\000\040\000o\000f\000\040\000T\000a\000b\000l\000e\000s}{}% 49
\BOOKMARK [1][-]{section.3}{\376\377\000L\000i\000s\000t\000i\000n\000g\000s}{}% 50
\BOOKMARK [1][-]{section.3}{\376\377\000A\000n\000h\000a\000n\000g}{}% 51

BIN
main.pdf (Stored with Git LFS)

Binary file not shown.

View File

@ -1,6 +1,10 @@
\input{preamble.tex}
\begin{document}
\selectlanguage{ngerman}
% Correct numeral usage in footnotes, figures and listings
\renewcommand{\thefootnote}{\Alph{footnote}}
\renewcommand{\thelstlisting}{\Roman{lstlisting}}
\renewcommand{\thefigure}{\roman{figure}}
%/*Header-Einstellung*/
\pagestyle{fancy}
@ -22,6 +26,7 @@
\begin{center}
\begin{minipage}{\linewidth}
\begin{center}
\vspace*{-21mm}
\HtlHeader{}
\vspace*{-14mm}
@ -94,9 +99,10 @@ interpreted as gender neutral.
\addcontentsline{toc}{section}{Kurzfassung/Abstract}
\input{sections/abstract.tex}
\newpage
\subsection*{Projektergebnis\markboth{}{Projektergebnis}}
\addcontentsline{toc}{section}{Projektergebnis}
%\input{sections/ergebnis.tex} TODO
\subsection*{Result\markboth{}{Result}}
\addcontentsline{toc}{section}{Result}
\input{sections/result.tex}
\newpage
%====================================================================================
\pagestyle{plain}
\selectlanguage{english}
@ -126,12 +132,9 @@ interpreted as gender neutral.
\DP\input{sections/DP/MEAS_TEST/main.tex}
\DP\input{sections/DP/CASE_BACKPLANE/main.tex}
\DP\input{sections/DP/UART/main.tex}
\section{Textadventure}
\DP\input{sections/DP/dac/main.tex}
\DP\input{sections/DP/fpga_interface/main.tex}
\DP\input{sections/DP/textadv/main.tex}
\clearpage
%\MR\input{sections/Kapitel/MR/Aufgabengeneration.tex}
\clearpage
%\MR\input{sections/Kapitel/MR/EntwicklungAufgaben.tex}

View File

@ -6,7 +6,7 @@
\contentsline {section}{Kurzfassung/Abstract}{ii}{Doc-Start}%
\babel@toc {ngerman}{}
\babel@toc {ngerman}{}
\contentsline {section}{Projektergebnis}{iii}{Doc-Start}%
\contentsline {section}{Result}{iii}{Doc-Start}%
\babel@toc {english}{}
\contentsline {section}{\numberline {1}Task description}{1}{section.1}%
\contentsline {subsection}{\numberline {1.1}Hardware}{1}{subsection.1.1}%
@ -33,12 +33,35 @@
\contentsline {subsubsection}{\numberline {2.7.4}Demonstration Software}{13}{subsubsection.2.7.4}%
\contentsline {paragraph}{Transmit code}{13}{figure.caption.11}%
\contentsline {paragraph}{Echo code}{16}{figure.caption.12}%
\contentsline {section}{\numberline {3}Textadventure}{17}{section.3}%
\contentsline {subsection}{\numberline {3.1}General Implementation details}{18}{subsection.3.1}%
\contentsline {subsection}{\numberline {2.8}Audio Digital-Analog-Converter}{17}{subsection.2.8}%
\contentsline {subsubsection}{\numberline {2.8.1}TLC 7528 Dual R2R Ladder DAC}{18}{subsubsection.2.8.1}%
\contentsline {subsubsection}{\numberline {2.8.2}IDT7201 CMOS FIFO Buffer}{18}{subsubsection.2.8.2}%
\contentsline {subsubsection}{\numberline {2.8.3}Theory verfication}{19}{subsubsection.2.8.3}%
\contentsline {subsubsection}{\numberline {2.8.4}Schematics}{20}{subsubsection.2.8.4}%
\contentsline {paragraph}{Element Description}{22}{figure.caption.17}%
\contentsline {paragraph}{NE55 Clock Source}{22}{figure.caption.17}%
\contentsline {subsubsection}{\numberline {2.8.5}Demonstration Software}{23}{subsubsection.2.8.5}%
\contentsline {paragraph}{SAW Generator}{23}{subsubsection.2.8.5}%
\contentsline {paragraph}{Sine Generator}{25}{lstnumber.4.11}%
\contentsline {section}{\numberline {3}Addressing DACA and DACB}{26}{section.3}%
\contentsline {subsection}{\numberline {3.1}FPGA to Hardware interface}{27}{subsection.3.1}%
\contentsline {subsubsection}{\numberline {3.1.1}Measurement error}{29}{subsubsection.3.1.1}%
\contentsline {section}{\numberline {4}Textadventure}{30}{section.4}%
\contentsline {subsection}{\numberline {4.1}General Implementation details}{30}{subsection.4.1}%
\contentsline {subsubsection}{\numberline {4.1.1}General definitions and pinout of the AVR}{30}{subsubsection.4.1.1}%
\contentsline {subsubsection}{\numberline {4.1.2}Read and Write routines}{32}{subsubsection.4.1.2}%
\contentsline {subsubsection}{\numberline {4.1.3}UART and DAC update polling}{32}{subsubsection.4.1.3}%
\contentsline {subsection}{\numberline {4.2}DAC sound generation}{33}{subsection.4.2}%
\contentsline {subsubsection}{\numberline {4.2.1}DAC modes}{33}{subsubsection.4.2.1}%
\contentsline {subsubsection}{\numberline {4.2.2}Tones and Tracks}{37}{subsubsection.4.2.2}%
\contentsline {subsubsection}{\numberline {4.2.3}Track switching}{42}{subsubsection.4.2.3}%
\contentsline {subsection}{\numberline {4.3}User command interpretation}{42}{subsection.4.3}%
\contentsline {subsubsection}{\numberline {4.3.1}Command structure and pasring}{42}{subsubsection.4.3.1}%
\contentsline {subsubsection}{\numberline {4.3.2}Command parameters}{44}{subsubsection.4.3.2}%
\babel@toc {ngerman}{}
\contentsline {section}{\numberline {4}Erkl"arung der Eigenst"andigkeit der Arbeit}{20}{section.4}%
\contentsline {section}{\numberline {5}Erkl"arung der Eigenst"andigkeit der Arbeit}{46}{section.5}%
\babel@toc {english}{}
\contentsline {section}{\numberline {I\tmspace +\thickmuskip {.2777em}}List of Figures}{I}{section.1}%
\contentsline {section}{\numberline {II\tmspace +\thickmuskip {.2777em}}List of Tables}{I}{section.2}%
\contentsline {section}{\numberline {III\tmspace +\thickmuskip {.2777em}}Listings}{I}{section.3}%
\contentsline {section}{Anhang}{II}{section.3}%
\contentsline {section}{Anhang}{IV}{section.3}%

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
pics/diodesad2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1011 B

1044
pics/idt7201_pinout.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 106 KiB

600
pics/slas062e_pinout.svg Normal file
View File

@ -0,0 +1,600 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="202.94333"
height="208.40759"
viewBox="0 0 202.94333 208.40759"
sodipodi:docname="slas062e_pinout.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14"><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs6"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath504"><path
d="M 327.628,714.728 H 567.212 V 383.868 H 327.628 Z"
id="path502"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath608"><path
d="M 327.628,714.728 H 567.212 V 383.868 H 327.628 Z"
id="path606"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath624"><path
d="M 327.628,714.728 H 567.212 V 383.868 H 327.628 Z"
id="path622"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath644"><path
d="M 327.628,714.728 H 567.212 V 383.868 H 327.628 Z"
id="path642"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath660"><path
d="M 327.628,714.728 H 567.212 V 383.868 H 327.628 Z"
id="path658"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath676"><path
d="M 327.628,714.728 H 567.212 V 383.868 H 327.628 Z"
id="path674"
inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1916"
inkscape:window-height="1041"
id="namedview4"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="2.5284424"
inkscape:cx="116.95314"
inkscape:cy="149.87442"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="0"
inkscape:current-layer="g10" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="slas062e"
transform="matrix(1.3333333,0,0,-1.3333333,-494.58932,952.10558)">
<g
id="g1336"><g
id="text316"
style="font-variant:normal;font-weight:normal;font-size:7px;font-family:Symbol;-inkscape-font-specification:Symbol;writing-mode:lr-tb;fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,424.8564,66.3308)"
aria-label="" /><path
inkscape:connector-curvature="0"
id="path390"
style="fill:none;stroke:#231f20;stroke-width:0.96399999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 430.583,584.05 h -3.572 v -9.24 h 3.572 v -3.175 h -3.572 v -9.241 h 3.572 v -3.062 m 26.645,129.884 v -3.799 c 0,-2.782 -2.258,-5.04 -5.04,-5.04 -2.782,0 -5.04,2.258 -5.04,5.04 m -0.011,0 v 3.799" /><path
inkscape:connector-curvature="0"
id="path392"
style="fill:none;stroke:#231f20;stroke-width:1.41700006;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 430.696,558.482 h 42.69 v 130.564 h -42.69 z" /><g
id="text434"
style="font-variant:normal;font-weight:normal;font-size:8px;font-family:Helvetica;-inkscape-font-specification:Helvetica;writing-mode:lr-tb;fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,435.1748,673.115)"
aria-label="123
4 56789
10
20
19
18
17
16
15
14
13
12
11"><path
inkscape:connector-curvature="0"
id="path897"
d="M 2.072,-4.12 V 0 H 2.776 V -5.784 H 2.312 c -0.248,0.888 -0.408,1.008 -1.496,1.152 v 0.512 z" /><path
inkscape:connector-curvature="0"
id="path899"
d="M 4.048,11.436 H 1.064 c 0.072,-0.48 0.328,-0.784 1.024,-1.208 L 2.888,9.78 C 3.68,9.34 4.088,8.748 4.088,8.036 4.088,7.556 3.896,7.108 3.56,6.796 3.224,6.492 2.808,6.348 2.272,6.348 1.552,6.348 1.016,6.604 0.704,7.1 0.504,7.404 0.416,7.764 0.4,8.348 H 1.104 C 1.128,7.956 1.176,7.724 1.272,7.532 1.456,7.18 1.824,6.964 2.248,6.964 c 0.64,0 1.12,0.464 1.12,1.088 0,0.464 -0.264,0.864 -0.768,1.152 L 1.864,9.636 C 0.68,10.316 0.336,10.86 0.272,12.124 h 3.776 z" /><path
inkscape:connector-curvature="0"
id="path901"
d="m 1.768,21.6 h 0.088 0.296 c 0.768,0 1.176,0.36 1.176,1.056 0,0.728 -0.44,1.168 -1.168,1.168 -0.776,0 -1.152,-0.392 -1.2,-1.24 H 0.256 c 0.032,0.464 0.112,0.768 0.248,1.024 0.296,0.56 0.848,0.84 1.624,0.84 1.168,0 1.92,-0.704 1.92,-1.8 0,-0.736 -0.28,-1.136 -0.96,-1.376 0.528,-0.216 0.792,-0.616 0.792,-1.2 0,-0.992 -0.648,-1.592 -1.728,-1.592 -1.144,0 -1.752,0.64 -1.776,1.864 H 1.08 c 0.008,-0.352 0.04,-0.552 0.128,-0.728 0.16,-0.328 0.512,-0.52 0.952,-0.52 0.624,0 1,0.376 1,1 0,0.408 -0.144,0.656 -0.456,0.792 -0.192,0.08 -0.448,0.112 -0.936,0.12 z" /><path
inkscape:connector-curvature="0"
id="path903"
d="m 2.616,34.996 v 1.4 H 3.32 v -1.4 H 4.16 V 34.364 H 3.32 V 30.612 H 2.8 l -2.576,3.64 v 0.744 z m 0,-0.632 H 0.84 l 1.776,-2.552 z" /><path
inkscape:connector-curvature="0"
id="path905"
d="M 3.808,42.856 H 0.88 l -0.424,3.088 h 0.648 c 0.328,-0.392 0.6,-0.528 1.048,-0.528 0.76,0 1.232,0.52 1.232,1.36 0,0.816 -0.472,1.312 -1.24,1.312 -0.616,0 -0.992,-0.312 -1.16,-0.952 H 0.28 c 0.096,0.464 0.176,0.688 0.344,0.896 0.32,0.432 0.896,0.68 1.536,0.68 1.144,0 1.944,-0.832 1.944,-2.032 0,-1.12 -0.744,-1.888 -1.832,-1.888 -0.4,0 -0.72,0.104 -1.048,0.344 l 0.224,-1.584 h 2.36 z" /><path
inkscape:connector-curvature="0"
id="path907"
d="M 3.984,56.38 C 3.848,55.436 3.24,54.876 2.376,54.876 c -0.624,0 -1.184,0.304 -1.52,0.824 -0.36,0.568 -0.512,1.272 -0.512,2.32 0,0.976 0.136,1.592 0.48,2.104 0.304,0.472 0.8,0.72 1.424,0.72 1.08,0 1.856,-0.808 1.856,-1.936 0,-1.064 -0.72,-1.816 -1.736,-1.816 -0.56,0 -1,0.208 -1.304,0.632 C 1.072,56.292 1.52,55.5 2.328,55.5 c 0.496,0 0.84,0.32 0.952,0.88 z M 2.28,57.716 c 0.68,0 1.104,0.48 1.104,1.248 0,0.728 -0.48,1.256 -1.128,1.256 -0.656,0 -1.152,-0.552 -1.152,-1.288 0,-0.72 0.48,-1.216 1.176,-1.216 z" /><path
inkscape:connector-curvature="0"
id="path909"
d="M 4.16,67.12 H 0.368 v 0.696 H 3.432 C 2.08,69.744 1.528,70.928 1.104,72.792 H 1.856 C 2.168,70.976 2.88,69.416 4.16,67.712 Z" /><path
inkscape:connector-curvature="0"
id="path911"
d="m 3.128,81.876004 c 0.592,-0.36 0.776,-0.648 0.776,-1.192 0,-0.912 -0.696,-1.544 -1.704,-1.544 -1,0 -1.704,0.632 -1.704,1.536 0,0.552 0.184,0.832 0.768,1.2 -0.648,0.328 -0.968,0.8 -0.968,1.44 0,1.056 0.776,1.792 1.904,1.792 1.12,0 1.904,-0.736 1.904,-1.792 0,-0.64 -0.32,-1.112 -0.976,-1.44 z m -0.928,-2.112 c 0.6,0 0.984,0.36 0.984,0.936 0,0.544 -0.392,0.904 -0.984,0.904 -0.6,0 -0.984,-0.36 -0.984,-0.92 0,-0.56 0.384,-0.92 0.984,-0.92 z m 0,2.432 c 0.704,0 1.184,0.464 1.184,1.136 0,0.696 -0.472,1.152 -1.2,1.152 -0.688,0 -1.168,-0.472 -1.168,-1.144 0,-0.688 0.472,-1.144 1.184,-1.144 z" /><path
inkscape:connector-curvature="0"
id="path913"
d="m 0.424,95.736 c 0.136,0.944 0.744,1.504 1.608,1.504 0.632,0 1.192,-0.304 1.528,-0.824 0.352,-0.568 0.512,-1.272 0.512,-2.32 0,-0.976 -0.144,-1.592 -0.48,-2.104 -0.312,-0.472 -0.808,-0.72 -1.432,-0.72 -1.08,0 -1.856,0.808 -1.856,1.928 0,1.064 0.72,1.816 1.744,1.816 0.536,0 0.936,-0.192 1.296,-0.632 -0.008,1.44 -0.456,2.232 -1.264,2.232 -0.496,0 -0.84,-0.32 -0.952,-0.88 z m 1.728,-3.848 c 0.656,0 1.152,0.552 1.152,1.296 0,0.712 -0.48,1.208 -1.176,1.208 -0.68,0 -1.104,-0.48 -1.104,-1.248 0,-0.728 0.472,-1.256 1.128,-1.256 z" /><path
inkscape:connector-curvature="0"
id="path915"
d="m 2.072,105.1248 v 4.12 h 0.704 v -5.784 H 2.312 c -0.248,0.888 -0.408,1.008 -1.496,1.152 v 0.512 z" /><path
inkscape:connector-curvature="0"
id="path917"
d="m 6.648,103.4608 c -0.528,0 -1.008,0.24 -1.304,0.632 -0.368,0.512 -0.552,1.28 -0.552,2.352 0,1.952 0.64,2.984 1.856,2.984 1.2,0 1.856,-1.032 1.856,-2.936 0,-1.12 -0.176,-1.872 -0.552,-2.4 -0.296,-0.4 -0.768,-0.632 -1.304,-0.632 z m 0,0.624 c 0.76,0 1.136,0.776 1.136,2.344 0,1.648 -0.368,2.416 -1.152,2.416 -0.744,0 -1.12,-0.8 -1.12,-2.392 0,-1.592 0.376,-2.368 1.136,-2.368 z" /><path
inkscape:connector-curvature="0"
id="path919"
d="m 31.0336,-0.6984 h -2.984 c 0.072,-0.48 0.328,-0.784 1.024,-1.208 l 0.8,-0.448 c 0.792,-0.44 1.2,-1.032 1.2,-1.744 0,-0.48 -0.192,-0.928 -0.528,-1.24 -0.336,-0.304 -0.752,-0.448 -1.288,-0.448 -0.72,0 -1.256,0.256 -1.568,0.752 -0.2,0.304 -0.288,0.664 -0.304,1.248 h 0.704 c 0.024,-0.392 0.072,-0.624 0.168,-0.816 0.184,-0.352 0.552,-0.568 0.976,-0.568 0.64,0 1.12,0.464 1.12,1.088 0,0.464 -0.264,0.864 -0.768,1.152 l -0.736,0.432 c -1.184,0.68 -1.528,1.224 -1.592,2.488 h 3.776 z" /><path
inkscape:connector-curvature="0"
id="path921"
d="m 33.633599,-5.7864 c -0.528,0 -1.008,0.24 -1.304,0.632 -0.368,0.512 -0.552,1.28 -0.552,2.352 0,1.952 0.64,2.984 1.856,2.984 1.2,0 1.856,-1.032 1.856,-2.936 0,-1.12 -0.176,-1.872 -0.552,-2.4 -0.296,-0.4 -0.768,-0.632 -1.304,-0.632 z m 0,0.624 c 0.76,0 1.136,0.776 1.136,2.344 0,1.648 -0.368,2.416 -1.152,2.416 -0.744,0 -1.12,-0.8 -1.12,-2.392 0,-1.592 0.376,-2.368 1.136,-2.368 z" /><path
inkscape:connector-curvature="0"
id="path923"
d="M 29.0576,8.0095996 V 12.1296 h 0.704 V 6.3455996 h -0.464 c -0.248,0.888 -0.408,1.008 -1.496,1.152 v 0.512 z" /><path
inkscape:connector-curvature="0"
id="path925"
d="m 31.857599,10.8096 c 0.136,0.944 0.744,1.504 1.608,1.504 0.632,0 1.192,-0.304 1.528,-0.824 0.352,-0.568 0.512,-1.272 0.512,-2.3200004 0,-0.976 -0.144,-1.592 -0.48,-2.104 -0.312,-0.472 -0.808,-0.72 -1.432,-0.72 -1.08,0 -1.856,0.808 -1.856,1.928 0,1.064 0.72,1.8160004 1.744,1.8160004 0.536,0 0.936,-0.1920004 1.296,-0.6320004 -0.008,1.4400004 -0.456,2.2320004 -1.264,2.2320004 -0.496,0 -0.84,-0.32 -0.952,-0.88 z m 1.728,-3.8480004 c 0.656,0 1.152,0.552 1.152,1.296 0,0.712 -0.48,1.208 -1.176,1.208 -0.68,0 -1.104,-0.48 -1.104,-1.248 0,-0.728 0.472,-1.256 1.128,-1.256 z" /><path
inkscape:connector-curvature="0"
id="path927"
d="m 29.0576,20.1416 v 4.12 h 0.704 v -5.784 h -0.464 c -0.248,0.888 -0.408,1.008 -1.496,1.152 v 0.512 z" /><path
inkscape:connector-curvature="0"
id="path929"
d="m 34.561599,21.2136 c 0.592,-0.36 0.776,-0.648 0.776,-1.192 0,-0.912 -0.696,-1.544 -1.704,-1.544 -1,0 -1.704,0.632 -1.704,1.536 0,0.552 0.184,0.832 0.768,1.2 -0.648,0.328 -0.968,0.8 -0.968,1.44 0,1.056 0.776,1.792 1.904,1.792 1.12,0 1.904,-0.736 1.904,-1.792 0,-0.64 -0.32,-1.112 -0.976,-1.44 z m -0.928,-2.112 c 0.6,0 0.984,0.36 0.984,0.936 0,0.544 -0.392,0.904 -0.984,0.904 -0.6,0 -0.984,-0.36 -0.984,-0.92 0,-0.56 0.384,-0.92 0.984,-0.92 z m 0,2.432 c 0.704,0 1.184,0.464 1.184,1.136 0,0.696 -0.472,1.152 -1.2,1.152 -0.688,0 -1.168,-0.472 -1.168,-1.144 0,-0.688 0.472,-1.144 1.184,-1.144 z" /><path
inkscape:connector-curvature="0"
id="path931"
d="m 29.0576,32.2736 v 4.12 h 0.704 v -5.784 h -0.464 c -0.248,0.888 -0.408,1.008 -1.496,1.152 v 0.512 z" /><path
inkscape:connector-curvature="0"
id="path933"
d="m 35.593599,30.7216 h -3.792 v 0.696 h 3.064 c -1.352,1.928 -1.904,3.112 -2.328,4.976 h 0.752 c 0.312,-1.816 1.024,-3.376 2.304,-5.08 z" /><path
inkscape:connector-curvature="0"
id="path935"
d="m 29.0576,44.4056 v 4.12 h 0.704 v -5.784 h -0.464 c -0.248,0.888 -0.408,1.008 -1.496,1.152 v 0.512 z" /><path
inkscape:connector-curvature="0"
id="path937"
d="m 35.417599,44.2456 c -0.136,-0.944 -0.744,-1.504 -1.608,-1.504 -0.624,0 -1.184,0.304 -1.52,0.824 -0.36,0.568 -0.512,1.272 -0.512,2.32 0,0.976 0.136,1.592 0.48,2.104 0.304,0.472 0.8,0.72 1.424,0.72 1.08,0 1.856,-0.808 1.856,-1.936 0,-1.064 -0.72,-1.816 -1.736,-1.816 -0.56,0 -1,0.208 -1.304,0.632 0.008,-1.432 0.456,-2.224 1.264,-2.224 0.496,0 0.84,0.32 0.952,0.88 z m -1.704,1.336 c 0.68,0 1.104,0.48 1.104,1.248 0,0.728 -0.48,1.256 -1.128,1.256 -0.656,0 -1.152,-0.552 -1.152,-1.288 0,-0.72 0.48,-1.216 1.176,-1.216 z" /><path
inkscape:connector-curvature="0"
id="path939"
d="m 29.0576,56.5376 v 4.12 h 0.704 v -5.784 h -0.464 c -0.248,0.888 -0.408,1.008 -1.496,1.152 v 0.512 z" /><path
inkscape:connector-curvature="0"
id="path941"
d="m 35.241599,54.9856 h -2.928 l -0.424,3.088 h 0.648 c 0.328,-0.392 0.6,-0.528 1.048,-0.528 0.76,0 1.232,0.52 1.232,1.36 0,0.816 -0.472,1.312 -1.24,1.312 -0.616,0 -0.992,-0.312 -1.16,-0.952 h -0.704 c 0.096,0.464 0.176,0.688 0.344,0.896 0.32,0.432 0.896,0.68 1.536,0.68 1.144,0 1.944,-0.832 1.944,-2.032 0,-1.12 -0.744,-1.888 -1.832,-1.888 -0.4,0 -0.72,0.104 -1.048,0.344 l 0.224,-1.584 h 2.36 z" /><path
inkscape:connector-curvature="0"
id="path943"
d="m 29.0576,68.669597 v 4.12 h 0.704 v -5.784 h -0.464 c -0.248,0.888 -0.408,1.008 -1.496,1.152 v 0.512 z" /><path
inkscape:connector-curvature="0"
id="path945"
d="m 34.049599,71.389597 v 1.4 h 0.704 v -1.4 h 0.84 v -0.632 h -0.84 v -3.752 h -0.52 l -2.576,3.64 v 0.744 z m 0,-0.632 h -1.776 l 1.776,-2.552 z" /><path
inkscape:connector-curvature="0"
id="path947"
d="m 29.0576,80.8016 v 4.12 h 0.704 v -5.784 h -0.464 c -0.248,0.888 -0.408,1.008 -1.496,1.152 v 0.512 z" /><path
inkscape:connector-curvature="0"
id="path949"
d="m 33.201599,82.2576 h 0.088 0.296 c 0.768,0 1.176,0.36 1.176,1.056 0,0.728 -0.44,1.168 -1.168,1.168 -0.776,0 -1.152,-0.392 -1.2,-1.24 h -0.704 c 0.032,0.464 0.112,0.768 0.248,1.024 0.296,0.56 0.848,0.84 1.624,0.84 1.168,0 1.92,-0.704 1.92,-1.8 0,-0.736 -0.28,-1.136 -0.96,-1.376 0.528,-0.216 0.792,-0.616 0.792,-1.2 0,-0.992 -0.648,-1.592 -1.728,-1.592 -1.144,0 -1.752,0.64 -1.776,1.864 h 0.704 c 0.008,-0.352 0.04,-0.552 0.128,-0.728 0.16,-0.328 0.512,-0.52 0.952,-0.52 0.624,0 1,0.376 1,1 0,0.408 -0.144,0.656 -0.456,0.792 -0.192,0.08 -0.448,0.112 -0.936,0.12 z" /><path
inkscape:connector-curvature="0"
id="path951"
d="m 29.0576,92.933596 v 4.12 h 0.704 v -5.784 h -0.464 c -0.248,0.888 -0.408,1.008 -1.496,1.152 v 0.512 z" /><path
inkscape:connector-curvature="0"
id="path953"
d="m 35.481599,96.357596 h -2.984 c 0.072,-0.48 0.328,-0.784 1.024,-1.208 l 0.8,-0.448 c 0.792,-0.44 1.2,-1.032 1.2,-1.744 0,-0.48 -0.192,-0.928 -0.528,-1.24 -0.336,-0.304 -0.752,-0.448 -1.288,-0.448 -0.72,0 -1.256,0.256 -1.568,0.752 -0.2,0.304 -0.288,0.664 -0.304,1.248 h 0.704 c 0.024,-0.392 0.072,-0.624 0.168,-0.816 0.184,-0.352 0.552,-0.568 0.976,-0.568 0.64,0 1.12,0.464 1.12,1.088 0,0.464 -0.264,0.864 -0.768,1.152 l -0.736,0.432 c -1.184,0.68 -1.528,1.224 -1.592,2.488 h 3.776 z" /><path
inkscape:connector-curvature="0"
id="path955"
d="m 29.624799,105.1224 v 4.12 h 0.704 v -5.784 h -0.464 c -0.248,0.888 -0.408,1.008 -1.496,1.152 v 0.512 z" /><path
inkscape:connector-curvature="0"
id="path957"
d="m 33.480001,105.1224 v 4.12 h 0.704 v -5.784 h -0.464 c -0.248,0.888 -0.408,1.008 -1.496,1.152 v 0.512 z" /></g><g
id="text448"
style="font-variant:normal;font-weight:normal;font-size:9px;font-family:Helvetica;-inkscape-font-specification:Helvetica;writing-mode:lr-tb;fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,397.5307,674.3055)"
aria-label="AGND
OUTA
RFBA
REFA
DGND
DACA"><path
inkscape:connector-curvature="0"
id="path960"
d="M 4.266,-1.971 4.941,0 H 5.877 L 3.573,-6.561 H 2.493 L 0.153,0 H 1.044 L 1.737,-1.971 Z M 4.032,-2.673 H 1.944 l 1.08,-2.988 z" /><path
inkscape:connector-curvature="0"
id="path962"
d="M 12.384,-3.465 H 9.6479998 v 0.738 H 11.646 v 0.18 c 0,1.17 -0.864,2.016 -2.0610002,2.016 -0.666,0 -1.269,-0.243 -1.656,-0.666 -0.432,-0.468 -0.693,-1.251 -0.693,-2.061 0,-1.611 0.918,-2.673 2.304,-2.673 0.9990002,0 1.7190002,0.513 1.8990002,1.359 h 0.855 c -0.234,-1.332 -1.242,-2.097 -2.7450002,-2.097 -0.801,0 -1.449,0.207 -1.962,0.63 -0.765,0.63 -1.188,1.647 -1.188,2.826 0,2.016 1.233,3.42 3.006,3.42 C 10.296,0.207 10.998,-0.126 11.646,-0.837 l 0.207,0.873 h 0.531 z" /><path
inkscape:connector-curvature="0"
id="path964"
d="m 18.819,-6.561 h -0.792 v 5.364 L 14.598,-6.561 H 13.689 V 0 h 0.792 V -5.319 L 17.874,0 h 0.945 z" /><path
inkscape:connector-curvature="0"
id="path966"
d="m 20.304,0 h 2.529 c 1.656,0 2.673,-1.242 2.673,-3.285 0,-2.034 -1.008,-3.276 -2.673,-3.276 h -2.529 z m 0.837,-0.738 v -5.085 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 0,1.665 -0.684,2.538 -1.98,2.538 z" /><path
inkscape:connector-curvature="0"
id="path968"
d="m 5.202,5.5196997 c -1.881,0 -3.159,1.386 -3.159,3.438 0,2.0610003 1.269,3.4380003 3.168,3.4380003 0.801,0 1.503,-0.243 2.034,-0.693 0.711,-0.603 1.134,-1.62 1.134,-2.6910003 0,-2.115 -1.251,-3.492 -3.177,-3.492 z m 0,0.738 c 1.422,0 2.34,1.071 2.34,2.736 0,1.5840003 -0.945,2.6640003 -2.331,2.6640003 -1.404,0 -2.331,-1.08 -2.331,-2.7000003 0,-1.62 0.927,-2.7 2.322,-2.7 z" /><path
inkscape:connector-curvature="0"
id="path970"
d="M 13.671,5.6276997 V 10.2357 c 0,0.882 -0.639,1.422 -1.692,1.422 -0.486,0 -0.882,-0.117 -1.197,-0.342 -0.324,-0.252 -0.477,-0.585 -0.477,-1.08 V 5.6276997 H 9.4680001 V 10.2357 c 0,1.332 0.9539999,2.16 2.5109999,2.16 1.539,0 2.529,-0.846 2.529,-2.16 V 5.6276997 Z" /><path
inkscape:connector-curvature="0"
id="path972"
d="m 18.387,6.3656997 h 2.151 v -0.738 H 15.39 v 0.738 h 2.16 V 12.1887 h 0.837 z" /><path
inkscape:connector-curvature="0"
id="path974"
d="m 24.335099,10.2177 0.675,1.971 h 0.936 l -2.304,-6.5610003 h -1.08 l -2.34,6.5610003 h 0.891 l 0.693,-1.971 z m -0.234,-0.7020003 h -2.088 l 1.08,-2.988 z" /><path
inkscape:connector-curvature="0"
id="path976"
d="m 3.7151999,21.551399 h 2.16 c 0.747,0 1.08,0.36 1.08,1.17 l -0.009,0.585 c 0,0.405 0.072,0.801 0.189,1.071 h 1.017 v -0.207 c -0.315,-0.216 -0.378,-0.45 -0.396,-1.323 -0.009,-1.08 -0.18,-1.404 -0.891,-1.71 0.738,-0.369 1.035,-0.81 1.035,-1.566 0,-1.134 -0.702,-1.755 -1.998,-1.755 h -3.024 v 6.561 h 0.837 z m 0,-0.738 v -2.259 h 2.025 c 0.468,0 0.738,0.072 0.945,0.252 0.225,0.189 0.342,0.486 0.342,0.873 0,0.783 -0.396,1.134 -1.287,1.134 z" /><path
inkscape:connector-curvature="0"
id="path978"
d="m 10.1862,21.389399 h 3.132 v -0.738 h -3.132 v -2.097 h 3.564 v -0.738 H 9.3491998 v 6.561 H 10.1862 Z" /><path
inkscape:connector-curvature="0"
id="path980"
d="m 14.7492,24.377399 h 2.961 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.422,-0.459 h -2.664 z m 0.837,-3.735 v -2.088 h 1.62 c 0.468,0 0.729,0.063 0.954,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.954,0.234 z m 0,2.997 v -2.259 h 2.043 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path982"
d="m 24.307201,22.406399 0.675,1.971 h 0.936 l -2.304,-6.561 h -1.08 l -2.34,6.561 h 0.891 l 0.693,-1.971 z m -0.234,-0.702 h -2.088 l 1.08,-2.988 z" /><path
inkscape:connector-curvature="0"
id="path984"
d="m 4.2255001,33.740101 h 2.16 c 0.747,0 1.08,0.36 1.08,1.17 l -0.009,0.585 c 0,0.405 0.072,0.801 0.189,1.071 h 1.017 v -0.207 c -0.315,-0.216 -0.378,-0.45 -0.396,-1.323 -0.009,-1.08 -0.18,-1.404 -0.891,-1.71 0.738,-0.369 1.035,-0.81 1.035,-1.566 0,-1.134 -0.702,-1.755 -1.998,-1.755 h -3.024 v 6.561 h 0.837 z m 0,-0.738 v -2.259 h 2.025 c 0.468,0 0.738,0.072 0.945,0.252 0.225,0.189 0.342,0.486 0.342,0.873 0,0.783 -0.396,1.134 -1.287,1.134 z" /><path
inkscape:connector-curvature="0"
id="path986"
d="m 10.6965,33.578101 h 3.573 v -0.738 h -3.573 v -2.097 h 3.708 v -0.738 H 9.8595005 v 6.561 H 14.5665 v -0.738 h -3.87 z" /><path
inkscape:connector-curvature="0"
id="path988"
d="m 16.6995,33.578101 h 3.132 v -0.738 h -3.132 v -2.097 h 3.564 v -0.738 h -4.401 v 6.561 h 0.837 z" /><path
inkscape:connector-curvature="0"
id="path990"
d="m 24.336,34.595101 0.675,1.971 h 0.936 l -2.304,-6.561 h -1.08 l -2.34,6.561 h 0.891 l 0.693,-1.971 z m -0.234,-0.702 h -2.088 l 1.08,-2.988 z" /><path
inkscape:connector-curvature="0"
id="path992"
d="M 0.29070002,48.698101 H 2.8197 c 1.656,0 2.673,-1.242 2.673,-3.285 0,-2.034 -1.008,-3.276 -2.673,-3.276 H 0.29070002 Z M 1.1277,47.960101 v -5.085 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 0,1.665 -0.684,2.538 -1.98,2.538 z" /><path
inkscape:connector-curvature="0"
id="path994"
d="m 12.3687,45.233101 h -2.736 v 0.738 h 1.998 v 0.18 c 0,1.17 -0.864,2.016 -2.061,2.016 -0.666,0 -1.269,-0.243 -1.656,-0.666 -0.432,-0.468 -0.693,-1.251 -0.693,-2.061 0,-1.611 0.918,-2.673 2.304,-2.673 0.999,0 1.719,0.513 1.899,1.359 h 0.855 c -0.234,-1.332 -1.242,-2.097 -2.745,-2.097 -0.801,0 -1.449,0.207 -1.962,0.63 -0.765,0.63 -1.188,1.647 -1.188,2.826 0,2.016 1.233,3.42 3.006,3.42 0.891,0 1.593,-0.333 2.241,-1.044 l 0.207,0.873 h 0.531 z" /><path
inkscape:connector-curvature="0"
id="path996"
d="m 18.8037,42.137101 h -0.792 v 5.364 l -3.429,-5.364 h -0.909 v 6.561 h 0.792 v -5.319 l 3.393,5.319 h 0.945 z" /><path
inkscape:connector-curvature="0"
id="path998"
d="m 20.2887,48.698101 h 2.529 c 1.656,0 2.673,-1.242 2.673,-3.285 0,-2.034 -1.008,-3.276 -2.673,-3.276 h -2.529 z m 0.837,-0.738 v -5.085 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 0,1.665 -0.684,2.538 -1.98,2.538 z" /><path
inkscape:connector-curvature="0"
id="path1000"
d="m -25.787699,60.886799 h 2.529 c 1.656,0 2.673,-1.242 2.673,-3.285 0,-2.034 -1.008,-3.276 -2.673,-3.276 h -2.529 z m 0.837,-0.738 v -5.085 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 0,1.665 -0.684,2.538 -1.98,2.538 z" /><path
inkscape:connector-curvature="0"
id="path1002"
d="m -15.8247,58.915799 0.675,1.971 h 0.936 l -2.304,-6.561 h -1.08 l -2.34,6.561 h 0.891 l 0.693,-1.971 z m -0.234,-0.702 h -2.088 l 1.08,-2.988 z" /><path
inkscape:connector-curvature="0"
id="path1004"
d="m -8.1296999,56.359799 c -0.261,-1.44 -1.089,-2.142 -2.5290001,-2.142 -0.882,0 -1.593,0.279 -2.079,0.819 -0.594,0.648 -0.918,1.584 -0.918,2.646 0,1.08 0.333,2.007 0.945,2.646 0.513,0.522 1.161,0.765 2.016,0.765 1.6020001,0 2.5020001,-0.864 2.7000001,-2.601 h -0.864 c -0.072,0.45 -0.162,0.756 -0.297,1.017 -0.27,0.54 -0.828,0.846 -1.5300001,0.846 -1.305,0 -2.133,-1.044 -2.133,-2.682 0,-1.683 0.783,-2.718 2.061,-2.718 0.531,0 1.0260001,0.153 1.2960001,0.414 0.243,0.225 0.378,0.495 0.477,0.99 z" /><path
inkscape:connector-curvature="0"
id="path1006"
d="m -3.3237002,58.915799 0.675,1.971 h 0.936 l -2.304,-6.561 h -1.08 l -2.34,6.561 h 0.891 l 0.693,-1.971 z m -0.234,-0.702 h -2.088 l 1.08,-2.988 z" /></g><path
inkscape:connector-curvature="0"
id="path450"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 370.942,622.545 H 396 v -1.134 h -25.058 z" /><g
id="text470"
style="font-variant:normal;font-weight:normal;font-size:9px;font-family:Helvetica;-inkscape-font-specification:Helvetica;writing-mode:lr-tb;fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,396,613.4174)"
aria-label="/DACB
(MSB) DB7
DB6
DB5
DB4
OUTB
RFBB
REFBV"><path
inkscape:connector-curvature="0"
id="path1009"
d="M 2.061,-6.561 -0.072,0.18 h 0.495 l 2.133,-6.741 z" /><path
inkscape:connector-curvature="0"
id="path1011"
d="m 3.3030001,0 h 2.529 c 1.656,0 2.673,-1.242 2.673,-3.285 0,-2.034 -1.008,-3.276 -2.673,-3.276 h -2.529 z m 0.837,-0.738 v -5.085 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 0,1.665 -0.684,2.538 -1.98,2.538 z" /><path
inkscape:connector-curvature="0"
id="path1013"
d="M 13.266,-1.971 13.941,0 h 0.936 l -2.304,-6.561 h -1.08 L 9.153,0 h 0.891 l 0.693,-1.971 z m -0.234,-0.702 h -2.088 l 1.08,-2.988 z" /><path
inkscape:connector-curvature="0"
id="path1015"
d="m 20.961,-4.527 c -0.261,-1.44 -1.089,-2.142 -2.529,-2.142 -0.882,0 -1.593,0.279 -2.079,0.819 -0.594,0.648 -0.918,1.584 -0.918,2.646 0,1.08 0.333,2.007 0.945,2.646 0.513,0.522 1.161,0.765 2.016,0.765 1.602,0 2.502,-0.864 2.7,-2.601 h -0.864 c -0.072,0.45 -0.162,0.756 -0.297,1.017 -0.27,0.54 -0.828,0.846 -1.53,0.846 -1.305,0 -2.133,-1.044 -2.133,-2.682 0,-1.683 0.783,-2.718 2.061,-2.718 0.531,0 1.026,0.153 1.296,0.414 0.243,0.225 0.378,0.495 0.477,0.99 z" /><path
inkscape:connector-curvature="0"
id="path1017"
d="m 22.211999,0 h 2.961 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.422,-0.459 h -2.664 z m 0.837,-3.735 v -2.088 h 1.62 c 0.468,0 0.729,0.063 0.954,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.954,0.234 z m 0,2.997 v -2.259 h 2.043 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1019"
d="m -15.848099,5.6276997 c -0.9,1.179 -1.467,2.817 -1.467,4.23 0,1.4220003 0.567,3.0600003 1.467,4.2390003 h 0.495 c -0.792,-1.287 -1.233,-2.799 -1.233,-4.2390003 0,-1.431 0.441,-2.952 1.233,-4.23 z" /><path
inkscape:connector-curvature="0"
id="path1021"
d="m -10.7613,12.1887 1.845,-5.4990003 V 12.1887 h 0.792 V 5.6276997 h -1.161 l -1.908,5.7150003 -1.944,-5.7150003 h -1.161 V 12.1887 h 0.792 V 6.6896997 l 1.863,5.4990003 z" /><path
inkscape:connector-curvature="0"
id="path1023"
d="m -2.1105002,7.5536997 c 0,-0.45 -0.027,-0.576 -0.171,-0.882 -0.36,-0.756 -1.125,-1.152 -2.232,-1.152 -1.44,0 -2.331,0.738 -2.331,1.926 0,0.801 0.423,1.305 1.287,1.53 l 1.629,0.432 c 0.837,0.216 1.206,0.549 1.206,1.0620003 0,0.351 -0.189,0.711 -0.468,0.909 -0.261,0.189 -0.675,0.279 -1.206,0.279 -0.72,0 -1.197,-0.171 -1.512,-0.549 -0.243,-0.288 -0.351,-0.603 -0.342,-1.008 h -0.792 c 0.009,0.603 0.126,0.999 0.387,1.359 0.45,0.621 1.206,0.936 2.205,0.936 0.783,0 1.422,-0.18 1.845,-0.504 0.441,-0.351 0.72,-0.936 0.72,-1.503 0,-0.8100003 -0.504,-1.4040003 -1.395,-1.6470003 l -1.647,-0.441 c -0.792,-0.216 -1.08,-0.468 -1.08,-0.972 0,-0.666 0.585,-1.107 1.467,-1.107 1.044,0 1.629,0.468 1.638,1.332 z" /><path
inkscape:connector-curvature="0"
id="path1025"
d="M -0.75869998,12.1887 H 2.2023 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.7920003 -0.36,-1.2690003 -1.197,-1.5930003 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.422,-0.459 h -2.66399998 z m 0.837,-3.7350003 v -2.088 H 1.6983 c 0.468,0 0.729,0.063 0.954,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.954,0.234 z m 0,2.9970003 V 9.1916997 H 2.1213 c 0.738,0 1.179,0.423 1.179,1.1340003 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1027"
d="m 5.3721,14.0967 c 0.9,-1.179 1.467,-2.817 1.467,-4.2300003 0,-1.422 -0.567,-3.06 -1.467,-4.239 h -0.495 c 0.792,1.287 1.233,2.799 1.233,4.239 0,1.4310003 -0.441,2.9520003 -1.233,4.2300003 z" /><path
inkscape:connector-curvature="0"
id="path1029"
d="m 10.8423,12.1887 h 2.529 c 1.656,0 2.673,-1.242 2.673,-3.2850003 0,-2.034 -1.008,-3.276 -2.673,-3.276 h -2.529 z m 0.837,-0.738 V 6.3656997 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 0,1.6650003 -0.684,2.5380003 -1.98,2.5380003 z" /><path
inkscape:connector-curvature="0"
id="path1031"
d="m 17.2521,12.1887 h 2.961 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.7920003 -0.36,-1.2690003 -1.197,-1.5930003 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.422,-0.459 h -2.664 z m 0.837,-3.7350003 v -2.088 h 1.62 c 0.468,0 0.729,0.063 0.954,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.954,0.234 z m 0,2.9970003 V 9.1916997 h 2.043 c 0.738,0 1.179,0.423 1.179,1.1340003 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1033"
d="m 27.2259,5.8076997 h -4.266 v 0.783 h 3.447 c -1.521,2.169 -2.142,3.5010003 -2.619,5.5980003 h 0.846 c 0.351,-2.043 1.152,-3.7980003 2.592,-5.7150003 z" /><path
inkscape:connector-curvature="0"
id="path1035"
d="m 10.8918,24.377399 h 2.529 c 1.656,0 2.673,-1.242 2.673,-3.285 0,-2.034 -1.008,-3.276 -2.673,-3.276 h -2.529 z m 0.837,-0.738 v -5.085 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 0,1.665 -0.684,2.538 -1.98,2.538 z" /><path
inkscape:connector-curvature="0"
id="path1037"
d="m 17.2998,24.377399 h 2.961 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.422,-0.459 h -2.664 z m 0.837,-3.735 v -2.088 h 1.62 c 0.468,0 0.729,0.063 0.954,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.954,0.234 z m 0,2.997 v -2.259 h 2.043 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1039"
d="m 27.073801,19.562399 c -0.153,-1.062 -0.837,-1.692 -1.809,-1.692 -0.702,0 -1.332,0.342 -1.71,0.927 -0.405,0.639 -0.576,1.431 -0.576,2.61 0,1.098 0.153,1.791 0.54,2.367 0.342,0.531 0.9,0.81 1.602,0.81 1.215,0 2.088,-0.909 2.088,-2.178 0,-1.197 -0.81,-2.043 -1.953,-2.043 -0.63,0 -1.125,0.234 -1.467,0.711 0.009,-1.611 0.513,-2.502 1.422,-2.502 0.558,0 0.945,0.36 1.071,0.99 z m -1.917,1.503 c 0.765,0 1.242,0.54 1.242,1.404 0,0.819 -0.54,1.413 -1.269,1.413 -0.738,0 -1.296,-0.621 -1.296,-1.449 0,-0.81 0.54,-1.368 1.323,-1.368 z" /><path
inkscape:connector-curvature="0"
id="path1041"
d="m 10.8918,36.509399 h 2.529 c 1.656,0 2.673,-1.242 2.673,-3.285 0,-2.034 -1.008,-3.276 -2.673,-3.276 h -2.529 z m 0.837,-0.738 v -5.085 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 0,1.665 -0.684,2.538 -1.98,2.538 z" /><path
inkscape:connector-curvature="0"
id="path1043"
d="m 17.2998,36.509399 h 2.961 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.422,-0.459 h -2.664 z m 0.837,-3.735 v -2.088 h 1.62 c 0.468,0 0.729,0.063 0.954,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.954,0.234 z m 0,2.997 v -2.259 h 2.043 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1045"
d="m 26.875801,30.128399 h -3.294 l -0.477,3.474 h 0.729 c 0.369,-0.441 0.675,-0.594 1.179,-0.594 0.855,0 1.386,0.585 1.386,1.53 0,0.918 -0.531,1.476 -1.395,1.476 -0.693,0 -1.116,-0.351 -1.305,-1.071 h -0.792 c 0.108,0.522 0.198,0.774 0.387,1.008 0.36,0.486 1.008,0.765 1.728,0.765 1.287,0 2.187,-0.936 2.187,-2.286 0,-1.26 -0.837,-2.124 -2.061,-2.124 -0.45,0 -0.81,0.117 -1.179,0.387 l 0.252,-1.782 h 2.655 z" /><path
inkscape:connector-curvature="0"
id="path1047"
d="m 10.8918,48.698101 h 2.529 c 1.656,0 2.673,-1.242 2.673,-3.285 0,-2.034 -1.008,-3.276 -2.673,-3.276 h -2.529 z m 0.837,-0.738 v -5.085 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 0,1.665 -0.684,2.538 -1.98,2.538 z" /><path
inkscape:connector-curvature="0"
id="path1049"
d="m 17.2998,48.698101 h 2.961 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.422,-0.459 h -2.664 z m 0.837,-3.735 v -2.088 h 1.62 c 0.468,0 0.729,0.063 0.954,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.954,0.234 z m 0,2.997 v -2.259 h 2.043 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1051"
d="m 25.534801,47.123101 v 1.575 h 0.792 v -1.575 h 0.945 v -0.711 h -0.945 v -4.221 h -0.585 l -2.898,4.095 v 0.837 z m 0,-0.711 h -1.998 l 1.998,-2.871 z" /><path
inkscape:connector-curvature="0"
id="path1053"
d="m 88.313401,-67.5585 c -1.881,0 -3.159,1.386 -3.159,3.438 0,2.061 1.269,3.438 3.168,3.438 0.801,0 1.503,-0.243 2.034,-0.693 0.711,-0.603 1.134,-1.62 1.134,-2.691 0,-2.115 -1.251,-3.492 -3.177,-3.492 z m 0,0.738 c 1.422,0 2.34,1.071 2.34,2.736 0,1.584 -0.945,2.664 -2.331,2.664 -1.404,0 -2.331,-1.08 -2.331,-2.7 0,-1.62 0.927,-2.7 2.322,-2.7 z" /><path
inkscape:connector-curvature="0"
id="path1055"
d="m 96.7824,-67.4505 v 4.608 c 0,0.882 -0.639,1.422 -1.692,1.422 -0.486,0 -0.882,-0.117 -1.197,-0.342 -0.324,-0.252 -0.477,-0.585 -0.477,-1.08 v -4.608 h -0.837 v 4.608 c 0,1.332 0.954,2.16 2.511,2.16 1.539,0 2.529,-0.846 2.529,-2.16 v -4.608 z" /><path
inkscape:connector-curvature="0"
id="path1057"
d="m 101.4984,-66.7125 h 2.151 v -0.738 h -5.147999 v 0.738 h 2.159999 v 5.823 h 0.837 z" /><path
inkscape:connector-curvature="0"
id="path1059"
d="m 104.5224,-60.8895 h 2.961 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.422,-0.459 h -2.664 z m 0.837,-3.735 v -2.088 h 1.62 c 0.468,0 0.729,0.063 0.954,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.954,0.234 z m 0,2.997 v -2.259 h 2.043 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1061"
d="m 86.486401,-51.526802 h 2.16 c 0.747,0 1.08,0.36 1.08,1.17 l -0.009,0.585 c 0,0.405 0.072,0.801 0.189,1.071 h 1.017 v -0.207 c -0.315,-0.216 -0.378,-0.45 -0.396,-1.323 -0.009,-1.08 -0.18,-1.404 -0.891,-1.71 0.738,-0.369 1.035,-0.81 1.035,-1.566 0,-1.134 -0.702,-1.755 -1.998,-1.755 h -3.024 v 6.561 h 0.837 z m 0,-0.738 v -2.259 h 2.025 c 0.468,0 0.738,0.072 0.945,0.252 0.225,0.189 0.342,0.486 0.342,0.873 0,0.783 -0.396,1.134 -1.287,1.134 z" /><path
inkscape:connector-curvature="0"
id="path1063"
d="m 92.957402,-51.688802 h 3.132 v -0.738 h -3.132 v -2.097 h 3.564 v -0.738 h -4.401 v 6.561 h 0.837 z" /><path
inkscape:connector-curvature="0"
id="path1065"
d="m 97.520402,-48.700802 h 2.960998 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.422,-0.459 h -2.663998 z m 0.837,-3.735 v -2.088 h 1.62 c 0.467998,0 0.728998,0.063 0.953998,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.953998,0.234 z m 0,2.997 v -2.259 h 2.042998 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1067"
d="m 103.5234,-48.700802 h 2.961 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.422,-0.459 h -2.664 z m 0.837,-3.735 v -2.088 h 1.62 c 0.468,0 0.729,0.063 0.954,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.954,0.234 z m 0,2.997 v -2.259 h 2.043 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1069"
d="m 86.486401,-39.3381 h 2.16 c 0.747,0 1.08,0.36 1.08,1.17 l -0.009,0.585 c 0,0.405 0.072,0.801 0.189,1.071 h 1.017 v -0.207 c -0.315,-0.216 -0.378,-0.45 -0.396,-1.323 -0.009,-1.08 -0.18,-1.404 -0.891,-1.71 0.738,-0.369 1.035,-0.81 1.035,-1.566 0,-1.134 -0.702,-1.755 -1.998,-1.755 h -3.024 v 6.561 h 0.837 z m 0,-0.738 v -2.259 h 2.025 c 0.468,0 0.738,0.072 0.945,0.252 0.225,0.189 0.342,0.486 0.342,0.873 0,0.783 -0.396,1.134 -1.287,1.134 z" /><path
inkscape:connector-curvature="0"
id="path1071"
d="m 92.957402,-39.5001 h 3.573 v -0.738 h -3.573 v -2.097 h 3.708 v -0.738 h -4.545 v 6.561 h 4.707 v -0.738 h -3.87 z" /><path
inkscape:connector-curvature="0"
id="path1073"
d="m 98.9604,-39.5001 h 3.132 v -0.738 h -3.132 v -2.097 h 3.564 v -0.738 h -4.401 v 6.561 h 0.837 z" /><path
inkscape:connector-curvature="0"
id="path1075"
d="m 103.5234,-36.5121 h 2.961 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.422,-0.459 h -2.664 z m 0.837,-3.735 v -2.088 h 1.62 c 0.468,0 0.729,0.063 0.954,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.954,0.234 z m 0,2.997 v -2.259 h 2.043 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1077"
d="m 88.340401,-24.3234 2.277,-6.561 h -0.891 l -1.818,5.553 -1.926,-5.553 h -0.9 l 2.358,6.561 z" /></g><g
id="text474"
style="font-variant:normal;font-weight:normal;font-size:8px;font-family:Helvetica;-inkscape-font-specification:Helvetica;writing-mode:lr-tb;fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,486.8221,635.4142)"
aria-label="DD"><path
inkscape:connector-curvature="0"
id="path1080"
d="M 0.712,0 H 2.96 C 4.432,0 5.336,-1.104 5.336,-2.92 5.336,-4.728 4.44,-5.832 2.96,-5.832 H 0.712 Z m 0.744,-0.656 v -4.52 h 1.376 c 1.152,0 1.76,0.776 1.76,2.264 0,1.48 -0.608,2.256 -1.76,2.256 z" /><path
inkscape:connector-curvature="0"
id="path1082"
d="m 6.4944001,0 h 2.248 C 10.2144,0 11.1184,-1.104 11.1184,-2.92 c 0,-1.808 -0.896,-2.912 -2.3759999,-2.912 h -2.248 z m 0.744,-0.656 v -4.52 h 1.376 c 1.152,0 1.7599999,0.776 1.7599999,2.264 0,1.48 -0.6079999,2.256 -1.7599999,2.256 z" /></g><g
id="text478"
style="font-variant:normal;font-weight:normal;font-size:9px;font-family:Helvetica;-inkscape-font-specification:Helvetica;writing-mode:lr-tb;fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,480.8126,625.6063)"
aria-label="WR"><path
inkscape:connector-curvature="0"
id="path1085"
d="M 6.696,0 8.361,-6.561 H 7.425 L 6.219,-1.233 4.725,-6.561 h -0.9 L 2.367,-1.233 1.134,-6.561 H 0.198 L 1.881,0 H 2.799 L 4.266,-5.391 5.778,0 Z" /><path
inkscape:connector-curvature="0"
id="path1087"
d="m 10.17,-2.826 h 2.16 c 0.747,0 1.08,0.36 1.08,1.17 l -0.009,0.585 c 0,0.405 0.072,0.801 0.189,1.071 h 1.017 v -0.207 c -0.315,-0.216 -0.378,-0.45 -0.396,-1.323 -0.009,-1.08 -0.18,-1.404 -0.891,-1.71 0.738,-0.369 1.035,-0.81 1.035,-1.566 0,-1.134 -0.702,-1.755 -1.998,-1.755 H 9.3330003 V 0 H 10.17 Z m 0,-0.738 v -2.259 h 2.025 c 0.468,0 0.738,0.072 0.945,0.252 0.225,0.189 0.342,0.486 0.342,0.873 0,0.783 -0.396,1.134 -1.287,1.134 z" /></g><path
inkscape:connector-curvature="0"
id="path480"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 480.813,634.734 h 15.024 V 633.6 h -15.024 z" /><g
id="text484"
style="font-variant:normal;font-weight:normal;font-size:9px;font-family:Helvetica;-inkscape-font-specification:Helvetica;writing-mode:lr-tb;fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,480.8126,613.4174)"
aria-label="CS"><path
inkscape:connector-curvature="0"
id="path1090"
d="m 5.958,-4.527 c -0.261,-1.44 -1.089,-2.142 -2.529,-2.142 -0.882,0 -1.593,0.279 -2.079,0.819 -0.594,0.648 -0.918,1.584 -0.918,2.646 0,1.08 0.333,2.007 0.945,2.646 0.513,0.522 1.161,0.765 2.016,0.765 1.602,0 2.502,-0.864 2.7,-2.601 H 5.229 c -0.072,0.45 -0.162,0.756 -0.297,1.017 -0.27,0.54 -0.828,0.846 -1.53,0.846 -1.305,0 -2.133,-1.044 -2.133,-2.682 0,-1.683 0.783,-2.718 2.061,-2.718 0.531,0 1.026,0.153 1.296,0.414 0.243,0.225 0.378,0.495 0.477,0.99 z" /><path
inkscape:connector-curvature="0"
id="path1092"
d="m 11.862,-4.635 c 0,-0.45 -0.027,-0.576 -0.171,-0.882 -0.36,-0.756 -1.125,-1.152 -2.2319999,-1.152 -1.44,0 -2.331,0.738 -2.331,1.926 0,0.801 0.423,1.305 1.287,1.53 L 10.044,-2.781 c 0.837,0.216 1.206,0.549 1.206,1.062 0,0.351 -0.189,0.711 -0.468,0.909 -0.261,0.189 -0.675,0.279 -1.2059999,0.279 -0.72,0 -1.197,-0.171 -1.512,-0.549 -0.243,-0.288 -0.351,-0.603 -0.342,-1.008 h -0.792 c 0.009,0.603 0.126,0.999 0.387,1.359 0.45,0.621 1.206,0.936 2.205,0.936 C 10.305,0.207 10.944,0.027 11.367,-0.297 c 0.441,-0.351 0.72,-0.936 0.72,-1.503 0,-0.81 -0.504,-1.404 -1.395,-1.647 L 9.0450001,-3.888 c -0.792,-0.216 -1.08,-0.468 -1.08,-0.972 0,-0.666 0.585,-1.107 1.467,-1.107 C 10.476,-5.967 11.061,-5.499 11.07,-4.635 Z" /></g><path
inkscape:connector-curvature="0"
id="path486"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 480.813,622.545 h 12.529 v -1.134 h -12.529 z" /><g
id="text496"
style="font-variant:normal;font-weight:normal;font-size:9px;font-family:Helvetica;-inkscape-font-specification:Helvetica;writing-mode:lr-tb;fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,480.8126,601.2284)"
aria-label="DB0 (LSB)
DB1
DB2
DB3"><path
inkscape:connector-curvature="0"
id="path1095"
d="M 0.801,0 H 3.33 c 1.656,0 2.673,-1.242 2.673,-3.285 0,-2.034 -1.008,-3.276 -2.673,-3.276 H 0.801 Z m 0.837,-0.738 v -5.085 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 0,1.665 -0.684,2.538 -1.98,2.538 z" /><path
inkscape:connector-curvature="0"
id="path1097"
d="M 7.2090001,0 H 10.17 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.4219999,-0.459 h -2.664 z m 0.837,-3.735 v -2.088 h 1.62 C 10.134,-5.823 10.395,-5.76 10.62,-5.589 c 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.9539999,0.234 z m 0,2.997 V -2.997 H 10.089 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1099"
d="m 14.976,-6.507 c -0.594,0 -1.134,0.27 -1.467,0.711 -0.414,0.576 -0.621,1.44 -0.621,2.646 0,2.196 0.72,3.357 2.088,3.357 1.35,0 2.088,-1.161 2.088,-3.303 0,-1.26 -0.198,-2.106 -0.621,-2.7 -0.333,-0.45 -0.864,-0.711 -1.467,-0.711 z m 0,0.702 c 0.855,0 1.278,0.873 1.278,2.637 0,1.854 -0.414,2.718 -1.296,2.718 -0.837,0 -1.26,-0.9 -1.26,-2.691 0,-1.791 0.423,-2.664 1.278,-2.664 z" /><path
inkscape:connector-curvature="0"
id="path1101"
d="m 22.1499,-6.561 c -0.9,1.179 -1.467,2.817 -1.467,4.23 0,1.422 0.567,3.06 1.467,4.239 h 0.495 c -0.792,-1.287 -1.233,-2.799 -1.233,-4.239 0,-1.431 0.441,-2.952 1.233,-4.23 z" /><path
inkscape:connector-curvature="0"
id="path1103"
d="m 24.5799,-6.561 h -0.837 V 0 h 4.077 v -0.738 h -3.24 z" /><path
inkscape:connector-curvature="0"
id="path1105"
d="m 33.390899,-4.635 c 0,-0.45 -0.027,-0.576 -0.171,-0.882 -0.36,-0.756 -1.125,-1.152 -2.232,-1.152 -1.44,0 -2.331,0.738 -2.331,1.926 0,0.801 0.423,1.305 1.287,1.53 l 1.629,0.432 c 0.837,0.216 1.206,0.549 1.206,1.062 0,0.351 -0.189,0.711 -0.468,0.909 -0.261,0.189 -0.675,0.279 -1.206,0.279 -0.72,0 -1.197,-0.171 -1.512,-0.549 -0.243,-0.288 -0.351,-0.603 -0.342,-1.008 h -0.792 c 0.009,0.603 0.126,0.999 0.387,1.359 0.45,0.621 1.206,0.936 2.205,0.936 0.783,0 1.422,-0.18 1.845,-0.504 0.441,-0.351 0.72,-0.936 0.72,-1.503 0,-0.81 -0.504,-1.404 -1.395,-1.647 l -1.647,-0.441 c -0.792,-0.216 -1.08,-0.468 -1.08,-0.972 0,-0.666 0.585,-1.107 1.467,-1.107 1.044,0 1.629,0.468 1.638,1.332 z" /><path
inkscape:connector-curvature="0"
id="path1107"
d="m 34.7409,0 h 2.961 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.422,-0.459 h -2.664 z m 0.837,-3.735 v -2.088 h 1.62 c 0.468,0 0.729,0.063 0.954,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.954,0.234 z m 0,2.997 v -2.259 h 2.043 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1109"
d="m 40.869902,1.908 c 0.9,-1.179 1.467,-2.817 1.467,-4.23 0,-1.422 -0.567,-3.06 -1.467,-4.239 h -0.495 c 0.792,1.287 1.233,2.799 1.233,4.239 0,1.431 -0.441,2.952 -1.233,4.23 z" /><path
inkscape:connector-curvature="0"
id="path1111"
d="M 0.801,12.1887 H 3.33 c 1.656,0 2.673,-1.242 2.673,-3.2850003 0,-2.034 -1.008,-3.276 -2.673,-3.276 H 0.801 Z m 0.837,-0.738 V 6.3656997 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 C 5.166,10.5777 4.482,11.4507 3.186,11.4507 Z" /><path
inkscape:connector-curvature="0"
id="path1113"
d="M 7.2090001,12.1887 H 10.17 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.7920003 -0.36,-1.2690003 -1.197,-1.5930003 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.4219999,-0.459 h -2.664 z m 0.837,-3.7350003 v -2.088 h 1.62 c 0.4679999,0 0.7289999,0.063 0.9539999,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.9539999,0.234 z m 0,2.9970003 V 9.1916997 H 10.089 c 0.738,0 1.179,0.423 1.179,1.1340003 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1115"
d="M 14.832,7.5536997 V 12.1887 h 0.792 V 5.6816997 h -0.522 c -0.279,0.999 -0.459,1.134 -1.683,1.296 v 0.576 z" /><path
inkscape:connector-curvature="0"
id="path1117"
d="M 0.801,24.3207 H 3.33 c 1.656,0 2.673,-1.242 2.673,-3.285 0,-2.034 -1.008,-3.276 -2.673,-3.276 H 0.801 Z m 0.837,-0.738 v -5.085 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 0,1.665 -0.684,2.538 -1.98,2.538 z" /><path
inkscape:connector-curvature="0"
id="path1119"
d="M 7.2090001,24.3207 H 10.17 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.4219999,-0.459 h -2.664 z m 0.837,-3.735 v -2.088 h 1.62 c 0.4679999,0 0.7289999,0.063 0.9539999,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.9539999,0.234 z m 0,2.997 v -2.259 H 10.089 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1121"
d="m 17.055,23.5377 h -3.357 c 0.081,-0.54 0.369,-0.882 1.152,-1.359 l 0.9,-0.504 c 0.891,-0.495 1.35,-1.161 1.35,-1.962 0,-0.54 -0.216,-1.044 -0.594,-1.395 -0.378,-0.342 -0.846,-0.504 -1.449,-0.504 -0.81,0 -1.413,0.288 -1.764,0.846 -0.225,0.342 -0.324,0.747 -0.342,1.404 h 0.792 c 0.027,-0.441 0.081,-0.702 0.189,-0.918 0.207,-0.396 0.621,-0.639 1.098,-0.639 0.72,0 1.26,0.522 1.26,1.224 0,0.522 -0.297,0.972 -0.864,1.296 l -0.828,0.486 c -1.332,0.765 -1.719,1.377 -1.791,2.799 h 4.248 z" /><path
inkscape:connector-curvature="0"
id="path1123"
d="M 0.801,36.509399 H 3.33 c 1.656,0 2.673,-1.242 2.673,-3.285 0,-2.034 -1.008,-3.276 -2.673,-3.276 H 0.801 Z m 0.837,-0.738 v -5.085 h 1.548 c 1.296,0 1.98,0.873 1.98,2.547 0,1.665 -0.684,2.538 -1.98,2.538 z" /><path
inkscape:connector-curvature="0"
id="path1125"
d="M 7.2090001,36.509399 H 10.17 c 0.621,0 1.08,-0.171 1.431,-0.549 0.324,-0.342 0.504,-0.81 0.504,-1.323 0,-0.792 -0.36,-1.269 -1.197,-1.593 0.603,-0.279 0.909,-0.756 0.909,-1.431 0,-0.486 -0.18,-0.9 -0.522,-1.206 -0.351,-0.315 -0.792,-0.459 -1.4219999,-0.459 h -2.664 z m 0.837,-3.735 v -2.088 h 1.62 c 0.4679999,0 0.7289999,0.063 0.9539999,0.234 0.234,0.18 0.36,0.45 0.36,0.81 0,0.36 -0.126,0.63 -0.36,0.81 -0.225,0.171 -0.486,0.234 -0.9539999,0.234 z m 0,2.997 v -2.259 H 10.089 c 0.738,0 1.179,0.423 1.179,1.134 0,0.702 -0.441,1.125 -1.179,1.125 z" /><path
inkscape:connector-curvature="0"
id="path1127"
d="m 14.49,33.512399 h 0.099 0.333 c 0.864,0 1.323,0.405 1.323,1.188 0,0.819 -0.495,1.314 -1.314,1.314 -0.873,0 -1.296,-0.441 -1.35,-1.395 h -0.792 c 0.036,0.522 0.126,0.864 0.279,1.152 0.333,0.63 0.954,0.945 1.827,0.945 1.314,0 2.16,-0.792 2.16,-2.025 0,-0.828 -0.315,-1.278 -1.08,-1.548 0.594,-0.243 0.891,-0.693 0.891,-1.35 0,-1.116 -0.729,-1.791 -1.944,-1.791 -1.287,0 -1.971,0.72 -1.998,2.097 h 0.792 c 0.009,-0.396 0.045,-0.621 0.144,-0.819 0.18,-0.369 0.576,-0.585 1.071,-0.585 0.702,0 1.125,0.423 1.125,1.125 0,0.459 -0.162,0.738 -0.513,0.891 -0.216,0.09 -0.504,0.126 -1.053,0.135 z" /></g><g
id="g498"><g
clip-path="url(#clipPath504)"
id="g500"><g
id="text508"
style="font-variant:normal;font-weight:bold;font-size:8px;font-family:Helvetica;-inkscape-font-specification:Helvetica-Bold;writing-mode:lr-tb;fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,405.5244,708.1512)"
aria-label="DW, N OR PW PACKAGE"><path
inkscape:connector-curvature="0"
id="path1130"
d="m 0.616,0 h 2.28 C 3.784,0 4.344,-0.208 4.744,-0.68 5.2,-1.224 5.448,-2.008 5.448,-2.92 5.448,-3.824 5.2,-4.608 4.744,-5.16 4.344,-5.632 3.792,-5.832 2.896,-5.832 h -2.28 z m 1.2,-1 v -3.832 h 1.08 c 0.904,0 1.352,0.632 1.352,1.92 C 4.248,-1.632 3.8,-1 2.896,-1 Z" /><path
inkscape:connector-curvature="0"
id="path1132"
d="m 11.612,0 1.616,-5.832 H 11.956 L 11.084,-1.456 10.14,-5.832 H 8.9559998 l -0.904,4.368 -0.904,-4.368 h -1.272 l 1.648,5.832 h 1.08 l 0.952,-4.552 L 10.532,0 Z" /><path
inkscape:connector-curvature="0"
id="path1134"
d="M 13.3776,-1.168 V 0 h 0.688 c 0.016,0.544 -0.208,0.856 -0.688,0.944 v 0.448 c 0.856,-0.128 1.232,-0.584 1.2,-1.464 v -1.096 z" /><path
inkscape:connector-curvature="0"
id="path1136"
d="m 21.3928,0 h 1.2 v -5.832 h -1.2 v 3.968 l -2.312,-3.968 h -1.232 V 0 h 1.2 v -4.032 z" /><path
inkscape:connector-curvature="0"
id="path1138"
d="m 28.416,-5.928 c -0.816,0 -1.488,0.272 -1.984,0.808 -0.52,0.56 -0.816,1.376 -0.816,2.248 0,0.872 0.296,1.696 0.816,2.248 0.504,0.544 1.16,0.808 1.992,0.808 0.832,0 1.488,-0.264 1.992,-0.808 0.504,-0.536 0.816,-1.384 0.816,-2.208 0,-0.912 -0.296,-1.736 -0.816,-2.288 -0.512,-0.552 -1.152,-0.808 -2,-0.808 z m 0.008,1.024 c 0.984,0 1.608,0.8 1.608,2.064 0,1.2 -0.648,2 -1.608,2 -0.976,0 -1.608,-0.8 -1.608,-2.032 0,-1.232 0.632,-2.032 1.608,-2.032 z" /><path
inkscape:connector-curvature="0"
id="path1140"
d="m 33.356001,-2.312 h 1.376 c 0.52,0 0.744,0.208 0.744,0.688 v 0.24 c -0.008,0.152 -0.008,0.296 -0.008,0.384 0,0.552 0.032,0.72 0.176,1 h 1.288 v -0.216 c -0.184,-0.104 -0.256,-0.224 -0.256,-0.48 -0.032,-1.72 -0.064,-1.8 -0.808,-2.12 0.656,-0.256 0.984,-0.728 0.984,-1.44 0,-0.464 -0.16,-0.888 -0.44,-1.176 -0.264,-0.272 -0.632,-0.4 -1.128,-0.4 h -3.128 V 0 h 1.2 z m 0,-1 v -1.52 h 1.448 c 0.344,0 0.48,0.032 0.632,0.152 0.144,0.12 0.216,0.32 0.216,0.592 0,0.28 -0.072,0.504 -0.216,0.624 -0.136,0.112 -0.288,0.152 -0.632,0.152 z" /><path
inkscape:connector-curvature="0"
id="path1142"
d="m 41.315198,-2.08 h 1.496 c 1.072,0 1.76,-0.76 1.76,-1.944 0,-1.168 -0.664,-1.808 -1.88,-1.808 h -2.576 V 0 h 1.2 z m 0,-1 v -1.752 h 1.12 c 0.64,0 0.936,0.28 0.936,0.872 0,0.6 -0.296,0.88 -0.936,0.88 z" /><path
inkscape:connector-curvature="0"
id="path1144"
d="m 50.679199,0 1.616,-5.832 h -1.272 l -0.872,4.376 -0.944,-4.376 h -1.184 l -0.904,4.368 -0.904,-4.368 h -1.272 l 1.648,5.832 h 1.08 l 0.952,-4.552 0.976,4.552 z" /><path
inkscape:connector-curvature="0"
id="path1146"
d="m 56.4144,-2.08 h 1.496 c 1.072,0 1.76,-0.76 1.76,-1.944 0,-1.168 -0.664,-1.808 -1.88,-1.808 h -2.576 V 0 h 1.2 z m 0,-1 v -1.752 h 1.12 c 0.64,0 0.936,0.28 0.936,0.872 0,0.6 -0.296,0.88 -0.936,0.88 z" /><path
inkscape:connector-curvature="0"
id="path1148"
d="m 63.378399,-1.176 0.384,1.176 h 1.232 l -2.016,-5.832 h -1.328 L 59.578399,0 h 1.224 l 0.392,-1.176 z m -0.328,-1 h -1.52 l 0.76,-2.28 z" /><path
inkscape:connector-curvature="0"
id="path1150"
d="m 70.598403,-3.856 c -0.04,-0.504 -0.144,-0.824 -0.392,-1.152 -0.448,-0.592 -1.168,-0.92 -2.04,-0.92 -1.648,0 -2.672,1.176 -2.672,3.064 0,1.88 1.016,3.048 2.64,3.048 1.456,0 2.416,-0.84 2.488,-2.176 h -1.168 c -0.08,0.744 -0.544,1.168 -1.288,1.168 -0.928,0 -1.472,-0.752 -1.472,-2.024 0,-1.288 0.568,-2.056 1.512,-2.056 0.696,0 1.088,0.336 1.248,1.048 z" /><path
inkscape:connector-curvature="0"
id="path1152"
d="m 72.706398,-1.952 0.6,-0.624 1.912,2.576 h 1.432 l -2.576,-3.32 2.328,-2.512 h -1.416 l -2.28,2.56 v -2.56 h -1.2 V 0 h 1.2 z" /><path
inkscape:connector-curvature="0"
id="path1154"
d="m 80.694401,-1.176 0.384,1.176 h 1.232 l -2.016,-5.832 h -1.328 L 76.894401,0 h 1.224 l 0.392,-1.176 z m -0.328,-1 h -1.52 l 0.76,-2.28 z" /><path
inkscape:connector-curvature="0"
id="path1156"
d="m 88.146397,-3.136 h -2.336 v 1 h 1.328 c -0.032,0.328 -0.112,0.528 -0.288,0.736 -0.288,0.352 -0.736,0.56 -1.192,0.56 -0.976,0 -1.664,-0.848 -1.664,-2.048 0,-1.256 0.608,-2.016 1.632,-2.016 0.416,0 0.768,0.12 1.032,0.352 0.168,0.144 0.256,0.28 0.36,0.584 h 1.128 c -0.144,-1.208 -1.12,-1.96 -2.528,-1.96 -1.68,0 -2.824,1.24 -2.824,3.056 0,1.768 1.152,3.056 2.728,3.056 0.784,0 1.312,-0.28 1.76,-0.936 l 0.144,0.768 h 0.72 z" /><path
inkscape:connector-curvature="0"
id="path1158"
d="m 90.510398,-2.512 h 2.792 v -1 h -2.792 v -1.32 h 3.016 v -1 h -4.216 V 0 h 4.36 v -1 h -3.16 z" /></g>
</g></g><g
id="text512"
style="font-variant:normal;font-weight:bold;font-size:8px;font-family:Helvetica;-inkscape-font-specification:Helvetica-Bold;writing-mode:lr-tb;fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(1,0,0,-1,430.4693,698.1733)"
aria-label="(TOP VIEW)"><path
inkscape:connector-curvature="0"
id="path1161"
d="m 1.624,-5.832 c -0.92,1.392 -1.304,2.48 -1.304,3.712 0,1.24 0.384,2.328 1.304,3.72 h 0.8 c -0.856,-1.648 -1.12,-2.536 -1.12,-3.72 0,-1.176 0.272,-2.08 1.12,-3.712 z" /><path
inkscape:connector-curvature="0"
id="path1163"
d="m 5.7392,-4.832 h 1.704 v -1 h -4.672 v 1 h 1.768 V 0 h 1.2 z" /><path
inkscape:connector-curvature="0"
id="path1165"
d="m 10.4856,-5.928 c -0.8159999,0 -1.4879999,0.272 -1.9839999,0.808 -0.52,0.56 -0.816,1.376 -0.816,2.248 0,0.872 0.296,1.696 0.816,2.248 0.504,0.544 1.16,0.808 1.9919999,0.808 0.832,0 1.488,-0.264 1.992,-0.808 0.504,-0.536 0.816,-1.384 0.816,-2.208 0,-0.912 -0.296,-1.736 -0.816,-2.288 -0.512,-0.552 -1.152,-0.808 -2,-0.808 z m 0.008,1.024 c 0.984,0 1.608,0.8 1.608,2.064 0,1.2 -0.648,2 -1.608,2 -0.9759999,0 -1.6079999,-0.8 -1.6079999,-2.032 0,-1.232 0.632,-2.032 1.6079999,-2.032 z" /><path
inkscape:connector-curvature="0"
id="path1167"
d="m 15.3928,-2.08 h 1.496 c 1.072,0 1.76,-0.76 1.76,-1.944 0,-1.168 -0.664,-1.808 -1.88,-1.808 h -2.576 V 0 h 1.2 z m 0,-1 v -1.752 h 1.12 c 0.64,0 0.936,0.28 0.936,0.872 0,0.6 -0.296,0.88 -0.936,0.88 z" /><path
inkscape:connector-curvature="0"
id="path1169"
d="m 24.310399,0 2,-5.832 h -1.208 l -1.272,4.392 -1.296,-4.392 h -1.208 l 1.968,5.832 z" /><path
inkscape:connector-curvature="0"
id="path1171"
d="m 28.169599,-5.832 h -1.2 V 0 h 1.2 z" /><path
inkscape:connector-curvature="0"
id="path1173"
d="m 30.516799,-2.512 h 2.792 v -1 h -2.792 v -1.32 h 3.016 v -1 h -4.216 V 0 h 4.36 v -1 h -3.16 z" /><path
inkscape:connector-curvature="0"
id="path1175"
d="m 39.855999,0 1.616,-5.832 h -1.272 l -0.872,4.376 -0.944,-4.376 h -1.184 l -0.904,4.368 -0.904,-4.368 h -1.272 l 1.648,5.832 h 1.08 l 0.952,-4.552 0.976,4.552 z" /><path
inkscape:connector-curvature="0"
id="path1177"
d="m 42.539202,1.6 c 0.92,-1.392 1.304,-2.48 1.304,-3.712 0,-1.24 -0.384,-2.328 -1.304,-3.72 h -0.8 c 0.856,1.648 1.12,2.536 1.12,3.72 0,1.176 -0.272,2.08 -1.12,3.712 z" /></g><path
inkscape:connector-curvature="0"
id="path514"
style="fill:none;stroke:#231f20;stroke-width:0.96399999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 473.386,682.356 h 3.628 m 0,0 v -9.241 m 0,0 h -3.628 m 0,0 v -3.175 m 0,0 h 3.628 m 0,0 v -9.241 m 0,0 h -3.628 m 0,0 v -3.118 m 0,0 h 3.628 m 0,0 v -9.184 m 0,0 h -3.628 m 0,0 v -3.062 m 0,0 h 3.628 m 0,0 v -9.184 m 0,0 h -3.628 m 0,0 z m 0,0 v -3.005 m 0,-0.113 h 3.628 m 0,0 v -9.184 m 0,0 h -3.628 m 0,0 v -3.232 m 0,0 h 3.628 m 0,0 v -9.184 m 0,0 h -3.628 m 0,0 v -3.118 m 0,0 h 3.628 m 0,0 v -9.241 m 0,0 h -3.628 m 0,0 v -3.005 m 0,0 h 3.628 m 0,0 v -9.241 m 0,0 h -3.628 m 0,0 z m 0,0.057 v -3.061 m 0,0.226 h 3.628 m 0,0 v -9.24 m 0,0 h -3.628 m 0,0 v -3.175 m 0,0 h 3.628 m 0,0 v -9.241 m 0,0 h -3.628 m 0,0 v -3.062 m -42.803,123.024 h -3.572 m 0,0 v -9.241 m 0,0 h 3.572 m 0,0 v -3.175 m 0,0 h -3.572 m 0,0 v -9.241 m 0,0 h 3.572 m 0,0 v -3.118 m 0,0 h -3.572 m 0,0 v -9.184 m 0,0 h 3.572 m 0,0 v -3.062 m 0,0 h -3.572 m 0,0 v -9.184 m 0,0 h 3.572 m 0,0 z m 0,0 v -3.005 m 0,-0.113 h -3.572 m 0,0 v -9.184 m 0,0 h 3.572 m 0,0 v -3.232 m 0,0 h -3.572" /><path
inkscape:connector-curvature="0"
id="path516"
style="fill:none;stroke:#231f20;stroke-width:0.96399999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 427.011,620.617 v -9.184 m 0,0 h 3.572 m 0,0 v -3.118 m 0,0 h -3.572 m 0,0 v -9.241 m 0,0 h 3.572 m 0,0 v -3.005 m 0,0 h -3.572 m 0,0 v -9.241 m 0,0 h 3.572 m 0,0 z m 0,0.057 v -3.061" /></g></g></svg>

After

Width:  |  Height:  |  Size: 58 KiB

1890
pics/slas062e_volt.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 204 KiB

BIN
schem_pdf/dac.pdf Normal file

Binary file not shown.

View File

@ -8,7 +8,7 @@ required.
Measurements were performed, if not noted otherwise, with the Analog Discovery
2 from Digilent as it has 16bit digital I/O Pins as well a a Waveform generator
and 2 differential oszilloscope inputs. These were for all nescessary
and 2 differential oszilloscope inputs\cite{ad2}. These were for all nescessary
measurements enough. Though due to the size and construction of the device,
which can be seen in figure \ref{fig:ad2}
errors wer encountered while performing the measurements. These are noted on
@ -25,7 +25,8 @@ occurance.
All testing was performed with an Atmel ATMega2560 due to it's large amount
of I/O pins, 5V I/O which is the more common voltage level on CMOS
peripherials, way of addressing pins (8 at a time) and availability. All
peripherials, way of addressing pins (8 at a time) and availability.
\cite{atmega2560} All
testing software was written for this ATMega and compiled using the avr-gcc
from the GNU-Project.

291
sections/DP/dac/main.tex Normal file
View File

@ -0,0 +1,291 @@
\subsection{Audio Digital-Analog-Converter}
A digital to analog converter takes a digital number and converts it to a
analog signal. The output of one such conversion is called a sample. With
enough samples per second various different waveforms can be produced which,
when amplified and put onto a speaker, can be heared by the human ear as a tone.
With various tones in series a melody can be produced, which is what the DAC in
this implementation does.
\subsubsection{TLC 7528 Dual R2R Ladder DAC}
The TLC 7528 is a Dual output Parallel input R2R Ladder DAC with a maximum
sample rate of 10MHz\cite{tlc7528} and which (should be) is monotonic over the
entire D/A Conversion Range. The TLC-7528 was the only component chosen, where
availability was not a factor, but rather due to it's design.It is the cheapest
dual R2R Ladder dac which takes \textbf{PARALLEL} input, which was an important
feature, because the backbone of the project is its parallel bus. Further the
DAC was developed for audio aplications\cite{tlc7528} obvious and
the TLC-7528 was the only IC available as DIP
\footnote{DIP... Dual Inline Package}, of which the pinout can be seen in figure
\ref{fig:tlc7528_pinout}
\begin{figure}[H]
\centering
\includesvg[height=.3\textheight, angle=0]{pics/slas062e_pinout.svg}
\caption{TLC-7528 Pinout\cite{tlc7528}}
\label{fig:tlc7528_pinout}
\end{figure}
\subsubsection{IDT7201 CMOS FIFO Buffer}
The IDT7201 is an asychronous CMOS FIFO, which means that it can be read with
a completely independant speed from which it is written and vice versa. It has
9 bit words, which can be seen in figure \ref{fig:idt7201_pinout}, and can
store up to 256 words\cite{idt7201}. It is used as a buffer
to store data describing the targeted waveform in order to free time on the
parallel bus for interaction with the 16550 UART.
\begin{figure}[H]
\centering
\includesvg[height=.3\textheight, angle=0]{pics/idt7201_pinout.svg}
\caption{IDT-7201 Pinout\cite{idt7201}}
\label{fig:idt7201_pinout}
\end{figure}
\subsubsection{Theory verfication}
Before tests of the complete unit were conducted, the functionality of the
device and the validity of the knowledge of operations were performed. For that
the DAC was directl connected to the ATMega without the FIFO infront of it.
A saw was generated on only the DACA channel, which was put into voltage mode
as described in the datasheet\cite{tlc7528} and seen in figure
\ref{fig:tlc7528_volt}. After the result seen in \ref{fig:tlc7528_saw_nonlin}
was found a lot of effort was put in to determine the source of the heavy noise,
however no obvious conclusion can be made, execpt that it comes from the DAC
itself and is consistant over whatever frequency used. A damaged IC could be
the reason or a sloppy production progress. Filters can be used to reduce the
noise, however this was not done in this thesis, as the generated audio does
not seem to suffer from these non-linearities as badly as when measured
standalone.
\begin{figure}[H]
\centering
\includesvg[height=.3\textheight, angle=0]{pics/slas062e_volt.svg}
\caption{TLC-7528 in voltage modet\cite{tlc7528}}
\label{fig:tlc7528_volt}
\end{figure}
\begin{figure}[H]
\begin{tikzpicture}
\begin{axis}[
ylabel=REFA Voltage,
xlabel=Time,
grid=both,
minor tick num=5,
xmin=-2.030599999999999e-05,
xmax=0.000598364,
width=\textwidth,
height=0.4\textheight]
\addplot table [x=t, y=c1, col sep=comma, mark=none] {meas/20200210_saw_nonlin.csv};
\end{axis}
\end{tikzpicture}
\caption{Measurement of a generated SAW signal via the TLC7528}
\label{fig:tlc7528_saw_nonlin}
\end{figure}
\subsubsection{Schematics}
Based on the descriptions in the datasheets the schematic in figure
\ref{fig:schem_dac} was developed.
\begin{figure}[H]
\centering
\includegraphics[height=.65\textheight, angle=-90]{schem_pdf/dac.pdf}
\caption{The schematic of the DAC Module}
\label{fig:schem_dac}
\end{figure}
\paragraph{Element Description}
Diodes D1 through D4 are used as OR-Gates in conjunction with R1 and R2 to
generate the $\lnot MODRD$ and $\lnot MODWR$ signals for the D Flip-Flop
\footnote{74HC374\cite{74hc374}} and FIFO respectively, by these formulas:
$\lnot MODRD = \lnot RD \lor \lnot MS2$
$\lnot MODWR = \lnot WR \lor \lnot MS2$
On a read access, the output enable of the D-Latch becomes low, which writes
the status bits of the FIFO onto the data bus. C1, C2 and C3 are for stability
reasons and are good practice, similar to the UART module. 74HC00 is a quad
NAND-Gate\cite{74hc00} which is only used for inversion, chosen, like the
74HC374, for availability reasons. The A part of the NAND-Gate inverts the $MR$
signal from the bus to a $\not MR$ signal as the FIFOs reset is low active.
The B part of the NAND-Gate inverts the FIFO Empty flag. It's output is
connected to the $\lnot WR$ input of the DAC, which means that the DAC doesn't
convert the input anymore, if the FIFO Empty flag is set to low.
The NE555 generates the audio clock signal, which should be the double of
44.1kHz\footnote{Because we have 2 output channels} as 44.1kHz is the standard
samling rate of CD-Audio\cite{iec60908}. Resistors R9 and R10 togehter with C7
form the Oscillator part of the NE55. C4 is for stability reasons and doesn't
define the frequency of the oscillator.
The generated clock is used for the $\lnot R$ of the FIFO and inverted on the
DAC, which makes the data available on the output before being stored into the
DAC as it receives the signal to store the data after the FIFO makes it
available on the bus.
The DAC is operated in voltage mode as described in \ref{fig:tlc7528_volt},
with it's voltage source beeing available at either 3.472Vpp for professional
audio or 0.894Vpp for consumer audio, as defined per convention.\cite{audiob}
The voltage source can be controlled via Jumper JP1.
C5 and C6 together with the load resistance on the audio jack form a high pass
with a cutoff frequency of
$f_C = \frac{1}{2\pi R C} = \frac{1}{2\times \pi\times 10K\Omega\times 100\mu F} = 0.159154943Hz$
which should cover the hearable spectrum. The high pass was needed to generate
a positive and negative half of the wave form, as the DC-Offset with a frequency
of 0Hz is orders of magnitudes lower than the $f_C$ of the highpass gets
filtered away.
R7 and R8 have been installed in order to unload the capacitors after device
poweroff.
\paragraph{NE55 Clock Source}
Though used as a clovk source, the NE555 is a bad clock source if a stable
clock is needed, because it varies widely with temperature, preasure and aging
elements. A better solution would have been a quartz which is divided down to
the desired frequency, whichwas what CD Drives used to do, but more commonly in
modern CD Drives, an ASIC with internal PLL is used, thus the required quartz
can no longer be sourced.
\subsubsection{Demonstration Software}
\paragraph{SAW Generator}
To prove read and write access from the D Flip-Flop and the FIFO are working,
the same saw signal has been generated as in figure \ref{fig:tlc7528_saw_nonlin}
, however the signal was put into the FIFO and not the DAC directly. The
resulting saw wave can be seen in figure \ref{fig:tlc7528_saw_fifo} together
with the FIFO Empty flag. The FIFO Empty flag, as explained before, is inverted
and starts/ends the complete D/A conversion, until further data is received.
\begin{figure}[H]
\begin{tikzpicture}
\begin{axis}[
ylabel=REFA Voltage,
xlabel=Time,
grid=both,
minor tick num=5,
xmin=0.02023862769230769,
xmax=0.02642198769230769,
width=\textwidth,
height=0.4\textheight]
\addplot table [x=t, y=c1, col sep=comma, mark=none] {meas/20200308fifo_44_1_saw_withfifoempty.csv};
\addplot table [x=t, y=c2, col sep=comma, mark=none] {meas/20200308fifo_44_1_saw_withfifoempty.csv};
\legend{REFA,$\lnot EF$}
\end{axis}
\end{tikzpicture}
\caption{Measurement of a generated SAW signal with the FIFO Empty flag}
\label{fig:tlc7528_saw_fifo}
\end{figure}
The time difference betwen a stor and complete write cycle can be seen in figure
\ref{fig:fifo_dac_store}, while the figure \ref{fig:fifo_dac} shows the
transmission between dac and fifo in more detail.
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth, angle=0]{meas/20200308fifo_44_1_cnt.png}
\caption{A transmission between the FIFO and the DAC}
\label{fig:fifo_dac}
\end{figure}
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth, angle=0]{meas/20200308fifo_44_1_saw.png}
\caption{A fifo store operation in contrast to the load operation}
\label{fig:fifo_dac_store}
\end{figure}
The initialisation routines and read/write operations for the DAC module are
basically the same as for the UART module, and have thus been ommitted. They
can be seen in listing \ref{lst:16550-transmit} and partially in listing
\ref{lst:16550-transmit}.
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:dac_saw}, caption={SAW Generation for the DAC with FIFO},
style=cstyle, firstline=134, lastline=144]
{code/dac/saw_fifo_backplane/src/main.c}
\paragraph{Sine Generator}
As a further example a sine was generated and played on the DAC. The ATMega
itself is not powerful enough to generate the sine on the fly, therefore a
lookup-table had to be generated, which can be seen in listing
\ref{lst:dac_sine_lut}. How the data is transmitted to the FIFO can be seen
in listing \ref{lst:dac_sine} and figure \ref{fig:fifo_sine_store} and the
resulting sine on both output channels can be seen in figure
\ref{fig:sine_dacab}.
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:dac_sine_lut}, caption={Sine LUT Generation},
style=cstyle, firstline=118, lastline=123]
{code/dac/sine_fifo_backplane/src/main.c}
The look-up table has a size of 256, which is the maximum value an 8 bit integer
can take. This size was chosen to make operation faster as it only takes
one cycle to load an array value into a register and another one to store it
into the GPIO register. The sine table in further examples was pre-genrated on
the compiling host to reduce startup time. The mothod shown in listing
\ref{lst:dac_sine_lut} is not fast due to the lack of a floating point unit
on the AVR. \cite{atmega2560}
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:dac_sine}, caption={DAC Sine Generation},
style=cstyle, firstline=141, lastline=152]
{code/dac/sine_fifo_backplane/src/main.c}
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth, angle=0]{meas/20200310sine_dac.png}
\caption{Storage and retrieval of a sine to and from the FIFO}
\label{fig:fifo_sine_store}
\end{figure}
\begin{figure}[H]
\begin{tikzpicture}
\begin{axis}[
ylabel=Channel Voltage,
xlabel=Time,
grid=both,
minor tick num=5,
xmin=-0.001746707777777778,
xmax=0.001774992222222222,
width=\textwidth,
height=0.4\textheight]
\addplot table [x=t, y=c1, col sep=comma, mark=none] {meas/20200310sine_dac_osz.csv};
\addplot table [x=t, y=c2, col sep=comma, mark=none] {meas/20200310sine_dac_osz.csv};
\legend{DACA,DACB}
\end{axis}
\end{tikzpicture}
\caption{Measuremet of the generated sine from the sine LUT on DACA and DACB}
\label{fig:sine_dacab}
\end{figure}
\section{Addressing DACA and DACB}
The DAC used has 2 output channels which can be selected by the
$\lnot DACA/DACB$ pin as seen in figure \ref{fig:tlc7528_pinout}. This pin was
mapped to bit 0 of the address bus in order to make use of it. Bit 8 on the fifo
was used to store the bit. It was not implemented with half the bus clock to
make both channels independent of each other. This however uses more time on the
backend because it means the fifo is used up at twice the speed. No current
example makes use of this, but it may be used in future examples and
implementations on this unit.
On the audio jack DACA is mapped to the right channel and DACB to the left
channel.

View File

@ -0,0 +1,81 @@
\subsection{FPGA to Hardware interface}
To make the Hardware work with the FPGA's 3.3V I/O, level shifter have been
installed and a FPGA module was built. This module maps the IO/Pins in a similar
way to the ATMega 2560 used in examples before. The bidirectional 5V<->3.3V
logic level converters have been obtained on amazon, and have not been well
documented. Their functionality has been tested and verified in both directions,
which can be seen in figures \ref{fig:3v35v} and \ref{fig:5v3v3}. The schematic
has also been determined through measurements with a multimeter and the
schematic in figure \ref{fig:schem_lvlshift} shows similar resistor values in
the same configuration \cite{lvlshift}.
\begin{figure}[H]
\begin{tikzpicture}
\begin{axis}[
ylabel=Lane Voltage,
xlabel=Time,
grid=both,
xmin=-1.151135531135531e-06,
xmax=5.488864468864469e-06,
minor tick num=5,
width=\textwidth,
height=0.5\textheight]
\addplot table [x=t, y=c1, col sep=comma, mark=none] {meas/20200301shift3v35v.csv};
\addplot table [x=t, y=c2, col sep=comma, mark=none] {meas/20200301shift3v35v.csv};
\legend{LV-Side,HV-Side}
\end{axis}
\end{tikzpicture}
\caption{3.3V to 5V conversion using the level shifter}
\label{fig:3v35v}
\end{figure}
The in figure \ref{fig:3v35v} shown output on the HV side, corresponds with the
schematics in figure \ref{fig:schem_lvlshift} where it can be seen that the
resistor R2 is loading the bus capacitance to a 5V high state.
\begin{figure}[H]
\begin{tikzpicture}
\begin{axis}[
ylabel=Lane Voltage,
xlabel=Time,
grid=both,
xmin=-7.427469135802469e-07,
xmax=3.567253086419753e-06,
minor tick num=5,
width=\textwidth,
height=0.5\textheight]
\addplot table [x=t, y=c1, col sep=comma, mark=none] {meas/20200301shift5v3v3.csv};
\addplot table [x=t, y=c2, col sep=comma, mark=none] {meas/20200301shift5v3v3.csv};
\legend{LV-Side,HV-Side}
\end{axis}
\end{tikzpicture}
\caption{5V to 3.3V conversion using the level shifter}
\label{fig:5v3v3}
\end{figure}
\begin{figure}[H]
\centering
\includegraphics[height=.4\textheight, angle=0]{pics/bidirectonal-mosfet-level-shifter.png}
\caption{The internal schematics of the level shifter\cite{lvlshift}}
\label{fig:schem_lvlshift}
\end{figure}
\subsubsection{Measurement error}
During an attempt to measure wether the level shifters in the final module were
working, a measurement between the LV and the HV side showed only a difference
of 0.7V. After some troubleshooting, it was found that the Analog Discovery has
clamping diodes against the 3.3V rail shown in figure \ref{fig:ad2_diode}. These
diodes produce the 0.7V offset and prevent the parallel bus from rising to
5V when a digial I/O pin of the Analog Discovery 2 is connected to the bus.
\cite{DB3S406F0L}.
\begin{figure}[H]
\centering
\includegraphics[height=.4\textheight, angle=0]{pics/ad2_dio.png}
\caption{The internal clamping diodes of the Analog Discovery 2\cite{ad2}}
\label{fig:ad2_diode}
\end{figure}

View File

@ -1,3 +1,5 @@
\section{Textadventure}
To illustrate how the components work together and can be used in various
different applications, a small text-adventure with audio effects was written in
C. The main goal was to show the capabilities of even small systems like the
@ -5,6 +7,8 @@ one developed.
\subsection{General Implementation details}
\subsubsection{General definitions and pinout of the AVR}
Like the before examples, the textadventure was implemented on an ATMega2560
and uses 3 different Registers for transmission: PORTF, PORTK and PORTL for
address bus, data bus and control bus respectively, as can be seen in listing
@ -15,11 +19,259 @@ address bus, data bus and control bus respectively, as can be seen in listing
label={lst:textadv-avr.h}, caption={The avr.h header file},
columns=flexible, style=cstyle]{./code/textadv/include/avr.h}
The in listing \ref{lst:textadv-avr.h} shown defines MR_SHIFT, WR_SHIFT,
The in listing \ref{lst:textadv-avr.h} shown preprocessor macros
MR_SHIFT, WR_SHIFT,
RD_SHIFT, CS_UART_SHIFT and CS_DAC_SHIFT are used to indicate the position of
the corresponding control lines inside the control bus register. All other
shift values are the same bitordering in input as in output.
The BUS_HOLD_US is used to tell the avr how many microsecons it takes for the
data bus to be latched into input register of the devices on write or how long
it takes for the data bus to become stable on read.
it takes for the data bus to become stable on read. A delay of less than 1
microsecond is not possible due to limitations of the AVR and the bus capacity,
which increases the BER\footnote{BER...Bit Error Ratio} to a level which effects
regular operation.
\subsubsection{Read and Write routines}
The set_addr function is the same as in the UART example code in listing
\ref{lst:16550-general} and has therefore been omitted, execept for its definiton
in the avr.h file in listing \ref{lst:textadv-avr.h}. The read and write
functions for the UART module and the DAC module are the same as in the example
code for the modules and have been ommited therefore as well.
\subsubsection{UART and DAC update polling}
The AVR constantly polls the DAC and UART modules for updates as can be seen in
listing \ref{lst:textadv-routine}. The routine\_MODULE functions poll their
respective modules for updates as can be seen in listings
\ref{lst:textadv-routine-uart} and \ref{lst:textadv-routine-dac}. When a
character is received, it is stored inside a bufer array and regular operation
continues. If the $\lnot EF$ status bit is set in a read from the dac, the
feed\_dac function is called which stores 256 bytes into the DAC and regular
operation continues.
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:textadv-routine}, caption={The routine function looped by the main},
columns=flexible, style=cstyle, firstline=105, lastline=110]
{code/textadv/src/main.c}
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:textadv-routine-uart}, caption={The routine function for the UART},
columns=flexible, style=cstyle, firstline=105, lastline=118]
{code/textadv/src/16550.c}
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:textadv-routine-dac}, caption={The routine function for the DAC},
columns=flexible, style=cstyle, firstline=197, lastline=203]
{code/textadv/src/dac.c}
\subsection{DAC sound generation}
\subsubsection{DAC modes}
The DAC can produced any waveform described by 8 bit unsigned PCM code. Though
possible to feed predefined waveforms into the DAC, the AVR doesn't have enough
onboard memory to store more than a few seconds of these waveforms.
For example to store one second of 8 bit unsigned PCM Code at 2 times 44.1KHz
sampling rate of the DAC, the AVR would have to store
$s = 2 \times 44100\frac{Bytes}{s}*1s = 2\times 44100 Bytes = 88.2KB$, but it
has only a total of 256KB of onboard flash\cite{atmega2560} which makes for a
total track lengh of $ t = \frac{256KB}{88.2\frac{KB}{s}} = 2.9s$ with only
one track.
Therefore the AVR generates the audio on runtime. To do that it has 6 builtin
modes in which it can run, as can be seen in listing
\ref{lst:textadv-dac-modes}:
\begin{enumerate}
\item{silent mode:}
The DAC produces no output at all and is completely silent.
\item{sine mode:}
The DAC produces a sine with a specific frequency and an
amplitude of 255.
\item{square mode:}
The DAC produces a square wave with a specific frequency and an
amplitude of 255.
\item{saw mode:}
The DAC produces a saw wave with a specific frequency and an
amplitude of 255.
\item{noise mode:}
The DAC produces a pseudo-random white-noise with a maximum
amplitude of 255.
\item{triangle mode:}
The DAC produces a triangle wave with a specific frequency and
an amplitude of 255.
\end{enumerate}
To perform these tasks the DAC takes two parameters, again seen in listing
\ref{lst:textadv-dac-modes}:
\begin{itemize}
\item{A frequency deviation:}
Used to tell the dac how much the desired frequency deviates
from the base frequency of each waveform.
\item{A mode:}
Used to tell it which waveform to generate
\end{itemize}
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:textadv-dac-modes}, caption={The DAC operation modes},
columns=flexible, style=cstyle, firstline=25, lastline=38]
{code/textadv/include/dac.h}
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:textadv-dac-gen}, caption={The DAC waveform generation code},
columns=flexible, style=cstyle, firstline=61, lastline=198]
{code/textadv/src/dac.c}
\subsubsection{Tones and Tracks}
A sound track inside the textadventure consists of independent tones. A tone is
a waveform at a specific frequency played for a specific time. To perform the
specific time functionality independant of DAC speed, an ISR
\footnote{ISR...Interrupt Service Routine} on the AVR was used to change to
the next tone every millisecond. A track is an array of tones with an end marker
tone at the end which is a tone with a length of 0ms. The end marker tone tells
the ISR to reset to the initial tone. The ISR can be seen in listing
\ref{lst:textadv-isr} and the sound update function, which actually updates the
current tone and is responsible for playing a track in listing
\ref{lst:textadv-upsnd}. The output of an example track can be seen in
figures \ref{fig:textadv_track_ex1} and \ref{fig:textadv_track_ex2}.
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:textadv-isr}, caption={The ISR which fires every millisecond},
columns=flexible, style=cstyle, firstline=31, lastline=34]
{code/textadv/src/interrupt.c}
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:textadv-upsnd}, caption={The sound update function},
columns=flexible, style=cstyle, firstline=218, lastline=262]
{code/textadv/src/sound.c}
\newpage
\begin{figure}[H]
\begin{tikzpicture}
\begin{axis}[
ymin=-0.5025374538865546,
ymax=-.0580652077731092,
ylabel=Time,
xlabel=Track output,
ymajorgrids=true,
width=\textwidth,
height=0.98\textheight]
\addplot table [x=c1, y=t, col sep=comma, mark=none] {meas/20200315audio_multiple_voices.csv};
\addplot table [x=c2, y=t, col sep=comma, mark=none] {meas/20200315audio_multiple_voices.csv};
\legend{DACA,DACB}
\end{axis}
\end{tikzpicture}
\caption{The output of an example track part 1}
\label{fig:textadv_track_ex1}
\end{figure}
\newpage
\begin{figure}[H]
\begin{tikzpicture}
\begin{axis}[
ymin=-.0580652077731092,
ymax=0.4444722461134454,
ylabel=Time,
xlabel=Track output,
ymajorgrids=true,
width=\textwidth,
height=0.98\textheight]
\addplot table [x=c1, y=t, col sep=comma, mark=none] {meas/20200315audio_multiple_voices.csv};
\addplot table [x=c2, y=t, col sep=comma, mark=none] {meas/20200315audio_multiple_voices.csv};
\legend{DACA,DACB}
\end{axis}
\end{tikzpicture}
\caption{The output of an example track part 2}
\label{fig:textadv_track_ex2}
\end{figure}
\subsubsection{Track switching}
To switch tracks on different actions, there is a map of tracks associated with
rooms. Every room has an associated track, where the association can change on
actions performed, which allows for a game atmosphere change. Track changes are
performed outside the ISR, which could theoretically result in a race condition
where the ISR would load a faulty track for 1ms if the track change was not
performed fast enough, but this is prevented by disabling global interrupts
during a track change.
\subsection{User command interpretation}
\subsubsection{Command structure and pasring}
As in other text adventures \cite{dunnet} a command consits of one line of
input terminated by a newline or line feed character \textbackslash n.
The carriage return character which is sometimes transmitted with a line
feed character is not parsed in this text adventure. Incoming character
parsing can be seen in listings \ref{lst:textadv-uart-recv} and
\ref{lst:textadv-ingest}.
As one command is parsed each part is required to be separated by an empty
space character which is ascii code 32 \cite{ascii}. The first part of the given
input is then compared to an array of actions a user can perform, for example
use or search, as can be seen in listing \ref{lst:textadv-parsecmd}
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:textadv-uart-recv}, caption={The UART char receive code},
columns=flexible, style=cstyle, firstline=105, lastline=118]
{code/textadv/src/16550.c}
In listing \ref{lst:textadv-uart-recv} the comment echo back can be seen. The
write\_char function before it writes the last received character back to the
terminal which sent it. This is done to write what the user typed out to the
terminal as otherwise it would not be seen what has been typed on any VT100
compatiable terminal\cite{vt100} or terminal emulator.
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:textadv-ingest}, caption={The character ingest function},
columns=flexible, style=cstyle, firstline=71, lastline=79]
{code/textadv/src/game.c}
The in listing \ref{lst:textadv-ingest} shown branch overrides the last received
character with 0x00 which is ascii NUL and decrements the buffer pointer by one
if the received character was 0x7F. 0x7F is the ADCII DELETE character
\cite{ascii} which instructs the receiving end that the last received character
was a mistake and should be purged. This is also what a vt100 compiant terminal
emulator sends when the backspace or delete key is pressed \cite{vt100}.
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:textadv-parsecmd}, caption={The command parsing function},
columns=flexible, style=cstyle, firstline=31, lastline=69]
{code/textadv/src/game.c}
\subsubsection{Command parameters}
Command paramters are interpreted as the string that follows the action
and the space behind it. As can be seen in the case for ACTION\_USE in
listing \ref{lst:textadv-perfact} the use item function is passed the
command buffer\footnote{which is an address in memory} plus the length of the
entered command plus one for the space. So the string starting at the passed
address should match the start address of the parameter. If no parameter is
supplied, the address should point to a character containing ASCII NUL, which
marks the end of a string, bcause after comand parsing the string is overwritten
with zeros as seen in listing \ref{lst:textadv-parsecmd}.
\lstinputlisting[language=C,frame=trBL,
breaklines=true, breakautoindent=true, formfeed=\newpage,
label={lst:textadv-perfact}, caption={The command execution routine},
columns=flexible, style=cstyle, firstline=81, lastline=120]
{code/textadv/src/game.c}

8
sections/result.tex Normal file
View File

@ -0,0 +1,8 @@
The project was fully implemented with all functionality originally targeted.
The system has been tested and verified and all example code have been
documented and tested as running. Implementations in hardware were made in
open-source programs and the RISC-V processor can compile using an open source
toolchain. The completed project can be found on the USB stick which accompanies
this thesis, or in the git repositories at
\url{https://git.it-syndikat.org/tyrolyean/dipl.git} and
\url{https://gitlab.com/YARM-project/}.

Binary file not shown.

View File

@ -0,0 +1,58 @@
%% Creator: Inkscape inkscape 0.92.4, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file 'idt7201_pinout_svg-tex.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics{<filename>.pdf}
%% To scale the image, write
%% \def\svgwidth{<desired width>}
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%% \usepackage{import}
%% in the preamble, and then including the image with
%% \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%% \graphicspath{{<path to file>/}}
%%
%% For more information, please see info/svg-inkscape on CTAN:
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
%%
\begingroup%
\makeatletter%
\providecommand\color[2][]{%
\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
\renewcommand\color[2][]{}%
}%
\providecommand\transparent[1]{%
\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
\renewcommand\transparent[1]{}%
}%
\providecommand\rotatebox[2]{#2}%
\newcommand*\fsize{\dimexpr\f@size pt\relax}%
\newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}%
\ifx\svgwidth\undefined%
\setlength{\unitlength}{214.55815325bp}%
\ifx\svgscale\undefined%
\relax%
\else%
\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
\fi%
\else%
\setlength{\unitlength}{\svgwidth}%
\fi%
\global\let\svgwidth\undefined%
\global\let\svgscale\undefined%
\makeatother%
\begin{picture}(1,1.09981037)%
\lineheight{1}%
\setlength\tabcolsep{0pt}%
\put(0,0){\includegraphics[width=\unitlength,page=1]{idt7201_pinout_svg-tex.pdf}}%
\end{picture}%
\endgroup%

Binary file not shown.

View File

@ -0,0 +1,58 @@
%% Creator: Inkscape inkscape 0.92.4, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file 'slas062e_pinout_svg-tex.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics{<filename>.pdf}
%% To scale the image, write
%% \def\svgwidth{<desired width>}
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%% \usepackage{import}
%% in the preamble, and then including the image with
%% \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%% \graphicspath{{<path to file>/}}
%%
%% For more information, please see info/svg-inkscape on CTAN:
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
%%
\begingroup%
\makeatletter%
\providecommand\color[2][]{%
\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
\renewcommand\color[2][]{}%
}%
\providecommand\transparent[1]{%
\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
\renewcommand\transparent[1]{}%
}%
\providecommand\rotatebox[2]{#2}%
\newcommand*\fsize{\dimexpr\f@size pt\relax}%
\newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}%
\ifx\svgwidth\undefined%
\setlength{\unitlength}{152.20749819bp}%
\ifx\svgscale\undefined%
\relax%
\else%
\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
\fi%
\else%
\setlength{\unitlength}{\svgwidth}%
\fi%
\global\let\svgwidth\undefined%
\global\let\svgscale\undefined%
\makeatother%
\begin{picture}(1,1.02692507)%
\lineheight{1}%
\setlength\tabcolsep{0pt}%
\put(0,0){\includegraphics[width=\unitlength,page=1]{slas062e_pinout_svg-tex.pdf}}%
\end{picture}%
\endgroup%

Binary file not shown.

View File

@ -0,0 +1,58 @@
%% Creator: Inkscape inkscape 0.92.4, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file 'slas062e_volt_svg-tex.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics{<filename>.pdf}
%% To scale the image, write
%% \def\svgwidth{<desired width>}
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%% \usepackage{import}
%% in the preamble, and then including the image with
%% \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%% \graphicspath{{<path to file>/}}
%%
%% For more information, please see info/svg-inkscape on CTAN:
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
%%
\begingroup%
\makeatletter%
\providecommand\color[2][]{%
\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
\renewcommand\color[2][]{}%
}%
\providecommand\transparent[1]{%
\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
\renewcommand\transparent[1]{}%
}%
\providecommand\rotatebox[2]{#2}%
\newcommand*\fsize{\dimexpr\f@size pt\relax}%
\newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}%
\ifx\svgwidth\undefined%
\setlength{\unitlength}{501.17228747bp}%
\ifx\svgscale\undefined%
\relax%
\else%
\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
\fi%
\else%
\setlength{\unitlength}{\svgwidth}%
\fi%
\global\let\svgwidth\undefined%
\global\let\svgscale\undefined%
\makeatother%
\begin{picture}(1,0.57613499)%
\lineheight{1}%
\setlength\tabcolsep{0pt}%
\put(0,0){\includegraphics[width=\unitlength,page=1]{slas062e_volt_svg-tex.pdf}}%
\end{picture}%
\endgroup%

View File

@ -1,21 +1,21 @@
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/Arch Linux) (preloaded format=xelatex 2020.3.10) 19 MAR 2020 17:00
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/Arch Linux) (preloaded format=xelatex 2020.3.10) 22 MAR 2020 23:57
entering extended mode
\write18 enabled.
%&-line parsing enabled.
**bericht.tex
**main.texx
! Emergency stop.
<*> bericht.tex
<*> main.texx
End of file on the terminal!
Here is how much of TeX's memory you used:
3 strings out of 492483
20 string characters out of 6134979
19 string characters out of 6134979
66274 words of memory out of 5000000
4587 multiletter control sequences out of 15000+600000
3640 words of font info for 14 fonts, out of 8000000 for 9000
1348 hyphenation exceptions out of 8191
0i,0n,0p,17b,6s stack positions out of 5000i,500n,10000p,200000b,80000s
0i,0n,0p,1b,6s stack positions out of 5000i,500n,10000p,200000b,80000s
No pages of output.