diff --git a/.devcontainer.json b/.devcontainer.json index af15ca78cd9..ae5553dd56c 100644 --- a/.devcontainer.json +++ b/.devcontainer.json @@ -12,10 +12,10 @@ } }, "waitFor": "onCreateCommand", - "updateContentCommand": "python -m venv venv ; source venv/bin/activate ; pip install -r docs/requirements.txt", + "updateContentCommand": "pip install -r docs/requirements.txt", "postCreateCommand": "", "postAttachCommand": { - "server": "source venv/bin/activate ; (cd docs ; adoc serve -p 8000)" + "server": "adoc serve -p 8080" }, "portsAttributes": { "8000": { @@ -23,5 +23,5 @@ "onAutoForward": "openPreview" } }, - "forwardPorts": [8000] + "forwardPorts": [8080] } diff --git a/.gitattributes b/.gitattributes index 4257ae15998..189a24c1d20 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,6 +1,8 @@ *.jpg filter=lfs diff=lfs merge=lfs -text *.jpeg filter=lfs diff=lfs merge=lfs -text *.png filter=lfs diff=lfs merge=lfs -text +*.gif filter=lfs diff=lfs merge=lfs -text +*.webp filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.tar.gz filter=lfs diff=lfs merge=lfs -text *.tar filter=lfs diff=lfs merge=lfs -text @@ -12,3 +14,4 @@ *.odp filter=lfs diff=lfs merge=lfs -text *.ods filter=lfs diff=lfs merge=lfs -text *.bin filter=lfs diff=lfs merge=lfs -text +*.lfs.svg filter=lfs diff=lfs merge=lfs -text diff --git a/.github/scripts/case.py b/.github/scripts/case.py new file mode 100755 index 00000000000..42a73f8c5b8 --- /dev/null +++ b/.github/scripts/case.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python3 +""" +Find and fix uppercase characters in filenames in docs folder. +""" + +import os +import argparse +from pathlib import Path +from collections import defaultdict + +GITHUB_ACTIONS = os.environ.get("GITHUB_ACTIONS", "false") == "true" + +if GITHUB_ACTIONS: + warning = "{file}\n::warning file={file}::{message}" + error = "{file}\n::error file={file}::{message}" + notice = "::notice ::{message}" +else: + warning = "WARNING: {message}" + error = "ERROR: {message}" + notice = "INFO: {message}" + + +def find_uppercase_files(root_dir): + """Find files with uppercase letters, return (files_to_fix, conflicts).""" + files = [] + seen = defaultdict(list) + + for root, _, filenames in os.walk(root_dir): + if '_build' in root or '__pycache__' in root: + continue + for name in filenames: + if name != name.lower() and name != "Makefile": + path = Path(root) / name + new_path = Path(root) / name.lower() + seen[str(new_path)].append(str(path)) + files.append({'path': path, 'new_name': name.lower(), 'new_path': new_path}) + + conflicts = {k: v for k, v in seen.items() if len(v) > 1} + return files, conflicts + + +def find_references(root_dir, filename): + """Find .rst/.md files referencing filename.""" + refs = [] + for root, _, filenames in os.walk(root_dir): + if '_build' in root or '__pycache__' in root: + continue + for name in filenames: + if name.endswith(('.rst', '.md')): + path = Path(root) / name + try: + content = path.read_text(encoding='utf-8') + if filename in content: + refs.append(path) + except (UnicodeDecodeError, PermissionError): + pass + return refs + + +def main(): + parser = argparse.ArgumentParser(description='Find and fix uppercase filenames in docs') + parser.add_argument('--fix', action='store_true', help='Apply fixes') + parser.add_argument('--dry-run', action='store_true', help='Show what would change') + args = parser.parse_args() + + root_dir = 'docs' + if not os.path.isdir(root_dir): + print(error.format(file=root_dir, message="Directory does not exist")) + return 1 + + files, conflicts = find_uppercase_files(root_dir) + + if conflicts: + for target, sources in conflicts.items(): + for src in sources: + print(warning.format(file=src, message=f"Conflict: would become '{target}'")) + print(error.format(file="", message=f"{len(conflicts)} naming conflicts found")) + return 1 + + if not files: + print("No files with uppercase characters found") + return 0 + + for f in files: + print(warning.format(file=str(f['path']), message=f"Should be: {f['new_name']}")) + + print(f"\nFound {len(files)} files with uppercase characters\n") + + if not args.fix and not args.dry_run: + print(notice.format(message="Fix case issues by running `python3 .github/scripts/case.py --fix`")) + return 0 + + for f in files: + old_path, new_path, new_name = f['path'], f['new_path'], f['new_name'] + old_name = old_path.name + + refs = find_references(root_dir, old_name) + for ref in refs: + if args.fix: + content = ref.read_text(encoding='utf-8') + ref.write_text(content.replace(old_name, new_name), encoding='utf-8') + print(f" Updated {ref}") + else: + print(f" Would update {ref}") + + if args.fix: + os.rename(old_path, new_path) + print(f"Renamed: {old_name} -> {new_name}") + else: + print(f"Would rename: {old_name} -> {new_name}") + + if args.dry_run: + print("\nDry run complete, no changes made") + else: + print(f"\nFixed {len(files)} files") + + return 0 + + +if __name__ == '__main__': + exit(main()) diff --git a/.github/scripts/dangling.py b/.github/scripts/dangling.py new file mode 100755 index 00000000000..8ee4af8616c --- /dev/null +++ b/.github/scripts/dangling.py @@ -0,0 +1,166 @@ +#!/usr/bin/env python3 +""" +Find and remove dangling files (not referenced in any .rst files) in docs folder. +""" + +import os +import argparse +import subprocess +from pathlib import Path + +GITHUB_ACTIONS = os.environ.get("GITHUB_ACTIONS", "false") == "true" + +if GITHUB_ACTIONS: + warning = "{file}\n::warning file={file}::{message}" + error = "{file}\n::error file={file}::{message}" + notice = "::notice ::{message}" +else: + warning = "WARNING: {file} - {message}" + error = "ERROR: {message}" + notice = "INFO: {message}" + +EXCLUDE_FILES = { + 'conf.py', 'Makefile', 'make.bat', '.gitignore', '.gitattributes', + 'requirements.txt', + 'custom.css', 'adi_logo.svg', 'icon.svg', +} + +EXCLUDE_EXTENSIONS = {'.rst', '.md'} + +SKIP_DIRS = {'_build', '__pycache__', '.git'} + + +def find_all_files(root_dir): + """Find all files that could potentially be dangling.""" + files = [] + for root, dirs, filenames in os.walk(root_dir): + dirs[:] = [d for d in dirs if d not in SKIP_DIRS] + + for name in filenames: + path = Path(root) / name + ext = path.suffix.lower() + + if ext in EXCLUDE_EXTENSIONS: + continue + if name in EXCLUDE_FILES: + continue + + files.append(path) + + return files + + +def find_rst_files(root_dir): + """Find all .rst files in the docs folder.""" + rst_files = [] + for root, dirs, filenames in os.walk(root_dir): + dirs[:] = [d for d in dirs if d not in SKIP_DIRS] + + for name in filenames: + if name.endswith('.rst'): + rst_files.append(Path(root) / name) + + return rst_files + + +def load_rst_contents(rst_files): + """Load contents of all .rst files into a single string for fast searching.""" + contents = {} + for rst_file in rst_files: + try: + contents[rst_file] = rst_file.read_text(encoding='utf-8') + except (UnicodeDecodeError, PermissionError): + pass + return contents + + +def is_file_referenced(file_path, rst_contents): + """Check if a file is referenced in any .rst file.""" + filename = file_path.name + + for rst_file, content in rst_contents.items(): + rel_path = os.path.relpath(file_path, rst_file.parent) + if rel_path in content: + return True + + return False + + +def find_dangling_files(root_dir): + """Find files that are not referenced in any .rst file.""" + all_files = find_all_files(root_dir) + rst_files = find_rst_files(root_dir) + rst_contents = load_rst_contents(rst_files) + + dangling = [] + for file_path in all_files: + if not is_file_referenced(file_path, rst_contents): + dangling.append(file_path) + + return dangling + + +def git_rm(file_path, dry_run=False): + """Remove a file using git rm.""" + if dry_run: + print(f" Would run: git rm {file_path}") + return True + + try: + result = subprocess.run( + ['git', 'rm', str(file_path)], + capture_output=True, + text=True + ) + if result.returncode == 0: + print(f" Removed: {file_path}") + return True + else: + print(f" Failed to remove {file_path}: {result.stderr.strip()}") + return False + except Exception as e: + print(f" Error removing {file_path}: {e}") + return False + + +def main(): + parser = argparse.ArgumentParser(description='Find and remove dangling files in docs') + parser.add_argument('--fix', action='store_true', help='Remove dangling files with git rm') + parser.add_argument('--dry-run', action='store_true', help='Show what would be removed') + args = parser.parse_args() + + root_dir = 'docs' + if not os.path.isdir(root_dir): + print(error.format(file=root_dir, message="Directory does not exist")) + return 1 + + dangling = find_dangling_files(root_dir) + + if not dangling: + print("No dangling files found") + return 0 + + for f in dangling: + print(warning.format(file=str(f), message="Not referenced in any .rst file")) + + print(f"\nFound {len(dangling)} dangling files\n") + + if not args.fix and not args.dry_run: + print(notice.format(message="Remove dangling files by running `python3 .github/scripts/dangling.py --fix`")) + return 1 + + removed = 0 + for f in dangling: + if git_rm(f, dry_run=args.dry_run): + removed += 1 + + if args.dry_run: + print(f"\nDry run complete, {removed} files would be removed") + else: + print(f"\nRemoved {removed} dangling files") + + return 0 + + +if __name__ == '__main__': + exit(main()) diff --git a/.github/scripts/sort-vale.sh b/.github/scripts/sort-vale.sh new file mode 100755 index 00000000000..e5493a476b4 --- /dev/null +++ b/.github/scripts/sort-vale.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +file=".github/styles/config/vocabularies/Base/accept.txt" +{ grep '^[[:upper:]]' $file | sort -u; \ + grep '^\[' $file | sort -u; \ + grep '^[[:lower:]]' $file | sort -u; } > tmp && mv tmp $file diff --git a/.github/styles/config/vocabularies/Base/accept.txt b/.github/styles/config/vocabularies/Base/accept.txt index 2668bcc6478..8b483ff2860 100644 --- a/.github/styles/config/vocabularies/Base/accept.txt +++ b/.github/styles/config/vocabularies/Base/accept.txt @@ -1,92 +1,1013 @@ +Aavid +Adafruit +ADC(s)? ADI|adi -LTspice -[Dd]octools -[Kk]uiper -[Xx]ilinx -no-OS +AGCFast +Agilent +Agilex +AGPIOs +AINx +Altera +APIs +Arria +Aspheric +Async +Atten +Audiowell +Autonegotiation +Auvidea +AUXADC_x +Auxilary +Auxillary +Avahi +BMS_Browser +CANopen +CCOMP_x +CDCs +CMake +COMn +COMx +CPUs +CSn +Cx +DAC(s)? +DACx +DAPlink +DAPLink +DCS(s)? +DDCs Digilent +DMAs +Doherty +DOIx +DUCs +DUTs +EEPROMs +EMIOn +Ethernet +EVAL +FET(s)? +FFTs +FFT_size +FIFOs +FMCDAQx +FMCOMMSx +FPGAs +Gbps +GHz +GitHub +GPUs +GTKTerm +HMI(s)? +Hz +ICs +IIf +IMUs +IOBuffer +IPs +Jitsi +JLink +Jupiter_sdr +Jupiter_SDRs +KHz +Kirkstone +LDOs +LED(s)? +LEVs +LOs +LTspice +Mbps +MBytes +MCUs +MEGHz +MHz +MicroBlaze +MIMO(s)? +MOSFETs +Nucleo +NVMe +OEMs Olimex +ORx +PAC(s)? +PCBs +PCIe +PDO(s)? +PDs +PFDavg +PLC(s)? +PLLs +Pmod(s)? +PQEvents +Profibus +PSE(s)? +PTYs +PWM(s)? +RPi +RTDs +RTOSes +Rx +Scarthgap Scopy +SDKs +SDRangel +SDRsharp +SENSEHF_x +SENSEH_x +SENSELF_x +SENSEL_x +STMicroelectronics +Stratix +SYNCb +TCXOs +Trinamic +Tx Uno -Nucleo -[Ll]ibiio - -[Tt]octree -[Dd]ocname +URIs +USBser +VCXOs +Versal +Virtex +VIs +VTref +Wien_bridge_oscillator +Yocto +Zener +[Aa]cquire +[Aa]dditional +[Bb]alena +[Bb]aremetal +[Bb]arkhausen +[Bb]aseband +[Bb]eaglebone +[Bb]eamsplitter +[Bb]enchtop +[Bb]itstream +[Bb]lackfin +[Bb]linky +[Bb]lockset +[Bb]ootloader +[Bb]roadmarket +[Bb]romothymol +[Bb]uildroot +[Cc]apitan +[Cc]ellpack +[Cc]hibios +[Cc]hipset +[Cc]hirpstack +[Cc]larkson +[Cc]lk +[Cc]mak +[Cc]odefusion +[Cc]odespace +[Cc]odespaces +[Cc]oeherent +[Cc]olorimetry +[Cc]omms +[Cc]onda +[Cc]onectivity +[Cc]onfig +[Cc]onfuguration +[Cc]onnecy +[Cc]ontactless +[Cc]ontroling +[Cc]ordset +[Cc]trl +[Cc]uvettes +[Dd]aisychain +[Dd]aplink +[Dd]atafiles +[Dd]atasheet +[Dd]atasheets +[Dd]efconfig +[Dd]eframer +[Dd]erating +[Dd]eserializer +[Dd]eserializers +[Dd]ev [Dd]evicetree - -PDO(s)? -LED(s)? -FET(s)? -PSE(s)? -Pmod(s)? - +[Dd]evkit +[Dd]igikey +[Dd]igkey +[Dd]ocname +[Dd]octools +[Dd]onut +[Dd]ownlaod +[Ee]mre +[Ee]nablement +[Ee]val [Ee]valuate -[Pp]reloaded - +[Ee]vkit +[Ff]akra +[Ff]eatherheaders +[Ff]irewire +[Ff]lourescent +[Ff]lowrate +[Ff]mccomms +[Ff]reerun +[Ff]ritzing +[Ff]sw +[Gg]b +[Gg]enalyzer +[Gg]erbers +[Gg]olledge +[Gg]streamer +[Hh]eatsink +[Hh]ighspeed +[Hh]olohub +[Hh]oloscan +[Hh]otplug +[Hh]owever +[Hh]wmon +[Ii]c +[Ii]mager +[Ii]ntermodulation +[Ii]ntertek +[Ii]perf +[Jj]etpack +[Jj]etson +[Jj]etsonhacks +[Jj]inchang +[Jj]ira +[Jj]tag +[Jj]upiters +[Kk]config +[Kk]configs +[Kk]d +[Kk]edit +[Kk]eithley +[Kk]eysight +[Kk]p +[Kk]ria +[Kk]uiper +[Ll]ibiio +[Ll]ightpath +[Ll]inaro +[Ll]inkerscript +[Ll]inuxg +[Ll]ongpass +[Ll]oopback +[Ll]umiled +[Ll]uxeon +[Mm]akefile +[Mm]akefiles +[Mm]anagemement +[Mm]anjaro +[Mm]atplotlib [Mm]aximum -[Mm]inimum -[Mm]ultiple -[Uu]ltrafast -[Uu]ltralow +[Mm]bed +[Mm]bytes +[Mm]eehan [Mm]icrocontroller(s)? -[Oo]vertemperature -[Mm]onitor -[Pp]urchase -[Bb]ootloader -[Ww]alkthrough -[Aa]cquire +[Mm]icropower +[Mm]inecraft +[Mm]inicom [Mm]inimize +[Mm]inimum +[Mm]iniusb +[Mm]odbus +[Mm]onitor +[Mm]pa +[Mm]sps +[Mm]ultiband +[Mm]ultichip +[Mm]ultiple +[Mm]ultispan +[Mm]ultistandard +[Nn]ano +[Nn]arrowband +[Nn]echita +[Nn]vidia +[Nn]yquist +[Oo]akton [Oo]btain -[Ll]oopback -[Aa]dditional -[Hh]ighspeed -[Dd]efconfig -[Ss]etpoint -[Pp]assthrough -[Bb]aremetal - -Tx -Rx -MIMO(s)? -PLC(s)? -DCS(s)? -PAC(s)? -Doherty -PCIe -Agilent -Stratix -Virtex -MicroBlaze -Versal -APIs -DAC(s)? -ADC(s)? -PWM(s)? -HMI(s)? -Profibus -Ethernet -Zener - -ns -dBm -Gbps -kbps - +[Oo]sc +[Oo]sciloscope [Oo]vercurrent +[Oo]verrange +[Oo]vertemperature [Oo]vervoltage -[Uu]ndervoltage -[Ww]earables +[Pp]ackhem +[Pp]assthrough +[Pp]awlick +[Pp]etalinux +[Pp]etazzonig +[Pp]haser +[Pp]hasers +[Pp]hotodiode +[Pp]ico +[Pp]icocom +[Pp]iezo +[Pp]iezotronics [Pp]inout -[Dd]atasheet -[Hh]owever +[Pp]ll +[Pp]luggable +[Pp]olyphase +[Pp]owerdown +[Pp]reloaded +[Pp]rl +[Pp]sat +[Pp]seudocode +[Pp]seudorandom +[Pp]urchase +[Pp]y +[Qq]uartus +[Rr]akon +[Rr]alink +[Rr]aspbery +[Rr]aspbian +[Rr]eadback +[Rr]ealtek +[Rr]ealtime +[Rr]ensselaer +[Rr]oscolux +[Rr]pi +[Rr]sense +[Rr]shunt +[Rr]unnin +[Ss]allen +[Ss]amtec +[Ss]chmartboard +[Ss]chottky +[Ss]dcard +[Ss]egger +[Ss]emtech +[Ss]erach +[Ss]etpoint +[Ss]hapeways +[Ss]igrok +[Ss]implied +[Ss]implifed +[Ss]inewave +[Ss]parkfun +[Ss]tackable +[Ss]tata +[Ss]ubnet +[Ss]ubnodes +[Ss]ynchrona +[Ss]ynchrophasor +[Ss]ysfs +[Tt]alise +[Tt]amb +[Tt]cl +[Tt]era +[Tt]erasic +[Tt]estbench +[Tt]honny +[Tt]junction +[Tt]octree +[Tt]ol +[Tt]oolchain +[Tt]ranceiver +[Tt]ranscieiver +[Tt]ransmit +[Tt]winax +[Uu]ltrafast +[Uu]ltralow +[Uu]ndervoltage +[Uu]ndocked +[Uu]ndocking +[Uu]nix +[Uu]nscrapped +[Uu]ntar [Vv]arious -[Mm]ultiband +[Vv]cd +[Vv]com +[Vv]dc +[Vv]dd +[Vv]erilog +[Vv]in +[Vv]is +[Vv]ishay +[Vv]itis +[Vv]ivado +[Vv]ivao +[Vv]ivis +[Vv]out +[Vv]p +[Vv]rms +[Ww]alkthrough +[Ww]earables +[Ww]ethlink [Ww]ideband -[Tt]ransmit - -Yocto -Scarthgap -Jitsi -Github -Kirkstone +[Ww]ifi +[Ww]rapup +[Xx]cvr +[Xx]fce +[Xx]ilinx +[Xx]linx +[Zz]edboard +[Zz]erocopy +[Zz]out +[Zz]phase +[Zz]ynq +accel_divisor +adc_input +ad_connect +addon +add_on_power +addr +addr_pointer +addr_ptr +add_trigger +ad_ip_instance +agilex +alot +alreadyg +altsetting +amplifieres +analogdevicesinc +any_edge +applciation +armhf +audion +authore +auto_detect_sdp +automount +automounter +autotuning +avg_filter_length +axi_clkgen +axi_pulsar_adc_dma +backhaul +balun +baluns +bandgap +bandpass +barebones +baudrate +beamformers +beamwidth +bioimpedance +bist_framer_a_loopback +bist_framer_a_prbs +bist_framer_b_loopback +bist_framer_b_prbs +bistream +bist_serializer_a_prbs +bist_serializer_b_prbs +bist_tone +bitbang +bitfields +bitmask +bit_numbering +bitRepeat +bits_number +bitstreams +board_ip +boolean +bootable +bootfile +bootfiles +bootfs +boot_sd +brnach +browsable +buffer_size +buildroom +bytes_count +bytes_number +calibrate_frm_en +calibrate_rx_phase_correction_en +calibrate_rx_qec_en +calibrate_tx_lol_en +calibrate_tx_lol_ext_en +calibrate_tx_qec_en +candump +capacitances +cardg +checkboard +checkthe +chip_select +chrdev +cli +clib +clksrc +cmos +cmsis +codespace +cofounder +collaterals +colorbar +compenstation +compilable +configs +configurability +configurated +configurator +connectedg +const +containg +convenientg +corelated +cpu +cpu_thermal +creepage +crosspoint +cs_polarity +csv +ctypes +current_trigger +cytometry +daisychain +data_available +databits +datalinks +data_read +datatypes +data_write +dataWrite +dBm +deasserted +debian +debugfs +decompile +decStep +defconfigs +delay_off +delay_on +delimitator +deliverables +demultiplexing +dequeued +derated +deserialier +desolder +desoldered +dest +device_id +device_reboot +devide +devs +dfu +dfu_sf +dhcp +dialout +digGain +digital_and_analog +digital_or_analog +digital_xor_analog +direct_reg_access +displayg +display_user_manual_on_start +dissipations +distro +distros +disty +dlls +dma_input +dmesg +dokuwiki +dont +doublecheck +dtb +dtbs +dtoverlay +dts +dtsh +dtsi +dulplex +e +eBooks +eeprom +engineerzone +enqueued +ensm_mode +enu +enum +env +evice +example_node +example_subnode +exceedance +extControl +external_signals +extlinux +eyboard +facto +falling_edge +fan_ctl +fan_en +fc +fdisk +femtocells +ffffh +fhmEnable +fifo +file_close +file_open +filter_sel +fluorometry +flywires +fmcomms +formater +framerScramble +freerun +fs +fsbl +fullscreen +gain_table_config +gcc +get_buffer +glog +gnuplot +goldie +goto +gp_int +gpio_dt_spec +gqrx +gtkdatabox +guickstart +guiconfig +hal +hardcoded +hdl +hdmi_group +hello_iio +hexa +high_level +hostname +ia +iCoupler +ie +ifconfig +iio +iio_attr +iio_backend_ops +iio_buffer +iio_buffer_destroy +iio_buffer_end +iio_buffer_first +iio_buffer_foreach_sample +iio_buffer_push +iio_buffer_refill +iio_buffer_start +iio_buffer_step +iio_channel +iio_channel_convert +iio_channel_convert_inverse +iio_channel_disable +iio_channel_enable +iio_channel_is_enabled +iio_channel_read +iio_channel_read_raw +iio_channel_write +iio_channel_write_raw +iio_context +iio_context_create_xml_mem +iio_context_destroy +iio_context_get_xml +iio_create_local_backend +iio_create_local_context +iio_create_network_backend +iio_create_network_context +iiod +iio_device +iio_device_close +iio_device_create_buffer +iio_device_get_id +iio_device_open +iio_device_read +iio_device_refill +iio_device_write +iio_example +iio_info +iio_readdev +iio_reg +iio_writedev +impactful +impedances +incStep +inductances +inet +ini +init_param +inovation +inputoutput +instaces +installes +intall +interferers +interharmonics +interrrupt +intrument +in_voltageX_en +in_voltageX_index +in_voltageX_type +ip +isoPower +isoSPi +i_wav +javascript +jetson +jumpered +jupiter +jupiter_sdr +jupiter_sdrs +kbaud +kbps +kernel_buffers +kfifo +kHz +kilohms +lanerate +langdale +le +length_align_bytes +lfs +libgtkdatabox +limit_usb_polling +linux +low_level +lsblk +masterless +matlab +max_block_size +max_brightness +max_speed_hz +mbed +mcs +mdelay +memcpy +menuconfig +millidegrees +miswire +mkdir +mltbx +mmap +mmWave +mode_set +montior +mosi +mountpoint +mPCIe +msecs +mssi_sync +multicast +multiframe +multimeters +multimodal +multiport +mux +mv +mVpp +mwc +nad +namespace +nanoPower +nb_samples +nclude +n_digital_and_analog +n_digital_or_analog +newlib +nm +noninverting +no-OS +ns +nullptr +numerours +occuring +odr +odr_get +og +oneshot +otg +ource +output_mode +output_range +overcurrents +overSample +oversamples +oversampling_ratio +overtighten +pannel +param +paramameter +parasitics +parsable +partiiton +passband +pathing +pdf +peakCount +phandle +phaseOffset +phase_shift +photodetector +photodiodes +pidof +pincontrol +pipelining +platform_include +platform_source +pl_sysmon +pluto +powerdown_mode_available +poweroff +powerup +ppb +pps +pqlib_dir +prebuild +preconfigured +preformatted +preprocessor +preprogrammed +programable +protocol_init_param +pseudoterminal +psu +ptr +pulldown +pullup +pullups +pulsar_adc_spi +pulsar_adc_trigger_gen +pwr +pypi +qconfig +radio_on +ramfs +ramp_input +readme +realeaed +rebasing +ree +reg_dump +reg_read +reg_write +relase +relocking +remove_trigger +replug +repo +resampler +resetb +retiming +reusability +rndis_host +rndis_wlan +rootfs +rr +ruggedised +runed +rw +sample_rate +samples_count +sampling_frequency +sampling_frequency_in +sampling_frequency_out +scan_elements +scl +scp +scrollback +sda +sdk +sed +setcof +setfreq +sethtm +setk +setstm +setvolt +shutdwon +simpleImage +sinc_dec_rate +slave_address +smbus +sms +socat +solderless +spectrophotometric +spi +spi_clk +spi_clkgen +spi_desc +spi_fpga +spi_init +spi_init_param +spi_remove +spi_write_and_read +src +start_stream +start_stream_synced +start_sync +stepSize +stopbit +stop_bits +stop_stream +storage_partition +stream_status +subcomponents +subfolders +subhertz +submodels +submultiples +subnode +subnode_property +subpages +subpalettes +subprocess +sudo +suse +swd +sweetspot +syncb +sync_req +sync_request +syncronization +synq +sysref +systemd +talInit +taliseInit_t +targetted +targetting +telecom +temp_dividend +temp_divisor +teravolts +thatg +thresholdsg +throughputs +timebase +timestamp_en +timestamp_index +timestamping +timestamp_type +tinyiiod +tlbx +tmux +toolchains +toolset +tooltip +transimpedance +trendline +trigger_condition +trigger_delay +trigger_hysteresis +trigger_level +trigger_mode +trigger_now +trigger_source +ttyUSBn +uart +uart_desc +uart_get_errors +uart_init +uart_init_param +uart_read +uart_remove +uart_write +uBlox +uboot +udev +uEnv +uImage +unarchive +unassign +unbinded +uncomment +uncompress +unconfigured +undock +unexport +unicam +unmount +unmounter +unmounting +unmounts +unpowered +unticking +upconversion +uplink +upstreamed +uri +usb +usbnet +userspace +validIn +validOut +venv +vias +vkick +vmsplice +voltage_adc_mode +voltage_burst_averaging_mode +vr_config +watthour +wget +wirelessly +wlu +write_only +writting +xconfig +x_dividend +xo_correction +xsct +y_dividend +yyy +z_dividend +zeroconf +zImage +zzz diff --git a/.github/workflows/llm.yml b/.github/workflows/llm.yml index fea7ca0d944..8cd42e59b4c 100644 --- a/.github/workflows/llm.yml +++ b/.github/workflows/llm.yml @@ -100,6 +100,7 @@ jobs: run: | export PATH="$HOME/.local/bin:$PATH" command -v claude || curl -fsSL https://claude.ai/install.sh | bash -s 2.1.37 + echo '{ "includeCoAuthoredBy": false }' > $HOME/.claude/settings.json - name: Prepare prompt sources if: ${{ env.LLM_AGENT_RUN == 'true' }} @@ -132,17 +133,30 @@ jobs: echo -n "${{ inputs.prompt }}" > $prompt_file [[ -s "$prompt_file" ]] || echo -n " Run a documentation review on the commit range $base_sha..$head_sha. + The review has five big tasks: + + - Content check + - Layout and usage check + - Cross-references check + - Sanity check + - Global improvement + + ## Guidelines and Tools You must read $annotations_file for the CI/CD notes, warnings, and errors. You must write your final review in markdown at $summary_file as a - GitHub Summary. - You shall suggest fixup commits (**must** use \`--fixup\`) to resolve - issues, if so, you **must** use \`git format-patch -o $patches_path\` + GitHub Summary, since we are reviewing restructuredText pages too, + avoid appending reST syntax in the Markdown summary and put whole + code snippets in Markdown code blocks. + + You shall suggest fixup commits (must use \`--fixup\`) to resolve + issues, if so, you must use \`git format-patch -o $patches_path\` to store the patches to the $patches_path directory (never autosquash). + It is ok to create more than one fixup commit for the same commit. - Do not review commits starting with "[TMP]", "[ADI]", ".github:" or - "ci:", they are not part of the series but to change the CI/CD or + Do not review commits starting with \"[TMP]\", \"[ADI]\", \".github:\" or + \"ci:\", they are not part of the series but to change the CI/CD or temporally change behaviour. The documentation must build cleanly with \`cd docs; make html\`, a @@ -155,29 +169,174 @@ jobs: sitemap with all pdfs, including the datasheets, are available at https://www.analog.com/media/en/en-pdf-sitemap.xml - Documentation guidelines are provided at - https://raw.githubusercontent.com/analogdevicesinc/documentation/refs/heads/main/docs/contributing/docs_guidelines.rst - https://raw.githubusercontent.com/analogdevicesinc/doctools/refs/heads/main/docs_guidelines/index.rst - https://raw.githubusercontent.com/analogdevicesinc/doctools/refs/heads/main/docs_guidelines/directives.rst - https://raw.githubusercontent.com/analogdevicesinc/doctools/refs/heads/main/docs_guidelines/roles.rst - Use correct Sphinx roles and directives throughout. + **Must fetch and read**, full documentation guidelines are provided at + https://raw.githubusercontent.com/analogdevicesinc/doctools/refs/heads/main/docs/docs_guidelines/index.rst + https://raw.githubusercontent.com/analogdevicesinc/doctools/refs/heads/main/docs/docs_guidelines/directives.rst + https://raw.githubusercontent.com/analogdevicesinc/doctools/refs/heads/main/docs/docs_guidelines/roles.rst + Use correct Sphinx roles and directives throughout. You must + prioritize using Sphinx references (:ref:, :doc:, ...), and + with those you shouldn't use custom titles, unless for placeholders + like \"the documentation is available _here_\", where \"_here_\" is the + custom title. - Remove or fix: - - - Broken links - - References to files or pages that do not exist + Roles like :dokuwiki: and :adi: do require custom titles since + they are simple link aliases, while the Sphinx references are + baked by the Sphinx inventory. Remember how roles resolve: - :external+REPO:doc\`index\` becomes https://analogdevicesinc.github.io/REPO/index.html - :external+REPO:ref\`some_lable\` becomes https://analogdevicesinc.github.io/REPO/resolve/path/to/label.html - - :git-REPO:\`Title \` becomes https://github.com/REPO/tree/main/PATH/TO + - :git-REPO:\`Title \` becomes https://github.com/analogdevicesinc/REPO/tree/main/PATH/TO + - :git-REPO:\`Title \` becomes https://github.com/analogdevicesinc/REPO/PATH/TO (no \"tree/main\") - :adi:\`Title \` becomes https://analog.com/PATH/TO + - :dokuwiki:\`Title \` becomes https://wiki.analog.com/PATH/TO You can fetch sphinx references with (change the repo (no-OS, linux, etc)) - python3 -m sphinx.ext.intersphinx https://analogdevicesinc.github.io/hdl/objects.inv + python3 -m sphinx.ext.intersphinx https://analogdevicesinc.github.io/hdl/objects.inv And use adoc-search to search all repository documentations. + This documentation is currently being imported from dokuwiki. + + You can fetch dokuwiki pages by suffixing \`?do=export_raw\`, for example + https://wiki.analog.com/resources/fpga/docs/axi_dmac?do=export_raw + You can match dokuwiki pagen names with \`?do=search\`, for example + https://wiki.analog.com/ad9081?do=search + + ## Task 1: Content check + + At this task, you will focus on the content, fixing content logical + errors, as well as: Broken links References to files or pages that do not + exist Full links when roles can be used (e.g., + :git-pyadi-iio:\`examples/ad4020_example.py\` , :adi:\`ad4052\` , and + :external+hdl:ref:\`spi_engine\` ) + + For added .rst files, you **must** check if it is a dokuwiki import, and if so, + download the original page and compare the content. + + Filenames should be in lower case and dash separated: + docs/solutions/reference-designs/ad-jupiter-ebz/hardware-overview.rst + + While references uses dashes for same words, and space for context/namespace: + + .. _jupiter-sdr hardware-overview: + + A common mistake is adding ZIP file for software and firmware downloads, like this: + \`\`\` + #. Download :download:\`Pluto firmware 0.30version \`. + \`\`\` + + While the correct approach is always to link to latest: + \`\`\` + #. Download the Pluto firmware from :git-plutosdr-fw:\`the latest release \`. + \`\`\` + To ensure, the users download the latest and greatest. It is okay to + have ZIPs for design and integration files. + + Remember, at this stage, the focus is improving the quality of the added pages. + + ## Task 2: Layout and usage check + + Contributors should use the grid and flex directives whenever possible, + for example: + + \`\`\` + +---------------------------------------+------------------------------------------+ + | .. figure:: ad-m2kbnc-ebz-top-web.png | .. figure:: ad-m2kbnc-ebz-bottom-web.png | + | :width: 600px | :width: 600px | + | | | + +---------------------------------------+------------------------------------------+ + + **Figure 1. AD-M2KBNC-EBZ Top View and Bottom View** + \`\`\` + + Should be updated to + + + \`\`\` + .. grid:: + :widths: 50% 50% + + .. figure:: ad-m2kbnc-ebz-top-web.png + + AD-M2KBNC-EBZ Top View + + .. figure:: ad-m2kbnc-ebz-bottom-web.png + + AD-M2KBNC-EBZ Bottom View + \`\`\` + + To ensure it is responsive on smaller screens. + Of course true tables that contains headers, and are not simply used to great a grid, + should be kept as tables. + + You should ensure no trailing whitespace. + + For downloads, ensure the download role is used for local files, for example, + a common mistake is: + \`\`\` + + .. admonition:: Download + + :adi:\`EVAL-CN0417-EBZ Design & Integration Files \` + \`\`\` + + Because creates a https://analog.com/CN0417-DesignSupport.zip link that is not + automatically checked. + While the correct to download the local file is: + + \`\`\` + .. admonition:: Download + + :download:\`EVAL-CN0417-EBZ Design & Integration Files \` + \`\`\` + + - Not using the :download: role for download artifacts, for example: + :adi:\`data.zip\` -> :download:\`data.zip\`, + \`data.zip\`__ -> :download:\`data.zip\` + + ## Task 3: Cross reference check + + After doing the content check, you will check if the author used dokuwiki roles + for content already imported. + + If there is a dokuwiki page that you noticed was already imported, + please, replace all instances in the whole documentation, for example: + + :dokuwiki:\`ADI Reference Designs HDL User Guide \` + to + :external+hdl:ref:\`user_guide\` + + and + :dokuwiki:\`AXI_ADRV9002 Interface Core \` + to + :external+hdl:ref:\`adrv9001\` + + Please note that some dokuwiki links can be misleading, for example: + :dokuwiki:\`AXI ADC HDL Linux Driver \` + Refers to the Linux driver of the HDL IP, that means the refernce would reside at + :external+linux:ref:\`axi-adc-hdl\` + However, little to no Linux page have been imported yet. + + \`adoc search\` will show you the external reference format for each + search match, sometimes a page documents multiple parts like adrv9002 + and adrv9001. Of course, if you are in the documentation repository + already, the reference is just :ref:\`label\` and not + :external+documentation:ref:\`label\`. In general, you can also drop + custom titles, like \"AXI_ADRV9002 Interface Core\". + + ## Task 4: Sanity check + + Now you will revisit all changes you made by looking at the git history. + Deletion of links and content is not acceptable unless justified. + Look for destructive changes that does not make sense and fix or revert. + + ## Task 5: Global improvement + + Finally, for updated dokuwiki to the new format references that you are confident, + you shall generate patches updating the whole documentation, that is, grep + for the original dokuwiki path, and update with the new reference. + " | sed ':a;N;$!ba;s/ */ /g' | sed 's/^[[:space:]]*//' > $prompt_file cat $prompt_file diff --git a/.github/workflows/top-level.yml b/.github/workflows/top-level.yml index 76717f5902e..a80b17a458b 100644 --- a/.github/workflows/top-level.yml +++ b/.github/workflows/top-level.yml @@ -35,6 +35,7 @@ jobs: [[ "${{ runner.debug }}" != "1" ]] && j_="-jauto" make html SPHINXOPTS="$j_ -W --keep-going" + rm -rf _build/html/_sources - name: Store the generated doc uses: actions/upload-artifact@v4 @@ -98,6 +99,14 @@ jobs: fi ' || _emit_fmt "::warning ::check_lfs: $lfs_error" + - name: Check casing + run: | + python3 .github/scripts/case.py + + - name: Check dangling files + run: | + python3 .github/scripts/dangling.py || true + deploy: runs-on: ubuntu-latest needs: [build-doc] diff --git a/.gitignore b/.gitignore index b615610b2d6..2aa5bfcf587 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,6 @@ lib64 pyvenv.cfg share/ .github/styles/write-good +docs/managed +.vscode +pyproject.toml \ No newline at end of file diff --git a/README.md b/README.md index e36ad946866..cdb284944d5 100644 --- a/README.md +++ b/README.md @@ -5,27 +5,55 @@ it also has the ability to aggregate every other documentation into a single mon See the deployed docs output at the [System Level Documentation](https://analogdevicesinc.github.io/documentation/) index. -## Build the documentation +## Getting started + +The repository uses Git LFS to host large files. +To not download all large files at the HEAD commit, we recommend `--skip-smudge` and letting [adoc serve](https://analogdevicesinc.github.io/doctools/cli.html#serve) to fetch them as you navigate the live server and touches files: -Ensure pip is newer than version 23. ``` -pip install pip --upgrade +sudo apt install git-lfs -y +GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/analogdevicesinc/documentation \ + --origin public \ + --depth 10 \ + -- documentation +cd documentation +git lfs install --local --force --skip-smudge ``` -Install/upgrade the documentation tools. + +Install the documentation tools. ``` +python3 -m venv ./venv +source ./venv/scripts/activate +python3 -m ensurepip +pip install pip --upgrade (cd docs ; pip install -r requirements.txt --upgrade) ``` -Build the documentation with Sphinx. +Launch the live server. +``` +adoc serve +``` +Or build the documentation with Sphinx. ``` (cd docs ; make html) ``` The generated documentation will be available at `docs/_build/html`. -## Build all documentations +### VSCode support + +[Esbonio](https://docs.esbon.io/en/latest/index.html) is an extensively developed Language Server Protocol and Visual Studio Code extension for sphinx. +Setup the virtual environment first before opening the text editor, to avoid triggering fallback behaviours. -It's possible to build all ADI's documentation at once in parallel. -To generate it, considering Doctools is installed, do: +The live server cli is able to generate Estobio pyproject.toml entry with (including [Sparse builds](https://analogdevicesinc.github.io/doctools/cli.html#serve-sparse)): ``` -adoc aggregate -d docs_output +adoc serve --esbonio --sparse docs/learning | tee pyproject.toml ``` -See [Doctools](https://github.com/analogdevicesinc/doctools) for more information. + +Assuming you followed the `--skip-smudge` instructions, you can use Git LFS On-Demand to auto fetch the artifacts included in open files or open. +Get from +[Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=gastmaier.git-lfs-on-demand) or +[Open VSX Registry](https://open-vsx.org/extension/gastmaier/git-lfs-on-demand) + +For word wrapping at the column 80, you can use Rewrap. +Get from +[Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=stkb.Rewrap-18980) or +[Open VSX Registry](https://open-vsx.org/extension/stkb/rewrap) diff --git a/docs/conf.py b/docs/conf.py index 42d1f024c3b..479e7228f46 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,8 +1,6 @@ # -- Import setup ------------------------------------------------------------- from os import path -import sys -sys.path.insert(0, path.abspath('ext')) # -- Project information ----------------------------------------------------- @@ -16,22 +14,29 @@ extensions = [ "sphinx.ext.todo", "adi_doctools", + "sphinxcontrib.mermaid", ] needs_extensions = { 'adi_doctools': '0.4.33' } -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', + 'solutions/reference-designs/common/zcu102-zynqmp-setup.rst'] source_suffix = '.rst' +# -- Custom extensions configuration ------------------------------------------ + +mermaid_d3_zoom = True + # -- External docs configuration ---------------------------------------------- interref_repos = [ + 'analog-attach', 'doctools', 'hdl', 'pyadi-iio', - 'adi-kuiper-gen', + 'kuiper', 'scopy', 'linux', 'no-OS', diff --git a/docs/contributing/creating_new_pages.rst b/docs/contributing/creating_new_pages.rst index bfdf05ddc9c..53304a438ea 100644 --- a/docs/contributing/creating_new_pages.rst +++ b/docs/contributing/creating_new_pages.rst @@ -170,18 +170,27 @@ Build the doc and see the changes: .. shell:: - ~/documentation/docs - $make html + ~/documentation + $ adoc serve --once + +Sphinx only rebuilds modified files, so subsequent builds are faster. +If you encounter issues with the current build, try cleaning the cache with +``cd docs ; make clean``. .. tip:: - Sphinx only rebuilds modified files, so toctree changes may look like they - are not "applying" to the documentation. - Just rebuild the whole doc with ``make clean html`` if the output is confusing. + Use :external+doctools:ref:`serve sparse` to build only the pages you are + interested. + + .. shell:: + + ~/documentation/docs + # Include only learning/**/* and solutions/**/* + $ adoc serve --once --sparse learning solutions -Even better than having to run ``make html`` at every edit, you can leverage -:external+doctools:ref:`author-mode` to have a live-updating instance of the doc, -you just need to save the file and the build will be triggered automatically. +:external+doctools:ref:`serve` also supports live-updating the doc (drop the +``--once`` flag), you just need to save the file and the build will be +triggered automatically. Adding images and other binary files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/contributing/forking_publishing.rst b/docs/contributing/forking_publishing.rst index 480acc6107d..958f8935003 100644 --- a/docs/contributing/forking_publishing.rst +++ b/docs/contributing/forking_publishing.rst @@ -53,18 +53,18 @@ Clone the repository .. shell:: - $git clone https://github.com/analogdevicesinc/documentation \ - $ --origin public \ - $ --depth 10 \ - $ -- documentation - $cd documentation + $ git clone https://github.com/analogdevicesinc/documentation \ + --origin public \ + --depth 10 \ + -- documentation + $ cd documentation Create and checkout a branch .. shell:: ~/documentation - $git checkout -b + $ git checkout -b .. _forking-publishing fork: @@ -98,10 +98,10 @@ Clone the repository: .. shell:: - $git clone https://github.com//documentation \ - $ --origin public \ - $ --depth 10 -- documentation - $cd documentation + $ git clone https://github.com//documentation \ + --origin public \ + --depth 10 -- documentation + $ cd documentation Fetch the large files from *analogdevicesinc* that your are working on and push @@ -110,8 +110,8 @@ to your copy the large files binaries (and vice-versa): .. shell:: ~/documentation - $git lfs pull public -I file_basename - $git lfs push private --all + $ git lfs pull public -I file_basename + $ git lfs push private --all If you don't have write permission to *analogdevicesinc*, you won't be able to push to it, but a reviewer can do in your behalf during review. @@ -137,10 +137,10 @@ Clone mainland: .. shell:: - $git clone https://github.com/analogdevicesinc/documentation \ - $ --origin public \ - $ --depth 10 -- documentation - $cd documentation + $ git clone https://github.com/analogdevicesinc/documentation \ + --origin public \ + --depth 10 -- documentation + $ cd documentation Setup both origins, for example, call *analogdevicesinc* ``public`` and your copy ``private`` at the *.git/config*, similar to: @@ -177,8 +177,8 @@ to your copy the large files binaries (and vice-versa): .. shell:: ~/documentation - $git lfs pull public -I file_basename - $git lfs push private --all + $ git lfs pull public -I file_basename + $ git lfs push private --all If you don't have write permission to *analogdevicesinc*, you won't be able to push to it, but a reviewer can do in your behalf during review. @@ -201,39 +201,41 @@ Using your local host To prepare your environment to work **locally**, clone and build the doc for the first time (working directory: repo root): -Ensure pip is up-to-date: - -.. code:: bash - - pip install pip --upgrade - :green:`Setup the virtual env at the repo root path:` .. shell:: ~/documentation - $python -m venv ./venv + $ python -m venv ./venv :green:`Activate the virtual env`: .. shell:: ~/documentation - $source ./venv/scripts/activate + $ source ./venv/scripts/activate + +Ensure pip is up-to-date: + +.. code:: bash + + python3 -m ensurepip + pip install pip --upgrade + Install the requirements: .. shell:: ~/documentation - $(cd docs ; pip install -r requirements.txt --upgrade) + $ (cd docs ; pip install -r requirements.txt --upgrade) Launch the doc editing server using :external+doctools:ref:`serve`: .. shell:: ~/documentation - $(cd docs ; adoc serve) + $ (cd docs ; adoc serve) The server will fetch on demand the git LFS resource (smudge step) from the pages you visit on the local server, and watched files you touch. @@ -244,7 +246,7 @@ smudge step was skipped, the images and other binary files will be missing. .. shell:: ~/documentation - $(cd docs ; make html) + $ (cd docs ; make html) .. _forking-publishing github-codespaces: @@ -303,7 +305,7 @@ Create a new folder and file matching the entry from last step: .. shell:: ~/documentation/docs - $mkdir my_topic; touch my_topic/index.rst + $ mkdir my_topic; touch my_topic/index.rst Edit *my_topic/index.rst*, adding a title and some content. @@ -341,14 +343,14 @@ Resuming work at a later time .. shell:: ~/documentation - $source ./venv/scripts/activate + $ source ./venv/scripts/activate Ensure the tools are up to data from time to time with: .. shell:: ~/documentation - $(cd docs ; pip install -r requirements.txt --upgrade) + $ (cd docs ; pip install -r requirements.txt --upgrade) Edit, build, commit, push as usual. @@ -378,11 +380,23 @@ It is recommended because it saves a lot of bandwidth and (your precious) time. :no-path: # Still fetches with either set. - $git lfs pull -I pointer_file + $ git lfs pull -I pointer_file # Only still fetches with --skip-smudge, skipped with GIT_LFS_SKIP_SMUDGE=1 - $git lfs smudge < pointer_file > /tmp/file.png`` + $ git lfs smudge < pointer_file > /tmp/file.png`` + +Instead of applying ``--skip-smudge`` globally, you can set locally (only at +the repository) with: + +.. shell:: + + $ GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/analogdevicesinc/documentation \ + --origin public \ + --depth 10 \ + -- documentation + $ cd documentation + $ git lfs install --local --force --skip-smudge -In this configuration, you can fetch the artifact: +With ``--skip-smudge`` active, you can fetch the artifact with: .. shell:: @@ -393,7 +407,7 @@ In this configuration, you can fetch the artifact: -rw-r--r-- 1 me me 34162787 Mar 25 11:09 path/to/my_file.png -And revert to it's pointer state: +And revert to its pointer state: .. shell:: diff --git a/docs/learning/converter_connectivity_tutorial/index.rst b/docs/learning/converter_connectivity_tutorial/index.rst index 50889ec97f5..b917957434a 100644 --- a/docs/learning/converter_connectivity_tutorial/index.rst +++ b/docs/learning/converter_connectivity_tutorial/index.rst @@ -257,7 +257,7 @@ What is "ADI Kuiper Linux"? Here's a little glossary: - Desktop environment with VNC server (optional) In order to obtain an SD card with a Kuiper Linux image you can follow the steps -in the :external+adi-kuiper-gen:doc:`dedicated Kuiper documentation `. +in the :external+kuiper:doc:`dedicated Kuiper documentation `. Make sure to use or build an image with desktop configured. At this point, you should be able to: diff --git a/docs/learning/converter_connectivity_tutorial/rpi_desktop_old.png b/docs/learning/converter_connectivity_tutorial/rpi_desktop_old.png deleted file mode 100644 index 555452143e3..00000000000 --- a/docs/learning/converter_connectivity_tutorial/rpi_desktop_old.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3daf9ba38bddc346e2deb4734ddbda1ccc0064521f31424a5db661a47885a4f5 -size 595880 diff --git a/docs/learning/converter_connectivity_tutorial/s-l1600.jpg b/docs/learning/converter_connectivity_tutorial/s-l1600.jpg deleted file mode 100644 index 8a6cb57cc2c..00000000000 --- a/docs/learning/converter_connectivity_tutorial/s-l1600.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:156ab17ae470258368a326675535862f500465f6bc2807118418eb295d491887 -size 87228 diff --git a/docs/learning/converter_connectivity_tutorial/s-l1600_back.jpg b/docs/learning/converter_connectivity_tutorial/s-l1600_back.jpg deleted file mode 100644 index 9713b248cad..00000000000 --- a/docs/learning/converter_connectivity_tutorial/s-l1600_back.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:625c4d3080d13f6ef3a732a8b70afc2b5f5d2c4dfcbfeeae93d17ef186771654 -size 91503 diff --git a/docs/learning/converter_connectivity_tutorial/set_device_tree.png b/docs/learning/converter_connectivity_tutorial/set_device_tree.png deleted file mode 100644 index 065fb570d82..00000000000 --- a/docs/learning/converter_connectivity_tutorial/set_device_tree.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d08f842495ab4ca0052959d1b7a62dbb96628f8bb8d7d6de2d829120ee181e3 -size 58588 diff --git a/docs/learning/converter_connectivity_tutorial/win32diskimager_screenshot.png b/docs/learning/converter_connectivity_tutorial/win32diskimager_screenshot.png deleted file mode 100644 index 721b6a6965e..00000000000 --- a/docs/learning/converter_connectivity_tutorial/win32diskimager_screenshot.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1f951ae383facc2226802eb672e4c28bda0c1152b66a4c0c9b6fe208fbb2c599 -size 108002 diff --git a/docs/learning/demo_hp_analog_meets_ai/index.rst b/docs/learning/demo_hp_analog_meets_ai/index.rst index 6096e643c26..77013f48195 100644 --- a/docs/learning/demo_hp_analog_meets_ai/index.rst +++ b/docs/learning/demo_hp_analog_meets_ai/index.rst @@ -159,7 +159,7 @@ SD Card Configuration - For the Jupiter SDR platform, the boot files are generated using the Using Kuiper Image: - :external+adi-kuiper-gen:ref:`Writing the Image to an SD Card + :external+kuiper:ref:`Writing the Image to an SD Card ` - For the ADRV9009-ZU11EG, begin by checking out the HDL branch, then navigate diff --git a/docs/learning/sw_infrastructure/SB70_blob.png b/docs/learning/sw_infrastructure/SB70_blob.png deleted file mode 100644 index 1dba99d9348..00000000000 --- a/docs/learning/sw_infrastructure/SB70_blob.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:21278b3f771c9d39737890e26a28c9741ef8963f3b20281219dcd3f416d571c5 -size 263030 diff --git a/docs/learning/sw_infrastructure/ST_link_updater.png b/docs/learning/sw_infrastructure/ST_link_updater.png deleted file mode 100644 index b71eaa8cbf5..00000000000 --- a/docs/learning/sw_infrastructure/ST_link_updater.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7873434477a27b0a0e7b4222c0444857171bb5fb43769fbb7fa8d6c7b6be9969 -size 41917 diff --git a/docs/learning/sw_infrastructure/ADI_Software_Infrastructure_for_ADCs_DACs_Sensors.pptx b/docs/learning/sw_infrastructure/adi_software_infrastructure_for_adcs_dacs_sensors.pptx similarity index 100% rename from docs/learning/sw_infrastructure/ADI_Software_Infrastructure_for_ADCs_DACs_Sensors.pptx rename to docs/learning/sw_infrastructure/adi_software_infrastructure_for_adcs_dacs_sensors.pptx diff --git a/docs/learning/sw_infrastructure/eval-ad4080_R17_39_blobs.png b/docs/learning/sw_infrastructure/eval-ad4080_R17_39_blobs.png deleted file mode 100644 index 8a5240f57c5..00000000000 --- a/docs/learning/sw_infrastructure/eval-ad4080_R17_39_blobs.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:708e238cf5e7cbc1974d89889e7dc0b546c78bd3689b15e0dd34acb6d4c6695a -size 262257 diff --git a/docs/learning/sw_infrastructure/index.rst b/docs/learning/sw_infrastructure/index.rst index f84af3e3d35..4725ceed6e6 100644 --- a/docs/learning/sw_infrastructure/index.rst +++ b/docs/learning/sw_infrastructure/index.rst @@ -39,7 +39,7 @@ This tutorial is also designed to be presented as a live, hands-on workshop; a s .. ADMONITION:: Download - :download:`Slide Deck: ADI’s Software Infrastructure for designing with ADCs, DACs, and Sensors ` + :download:`Slide Deck: ADI’s Software Infrastructure for designing with ADCs, DACs, and Sensors ` A complete video run-through will also be provided, either as a companion to following the tutorial yourself, or to practice before presenting as a hands-on workshop. This video is a placeholder for the time being, but many of the concepts apply directly to this workshop: @@ -62,7 +62,7 @@ Materials - ADALM2000 Multi-function USB instrument - ADALM2000 will be referred to as "m2k" - Either 1k series resistors, or 2k/3k attenuators between the M2k and AD4080 - - `Design files for a minimal attenuator / filter board used in initial worshop `_ + - `Design files for a minimal attenuator / filter board used in initial workshop `_ Hardware setup ~~~~~~~~~~~~~~ @@ -135,7 +135,7 @@ Boot up the Raspberry Pi and connect to the internet. Code and setup scripts for Re-host code and setup scripts, perhaps in the analogdevicesinc/education_tools repo. -Open a termial and run the following commands: +Open a terminal and run the following commands: :: @@ -161,7 +161,7 @@ Communication with the various data converter sources and sinks is done through There are three IIO contexts in our setup: - The Raspberry Pi itself, whose backend is local. It has two IIO devices: an internal temperature sensor and a supply voltage monitor - The ST Nucleo-H563ZI,whose backend is serial. It has one IIO device: the AD4080 -- The ADALM2000, whose backend is either USB or netowrk. It has several IIO devices: the XADC housekeeping ADCs on the FPGA, the AD9963 ADC/DAC, and custom peripherals (triggering, waveform generation, DMAs) in the FPGA. +- The ADALM2000, whose backend is either USB or network. It has several IIO devices: the XADC housekeeping ADCs on the FPGA, the AD9963 ADC/DAC, and custom peripherals (triggering, waveform generation, DMAs) in the FPGA. Let's use the ``iio_info`` utility to display information about... @@ -233,7 +233,7 @@ Let's use the ``iio_info`` utility to display information about... iio_info -u serial:/dev/ttyACM0,230400,8n1 -The iio_info utility is handy for debugging setups, making sure contexts are available, and checking that devices are recognized. There are other command line utilities for reading and writing individual attributtes, reading and writing data to DMA buffers, but they're not very convenient for interactive use. +The iio_info utility is handy for debugging setups, making sure contexts are available, and checking that devices are recognized. There are other command line utilities for reading and writing individual attributes, reading and writing data to DMA buffers, but they're not very convenient for interactive use. Exercise 2: Scopy (2.0!) ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -309,7 +309,7 @@ Observe the SINC5+Comp filter's step response. Set the FILTER_SEL attribute to * Exercise 3: Python and the Thonny IDE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Most examples in this workshop are Python scripts. Thonny is a Python IDE and will allow you to edit and run them easily. Launch Thony from the start menu: +Most examples in this workshop are Python scripts. Thonny is a Python IDE and will allow you to edit and run them easily. Launch Thonny from the start menu: .. image:: thonny_open.png :width: 20 em @@ -328,7 +328,7 @@ Performance metrics with Genalyzer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Stop the M2k waveform generator and close Scopy, because this demo will generate -a signal programaticaly. In Thonny, load +a signal programmatically. In Thonny, load **Desktop/ftc24-ws/hello_genalyzer/m2k_source_ad4080_sink.py** and Run: diff --git a/docs/learning/tools_for_ls/index.rst b/docs/learning/tools_for_ls/index.rst index 87c32ea474d..bff854bad70 100644 --- a/docs/learning/tools_for_ls/index.rst +++ b/docs/learning/tools_for_ls/index.rst @@ -102,7 +102,7 @@ workshop, a slide deck is provided here: .. ADMONITION:: Download - :download:`Tools for Low-Speed Mixed Signal System Design Slide Deck ` + :download:`Tools for Low-Speed Mixed Signal System Design Slide Deck ` A complete video run-through is also provided, either as a companion to following the tutorial yourself, or to practice before presenting as a diff --git a/docs/learning/tools_for_ls/Tools_for_low_speed_ms_workshop.pptx b/docs/learning/tools_for_ls/tools_for_low_speed_ms_workshop.pptx similarity index 100% rename from docs/learning/tools_for_ls/Tools_for_low_speed_ms_workshop.pptx rename to docs/learning/tools_for_ls/tools_for_low_speed_ms_workshop.pptx diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/ad9081_204b_M4L8.svg b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/ad9081_204b_M4L8.svg deleted file mode 100644 index cd4f65b9705..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/ad9081_204b_M4L8.svg +++ /dev/null @@ -1,3412 +0,0 @@ - - - - - Example block design for Single Link; M=4; L=8; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Example block design for Single Link; M=4; L=8; - - - - - - - DmaClk=250MHz - SystemClk=100MHz - - - - - - - - - RxDeviceClock=LaneRate/40=387.5MHz - TxLaneRate = 15.5Gbps - - MEMORY INTERCONNECT - - VCU118/ZCU102 - - FMC+ CONNECTOR - AXI DMA - - - - UTIL_CPACK - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Receive data path - UTIL_ADC FIFO - - - - - - - - - - - - - Ethernet - UART - DDRx - SPI - I2C - Interrupts - MicroBlaze/Zynq - Timer - - - - - - - - RX JESD LINK - - RX JESD TPL - - 8x32bits@387.5MHz - - - 8x15.5 Gbps - - - - - - - - - - - - - - - 256bits@387.5MHz - - - - - - REFCLK0/1 - TX_DEVICE_CLK - - SYSREF - - - 4 channels x4 samples - 256bits@250MHz - 4 x4 samples - - Transmit data path - 256bits@387.5MHz - - - - - AXI DMA - - - - UTIL_UPACK - UTIL_DAC FIFO - - - - - - - - - - TX JESD LINK - - TX JESD TPL - - XCVR - 8x32bits@387.5MHz - - - 8x15.5 Gbps - - - - - - - - - - - - - - - 256bits@387.5MHz - - - - - - 4 channels x4 samples - 256bits@250MHz - 4 x4 samples - 256bits@387.5MHz - - L=8; M=4; F=1; S=1 - TxDeviceClock=LaneRate/40=387.5MHz - RX_DEVICE_CLK - - RxLaneRate = 15.5Gbps - - diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/build_prerequisites_clone.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/build_prerequisites_clone.png deleted file mode 100644 index 9ab43065c17..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/build_prerequisites_clone.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c3d54279a5f32941fad228f0682c026fc66dd6ee5bafa12243b303cbb6a52543 -size 84033 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/build_prerequisites_hdl.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/build_prerequisites_hdl.png deleted file mode 100644 index 76c4cc5a8fb..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/build_prerequisites_hdl.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:25a82cbe05246e8adc90fda7bdf13b870b5bdbfe2c48473b1527e5c97520180d -size 746282 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/build_prerequisites_linux.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/build_prerequisites_linux.png deleted file mode 100644 index abdcb5cc3a3..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/build_prerequisites_linux.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:55cc1df7ef34017411e99aa1f830f9e7a237e43f11391c9c7f5e2b729c19be90 -size 735540 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/ila_probe_specify.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/ila_probe_specify.png new file mode 100644 index 00000000000..62fd7a1e0de --- /dev/null +++ b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/ila_probe_specify.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f90ce12777d7fc9499e49cf9878c0f81998f4e52bf91ae76c08882983f340c93 +size 170118 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/index.rst b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/index.rst index 2df7c376932..eabfb860b8b 100644 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/index.rst +++ b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/index.rst @@ -10,17 +10,37 @@ the SPI Engine Framework. :depth: 2 Prerequisites -~~~~~~~~~~~~~ +------------- Before starting this workshop, you should have: - Basic understanding of FPGA development concepts - Familiarity with SPI protocol fundamentals -- Access to Cora Z7S development board (optional for hands-on) -- ADALM2000 (M2K) for testing (optional) +- Access to the following resources: + + - Hardware: + + - `Cora Z7S `_ development board + - :adi:`EVAL-AD7984-PMDZ ` evaluation board + - SD Card + - :ref:`m2k` for testing + + - Software + + - Access to a Linux machine or `WSL `_ + - :git-adi-kuiper-imager:`ADI Kuiper Imager ` or a similar tool for flashing an OS image onto an SD card + - PuTTY or a similar tool for serial communication + - :git-scopy:`Scopy ` + - `AMD Vivado `_ + - `Digilent Adept drivers `_ + - If you are working from WSL, you will need the `usbipd-win `_ utility to attach a usb port to the Linux environment + +.. note:: + + The steps presented in this workshop were created using a Windows based machine and WSL. Learning Objectives -~~~~~~~~~~~~~~~~~~~ +------------------- By the end of this workshop, you will: @@ -53,7 +73,7 @@ Introduction Maintenance lifecycle: Customers start designs at different times and require access to the latest tools and IP cores. -**COS Reference Design "Donut Hole" Strategy** +**Reference Design "Donut Hole" Strategy** The strategy focuses on surrounding customer-selected processors, FPGAs, and microcontrollers with ADI components, creating a seamless integration experience. @@ -79,7 +99,7 @@ microcontrollers with ADI components, creating a seamless integration experience The "Donut Hole" strategy: ADI surrounds customer technology choices with comprehensive hardware and software support, enabling rapid development. -**COS Full Stack High Level Overview** +**Full Stack High Level Overview** .. figure:: intro_full_stack_overview.png :align: center @@ -88,7 +108,7 @@ microcontrollers with ADI components, creating a seamless integration experience Complete system architecture showing the full software and hardware stack from applications down to FPGA HDL and ADI converters. -**COS Full Stack HDL Designs** +**Full Stack HDL Designs** .. figure:: infrastructure_diagram.png :align: center @@ -96,7 +116,7 @@ microcontrollers with ADI components, creating a seamless integration experience Complete infrastructure diagram showing the full stack HDL design architecture. -**COS Typical Prototyping System** +**Typical Prototyping System** .. figure:: what_support_our_infrastructure.png :align: center @@ -121,16 +141,16 @@ microcontrollers with ADI components, creating a seamless integration experience * - **Lattice** - CertusPro-NX -**COS IP Library** +**IP Library** -.. figure:: section_of_the_IPs_supported.png +.. figure:: section_of_the_ips_supported.png :align: center :width: 85% ADI's open-source IP library provides reusable HDL cores for common functions including DMAs, interfaces, utilities, and converter-specific IP blocks. -**COS Frameworks - JESD204 Interface Framework** +**Frameworks - JESD204 Interface Framework** The JESD204 framework provides a complete solution for high-speed converter interfaces. @@ -153,7 +173,7 @@ The JESD204 framework provides a complete solution for high-speed converter inte JESD204 signal chain showing all three layers from FPGA transceiver through data link processing to converter-specific transport. -**COS Frameworks - SPI Engine Framework** +**Frameworks - SPI Engine Framework** .. tip:: **SPI Engine Powers Over 20% of ADI's HDL Projects** @@ -504,7 +524,7 @@ dramatically improving performance and reducing CPU load. any other offload-capable SPI controller with minimal changes. Use Case: High-Performance AD7984 Integration ----------------------------------------------- +--------------------------------------------- **Application Requirements** @@ -556,6 +576,10 @@ Use Case: High-Performance AD7984 Integration The AD7984 is an ideal choice for demonstrating SPI Engine capabilities due to its demanding timing requirements and excellent specifications. +.. seealso:: + + :external+hdl:ref:`spi_engine tutorial` + **Key Specifications:** :Resolution: 18 bits with no missing codes @@ -770,14 +794,14 @@ The SPI Engine framework provides a TCL helper function to simplify instantiatio Complete system architecture for PulSAR ADC integration showing PWM trigger generator, SPI Engine with offload, clock generation, and DMA controller. -*ADI AXI PWM GENERATOR* +:external+hdl:ref:`axi_pwm_gen` - ad_ip_parameter pulsar_adc_trigger_gen CONFIG.PULSE_0_PERIOD 120 - ad_ip_parameter pulsar_adc_trigger_gen CONFIG.PULSE_0_WIDTH 1 - ad_connect spi_clk pulsar_adc_trigger_gen/ext_clk - ad_connect pulsar_adc_trigger_gen/pwm_0 $hier_spi_engine/offload/trigger -*AXI CLKGEN* +:external+hdl:ref:`axi_clkgen` - ad_ip_instance axi_clkgen spi_clkgen - ad_ip_parameter spi_clkgen CONFIG.CLK0_DIV 5 @@ -787,7 +811,7 @@ The SPI Engine framework provides a TCL helper function to simplify instantiatio - ad_connect spi_clk spi_clkgen/clk_0 - ad_connect spi_clk spi_pulsar_adc/spi_clk -*ADI AXI DMA CONTROLLER* +:external+hdl:ref:`axi_dmac` - ad_ip_parameter axi_pulsar_adc_dma CONFIG.DMA_TYPE_SRC 1 - ad_ip_parameter axi_pulsar_adc_dma CONFIG.DMA_TYPE_DEST 0 @@ -797,13 +821,14 @@ The SPI Engine framework provides a TCL helper function to simplify instantiatio - ad_ip_parameter axi_pulsar_adc_dma CONFIG.AXI_SLICE_DEST 1 - ad_ip_parameter axi_pulsar_adc_dma CONFIG.DMA_2D_TRANSFER 0 - ad_ip_parameter axi_pulsar_adc_dma CONFIG.DMA_DATA_WIDTH_SRC 32 -- ad_ip_parameter axi_pulsar_adc_dma CONFIG.DMA_DATA_WIDTH _DEST 64 +- ad_ip_parameter axi_pulsar_adc_dma CONFIG.DMA_DATA_WIDTH_DEST 64 - ad_connect spi_clk axi_pulsar_adc_dma/s_axis_aclk -Build and Test System ---------------------- +Test System Setup +----------------- -**Complete Test Setup** +Overview +~~~~~~~~ .. figure:: system_build_bd.png :align: center @@ -812,172 +837,178 @@ Build and Test System Complete workshop system showing Cora Z7S FPGA board, AD7984 converter circuit, ADALM2000 for signal generation and debug, and host computer. -**Build Prerequisites** +Repository and Build Environment Setup +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -To build and run the complete system, you'll need access to ADI's open-source repositories. +Follow these steps to set up your development environment with the necessary repositories and toolchain: -.. figure:: build_prerequisites_hdl.png - :align: center - :width: 70% +**Step 1: Create Workspace Directory** - HDL repository structure at `analogdevicesinc/hdl `_ - containing FPGA projects, IP libraries, and build scripts. +Create a folder to store the temporary files for the workshop: -.. figure:: build_prerequisites_linux.png - :align: center - :width: 70% +.. code-block:: bash - Linux kernel repository at `analogdevicesinc/linux `_ - with ADI device drivers and devicetree configurations. + cd ~ + mkdir spi_workshop + cd spi_workshop/ -**Repository Setup and Build Environment** +.. important:: -Follow these steps to set up your development environment with the necessary repositories and toolchain: + The location of this directory will be used throughout the entire workshop. If you chose a different location for your directory, make sure to replace the path from the examples with your path. -.. important:: - **Step 1: Create Workspace Directory** +**Step 2: Download Cross-Compiler Toolchain** - .. code-block:: bash +Download the ARM cross-compiler toolchain for building Linux kernel: - cd /mnt/c/ - mkdir fae_workshop - cd fae_workshop/ +.. code-block:: bash -.. tip:: - **Step 2: Clone HDL Repository and Checkout Branch** + wget https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabi/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi.tar.xz + tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi.tar.xz - Clone the HDL repository and switch to the **ad7984_demo** branch: +**Step 3: Set Cross-Compiler Environment Variables** - .. code-block:: bash +Configure the **CROSS_COMPILE** and **ARCH** environment variables: - git clone https://github.com/analogdevicesinc/hdl.git - cd hdl - git checkout ad7984_demo +.. code-block:: bash - This prepares the HDL project files needed for building the FPGA design. + export CROSS_COMPILE=$(pwd)/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi- + export ARCH=arm -.. tip:: - **Step 3: Download Cross-Compiler Toolchain** +**Step 4: Clone HDL Repository and Checkout Branch** - Download the ARM cross-compiler toolchain for building Linux kernel: +Clone the HDL repository and switch to the **ad7984_demo** branch: - .. code-block:: bash +.. code-block:: bash - wget https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabi/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi.tar.xz - tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi.tar.xz + git clone https://github.com/analogdevicesinc/hdl.git + cd hdl + git checkout ad7984_demo -.. note:: - **Step 4: Set Cross-Compiler Environment Variable** +This prepares the HDL project files needed for building the FPGA design. - Configure the CROSS_COMPILE environment variable to point to your toolchain: +**Step 5: Clone ADI Linux Repository** - .. code-block:: bash +Clone the Analog Devices Linux kernel repository with device drivers and switch to the **ad7984_demo** branch: - export CROSS_COMPILE=$(pwd)/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi- +.. code-block:: bash -.. tip:: - **Step 5: Clone ADI Linux Repository** + cd ~/spi_workshop + git clone https://github.com/analogdevicesinc/linux.git + cd linux + git checkout ad7984_demo - Clone the Analog Devices Linux kernel repository with device drivers: +This will create a `linux` directory containing the ADI Linux kernel sources with all necessary drivers. - .. code-block:: bash +HDL Project Build Instructions for Zynq Target +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - git clone https://github.com/analogdevicesinc/linux.git +Now that you have the repositories set up, follow these guides to build the HDL project and boot image for your **Zynq-7000 SoC** target (Cora Z7S board): - This will create a `linux` directory containing the ADI Linux kernel sources with all necessary drivers. +**Step 1: Prepare the SD Card** - After cloning the Linux repository, checkout to the **ad7984_demo** branch: +Use **ADI Kuiper Imager** (or a similar tool) to flash the SD card with the latest image of **ADI Kuiper Linux**. - .. code-block:: bash +.. tip:: - cd linux - git checkout ad7984_demo + Here you can find more information about obtaining the latest :external+kuiper:doc:`index` image. -**HDL Project Build Instructions for Zynq Target** +**Step 2: Build the HDL Project** -Now that you have the repositories set up, follow these guides to build the HDL project and boot image for your **Zynq-7000 SoC** target (Cora Z7S board): +Navigate to the **pulsar_adc_pmdz** project for the **Cora Z7S** board and build the project: + +.. code-block:: bash + + cd ~/spi_workshop/hdl/projects/pulsar_adc_pmdz/coraz7s + make .. important:: - **Building the HDL Project for Zynq** - Follow the comprehensive guide to build the FPGA HDL design for Zynq platforms using Vivado: + If you use a Vivado version higher than 2023.1, the **ADI_IGNORE_VERSION_CHECK** parameter needs to be set to 1 before building the project: - 📚 `HDL Project Build Guide `_ + .. code-block:: bash - This guide covers: + export ADI_IGNORE_VERSION_CHECK=1 - - Setting up AMD Xilinx Vivado tools for Zynq - - Building the FPGA bitstream for Zynq-7000 - - Generating hardware description files (.xsa) - - Zynq-specific build commands and options +.. tip:: -.. tip:: - **Creating the Zynq Boot Image (BOOT.BIN)** + A comprehensive description of how to build the FPGA HDL design for Zynq platforms, using Vivado, can be found in the :external+hdl:doc:`user_guide/build_hdl` guide, which covers: + + - Setting up AMD Xilinx Vivado tools for Zynq + - Building the FPGA bitstream for Zynq-7000 + - Generating hardware description files (.xsa) + - Zynq-specific build commands and options - After building the HDL, create the complete Zynq boot image containing FPGA bitstream, FSBL, and U-Boot: +**Step 3: Build the Zynq Boot Image (BOOT.BIN)** - 📚 `Boot Image Build Guide `_ +After building the HDL, create the complete Zynq boot image containing FPGA bitstream, FSBL, and U-Boot. - This guide covers: +.. tip:: + + More information about the process can be found in the :external+hdl:doc:`user_guide/build_boot_bin` guide, which covers: - - Combining Zynq FSBL, bitstream, and U-Boot into BOOT.BIN - - Creating bootable SD card image for Zynq - - Devicetree compilation for Zynq-7000 platforms - - Boot configuration for ARM processor + FPGA fabric + - Combining Zynq FSBL, bitstream, and U-Boot into BOOT.BIN + - Creating bootable SD card image for Zynq + - Devicetree compilation for Zynq-7000 platforms + - Boot configuration for ARM processor + FPGA fabric .. note:: - **Building Zynq Linux Kernel and Devicetree** - Build the Linux kernel with ADI drivers and devicetree for Zynq-7000 platforms: + The u-boot from any of the **zynq-coraz7s** projects, found on the SD card, can be used to generate the BOOT.BIN file. - 📚 `Zynq Linux Build Guide `_ +**Step 4: Build the Zynq Linux Kernel and Devicetree** - This guide covers: +Build the Linux kernel with ADI drivers and devicetree for Zynq-7000 platforms, using the Linaro toolchain. Navigate to the local copy of the linux repository and confugure the kernel: - - Configuring the Linux kernel for Zynq with ADI device support - - Building uImage (kernel) and devicetree blob (DTB) - - Cross-compilation setup using the ARM toolchain - - Installing kernel modules and preparing rootfs - - Complete build commands for Zynq targets +.. code-block:: bash -**System Build - ADALM2000 (M2K)** + cd ~/spi_workshop/linux + make zynq_xcomm_adv7511_defconfig -The ADALM2000 provides essential test and measurement capabilities for this workshop. +After successfully configuring the kernel, build the kernel image using the following command: -.. figure:: system_build_m2k.png - :align: center - :width: 500px +.. code-block:: bash - ADALM2000 active learning module with integrated instruments. + make -j5 UIMAGE_LOADADDR=0x8000 uImage -**ADALM2000 Capabilities:** +.. note:: -- **Two programmable power supplies**: ±5V for converter biasing -- **Two-channel oscilloscope**: USB-based, for analog signal monitoring -- **Arbitrary function generator**: Two-channel signal source for ADC input -- **16-channel logic analyzer**: 100 MS/s, 3.3V CMOS (1.8V or 5V tolerant) for SPI debug + Some additional dependecies might be required to successfully build the kernel image. + The generated image can be found at `~/spi_workshop/linux/arch/arm/boot/uImage`. -**System Build - Scopy Software** +Lastly, generate the devicetree using the following command: -.. figure:: system_build_scopy.png - :align: center - :width: 600px +.. code-block:: bash + + make zynq-coraz7s-ad7984.dtb + +.. note:: + + The devicetree file can be found at `~/spi_workshop/linux/arch/arm/boot/dts/zynq-coraz7s-ad7984.dtb`. + +.. tip:: + + For a detailed overview of the process, check out the :doc:`/linux/kernel/zynq` guide, which covers: + + - Configuring the Linux kernel for Zynq with ADI device support + - Building uImage (kernel) and devicetree blob (DTB) + - Cross-compilation setup using the ARM toolchain + - Installing kernel modules and preparing rootfs + - Complete build commands for Zynq targets + +**Step 5: Load Files on the SD Card** + +Copy the **BOOT.BIN**, **uImage**, and **devicetree** files in the root directory of your SD card. - Scopy multi-instrument software interface showing oscilloscope, function generator, - and logic analyzer views. +.. important:: -**Scopy Virtual Instruments:** + The **.dtb** file must be renamed to **devicetree.dtb** before booting. -:Oscilloscope: Mixed-signal capability with protocol decoding -:Signal Generator: Functions and arbitrary waveforms -:Spectrum Analyzer: FFT analysis for SNR/THD measurement -:Network Analyzer: Frequency response characterization -:Power Supply: Adjustable voltage sources -:Logic Analyzer: With SPI protocol stack decoder -:Digital Pattern Generator: For stimulus generation -:Voltmeter: Precision DC measurements +System Configuration +~~~~~~~~~~~~~~~~~~~~ -**System Build - Schematic** +**Schematic** + +The image below shows the required connections for the hardware setup: .. figure:: system_build_schematic.png :align: center @@ -986,7 +1017,9 @@ The ADALM2000 provides essential test and measurement capabilities for this work Circuit schematic showing AD7984 connections to Cora Z7S FPGA board, including power, reference, and SPI interface signals. -**System Build - Cora Z7S Configuration** +**Cora Z7S Configuration** + +Follow the steps shown below to power on the Cora development board: .. figure:: system_build_cora.png :align: center @@ -994,19 +1027,25 @@ The ADALM2000 provides essential test and measurement capabilities for this work Cora Z7S board setup and initial configuration for Zynq-7000 SoC. -**System Build - Preferences Configuration** +**ADALM2000 Configuration** + +Open :external+scopy:doc:`index` and navigate to **Preferences**, select **ADCPlugin**, and make sure that the **Enable automatic IIO context ping** option is disabled, as shown in the image below: .. figure:: general_preferences_scopy.png :align: center :width: 75% + + ADCPlugin setup. -**System Build - ADALM2000 Configuration** +Plug in the USB cable and and connect to the M2K using Scopy, as presented in the figure below: .. figure:: adalm2000_configuration.png :align: center :width: 75% -**System Build - Power Supply Configuration** + M2K connection. + +After successfully connecting to the M2K, configure the power supplies by setting the positive output to **5 V** and the negative output to **-2.5 V**: .. figure:: system_build_power_supply.png :align: center @@ -1015,7 +1054,7 @@ The ADALM2000 provides essential test and measurement capabilities for this work ADALM2000 power supply settings: Configure positive and negative supplies for converter operation (typically +5V and -2.5V). -**System Build - Input Signal Generation** +Lastly, configure the signal generator to output a sinewave with **3 V amplitude**, **offset 2 V**, **1 kHz frequency**, and **0 deg phase** on channel one, and a sinewave with the same parameters and a **180 deg phase** on the second channel: .. figure:: system_build_input_signal.png :align: center @@ -1024,7 +1063,9 @@ The ADALM2000 provides essential test and measurement capabilities for this work Function generator configuration: 1 kHz sine wave at -0.5 dBFS amplitude for SNR and THD testing. -**System Build - UART Configuration** +**UART Configuration** + +Verify the COM port assigned to the Cora development board and connnect to it via serial, using PuTTY (or similar a tool), as shown in the image below: .. figure:: system_build_uart.png :align: center @@ -1033,145 +1074,285 @@ The ADALM2000 provides essential test and measurement capabilities for this work Serial terminal (PuTTY) configuration for board console access: 115200 baud, 8N1, no flow control. -**System Build - Network Configuration** +.. note:: -.. figure:: system_build_ip.png - :align: center - :width: 75% + The ``ls -al /dev/serial/by-id`` command can be used to check serial ports on Linux. - Setting host PC IP address for Ethernet connectivity to Cora Z7S board - (typically 169.254.x.x link-local address). +**Network Configuration** + +.. important:: -**System Build - UART and Ethernet Testing** + Connecting the Cora development board to the internet is required in order to complete this workshop. -Step 1 - using Putty +The IP address assigned to the Cora development board can be obtained by opening a terminal window using PuTTY and running the ``ifconfig`` command, as shown below. The IP address is shown as **inet**, under the **eth0** interface. .. shell:: - :caption: ifconfig :user: root $ifconfig - eth0: flags=4163 mtu 1500 - inet 169.254.92.202 netmask 255.255.255.0 broadcast 10.48.65.255 - inet6 fe80::241:8f:d3d0:e43b prefixlen 64 scopeid 0x20 - ether 0e:23:90:e3:61:01 txqueuelen 1000 (Ethernet) - RX packets 483757 bytes 81480222 (77.7 MiB) - RX errors 0 dropped 0 overruns 0 frame 0 - TX packets 5562 bytes 775511 (757.3 KiB) - TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 - device interrupt 38 - - lo: flags=73 mtu 65536 - inet 127.0.0.1 netmask 255.0.0.0 - inet6 ::1 prefixlen 128 scopeid 0x10 - loop txqueuelen 1000 (Local Loopback) - RX packets 83 bytes 10176 (9.9 KiB) - RX errors 0 dropped 0 overruns 0 frame 0 - TX packets 83 bytes 10176 (9.9 KiB) - TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 - -Step 2 - using Cygwin + eth0: flags=4163 mtu 1500 + inet 169.254.92.202 netmask 255.255.255.0 broadcast 10.48.65.255 + inet6 fe80::241:8f:d3d0:e43b prefixlen 64 scopeid 0x20 + ether 0e:23:90:e3:61:01 txqueuelen 1000 (Ethernet) + RX packets 483757 bytes 81480222 (77.7 MiB) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 5562 bytes 775511 (757.3 KiB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + device interrupt 38 + + lo: flags=73 mtu 65536 + inet 127.0.0.1 netmask 255.0.0.0 + inet6 ::1 prefixlen 128 scopeid 0x10 + loop txqueuelen 1000 (Local Loopback) + RX packets 83 bytes 10176 (9.9 KiB) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 83 bytes 10176 (9.9 KiB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + +To check if the development board is reachable via LAN, you can use the ``ping`` command from a terminal or command prompt window, using the previously obtained IP address, as shown below: .. shell:: - :caption: ping 169.254.92.202 $ping 169.254.92.202 - Pinging 169.254.92.202 with 32 bytes of data: - Reply from 169.254.92.202: bytes=32 time=2ms TTL=64 - Reply from 169.254.92.202: bytes=32 time=1ms TTL=64 - Reply from 169.254.92.202: bytes=32 time=1ms TTL=64 - Reply from 169.254.92.202: bytes=32 time=1ms TTL=64 + Pinging 169.254.92.202 with 32 bytes of data: + Reply from 169.254.92.202: bytes=32 time=2ms TTL=64 + Reply from 169.254.92.202: bytes=32 time=1ms TTL=64 + Reply from 169.254.92.202: bytes=32 time=1ms TTL=64 + Reply from 169.254.92.202: bytes=32 time=1ms TTL=64 - Ping statistics for 169.254.92.202: + Ping statistics for 169.254.92.202: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), - Approximate round trip times in milli-seconds: + Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 2ms, Average = 1ms Evaluate System --------------- -**System Evaluation – regular SPI trigger configuration** +.. _repo-setup-label: -.. figure:: system_evaluation_spi_trigger_1.png - :align: center - :width: 80% +Environment Setup +~~~~~~~~~~~~~~~~~ -.. figure:: system_evaluation_spi_trigger_2.png - :align: center - :width: 80% +**Setup the pyadi-iio Repository** + +First, connect to the Cora development board using PuTTY and create a workspace directory: + +.. code-block:: bash + + cd /media + mkdir workshop + cd workshop/ + +Clone the pyadi-iio repository and switch to the **ad7984_demo** branch: + +.. code-block:: bash + + git clone https://github.com/analogdevicesinc/pyadi-iio.git + cd pyadi-iio + git checkout ad7984_demo -**Data Capture using Scopy 2.0 - Regular SPI controller** +After switching to the **ad7984_demo** branch, run the following command to install the required Python packages: + +.. code-block:: bash + + pip install . + +**Regular SPI Trigger Configuration** + +Navigate to the workspace and create a bash script for configuring the regular SPI trigger: + +.. code-block:: bash + + cd /media/workshop + touch tmr_conf_script.sh + chmod +x tmr_conf_script.sh + +After creating the script, open it with a text editor and paste the following code: + +.. code-block:: bash + + #!/bin/bash + echo Setting the sampling rate to $1 + cd / + mkdir -p configfs + if ! mountpoint configfs + then + mount -t configfs none configfs + fi + mkdir -p configfs/iio/triggers/hrtimer/tmr0 + cat /sys/bus/iio/devices/trigger0/name + cd /sys/bus/iio/devices + echo tmr0 > iio\:device0/trigger/current_trigger + echo 2048 > iio\:device0/buffer/length + echo $1 > trigger0/sampling_frequency + echo 1 > iio\:device0/scan_elements/in_voltage0-voltage1_en + echo 1 > iio\:device0/buffer/enable + +Run the script with the sampling rate as a parameter: + +.. shell:: + :user: root + :group: analog + + /media/workshop + $./tmr_conf_script.sh 10000 + Setting the sampling rate to 10000 + configfs is not a mountpoint + tmr0 + +System Evaluation - Regular SPI Controller +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +**Data Capture using Scopy** .. note:: **Board IP Address:** The Cora Z7S board IP address is **169.254.92.202** - (obtained from running ``ifconfig`` command in PuTTY terminal) + (previously obtained from running ``ifconfig`` command in PuTTY terminal) + +Scopy can be used to remotely connect to the Cora development board and display the data obtained from the ADC. To achieve this, go to the Home section in Scopy and add the device using the IP address of the development board, as shown below: .. figure:: data_capture_scopy2.png :align: center :width: 80% -**Data capture using Scopy 2.0 - SPI controller** + Scopy remote connection setup. + +After the device was found, click on Add Device and then Connect. Your device should appear as **ADCPlugin** in the list on the left side of the window, next to the M2K. Open the **ADC-Time** section, select the **spi_clasic_ad7984** channel and you should see the data obtained using the regular SPI transfers when you initialize a capture on the oscilloscope: .. figure:: system_evaluation_scopy.png :align: center :width: 80% -**System Evaluation - Python script** + Scopy data capture - regular SPI. + +**Data Capture using Python** + +To evaluate the performance of the SPI transfers, the **ad7984_example.py** Python script is provided: .. figure:: system_evaluation_spi_python_script.png :align: center :width: 80% -**System Evaluation – Python from the FPGA board** + Python test script. -.. figure:: system_evaluation_spi_python_from_fpga.png - :align: center - :width: 80% +Navigate to the workshop folder and run the script with the following parameters: + +.. shell:: + :user: root + :group: analog + + $ cd /media/workshop/ + $ python pyadi-iio/examples/ad7984_example.py local: 0 classic + WARNING: High-speed mode not enabled + Raw data saved to: spi_clasic_ad7984_captured_data.txt + Using sample rate: 10000.0 Hz for classic mode + FFT analysis saved as: spi_clasic_ad7984_fft_analysis.jpg + SNR: 39.615 dB, THD: -53.204 dBc, SFDR: 39.62 dBc + +The result of the Python script is a FFT analysis of the input signal, saved as **spi_clasic_ad7984_fft_analysis.jpg** in the present directory. To create a copy of the resulted image, use the following command in a terminal window on your local machine, and, when prompted for the password, type **analog**: + +.. code-block:: bash + + scp root@169.254.92.202:/media/workshop/spi_clasic_ad7984_fft_analysis.jpg spi_clasic_ad7984_fft_analysis.jpg + +.. important:: -**System Evaluation – Python Data Capture Results** + Make sure that the IP address and the path to the .jpg file match your setup. + +The ``scp`` command creates a copy of the .jpg file on the present working directory of your local machine, and it should look like the following image: .. figure:: system_evaluation_spi_python_capture.png :align: center :width: 80% -**System Evaluation – Python from a remote machine - optional** + FFT analysis - regular SPI. -.. figure:: system_evaluation_spi_python_from_remote_1.png - :align: center - :width: 80% +Adittionaly, the Python script can also be executed from the local machine, using the IP of the Cora development board: -.. figure:: system_evaluation_spi_python_from_remote_2.png - :align: center - :width: 80% +.. shell:: + :user: root + :group: analog + + ~/spi_workshop + $ python pyadi-iio/examples/ad7984_example.py ip:169.254.92.202 1 classic + WARNING: High-speed mode not enabled + Raw data saved to: spi_clasic_ad7984_captured_data.txt + Using sample rate: 10000.0 Hz for classic mode + FFT analysis saved as: spi_clasic_ad7984_fft_analysis.jpg + SNR: 39.615 dB, THD: -53.204 dBc, SFDR: 39.62 dBc + +.. important:: -**Data capture using Scopy 2.0 - SPI Engine** + The pyadi-iio repository needs to be set up on the local machine, using the same :ref:`steps presented before `. Make sure that the IP address and the paths match your setup. + +System Evaluation - SPI Engine +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +**Data Capture using Scopy** + +To visualize the data obtained using the SPI engine, move the EVAL-AD7984-PMDZ to the **JA** PMOD connector and select the **spi_engine_ad7984** channel in **ADC-Time** section, as shown in the image below: .. figure:: system_evaluation_scopy_spi_engine.png :align: center :width: 80% -**System Evaluation – Python from the FPGA board** + Scopy data capture - SPI engine. -.. figure:: system_evaluation_spie_python_from_fpga_1.png - :align: center - :width: 80% +**Data Capture using Python** + +To evaluate the performance of the SPI engine, run the **ad7984_example.py** script with the following parameters: + +.. shell:: + :user: root + :group: analog + + /media/workshop + $ python pyadi-iio/examples/ad7984_example.py local: 0 engine + Raw data saved to: spi_engine_ad7984_captured_data.txt + Using sample rate: 1330000.0 Hz for engine mode + FFT analysis saved as: spi_engine_ad7984_fft_analysis.jpg + SNR: 70.394 dB, THD: -66.987 dBc, SFDR: 70.37 dBc -**System Evaluation – Python Data Capture Results** + +Use the following command, with **analog** as password, to create a copy of **spi_engine_ad7984_fft_analysis.jpg** on your local machine: + +.. code-block:: bash + + scp root@169.254.92.202:/media/workshop/spi_engine_ad7984_fft_analysis.jpg spi_engine_ad7984_fft_analysis.jpg + +.. important:: + + Make sure that the IP address and the path to the .jpg file match your setup. + +The results obtained should resamble the image below: .. figure:: system_evaluation_spie_python_from_fpga_2.png :align: center :width: 80% -**System Evaluation – Python from a remote machine - optional** + FFT analysis - SPI engine. -.. figure:: system_evaluation_spie_python_from_remote_1.png - :align: center - :width: 80% +Similar to the previous case, the Python script can be executed from the local machine, for the SPI engine scenario, as shown below: + +.. shell:: + :user: root + :group: analog + + ~/spi_workshop + $ python pyadi-iio/examples/ad7984_example.py ip:169.254.92.202 1 engine + Raw data saved to: spi_engine_ad7984_captured_data.txt + Using sample rate: 1330000.0 Hz for engine mode + FFT analysis saved as: spi_engine_ad7984_fft_analysis.jpg + SNR: 70.394 dB, THD: -66.987 dBc, SFDR: 70.37 dBc + +.. important:: + The pyadi-iio repository needs to be set up on the local machine, using the same :ref:`steps presented before `. Make sure that the IP address and the paths match your setup. -**System Evaluation – Performance Results Comparison** +Performance Results Comparison +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. note:: **SPI Engine Achieves Near-Datasheet Performance** @@ -1183,6 +1364,8 @@ Evaluate System :align: center :width: 85% + Performance comparison between the regular SPI controller and SPI engine. + **Performance Analysis:** .. list-table:: @@ -1206,8 +1389,9 @@ Evaluate System - Variable (μs range) - Deterministic (<1 ns) -.. important:: - **Key Takeaway**: The SPI Engine framework enables precision converters to achieve +.. admonition:: Key Takeaway + + The SPI Engine framework enables precision converters to achieve their full datasheet specifications by providing deterministic, low-jitter timing that traditional MCU SPI controllers cannot deliver. @@ -1223,26 +1407,54 @@ Evaluate System **Debug Options - Logic Analyzer from Scopy** +The M2K is used to probe the SPI signals on pins IO0-IO3 on the Cora Z7S development board. To visualize the signals, open the Logic Analyzer in Scopy and cofigure it as shown in the images below: + .. figure:: system_evaluation_m2k_1.png :align: center :width: 80% -| + Scopy logic analyzer setup - 1. .. figure:: system_evaluation_m2k_2.png :align: center :width: 80% + Scopy logic analyzer setup - 2. + +By default, the signals on pins IO0-IO3 correspond to the regular SPI scenario. To see the signals for the SPI engine scenario, you need to change the value of **GPIO[34]** to 1, following the steps in the figure below: + +.. figure:: one_bit_adc_toggle.png + :align: center + :width: 80% + + Switching between debug signals. + +.. important:: + + To visualize the SPI signals for the SPI engine scenario, a higher bandwidth oscilloscope must be used. + **Debug Options – Integrated Logic Analyzer (ILA)** +For further debuging options, two ILA instances have been added to the design as shown in the diagram below: + .. figure:: use_case_debug_options_ila.png :align: center :width: 600px Xilinx ILA configuration for capturing SPI Engine signals and debugging timing issues. +To use the ILA, open the Hardware Manage in Vivado and connect to the Cora development board. After you successfully connected to the target, configure the probes by clicking on **Specify the probes file and refresh the device**, navigating to ``~/spi_workshop/hdl/projects/pulsar_adc_pmdz/coraz7s``, selecting **debug_nets.ltx**, and refreshing the device, as shown below: + +.. figure:: ila_probe_specify.png + :align: center + :width: 85% + + ILA probe setup. + **Comparison: Regular SPI vs. SPI Engine Waveforms** +After successfully configuring the probes, **hw_ila_1** and **hw_ila_2** can be used to visualize the SPI signals for the regular and engine use cases. The images below show the comparison between the two cases, using ILA: + .. figure:: use_case_debug_options_spi.png :align: center :width: 85% @@ -1286,8 +1498,7 @@ Conclusions - Near-datasheet AC performance (>79% SNR achievement) - Minimal CPU overhead (<1%) -#. **Production-Ready Solution Stack**: The complete COS (Customer Obsession through - Software) open-source ecosystem provides HDL, Linux drivers, and tools for rapid +#. **Production-Ready Solution Stack**: The complete open-source ecosystem provides HDL, Linux drivers, and tools for rapid development and deployment. **Performance Achieved:** @@ -1309,9 +1520,6 @@ Conclusions **Questions? Community Support:** -:ez:`community/university-program` - -**Hardware Reference:** - -.. _Cora Z7S: https://digilent.com/shop/cora-z7-zynq-7000-single-core-for-arm-fpga-soc-developmen +For technical questions and community discussions: +:ez:`community/university-program` diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/intro_ip_library.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/intro_ip_library.png deleted file mode 100644 index c8f508532eb..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/intro_ip_library.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:137c4e2b27cfc09c879863c606b37afcc93689fc8a97b3aaa4686be876d82a42 -size 243345 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/intro_spie.svg b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/intro_spie.svg deleted file mode 100644 index 75ec97f4f58..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/intro_spie.svg +++ /dev/null @@ -1,654 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Driver - - - App - - - - App - - ... - - CSG - - - CSG - - - - CSG - - CSE - - ... - ... - - - - - - - - - - Interconnect - SPI Bus - CSE = Command Stream Execution - CSG = Command Stream Generator - Interface Logic - Application Logic - - - CTRL - - - - Custom Software - - Standard Software - - - Standard HDL Block - - Custom HDL Block - - diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/intro_typical_system.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/intro_typical_system.png deleted file mode 100644 index 88159c22e0b..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/intro_typical_system.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aa6df9b2be41a18146537563cc9a496d152feb120bbf72825749be67845153e6 -size 859215 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/jesd204_chain.svg b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/jesd204_chain.svg deleted file mode 100644 index b5002efbc90..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/jesd204_chain.svg +++ /dev/null @@ -1,1409 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - Clockdevice - - - FPGA / SoC - - - - PhyLayer - - - - - - - - - - SYNC~* - - Softwaredrivers - - - - - Application specific user-definedHDL component - - - - Standard HDLcomponents - - - - External hardwarecomponents - - - AXI-LITE - - SPI - FPGA / SoC - - - - PhyLayer - - - - - - - - - - CPU /MCU - - - - SYNC~* - JESD204B/C TX Chain - JESD204B/C RX Chain - - - DAC ConverterDevice - - - - - - - - - LinkLayer - - - - - - - - - - TransportLayer - - - - - - - - - ADC ConverterDevice - - - - - - - - - LinkLayer - - - - - - - - - - TransportLayer - - - - - - - * SYNC~ present in JESD204B only - - - ApplicationLayer - - - - - - - - - Clockdevice - - AXI-LITE - - SPI - - - CPU /MCU - - - - ApplicationLayer - - - - - - - - diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/one_bit_adc_toggle.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/one_bit_adc_toggle.png new file mode 100644 index 00000000000..f6521a34ca6 --- /dev/null +++ b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/one_bit_adc_toggle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6edbec726cfa7cc064030d6578935e14fe4c714fa65e85aea97445e687a44ce8 +size 199089 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/section_of_the_IPs_supported.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/section_of_the_ips_supported.png similarity index 100% rename from docs/learning/workshop_a_precision_converter_fpga_integration_journey/section_of_the_IPs_supported.png rename to docs/learning/workshop_a_precision_converter_fpga_integration_journey/section_of_the_ips_supported.png diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/spi_modes_2.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/spi_modes_2.png deleted file mode 100644 index 6b2e94db1f0..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/spi_modes_2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3f58bc669808fd4b7bc29522d4a650e04f6fcdcae27cca99dbbd3babd4a72650 -size 167236 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/spie_framework.svg b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/spie_framework.svg deleted file mode 100644 index 8499c8c5262..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/spie_framework.svg +++ /dev/null @@ -1,588 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Driver - - - App - - - - App - - ... - - - CSG - - - - CSG - - - - CSG - - CSE - - ... - - - - - - - - - - - Interconnect - CSIF - CSIF - CSIF - CSIF - CSIF = Command Stream Interface - CSI = Command Stream Interconnect - CSE = Command Stream Execution - CSG = Command Stream Generator - Interface Logic - Application Logic - Software Logic - - - - diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_cora.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_cora.png index 7812c5b2b03..842063caa1a 100644 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_cora.png +++ b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_cora.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5f7e4e0efa48a6b3f989652322c744bffaf58bca2ab1ea27db062f08127d4495 -size 744614 +oid sha256:43c7d997d163c188a0ca53b6ed324cd2911e43f98dfda96217e5c6b5752c9ae0 +size 1893240 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_ip.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_ip.png deleted file mode 100644 index 345577acb96..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_ip.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2f2b5edf194cc26d69239d2c12ebc49e9b5e76ed490aa9289bbe313ca9cce445 -size 210256 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_m2k.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_m2k.png deleted file mode 100644 index cde5b796f73..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_m2k.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:42dd726123d7bb071d65ac01b42dce5e2913e2afa6d6e4f66c61bef2539196c8 -size 353689 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_schematic.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_schematic.png index 977bac5cc8b..1f57bec69af 100644 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_schematic.png +++ b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_schematic.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4547eb9f94f4438367846e57cb6aab98b23e988b087029852d0a5c48c555a0ed -size 807258 +oid sha256:57e93a7911ee2ba50a97e74495cb7b365d11a1163a48d9636702b63e30aa1629 +size 2476554 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_scopy.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_scopy.png deleted file mode 100644 index 272ddca6611..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_build_scopy.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:53f00552d1f8793f44778b6143393c33ba6a767b6d96ab69c2a0d90bc4c82793 -size 123770 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_analyse_results.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_analyse_results.png deleted file mode 100644 index 734bf08cd6e..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_analyse_results.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e820ccd9412a92bdc776ec7acc67e2b2fc95cff23900ece43aa2e3de670c2397 -size 14594 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_analyse_results_spi_1k5.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_analyse_results_spi_1k5.png deleted file mode 100644 index 47c18e5a2e3..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_analyse_results_spi_1k5.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d5fcbb4c5b4092e3d76d76dfb885e8fdf2cccbe6e34bfe86a5c0d17eaa8add67 -size 83037 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_analyse_results_spie_1k5.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_analyse_results_spie_1k5.png deleted file mode 100644 index f26fd6da641..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_analyse_results_spie_1k5.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6b34cada11ef4232323d9faf81b4fa144ceb49436889a2f5753a1b40872e0088 -size 84353 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_analyse_results_spie_1m3.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_analyse_results_spie_1m3.png deleted file mode 100644 index 3c64861460f..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_analyse_results_spie_1m3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:709f2f0a4a877f0c56007980d87e9e3e74b94b3f415e1659e77cb51cc897e25f -size 83920 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_cora_and_iio_osc.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_cora_and_iio_osc.png deleted file mode 100644 index f9b964f1009..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_cora_and_iio_osc.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7deb3e3e1f7590a5fcf689725d67360eebb624eba8b73fcf6fc03a9795c78e82 -size 1228965 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_iio_osc_1.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_iio_osc_1.png deleted file mode 100644 index 32961b13c54..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_iio_osc_1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:06a53c376a8de4c6ecbfd3621c6049af7c14bc5bdddefffceceeb1c5ab55c190 -size 91211 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_iio_osc_2.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_iio_osc_2.png deleted file mode 100644 index 53fe33451f8..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_iio_osc_2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:70c97466e5757edfe6ae400dcf661ee812596c49c58d182959f1669fa5729692 -size 719254 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_fpga.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_fpga.png deleted file mode 100644 index 05cfdd5e318..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_fpga.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c18d7761fbc30351578b8cfa93aab8be74e477b5a9166224ffa9d0c341ac2dc4 -size 362560 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_fpga_1.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_fpga_1.png deleted file mode 100644 index 8529a4f20a4..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_fpga_1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:427c6c6631c8a47fcb21fcd302e32f007fb7309f756186136ed315dc3c04cec3 -size 307007 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_fpga_2.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_fpga_2.png deleted file mode 100644 index 6ffdc003c6e..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_fpga_2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5b7e214d1cefd93db840e214255d0e4e3e487c9a9e94b06a90fe902275e3c010 -size 273034 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_remote_1.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_remote_1.png deleted file mode 100644 index 5d49fee8ac8..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_remote_1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8a48d043151445741811a1c7ec12477fbe3c396551e8aa8996b0faad856aff8c -size 402077 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_remote_2.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_remote_2.png deleted file mode 100644 index 0625d4bc03a..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_remote_2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:12077e2a9b4f8b24c52fe1f9ba717325d6d380b8adaa73cf27f461e012fd61d9 -size 409403 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_remote_3.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_remote_3.png deleted file mode 100644 index 0322ced3e1e..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_python_from_remote_3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3cfbeedd13ebdd6e2d03188febff4be74b2d962972932ed106a1a3d6db943abc -size 99251 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_trigger_1.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_trigger_1.png deleted file mode 100644 index 9f2f5597766..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_trigger_1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cf528599d0ab0e4e841e3eb134af4bb50f5e2a3672a594b175d91eb3cf41c0e4 -size 277206 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_trigger_2.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_trigger_2.png deleted file mode 100644 index 9e3e1d22947..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spi_trigger_2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8f8412e75263ee618686e601c9e31a1278a4dda413a48520bc4ff195c888e236 -size 157414 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spie_python_from_fpga_1.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spie_python_from_fpga_1.png deleted file mode 100644 index 34c796db52d..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spie_python_from_fpga_1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4afc25e9cdf715518bc1d04ceebf8a84fc5a5e0d3eb8564f2a37a42387bde4c5 -size 198437 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spie_python_from_remote_1.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spie_python_from_remote_1.png deleted file mode 100644 index b192c5a534d..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spie_python_from_remote_1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0807c2f980587557edc47c3f7e43f14f8facc36c12159a94669e8f3e819786ae -size 333248 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spie_python_from_remote_2.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spie_python_from_remote_2.png deleted file mode 100644 index e2e093c759b..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spie_python_from_remote_2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b749eb2176381b1c6d1e24bb8b1114130b90bb46562ef045ee7b4a517b699019 -size 30639 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spie_python_from_remote_3.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spie_python_from_remote_3.png deleted file mode 100644 index 863f397633e..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/system_evaluation_spie_python_from_remote_3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:18ab4d94ce7994e1e697295ccb3e03a2e8e6674bfdb0e29e4990c69111598616 -size 122709 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/table_what_support.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/table_what_support.png deleted file mode 100644 index 0d92c0d0300..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/table_what_support.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fb741ceeacab96738b451ceba848dd9b83d7e1c025b03da0fef7121d8ae7d96a -size 19908 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/use_case_hdl_bd.svg b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/use_case_hdl_bd.svg deleted file mode 100644 index daafb129fd4..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/use_case_hdl_bd.svg +++ /dev/null @@ -1,2118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32b - - - - - OFFLOAD - - - - - REGMAP - - - - EXECUTION - - - - - - - - - - - - - - - Ethernet - UART - DDRx - SPI - I2C - Interrupts - Timer - - MEMORY INTERCONNECT - Cora Z7S - - - PMOD JA - - - PULSAR_ADC_DMA - 80MHz - - - - EXECUTION - - - - - OFFLOAD - - - - - REGMAP - - - ARM (Zynq) - Zynq SoC - SPI ENGINE FRAMEWORK - - - - - - MISO/SDI - CS - MOSI/SDO - SCLK - - - 25MHz - - - - MISO/SDI - CS - MOSI/SDO - SCLK - - - - - PMOD JB - - DEBUG PINS - - - gpio_o[34] - - - - - - - - - - - - - - - - - - AXI PWMGEN - - - - AXI CLKGEN - - - spi_clk = 160MHz - sys_clk = 100MHz - - - - - - - - INTERCONNECT - - trigger - - - 32b - - - - - - - - - diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/use_case_jitter.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/use_case_jitter.png deleted file mode 100644 index 37fe9992a4e..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/use_case_jitter.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1e4030f8e6b606b13f74978fc606fdc81c37bc4683cc9f4b6605b346d2a708da -size 9566 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/use_case_snr.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/use_case_snr.png deleted file mode 100644 index 114fa748e84..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/use_case_snr.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0adc3f07ba401b0b5705ef644c44632b42dfff47a0b5e75e28e66236239ade09 -size 282561 diff --git a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/use_case_typical_app.png b/docs/learning/workshop_a_precision_converter_fpga_integration_journey/use_case_typical_app.png deleted file mode 100644 index 3846e369297..00000000000 --- a/docs/learning/workshop_a_precision_converter_fpga_integration_journey/use_case_typical_app.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0a1b6ff70389908670141bcfe93e27900ccfd2a04b211272dc082d779601dc17 -size 57460 diff --git a/docs/learning/workshop_kuiper/index.rst b/docs/learning/workshop_kuiper/index.rst index 64780ca5a3d..edf53653060 100644 --- a/docs/learning/workshop_kuiper/index.rst +++ b/docs/learning/workshop_kuiper/index.rst @@ -103,7 +103,7 @@ Unlocking the Power of Kuiper 2 *Stages Anatomy* -The adi-kuiper-gen repository structure includes: +The kuiper repository structure includes: - **ci/** - Support for automatic builds in GitHub Actions - **docs/** - Support for GitHub Documentation @@ -191,19 +191,19 @@ beyond the standard configuration options. To use extra scripts: -1. **Add the script** - Place your script file inside the adi-kuiper-gen/stages +1. **Add the script** - Place your script file inside the kuiper/stages directory 2. **Make it executable** - Make sure your script is executable: ``chmod +x your-script.sh`` 3. **Add the path** - Set EXTRA_SCRIPT in the config file to your script's - path, relative to adi-kuiper-gen directory + path, relative to kuiper directory Hands-on activity ----------------- By the end of this workshop, you will learn: -* How to build a custom Kuiper 2 image using adi-kuiper-gen +* How to build a custom Kuiper 2 image using kuiper * How to prepare SD cards for different carrier boards * How to explore IIO devices and connect to target boards * How to build and load kernel modules @@ -245,7 +245,7 @@ Preparing the Raspberry Pi 5 SD Card 2. Unzip the downloaded file to extract the image. 3. Write the image to an SD card by following the - :external+adi-kuiper-gen:ref:`Writing the Image to an SD Card + :external+kuiper:ref:`Writing the Image to an SD Card ` guide. Preparing the CoraZ7S SD Card @@ -257,7 +257,7 @@ Preparing the CoraZ7S SD Card 2. Unzip the downloaded file to extract the image. 3. Write the image to an SD card by following the - :external+adi-kuiper-gen:ref:`Writing the Image to an SD Card + :external+kuiper:ref:`Writing the Image to an SD Card ` guide. Preparing the Jupiter SD Card @@ -269,7 +269,7 @@ Preparing the Jupiter SD Card 2. Unzip the downloaded file to extract the image. 3. Write the image to an SD card by following the - :external+adi-kuiper-gen:ref:`Writing the Image to an SD Card + :external+kuiper:ref:`Writing the Image to an SD Card ` guide. Preparing the Raspberry Pi 4 SD Card @@ -281,7 +281,7 @@ Preparing the Raspberry Pi 4 SD Card 2. Unzip the downloaded file to extract the image. 3. Write the image to an SD card by following the - :external+adi-kuiper-gen:ref:`Writing the Image to an SD Card + :external+kuiper:ref:`Writing the Image to an SD Card ` guide. ---- @@ -307,13 +307,13 @@ Build a Custom Kuiper 2 Image In this exercise you will learn how to build a Kuiper 2 image that runs a custom script. -1. Open a terminal, clone the adi-kuiper-gen repository, move inside it and +1. Open a terminal, clone the kuiper repository, move inside it and start Visual Studio Code: .. code-block:: bash - git clone https://github.com/analogdevicesinc/adi-kuiper-gen - cd adi-kuiper-gen + git clone https://github.com/analogdevicesinc/kuiper + cd kuiper code . 2. Modify the *config* file in the project as follows: @@ -1066,7 +1066,7 @@ and will boot it on the Raspberry Pi 5 in front of you. 1. Power-off the carrier board in front of you (CoraZ7s, Raspberry Pi 4 or Jupiter SDR), take the SD card from it and connect it to the Raspberry Pi 5. -2. Open a terminal in adi-kuiper-gen/kuiper-volume folder, unarchive and copy +2. Open a terminal in kuiper/kuiper-volume folder, unarchive and copy the Kuiper image on the SD card. Use lsblk command to check the partition. As you saw earlier, the SD card from the adapter is mounted at SDA. @@ -1121,9 +1121,9 @@ Resources **Kuiper** -:external+adi-kuiper-gen:doc:`index` +:external+kuiper:doc:`index` -:git-adi-kuiper-gen:`adi-kuiper-gen Repository ` +:git-kuiper:`kuiper Repository ` **Hardware** diff --git a/docs/learning/workshops_applied_systems_control/Applied_systems_control.pptx b/docs/learning/workshops_applied_systems_control/Applied_systems_control.pptx deleted file mode 100644 index 31e35d0573e..00000000000 --- a/docs/learning/workshops_applied_systems_control/Applied_systems_control.pptx +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1752ab7768417d444c628784c1c406a33e81b415e2bc2b5bd7f66242cd69a237 -size 55658803 diff --git a/docs/learning/workshops_applied_systems_control/applied_systems_control_booklet.pdf b/docs/learning/workshops_applied_systems_control/applied_systems_control_booklet.pdf deleted file mode 100644 index 45140e9a2e8..00000000000 Binary files a/docs/learning/workshops_applied_systems_control/applied_systems_control_booklet.pdf and /dev/null differ diff --git a/docs/learning/workshops_applied_systems_control/applied_systems_control_workshop.pptx b/docs/learning/workshops_applied_systems_control/applied_systems_control_workshop.pptx new file mode 100644 index 00000000000..c9ec525bc91 --- /dev/null +++ b/docs/learning/workshops_applied_systems_control/applied_systems_control_workshop.pptx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f784deb12974388f071fd32914a58eecee41a7867eb6e792a1d81d86a8c5fb2 +size 54867802 diff --git a/docs/learning/workshops_applied_systems_control/applied_systems_control_workshop_booklet.pdf b/docs/learning/workshops_applied_systems_control/applied_systems_control_workshop_booklet.pdf new file mode 100644 index 00000000000..460e08ba78f Binary files /dev/null and b/docs/learning/workshops_applied_systems_control/applied_systems_control_workshop_booklet.pdf differ diff --git a/docs/learning/workshops_applied_systems_control/index.rst b/docs/learning/workshops_applied_systems_control/index.rst index 8ab6197677d..ba438655b96 100644 --- a/docs/learning/workshops_applied_systems_control/index.rst +++ b/docs/learning/workshops_applied_systems_control/index.rst @@ -18,6 +18,24 @@ This workshop provides an introduction to applied systems control, focusing on practical applications and real-world scenarios. Participants will learn about various control systems, their design and implementation. +Slide Deck and Booklet +~~~~~~~~~~~~~~~~~~~~~~ + +Since this tutorial is also designed to be presented as a live, hands-on +workshop, a slide deck is provided here: + +.. admonition:: Download + + :download:`Applied Systems Control Slide Deck <../workshops_applied_systems_control/applied_systems_control_workshop.pptx>` + +A complete booklet of the hands-on activity is also provided, either as a companion to +following the tutorial yourself: + +.. admonition:: Download + + :download:`Applied Systems Control Booklet <../workshops_applied_systems_control/applied_systems_control_workshop_booklet.pdf>` + + Theoretical content ~~~~~~~~~~~~~~~~~~~ @@ -30,6 +48,7 @@ Theoretical content :width: 500 :align: right + Overview of industrial control and automation systems ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -80,6 +99,7 @@ Overview of industrial control and automation systems .. image:: 2.png :width: 350 + Industrial automation components ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -124,6 +144,7 @@ Industrial automation components .. image:: plc.png :width: 250 + Common control strategies ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -154,6 +175,7 @@ Common control strategies used in applications where precise control is not required, such as in heating systems. + **Introduction to PWM control** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -170,6 +192,7 @@ of the on time to the total cycle time (duty cycle) determining the average power delivered to the load. By adjusting the duty cycle, the effective voltage and current can be controlled, allowing for precise control of devices. + **Applications of PWM control include:** - Motor speed control: By varying the duty cycle, the speed of DC motors can be @@ -186,6 +209,7 @@ and current can be controlled, allowing for precise control of devices. :width: 500 :align: center + Introduction to PID control ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -276,12 +300,13 @@ It includes: **Kit contents** - | 1 x 10BASE-T1L TO USB adapter board | 1 x Profibus cable for single pair Ethernet (SPE) Connectivity | 1 x USB 2.0 cable | 1 x cable connector for external 24V power supply | 1 x cable connector for channels connectivity +| 1 x Raspberry Pi 5 +| 1 x Raspberry Pi 5 Type-C power supply .. figure:: kit.png :alt: AD-SWIOT1L-SL kit contents @@ -290,26 +315,42 @@ It includes: AD-SWIOT1L-SL kit contents + Hands-on activity ~~~~~~~~~~~~~~~~~~~~~ Participants will engage in hands-on activities to apply the theoretical concepts learned. The activities will include: -#. Booting your PC Linux +#. Power on the Raspberry Pi 5 board using a Type-C power supply and boot it. #. Power the AD-SWIOT1L-SL board by plugging in the power supply. -#. Connect the USB to T1L media converter to your PC and the AD-SWIOT1L-SL - board. After a short time, both link status LEDs(on the media converter and +#. Connect the USB to T1L media converter to your Raspberry 5 board using a + micro-USB cable. + +#. Connect the USB to T1L media converter to the AD-SWIOT1L-SL + board using the PROFIBUS cable. After a short time, both link status LEDs(on the media converter and the board) should be on. +#. Connect the Raspberry Pi 5 to a display using a HDMI to Micro-HDMI cable, and + connect a keyboard and mouse to the USB ports. + +In the end, your setup should look like this: + + .. image:: system_setup.jpg + :alt: System setup with Raspberry Pi 5 and AD-SWIOT1L-SL boards connected + :width: 600 + :align: center + + System setup with Raspberry Pi 5 and AD-SWIOT1L-SL boards connected + #. Testing the board connectivity - - Open a terminal and run the command: ``ping 169.254.97.40`` This command - will rule out the host (PC) network configuration issues. + - Open a terminal and run the command: ``ping 192.168.97.40`` This command + will rule out the host (RPi 5) network configuration issues. - If the ping command is not successful run ``sudo ip route add - 169.254.97.40 dev eth0`` to add a route to the board's IP address. + 192.168.97.40 dev eth0`` to add a route to the board's IP address. .. image:: ping.png :alt: Ping command output @@ -338,23 +379,6 @@ concepts learned. The activities will include: System setup -Slide Deck and Booklet -~~~~~~~~~~~~~~~~~~~~~~ - -Since this tutorial is also designed to be presented as a live, hands-on -workshop, a slide deck is provided here: - -.. admonition:: Download - - :download:`Applied Systems Control Slide Deck <../workshops_applied_systems_control/Applied_systems_control.pptx>` - -A complete booklet of the hands-on activity is also provided, either as a companion to -following the tutorial yourself: - -.. admonition:: Download - - :download:`Applied Systems Control Booklet <../workshops_applied_systems_control/applied_systems_control_booklet.pdf>` - **Exercise 1: Power the RGB LED red, green and blue** - Open file exercise_2.py diff --git a/docs/learning/workshops_applied_systems_control/ping.png b/docs/learning/workshops_applied_systems_control/ping.png index 54ede74caa3..a9b7b929a16 100644 --- a/docs/learning/workshops_applied_systems_control/ping.png +++ b/docs/learning/workshops_applied_systems_control/ping.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1d8485279fdf5353fb757ea61e2fb9e840bf9e69001e2c064e9a50a316e80847 -size 59336 +oid sha256:1a5ff1a25407e165796f18ea36a2d6eb5803b27f566b25ebb7ddba1262830220 +size 105554 diff --git a/docs/learning/workshops_applied_systems_control/pwm_example.webp b/docs/learning/workshops_applied_systems_control/pwm_example.webp deleted file mode 100644 index eeef9bf58d8..00000000000 Binary files a/docs/learning/workshops_applied_systems_control/pwm_example.webp and /dev/null differ diff --git a/docs/learning/workshops_applied_systems_control/system_setup.jpg b/docs/learning/workshops_applied_systems_control/system_setup.jpg new file mode 100644 index 00000000000..e07277b4826 --- /dev/null +++ b/docs/learning/workshops_applied_systems_control/system_setup.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72f1685bdcef7979cf4babe295c703191633235a5b65b521d685b0475dec74c1 +size 170249 diff --git a/docs/learning/workshops_embedded_baremetal/images/api2.png b/docs/learning/workshops_embedded_baremetal/images/api2.png deleted file mode 100644 index 096ccc49ae9..00000000000 --- a/docs/learning/workshops_embedded_baremetal/images/api2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7f269557667b1de313a8a817ace9fabf7551b95d0b2da097b6166c7ce9c23eb2 -size 168480 diff --git a/docs/learning/workshops_embedded_baremetal/index.rst b/docs/learning/workshops_embedded_baremetal/index.rst index c793c120446..3f64709f46a 100644 --- a/docs/learning/workshops_embedded_baremetal/index.rst +++ b/docs/learning/workshops_embedded_baremetal/index.rst @@ -319,7 +319,7 @@ pre-installed. This is the fastest way to get started. 2. Unzip the downloaded file to extract the image. 3. Write the image to an SD card by following the - :external+adi-kuiper-gen:ref:`Writing the Image to an SD Card + :external+kuiper:ref:`Writing the Image to an SD Card ` guide. 4. Insert the SD card into your Raspberry Pi 5 and power it on. diff --git a/docs/learning/workshops_embedded_linux/index.rst b/docs/learning/workshops_embedded_linux/index.rst index 4cc806e28be..8fc0fb126e7 100644 --- a/docs/learning/workshops_embedded_linux/index.rst +++ b/docs/learning/workshops_embedded_linux/index.rst @@ -291,7 +291,7 @@ Preparing the Raspberry Pi 5 SD Card 2. Unzip the downloaded file to extract the image. 3. Write the image to an SD card by following the - :external+adi-kuiper-gen:ref:`Writing the Image to an SD Card + :external+kuiper:ref:`Writing the Image to an SD Card ` guide. Preparing the CoraZ7S SD Card @@ -303,7 +303,7 @@ Preparing the CoraZ7S SD Card 2. Unzip the downloaded file to extract the image. 3. Write the image to an SD card by following the - :external+adi-kuiper-gen:ref:`Writing the Image to an SD Card + :external+kuiper:ref:`Writing the Image to an SD Card ` guide. Once both SD cards are prepared, proceed to the hardware setup below. diff --git a/docs/learning/workshops_introduction_to_electronics/BaseVoltage.csv b/docs/learning/workshops_introduction_to_electronics/basevoltage.csv similarity index 100% rename from docs/learning/workshops_introduction_to_electronics/BaseVoltage.csv rename to docs/learning/workshops_introduction_to_electronics/basevoltage.csv diff --git a/docs/learning/workshops_introduction_to_electronics/Ebasics Booklet.pdf b/docs/learning/workshops_introduction_to_electronics/ebasics booklet.pdf similarity index 100% rename from docs/learning/workshops_introduction_to_electronics/Ebasics Booklet.pdf rename to docs/learning/workshops_introduction_to_electronics/ebasics booklet.pdf diff --git a/docs/learning/workshops_introduction_to_electronics/ElectronicsBasics_nov24.pdf b/docs/learning/workshops_introduction_to_electronics/electronicsbasics_nov24.pdf similarity index 100% rename from docs/learning/workshops_introduction_to_electronics/ElectronicsBasics_nov24.pdf rename to docs/learning/workshops_introduction_to_electronics/electronicsbasics_nov24.pdf diff --git a/docs/learning/workshops_introduction_to_electronics/index.rst b/docs/learning/workshops_introduction_to_electronics/index.rst index 60c30739e20..8b6d31f439a 100644 --- a/docs/learning/workshops_introduction_to_electronics/index.rst +++ b/docs/learning/workshops_introduction_to_electronics/index.rst @@ -267,13 +267,13 @@ Components Pinout .. grid:: :widths: 33% 33% 33% - .. figure:: SN74HC04N.png + .. figure:: sn74hc04n.png :width: 300 :alt: SN74HC04N SN74HC04N - .. figure:: SN74HC08N.png + .. figure:: sn74hc08n.png :width: 300 :alt: SN74HC08N @@ -319,7 +319,7 @@ Steps: • Implement a logical OR function using SN74HC32N part from the kit • Pinout: -.. figure:: SN74HC32N.png +.. figure:: sn74hc32n.png :align: center :width: 300 @@ -438,20 +438,20 @@ workshop, a slide deck is provided here: .. admonition:: Download - :download:`Introduction to Electronics Slide Deck ` + :download:`Introduction to Electronics Slide Deck ` A complete booklet of the hands-on activity is also provided, as a companion to following the tutorial yourself: .. admonition:: Download - :download:`Introduction to Electronics Booklet ` + :download:`Introduction to Electronics Booklet ` Comma Separated Values file used for generating the base step voltage needed for the Transistor Characteristic demo: .. admonition:: Download - :download:`Base Voltage Values ` + :download:`Base Voltage Values ` Takeaways ~~~~~~~~~ diff --git a/docs/learning/workshops_introduction_to_electronics/SN74HC04N.png b/docs/learning/workshops_introduction_to_electronics/sn74hc04n.png similarity index 100% rename from docs/learning/workshops_introduction_to_electronics/SN74HC04N.png rename to docs/learning/workshops_introduction_to_electronics/sn74hc04n.png diff --git a/docs/learning/workshops_introduction_to_electronics/SN74HC08N.png b/docs/learning/workshops_introduction_to_electronics/sn74hc08n.png similarity index 100% rename from docs/learning/workshops_introduction_to_electronics/SN74HC08N.png rename to docs/learning/workshops_introduction_to_electronics/sn74hc08n.png diff --git a/docs/learning/workshops_introduction_to_electronics/SN74HC32N.png b/docs/learning/workshops_introduction_to_electronics/sn74hc32n.png similarity index 100% rename from docs/learning/workshops_introduction_to_electronics/SN74HC32N.png rename to docs/learning/workshops_introduction_to_electronics/sn74hc32n.png diff --git a/docs/learning/workshops_software_defined_instrumentation/index.rst b/docs/learning/workshops_software_defined_instrumentation/index.rst index 27af9a0afdf..e8a86c64eca 100644 --- a/docs/learning/workshops_software_defined_instrumentation/index.rst +++ b/docs/learning/workshops_software_defined_instrumentation/index.rst @@ -226,14 +226,14 @@ workshop, a slide deck is provided here: .. admonition:: Download - :download:`Software Defined Instrumentation Slide Deck ` + :download:`Software Defined Instrumentation Slide Deck ` A complete booklet of the hands-on activity is also provided, as a companion to following the tutorial yourself: .. admonition:: Download - :download:`Software Defined Instrumentation Booklet ` + :download:`Software Defined Instrumentation Booklet ` Takeaways @@ -255,7 +255,7 @@ Resources *ADALM2000 Wiki* :dokuwiki:`university/tools/m2k` -:dokuwiki:`university/tools/m2k/accessories/bnc` +:ref:`ad-m2kbnc-ebz` :dokuwiki:`university/tools/m2k/accessories/power` *ADALM2000 Lab Activities* diff --git a/docs/learning/workshops_software_defined_instrumentation/SDI_Booklet.docx b/docs/learning/workshops_software_defined_instrumentation/sdi_booklet.docx similarity index 100% rename from docs/learning/workshops_software_defined_instrumentation/SDI_Booklet.docx rename to docs/learning/workshops_software_defined_instrumentation/sdi_booklet.docx diff --git a/docs/learning/workshops_software_defined_instrumentation/SDI_Workshop_2023.pptx b/docs/learning/workshops_software_defined_instrumentation/sdi_workshop_2023.pptx similarity index 100% rename from docs/learning/workshops_software_defined_instrumentation/SDI_Workshop_2023.pptx rename to docs/learning/workshops_software_defined_instrumentation/sdi_workshop_2023.pptx diff --git a/docs/linux/kernel/zynq.rst b/docs/linux/kernel/zynq.rst index eec741d615c..d42f299042a 100644 --- a/docs/linux/kernel/zynq.rst +++ b/docs/linux/kernel/zynq.rst @@ -371,7 +371,7 @@ The output files for building the kernel and device tree are **uImage** and **.dtb**. Refer to the code below to find their respective output directories. Take note that the device tree file needs to be renamed to **devicetree.dtb**. -See :external+adi-kuiper-gen:doc:`index` for more information in configuring the +See :external+kuiper:doc:`index` for more information in configuring the SD card with Kuiper. .. shell:: diff --git a/docs/linux/kernel/zynqmp.rst b/docs/linux/kernel/zynqmp.rst index 32ecf656f59..9aca3f3d7ee 100644 --- a/docs/linux/kernel/zynqmp.rst +++ b/docs/linux/kernel/zynqmp.rst @@ -200,7 +200,7 @@ The output files for building the kernel and device tree are **uImage** and **.dtb**. Refer to the code below to find their respective output directories. Take note that the device tree file needs to be renamed to **devicetree.dtb**. -See :external+adi-kuiper-gen:doc:`index` for more information in configuring the +See :external+kuiper:doc:`index` for more information in configuring the SD card with Kuiper. .. shell:: diff --git a/docs/linux/kuiper/index.rst b/docs/linux/kuiper/index.rst index 4f4a9d62109..23a9ee2cef9 100644 --- a/docs/linux/kuiper/index.rst +++ b/docs/linux/kuiper/index.rst @@ -8,7 +8,7 @@ Kuiper This page provides an overview of Kuiper Linux within the ADI software ecosystem. For complete build instructions, configuration options, and detailed guides, see the - :external+adi-kuiper-gen:doc:`the dedicated Kuiper documentation ` + :external+kuiper:doc:`the dedicated Kuiper documentation ` Kuiper is a specialized Debian-based Linux distribution designed specifically for Analog Devices hardware and evaluation boards. It provides a complete, @@ -80,11 +80,11 @@ Getting Started **Quick Start** Download pre-built images from - :git-adi-kuiper-gen:`GitHub Actions ` + :git-kuiper:`GitHub Actions ` **Custom Builds** Build your own configured image using - :git-adi-kuiper-gen:`adi-kuiper-gen ` + :git-kuiper:`kuiper ` **Prerequisites** Ubuntu 22.04 + Docker for building custom images @@ -100,9 +100,9 @@ Hardware Support Resources --------- -- **Source Code**: :git-adi-kuiper-gen:`adi-kuiper-gen ` -- **Pre-built Images**: :git-adi-kuiper-gen:`GitHub Actions +- **Source Code**: :git-kuiper:`kuiper ` +- **Pre-built Images**: :git-kuiper:`GitHub Actions ` -- **Issues and Bug Reports**: :git-adi-kuiper-gen:`GitHub Issues ` +- **Issues and Bug Reports**: :git-kuiper:`GitHub Issues ` - **Community Discussion**: :ez:`Linux Software Drivers Forum ` diff --git a/docs/products/adsp/index.rst b/docs/products/adsp/index.rst index 46c6abad26a..4a0a87ddc8c 100644 --- a/docs/products/adsp/index.rst +++ b/docs/products/adsp/index.rst @@ -3,12 +3,6 @@ Digital Signal Processors (ADSP) ================================ -.. toctree:: - :hidden: - :glob: - - * - ADI has a large portfolio of :adi:`Digital Signal Processors ` (see :adi:`Selection Table for Digital Signal Processors `). A subset of those processors include ARM Cortex cores and are prefixed with SC @@ -56,84 +50,11 @@ Cortex-A5 and Cortex-A55 can also run 32-bit or 64-bit Linux respectively. - :adi:`ADSP-SC594 ` - -Linux support -------------- - -ADI supports running Linux on all ADSP SoCs with Cortex-A5 and A55 cores. -That includes the following repositories. New features are tracked in the -`ADSP Github Project `__ -and coordinated with the community during weekly public office hours at 17:00 CET -on Thursdays using a -`Jitsi meeting `__. - -To set up new ADSP evaluation boards see :ref:`Getting Started `. - -Upstream forks --------------- - -The ADSP Linux team maintains branches based on upstream releases. Changes made -to support ADI hardware is upstreamed as quickly as possible. Until those -changes have been accepted upstream, they are maintained in the following ADI -forks. - -Release versions include the upstream version and a ADI specific release number -(e.g. ``1``, ``2``, ...). - -- Deprecated :git-lnxdsp-linux:`+`: - - v4.19 - :git-lnxdsp-linux:`Commits ` - - v5.4.183 - :git-lnxdsp-linux:`Commits ` - - v5.15.78 - :git-lnxdsp-linux:`Commits ` -- :git-linux:`+`: - - v6.12.0: - :git-linux:`Commits ` - :git-linux:`Release 1 ` - :git-linux:`Release 2 ` - - v6.12.38: - :git-linux:`Commits ` -- :git-u-boot:`+` - - v2025.07: - :git-u-boot:`Commits ` - :git-u-boot:`Release 1 ` - - v2025.10: - :git-u-boot:`Commits ` - :git-u-boot:`Release 1 ` - :git-u-boot:`Release 2 ` -- :git-buildroot:`+` - - v2025.05: - :git-buildroot:`Commits ` - :git-buildroot:`Release 1 ` - :git-buildroot:`Release 2 ` -- :git-trusted-firmware-a:`+` -- :git-optee_os:`+` -- :git-openocd:`+` - - :git-openocd:`0.12.0-1.0.0 ` - :git-openocd:`0.12.0-1.1.1 ` - :git-openocd:`0.12.0-1.1.2 ` - :git-openocd:`0.12.0-1.2.0 ` - :git-openocd:`0.12.0-1.3.0 ` - -ADI repositories ----------------- - -For Yocto support see ``lxndsp-adi-meta`` below. +.. toctree:: + :caption: Contents: + :titlesonly: -- :git-adsp-ldr:`+` - - :git-adsp-ldr:`v1.0.0 ` - :git-adsp-ldr:`v1.0.1 ` - :git-adsp-ldr:`v1.0.2 ` -- :git-lnxdsp-adi-meta:`+` - - Kirkstone: - :git-lnxdsp-adi-meta:`Release v3.0.0 ` - :git-lnxdsp-adi-meta:`Release v3.1.0 ` - :git-lnxdsp-adi-meta:`Release v3.1.1 ` - :git-lnxdsp-adi-meta:`Release v3.1.2 ` - - Scarthgap: - :git-lnxdsp-adi-meta:`Release v5.0.0 ` -- :git-lnxdsp-repo-manifest:`+` -- :git-br2-external:`+` - - v2025.05: - :git-br2-external:`Release 0.1.0 ` - :git-br2-external:`Release 0.2.0 ` + linux-support + setup + sc598-clock-tree + use-cases diff --git a/docs/products/adsp/linux-support.rst b/docs/products/adsp/linux-support.rst new file mode 100644 index 00000000000..3a5431be2a0 --- /dev/null +++ b/docs/products/adsp/linux-support.rst @@ -0,0 +1,92 @@ +.. _adsp linux-support: + +Linux support +------------- + +ADI supports running Linux on all ADSP SoCs with Cortex-A5 and A55 cores. +That includes the following repositories. New features are tracked in the +`ADSP Github Project `__ +and coordinated with the community during weekly public office hours at 17:00 CET +on Thursdays using a +`Jitsi meeting `__. + +To set up new ADSP evaluation boards see :ref:`Getting Started `. + +Upstream forks +^^^^^^^^^^^^^^ + +The ADSP Linux team maintains branches based on upstream releases. Changes made +to support ADI hardware is upstreamed as quickly as possible. Until those +changes have been accepted upstream, they are maintained in the following ADI +forks. + +Release versions include the upstream version and a ADI specific release number +(e.g. ``1``, ``2``, ...). + +- Deprecated :git-lnxdsp-linux:`+`: + - v4.19 + :git-lnxdsp-linux:`Commits ` + - v5.4.183 + :git-lnxdsp-linux:`Commits ` + - v5.15.78 + :git-lnxdsp-linux:`Commits ` +- :git-linux:`+`: + - v6.12.0: + :git-linux:`Commits ` + :git-linux:`Release 1 ` + :git-linux:`Release 2 ` + +.. + - v6.12.38: + :git-linux:`Commits ` + - v6.12.65: + :git-linux:`Commits ` + +- :git-u-boot:`+` + - v2025.07: + :git-u-boot:`Commits ` + :git-u-boot:`Release 1 ` + - v2025.10: + :git-u-boot:`Commits ` + :git-u-boot:`Release 1 ` + :git-u-boot:`Release 2 ` + - v2026.01: + :git-u-boot:`Commits ` +- :git-buildroot:`+` + - v2025.05: + :git-buildroot:`Commits ` + :git-buildroot:`Release 1 ` + :git-buildroot:`Release 2 ` +- :git-trusted-firmware-a:`+` +- :git-optee_os:`+` +- :git-openocd:`+` + - :git-openocd:`0.12.0-1.0.0 ` + :git-openocd:`0.12.0-1.1.1 ` + :git-openocd:`0.12.0-1.1.2 ` + :git-openocd:`0.12.0-1.2.0 ` + :git-openocd:`0.12.0-1.3.0 ` + :git-openocd:`0.12.0-1.3.1 ` + +ADI repositories +^^^^^^^^^^^^^^^^ + +For Yocto support see ``lxndsp-adi-meta`` below. + +- :git-adsp-ldr:`+` + - :git-adsp-ldr:`v1.0.0 ` + :git-adsp-ldr:`v1.0.1 ` + :git-adsp-ldr:`v1.0.2 ` +- :git-lnxdsp-adi-meta:`+` + - Kirkstone: + :git-lnxdsp-adi-meta:`Release v3.0.0 ` + :git-lnxdsp-adi-meta:`Release v3.1.0 ` + :git-lnxdsp-adi-meta:`Release v3.1.1 ` + :git-lnxdsp-adi-meta:`Release v3.1.2 ` + - Scarthgap: + :git-lnxdsp-adi-meta:`Release v5.0.0 ` + :git-lnxdsp-adi-meta:`Release v5.0.1 ` +- :git-lnxdsp-repo-manifest:`+` +- :git-br2-external:`+` + - v2025.05: + :git-br2-external:`Release 0.1.0 ` + :git-br2-external:`Release 0.2.0 ` diff --git a/docs/products/adsp/sc598-clock-tree.rst b/docs/products/adsp/sc598-clock-tree.rst new file mode 100644 index 00000000000..b93b0e88c68 --- /dev/null +++ b/docs/products/adsp/sc598-clock-tree.rst @@ -0,0 +1,134 @@ +.. _adsp sc598 clock tree: + +SC598 Clock Tree +================ + +.. mermaid:: + + graph LR + Crystal["SYS_CLKIN0
25 MHz
(sc5xx.dtsi:80)"] + + subgraph CGU0["CGU0 - Main CGU (clk-adi-sc598.c:100-209)"] + DF0["DF: ÷1
25 MHz"] + VCO0["VCO: ×80
2000 MHz
(CGU_CTL MSEL)"] + PLL0["PLLCLK: ÷2
1000 MHz
(line 125-128)"] + + CCLK0_0["CCLK0_0
500 MHz
÷2 (CDIV)"] + SYSCLK0["SYSCLK_0
250 MHz
÷4 (SYSSEL)"] + DCLK0["DCLK_0
333 MHz
÷3 (DDIV)"] + OCLK0["OCLK_0
62.5 MHz
÷16 (ODIV)"] + + SCLK0_0["SCLK0_0
62.5 MHz
÷4"] + SCLK1_0["SCLK1_0
125 MHz
÷2"] + + CCLK2_0["CCLK2_0
667 MHz
VCO÷3 direct
(line 158-161)"] + + DCLK0_HALF["DCLK_0_HALF
167 MHz
÷2 (line 223)"] + end + + subgraph CGU1["CGU1 - Secondary CGU (clk-adi-sc598.c:104-220)"] + DF1["DF: ÷1
25 MHz"] + VCO1["VCO: ×64
1600 MHz"] + PLL1["PLLCLK: ÷2
800 MHz"] + + CCLK0_1["CCLK0_1
400 MHz
÷2"] + SYSCLK1["SYSCLK_1
200 MHz
÷4"] + DCLK1["DCLK_1
400 MHz
÷2"] + OCLK1["OCLK_1
50 MHz
÷16"] + + SCLK0_1["SCLK0_1
50 MHz
÷4"] + SCLK1_1["SCLK1_1
100 MHz
÷2"] + + CCLK2_1["CCLK2_1
533 MHz
VCO÷3 direct"] + + SCLK1_1_HALF["SCLK1_1_HALF
50 MHz
÷2 (line 231)"] + end + + subgraph PLL3["3rd PLL - Optional DDR Source
(clk-adi-sc598.c:108-111, clkinit.c:383-440)"] + PLL3_VCO["VCO: ×64
1600 MHz"] + PLL3_OUT["3PLL_DDIV
400 MHz
÷2"] + PLL3_DDR_SEL["DDR Mux
(line 285-287)
selects DCLK_0 or 3PLL"] + end + + subgraph CDU["CDU - Clock Distribution (0x3108F000)"] + SHARC0["CLKO0: SHARC-FX
500 MHz
(CDU_CFG0)"] + SHARC1["CLKO1: SHARC1
500 MHz
(CDU_CFG1)"] + ARM["CLKO2: ARM
533 MHz
(CDU_CFG2)"] + DDR["CLKO3: DDR
333 MHz
(CDU_CFG3)"] + CAN["CLKO4: CAN
50 MHz
(CDU_CFG4)"] + SPDIF["CLKO5: SPDIF
125 MHz
(CDU_CFG5)"] + SPI["CLKO6: SPI
62.5 MHz
(CDU_CFG6)"] + GIGE["CLKO7: GigE
62.5 MHz
(CDU_CFG7)"] + LP["CLKO8: LP
400 MHz
(CDU_CFG8)"] + LP_DDR["CLKO9: LP_DDR
62.5 MHz
(CDU_CFG9)"] + OSPI["CLKO10: OSPI
100 MHz
(CDU_CFG10)"] + TRACE["CLKO12: TRACE
62.5 MHz
(CDU_CFG12)"] + EMMC["CLKO13: EMMC
167 MHz
(CDU_CFG13)"] + EMMC_TMR["CLKO14: EMMC_TMR
50 MHz
(CDU_CFG14)"] + end + + Crystal --> DF0 + Crystal --> DF1 + Crystal --> PLL3_VCO + + DF0 --> VCO0 + VCO0 --> PLL0 + VCO0 --> CCLK2_0 + + PLL0 --> CCLK0_0 + PLL0 --> SYSCLK0 + PLL0 --> DCLK0 + PLL0 --> OCLK0 + + SYSCLK0 --> SCLK0_0 + SYSCLK0 --> SCLK1_0 + DCLK0 --> DCLK0_HALF + + DF1 --> VCO1 + VCO1 --> PLL1 + VCO1 --> CCLK2_1 + + PLL1 --> CCLK0_1 + PLL1 --> SYSCLK1 + PLL1 --> DCLK1 + PLL1 --> OCLK1 + + SYSCLK1 --> SCLK0_1 + SYSCLK1 --> SCLK1_1 + SCLK1_1 --> SCLK1_1_HALF + + PLL3_VCO --> PLL3_OUT + PLL3_OUT --> PLL3_DDR_SEL + DCLK0 --> PLL3_DDR_SEL + + CCLK0_0 -.-> SHARC0 + CCLK0_0 -.-> SHARC1 + CCLK2_1 -.-> ARM + PLL3_DDR_SEL -.-> DDR + OCLK1 -.-> CAN + SCLK1_0 -.-> SPDIF + SCLK0_0 -.-> SPI + SCLK0_0 -.-> GIGE + CCLK0_1 -.-> LP + OCLK0 -.-> LP_DDR + SCLK1_1 -.-> OSPI + SCLK0_0 -.-> TRACE + DCLK0_HALF -.-> EMMC + SCLK1_1_HALF -.-> EMMC_TMR + + classDef cgu0 fill:#e1f5ff,stroke:#01579b,stroke-width:2px + classDef cgu1 fill:#fff3e0,stroke:#e65100,stroke-width:2px + classDef pll3 fill:#f3e5f5,stroke:#4a148c,stroke-width:2px + classDef cdu fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px + + class CCLK0_0,SYSCLK0,DCLK0,OCLK0,SCLK0_0,SCLK1_0,CCLK2_0,DCLK0_HALF cgu0 + class CCLK0_1,SYSCLK1,DCLK1,OCLK1,SCLK0_1,SCLK1_1,CCLK2_1,SCLK1_1_HALF cgu1 + class PLL3_OUT pll3 + class SHARC0,SHARC1,ARM,DDR,CAN,SPDIF,SPI,GIGE,LP,LP_DDR,OSPI,TRACE,EMMC,EMMC_TMR cdu + +- **Solid lines**: Clock flow through dividers +- **Dashed lines**: CDU mux selection to peripherals +- **Blue boxes**: CGU0 outputs (Main CGU) +- **Orange boxes**: CGU1 outputs (Secondary CGU) +- **Purple boxes**: 3rd PLL outputs (DDR-specific) +- **Green boxes**: CDU peripheral outputs diff --git a/docs/products/adsp/use-cases.rst b/docs/products/adsp/use-cases.rst new file mode 100644 index 00000000000..d3072f84556 --- /dev/null +++ b/docs/products/adsp/use-cases.rst @@ -0,0 +1,68 @@ +.. _adsp use-cases: + +Use cases +========= + +Analog Devices Digital Signal Processors (ADSP) are industry standards for both +automotive and consumer audio. + +Professional & Consumer Audio +----------------------------- + +Neural DSP Quad Cortex +^^^^^^^^^^^^^^^^^^^^^^ + +The `Neural DSP Quad Cortex `_ is a flagship +floorboard amp modeler that utilizes the :adi:`ADSP-SC589 +` (Quad-Core SHARC+). The dual SHARC+ cores +provide the high-performance floating-point processing required for neural +capture, an AI-driven process that replicates physical amplifiers and effects +with extreme accuracy. The integrated ARM Cortex-A5 core manages the +Linux-based multi-touch UI, while the SHARC+ cores handle real-time audio +processing at extremely low latency. + +* :adi:`Quad Cortex Success Story ` + +Audinate Dante networking +^^^^^^^^^^^^^^^^^^^^^^^^^ + +The Dante Embedded Platform (DEP) is available as a software-based solution for +ADSP-SC5xx processors. Manufacturers can integrate high-performance Dante +audio-over-IP networking directly onto the chip's ARM core. This provides a +single-chip solution for low-latency networked audio, eliminating the need for +separate hardware modules in professional AV systems. + +* `Audinate Announces Availability of Dante Embedded Platform for Analog Devices’ SHARC® Audio Digital Signal Processors + `__ + +Automotive +---------- + +Modern vehicles use high-performance SHARC+ processors (like the **SC59x** +series) to manage complex cabin acoustics. + +* **Road Noise Cancellation (RNC):** SHARC+ processors generate anti-noise + signals in real-time to cancel tire and road vibrations. This requires the + extremely low deterministic latency provided by the SHARC architecture. +* **In-Car Communications (ICC):** Uses beamforming and noise reduction to allow + passengers to speak clearly across the cabin without shouting. +* **Personal Audio Zones (PAZ):** Creates localized "sound bubbles" for + individual passengers, allowing different audio streams (calls, music, + navigation) to be heard without headphones or disturbing others. +* **Electric Vehicle (EV) Sound:** Handles Engine Sound Synthesis (ESS) for + driver feedback and Acoustic Vehicle Alerting Systems (AVAS) to ensure + pedestrian safety at low speeds. + +Automotive Grade Linux +^^^^^^^^^^^^^^^^^^^^^^ + +Automotive Grade Linux is a project under The Linux Foundation that defines a +full software stack for vehicles. It classically targets infotainment systems, +but in 2026 expanded support to the Electronic Control Unit (ECU) of vehicles. +It provides a complex layering of software based on virtualization +technologies, making application development easier and safer. + +ADSP SoCs are far more resource constrained than the processors that AGL is +targeting. Additionally, in order to optimize the performance of the ADSP SoCs +many tasks done by Linux in AGL are off-loaded from the ARM cores to the DSP +cores (e.g. EAVB, A2B). diff --git a/docs/requirements.txt b/docs/requirements.txt index 35d575fd765..f9e44e97a58 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,2 +1,3 @@ sphinx -https://github.com/analogdevicesinc/doctools/releases/download/latest/adi-doctools.tar.gz +adi-doctools +sphinxcontrib-mermaid diff --git a/docs/software/analog-attach/index.rst b/docs/software/analog-attach/index.rst new file mode 100644 index 00000000000..04b5f38b023 --- /dev/null +++ b/docs/software/analog-attach/index.rst @@ -0,0 +1,57 @@ +.. _analog-attach: + +Analog Attach +============= + +.. note:: + + This section only gives an overview on Analog Attach, for all details, see + :external+analog-attach:doc:`the dedicated doc `. + +Analog Attach is a VS Code extension for creating and editing Device Tree +files (DTS) and Device Tree Overlay (DTSO) files with schema validation, +binding support, and remote deployment capabilities. + +Get it from the `VS Code Marketplace `__, +the extension source code is available at :git-analog-attach:`/`. + +Requirements +------------ + +Analog Attach requires: + +#. A valid Linux kernel repository (for example, ``analogdevicesinc/linux``) + configured in settings +#. C compiler (gcc) for precompiling dts/dtso files +#. Device Tree Compiler (dtc) +#. SSH for connecting to a device +#. sshpass for password authentication during deployment + +Getting Started +--------------- + +.. tip:: + + See :external+analog-attach:doc:`the installation guide ` for + detailed setup instructions. + +The extension provides two main views: + +* **Plug and Play View** - A graphical editor for creating device tree overlays + by selecting devices from a catalog +* **Tree Config View** - A tree-based editor for configuring device tree nodes + with full validation support + +Support +------- + +Documentation +~~~~~~~~~~~~~ + +- All Analog Attach documentation is available :external+analog-attach:doc:`here `. + +Other Useful Links +~~~~~~~~~~~~~~~~~~ + +- :git-analog-attach:`Source ` +- `VS Code Marketplace `__ diff --git a/docs/software/iio-oscilloscope/ad9084/ad9084_osc_plugin_fpga.png b/docs/software/iio-oscilloscope/ad9084/ad9084_osc_plugin_fpga.png deleted file mode 100644 index f76109fc2c9..00000000000 --- a/docs/software/iio-oscilloscope/ad9084/ad9084_osc_plugin_fpga.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4a8f427cc6fac1293f6578bea3a46beb6f68aec3f7b77388d2fd805e8d4ada36 -size 32612 diff --git a/docs/software/iio-oscilloscope/ad9084/dac_output_buffer_panel.png b/docs/software/iio-oscilloscope/ad9084/dac_output_buffer_panel.png deleted file mode 100644 index d5b39a4bc64..00000000000 --- a/docs/software/iio-oscilloscope/ad9084/dac_output_buffer_panel.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0cd27cc7dd5a48dd281b1a877899be306265bf45a49f64b63bd5469d95b992a5 -size 29019 diff --git a/docs/software/iio-oscilloscope/ad9084/osc.png b/docs/software/iio-oscilloscope/ad9084/osc.png deleted file mode 100644 index fa9ca7ef128..00000000000 --- a/docs/software/iio-oscilloscope/ad9084/osc.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:29617e3ba9efef7912e9c56c0b1bd21cda869b34a0a43050cee3be73d8171ff7 -size 9367 diff --git a/docs/software/libiio/index.rst b/docs/software/libiio/index.rst index 6680c014b7f..664d9c7b7ac 100644 --- a/docs/software/libiio/index.rst +++ b/docs/software/libiio/index.rst @@ -83,7 +83,7 @@ Building libiio Building on the Linux/Zynq Target --------------------------------- -Check out how to :external+adi-kuiper-gen:doc:`stay up to date `. +Check out how to :external+kuiper:doc:`stay up to date `. This will check out and build the latest version. Building on the Linux Host Target diff --git a/docs/software/matlab/hsx-toolbox/index.rst b/docs/software/matlab/hsx-toolbox/index.rst index 278dafa4f26..9928f386a2a 100644 --- a/docs/software/matlab/hsx-toolbox/index.rst +++ b/docs/software/matlab/hsx-toolbox/index.rst @@ -54,7 +54,7 @@ Libiio Installer Skip the Zynq SDR or ADALM-PLUTO post-installation steps. They are not used. - See :external+adi-kuiper-gen:doc:`Kuiper documentation ` for the FPGA + See :external+kuiper:doc:`Kuiper documentation ` for the FPGA carrier board SD card images. is required to use the streaming system objects or blocks. These support diff --git a/docs/software/matlab/transceiver-toolbox/index.rst b/docs/software/matlab/transceiver-toolbox/index.rst index a0d10d2dfd6..cd1fa02d24f 100644 --- a/docs/software/matlab/transceiver-toolbox/index.rst +++ b/docs/software/matlab/transceiver-toolbox/index.rst @@ -407,7 +407,7 @@ the ADI SD card. First make sure you have a valid SD card for your platform with the necessary devicetree and kernel image selected. See -:external+adi-kuiper-gen:doc:`Kuiper documentation ` for more information +:external+kuiper:doc:`Kuiper documentation ` for more information about configuring the SD card with a Kuiper Linux image. Once your SD card is ready, in step 4.3 "Build FPGA Bitstream" of HDL Workflow diff --git a/docs/solutions/application-software/lora-software/advance_firewall_settings.png b/docs/solutions/application-software/lora-software/advance_firewall_settings.png deleted file mode 100644 index 7b8d64c8d5d..00000000000 --- a/docs/solutions/application-software/lora-software/advance_firewall_settings.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a3a459c63a0190bde4be6c850f674940a58b31f4f8ce9c62e4604e7f13d068c -size 53893 diff --git a/docs/solutions/reference-designs/ad-acevsecrdset-sl/index.rst b/docs/solutions/reference-designs/ad-acevsecrdset-sl/index.rst index 77b0241f288..ed6a6a7c780 100644 --- a/docs/solutions/reference-designs/ad-acevsecrdset-sl/index.rst +++ b/docs/solutions/reference-designs/ad-acevsecrdset-sl/index.rst @@ -3,8 +3,7 @@ AD-ACEVSECRDSET-SL ================== -Type 2 EVSE 3.6 kW Charging Cable -"""""""""""""""""""""""""""""""""" +Type 2 EVSE 3.6 kW Charging Cable. Introduction ------------ diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/AD-APARDPFW-SL-designsupport.zip b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/ad-apardpfw-sl-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/AD-APARDPFW-SL-designsupport.zip rename to docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/ad-apardpfw-sl-designsupport.zip diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/AD-APARDPFW-SL_top-angle-evaluation-board.png b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/ad-apardpfw-sl_top-angle-evaluation-board.png similarity index 100% rename from docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/AD-APARDPFW-SL_top-angle-evaluation-board.png rename to docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/ad-apardpfw-sl_top-angle-evaluation-board.png diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/ADIN2111_Power_Down_Selection.csv b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/adin2111_power_down_selection.csv similarity index 100% rename from docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/ADIN2111_Power_Down_Selection.csv rename to docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/adin2111_power_down_selection.csv diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/ADIN2111_SPI_Selection.csv b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/adin2111_spi_selection.csv similarity index 100% rename from docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/ADIN2111_SPI_Selection.csv rename to docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/adin2111_spi_selection.csv diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/apard-pfwd-top-iso.png b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/apard-pfwd-top-iso.png deleted file mode 100644 index 199468602ed..00000000000 --- a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/apard-pfwd-top-iso.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fd185bc06a061b5218844a44bdb4b5ccd53f9b535df5accfb7ab4ac35e23b7e7 -size 287655 diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/command_prompt.png b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/command_prompt.png deleted file mode 100644 index d8f6f8576e1..00000000000 --- a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/command_prompt.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7bb109674ddb514d8791eb1539e191a682d06d430465ce659a177222b1454473 -size 67225 diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/index.rst b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/index.rst index 4e571430dae..e1ae9529eb2 100644 --- a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/index.rst +++ b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/index.rst @@ -9,7 +9,7 @@ AD-APARDPFW-SL General Description ------------------- -.. figure:: AD-APARDPFW-SL_top-angle-evaluation-board.png +.. figure:: ad-apardpfw-sl_top-angle-evaluation-board.png :width: 475 px :align: right @@ -78,7 +78,7 @@ To select which SPI protocol to use, the **JP3** solder jumper should be configured as follows: .. csv-table:: - :file: ADIN2111_SPI_Selection.csv + :file: adin2111_spi_selection.csv The :adi:`ADIN2111` supports software power-down after power-up or reset for each port independently. To utilize this feature: @@ -88,7 +88,10 @@ port independently. To utilize this feature: jumper with the following settings .. csv-table:: - :file: ADIN2111_Power_Down_Selection.csv + :file: adin2111_power_down_selection.csv + +.. clear-content:: + :break: Secondary Side ~~~~~~~~~~~~~~ @@ -112,7 +115,7 @@ class. SPoE PD Power Class Jumpers .. csv-table:: - :file: SPoE_PD_Power_Class_Selection.csv + :file: spoe_pd_power_class_selection.csv .. warning:: @@ -291,7 +294,7 @@ Schematic, PCB Layout, Bill of Materials .. admonition:: Download - :download:`AD-APARDPFW-SL Design & Integration Files` + :download:`AD-APARDPFW-SL Design & Integration Files` - Schematics - PCB Layout diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/SPoE_PD_Power_Class_Selection.csv b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/spoe_pd_power_class_selection.csv similarity index 100% rename from docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/SPoE_PD_Power_Class_Selection.csv rename to docs/solutions/reference-designs/ad-apard32690-sl/ad-apardpfwd-sl/spoe_pd_power_class_selection.csv diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardspoe-sl/AD-APARDSPOE-SL-designsupport.zip b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardspoe-sl/ad-apardspoe-sl-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/ad-apard32690-sl/ad-apardspoe-sl/AD-APARDSPOE-SL-designsupport.zip rename to docs/solutions/reference-designs/ad-apard32690-sl/ad-apardspoe-sl/ad-apardspoe-sl-designsupport.zip diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardspoe-sl/index.rst b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardspoe-sl/index.rst index 96487f8ba71..8310bea25d2 100644 --- a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardspoe-sl/index.rst +++ b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardspoe-sl/index.rst @@ -70,7 +70,7 @@ class. SPoE PD Power Class Jumpers .. csv-table:: - :file: SPoE_PD_Power_Class_Selection.csv + :file: spoe_pd_power_class_selection.csv .. warning:: @@ -250,7 +250,7 @@ Schematic, PCB Layout, Bill of Materials .. admonition:: Download - :download:`AD-APARDSPOE-SL Design & Integration Files ` + :download:`AD-APARDSPOE-SL Design & Integration Files ` - Schematics - PCB Layout diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardspoe-sl/SPoE_PD_Power_Class_Selection.csv b/docs/solutions/reference-designs/ad-apard32690-sl/ad-apardspoe-sl/spoe_pd_power_class_selection.csv similarity index 100% rename from docs/solutions/reference-designs/ad-apard32690-sl/ad-apardspoe-sl/SPoE_PD_Power_Class_Selection.csv rename to docs/solutions/reference-designs/ad-apard32690-sl/ad-apardspoe-sl/spoe_pd_power_class_selection.csv diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-t1lusb-ebz/AD-T1LUSB2.0-EBZ-Design-Support-Package.zip b/docs/solutions/reference-designs/ad-apard32690-sl/ad-t1lusb-ebz/ad-t1lusb2.0-ebz-design-support-package.zip similarity index 100% rename from docs/solutions/reference-designs/ad-apard32690-sl/ad-t1lusb-ebz/AD-T1LUSB2.0-EBZ-Design-Support-Package.zip rename to docs/solutions/reference-designs/ad-apard32690-sl/ad-t1lusb-ebz/ad-t1lusb2.0-ebz-design-support-package.zip diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/ad-t1lusb-ebz/index.rst b/docs/solutions/reference-designs/ad-apard32690-sl/ad-t1lusb-ebz/index.rst index 29f8154d0eb..7d32491861b 100644 --- a/docs/solutions/reference-designs/ad-apard32690-sl/ad-t1lusb-ebz/index.rst +++ b/docs/solutions/reference-designs/ad-apard32690-sl/ad-t1lusb-ebz/index.rst @@ -135,7 +135,7 @@ Design and Integration Files .. admonition:: Download - :download:`AD-T1LUSB2.0-EBZ Design Support Package ` + :download:`AD-T1LUSB2.0-EBZ Design Support Package ` - Schematic - PCB Layout diff --git a/docs/solutions/reference-designs/ad-apard32690-sl/index.rst b/docs/solutions/reference-designs/ad-apard32690-sl/index.rst index 29652f75589..c9fa6dfb18c 100644 --- a/docs/solutions/reference-designs/ad-apard32690-sl/index.rst +++ b/docs/solutions/reference-designs/ad-apard32690-sl/index.rst @@ -2,8 +2,7 @@ AD-APARD32690-SL ================ -Arduino Form-factor Development Platform Based on MAX32690 ARM Cortex-M4 -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Arduino Form-factor Development Platform Based on MAX32690 ARM Cortex-M4. Introduction ------------ diff --git a/docs/solutions/reference-designs/ad-bmse2e3w-sl/72v-96v_vehicle_system.png b/docs/solutions/reference-designs/ad-bmse2e3w-sl/72v-96v_vehicle_system.png deleted file mode 100644 index 15af3f97b2f..00000000000 --- a/docs/solutions/reference-designs/ad-bmse2e3w-sl/72v-96v_vehicle_system.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:25f8afa9a07b6db0d93d6caf6af19a842218bc188514bc8e73e7f0e8bca7d29c -size 205879 diff --git a/docs/solutions/reference-designs/ad-bmse2e3w-sl/AD-BMSE2E3W-SL-UG-2245.pdf b/docs/solutions/reference-designs/ad-bmse2e3w-sl/ad-bmse2e3w-sl-ug-2245.pdf similarity index 100% rename from docs/solutions/reference-designs/ad-bmse2e3w-sl/AD-BMSE2E3W-SL-UG-2245.pdf rename to docs/solutions/reference-designs/ad-bmse2e3w-sl/ad-bmse2e3w-sl-ug-2245.pdf diff --git a/docs/solutions/reference-designs/ad-bmse2e3w-sl/basic_can_comm.png b/docs/solutions/reference-designs/ad-bmse2e3w-sl/basic_can_comm.png deleted file mode 100644 index 19329e6948a..00000000000 --- a/docs/solutions/reference-designs/ad-bmse2e3w-sl/basic_can_comm.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:83ee52796fb9689f7b921dc4f0578be0b7467313489dfab749614ba677cda071 -size 35310 diff --git a/docs/solutions/reference-designs/ad-bmse2e3w-sl/Components.csv b/docs/solutions/reference-designs/ad-bmse2e3w-sl/components.csv similarity index 100% rename from docs/solutions/reference-designs/ad-bmse2e3w-sl/Components.csv rename to docs/solutions/reference-designs/ad-bmse2e3w-sl/components.csv diff --git a/docs/solutions/reference-designs/ad-bmse2e3w-sl/dual_side_cell_depopulation.png b/docs/solutions/reference-designs/ad-bmse2e3w-sl/dual_side_cell_depopulation.png deleted file mode 100644 index 6563eb5af78..00000000000 --- a/docs/solutions/reference-designs/ad-bmse2e3w-sl/dual_side_cell_depopulation.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7b33ec829589281ca267707ff7be43ff8a93712ef5a502441445fba613c419b9 -size 72057 diff --git a/docs/solutions/reference-designs/ad-bmse2e3w-sl/index.rst b/docs/solutions/reference-designs/ad-bmse2e3w-sl/index.rst index ec59511cc5c..5dfd4bebe97 100644 --- a/docs/solutions/reference-designs/ad-bmse2e3w-sl/index.rst +++ b/docs/solutions/reference-designs/ad-bmse2e3w-sl/index.rst @@ -1,15 +1,14 @@ AD-BMSE2E3W-SL ============== -72 V to 96 V Battery Management System for Electric 2- and 3-Wheelers -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +72 V to 96 V Battery Management System for Electric 2- and 3-Wheelers. A concise version of this document is available in portable document format. Click on the file below to download: .. admonition:: Download - :download:`AD-BMSE2E3W-SL QuickStart Guide (pdf) ` + :download:`AD-BMSE2E3W-SL QuickStart Guide (pdf) ` Overview -------- @@ -69,7 +68,7 @@ System Architecture AD-BMSE2E3W-SL Simplified Block Diagram .. csv-table:: Specifications - :file: Specifications.csv + :file: specifications.csv :widths: 20, 10, 10, 10, 10, 40 :header-rows: 1 @@ -90,7 +89,7 @@ Components and Connections Hardware Components and Connections .. csv-table:: Hardware Part Functions - :file: Components.csv + :file: components.csv :widths: 5, 25, 70 :header-rows: 1 diff --git a/docs/solutions/reference-designs/ad-bmse2e3w-sl/load_diagram.png b/docs/solutions/reference-designs/ad-bmse2e3w-sl/load_diagram.png deleted file mode 100644 index cb1d0d7bb93..00000000000 --- a/docs/solutions/reference-designs/ad-bmse2e3w-sl/load_diagram.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aa22dec0c1ac9d9ad1b41d9ef851f220f69604fbd654a295d47f1318d9942b87 -size 37663 diff --git a/docs/solutions/reference-designs/ad-bmse2e3w-sl/single_side_cell_depopulation.png b/docs/solutions/reference-designs/ad-bmse2e3w-sl/single_side_cell_depopulation.png deleted file mode 100644 index 6250e0e11e5..00000000000 --- a/docs/solutions/reference-designs/ad-bmse2e3w-sl/single_side_cell_depopulation.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1ca2671e428263a1c8db19e2c09b192b3de97a917aeb40ecfb58fcc99ed9906e -size 65873 diff --git a/docs/solutions/reference-designs/ad-bmse2e3w-sl/Specifications.csv b/docs/solutions/reference-designs/ad-bmse2e3w-sl/specifications.csv similarity index 100% rename from docs/solutions/reference-designs/ad-bmse2e3w-sl/Specifications.csv rename to docs/solutions/reference-designs/ad-bmse2e3w-sl/specifications.csv diff --git a/docs/solutions/reference-designs/ad-bmse2e3w-sl/uart_comm.png b/docs/solutions/reference-designs/ad-bmse2e3w-sl/uart_comm.png deleted file mode 100644 index fc61ecb2b63..00000000000 --- a/docs/solutions/reference-designs/ad-bmse2e3w-sl/uart_comm.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c08063a8adce1944e17b69c13b922b27046f1ee612eeaf6d71503dcaa8e17be -size 36519 diff --git a/docs/solutions/reference-designs/ad-cellpackbm-sl/ADBMS6830_daisychain.png b/docs/solutions/reference-designs/ad-cellpackbm-sl/ADBMS6830_daisychain.png deleted file mode 100644 index 60863f3c655..00000000000 --- a/docs/solutions/reference-designs/ad-cellpackbm-sl/ADBMS6830_daisychain.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:00bca19c66fed8e7744e3d82ab25f77988f2b63ca23707b63ac4fcfa206983f3 -size 532159 diff --git a/docs/solutions/reference-designs/ad-cellpackbm-sl/Cell_Monitoring_Quick_Measure_Plot.png b/docs/solutions/reference-designs/ad-cellpackbm-sl/Cell_Monitoring_Quick_Measure_Plot.png deleted file mode 100644 index 965f5fb37b3..00000000000 --- a/docs/solutions/reference-designs/ad-cellpackbm-sl/Cell_Monitoring_Quick_Measure_Plot.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a45152c9c400d5517f71db7bd895aa686fad61c86435056e402a539fc70bd4f8 -size 75309 diff --git a/docs/solutions/reference-designs/ad-cellpackbm-sl/Daisychain_Plots_Tab.png b/docs/solutions/reference-designs/ad-cellpackbm-sl/Daisychain_Plots_Tab.png deleted file mode 100644 index ebeda3d0766..00000000000 --- a/docs/solutions/reference-designs/ad-cellpackbm-sl/Daisychain_Plots_Tab.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7b5c7a1e623484ca7addb6082c38bc96825b1e710b08553693d69bda629f7a70 -size 224761 diff --git a/docs/solutions/reference-designs/ad-cellpackbm-sl/Pack_Memory_Map.png b/docs/solutions/reference-designs/ad-cellpackbm-sl/Pack_Memory_Map.png deleted file mode 100644 index bd7851b38da..00000000000 --- a/docs/solutions/reference-designs/ad-cellpackbm-sl/Pack_Memory_Map.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0ca67d41398aafa91e4a05487299467ca992daebd3989f98489f7f007dfab8ef -size 161761 diff --git a/docs/solutions/reference-designs/ad-cellpackbm-sl/daisy_chain_connection.png b/docs/solutions/reference-designs/ad-cellpackbm-sl/daisy_chain_connection.png deleted file mode 100644 index a03aff072c4..00000000000 --- a/docs/solutions/reference-designs/ad-cellpackbm-sl/daisy_chain_connection.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:99db2efc498299fcb05f894faed7cbfd48918e7c9e654ab3ab12c7d9fa0e58ce -size 113663 diff --git a/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/ad-cellpackbm-sl.jpg b/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/ad-cellpackbm-sl.jpg deleted file mode 100644 index 704a3511949..00000000000 --- a/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/ad-cellpackbm-sl.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d9cc9d95c085dc36d9cb9475366ab1bf6129569830c857350beb20dcad9b48dc -size 96612 diff --git a/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/ADBMS6830_Setup.png b/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/adbms6830_setup.png similarity index 100% rename from docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/ADBMS6830_Setup.png rename to docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/adbms6830_setup.png diff --git a/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/index.rst b/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/index.rst index a03b8d3e12e..e89f05b9213 100644 --- a/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/index.rst +++ b/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/index.rst @@ -40,7 +40,7 @@ The following list of equipment are not provided as part of the kit, but are req - Digital power supply (such as the Keysight e3631A 0V to 6V power supply) - 2x wall plugs (to plug USB cable from DC2472A to provide power) -.. figure:: Kit_Contents.png +.. figure:: kit_contents.png :align: center :width: 600px @@ -98,7 +98,7 @@ Battery Cell Monitoring **Setup** -.. figure:: ADBMS6830_Setup.png +.. figure:: adbms6830_setup.png :align: center :width: 400 px diff --git a/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/Kit_Contents.png b/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/kit_contents.png similarity index 100% rename from docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/Kit_Contents.png rename to docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/kit_contents.png diff --git a/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/quick_start_guide.pdf b/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/quick_start_guide.pdf deleted file mode 100644 index ada00949049..00000000000 Binary files a/docs/solutions/reference-designs/ad-cellpackbm-sl/hardware_guide/quick_start_guide.pdf and /dev/null differ diff --git a/docs/solutions/reference-designs/ad-cellpackbm-sl/index.rst b/docs/solutions/reference-designs/ad-cellpackbm-sl/index.rst index faabbfd8d84..a0869c3594a 100644 --- a/docs/solutions/reference-designs/ad-cellpackbm-sl/index.rst +++ b/docs/solutions/reference-designs/ad-cellpackbm-sl/index.rst @@ -1,8 +1,7 @@ AD-CELLPACKBM-SL ================ -Cell and Pack Monitoring Kit for Broad Market Applications -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Cell and Pack Monitoring Kit for Broad Market Applications. A concise version of this document is available in portable document format. Click on the file below to download: diff --git a/docs/solutions/reference-designs/ad-cellpackbm-sl/package.png b/docs/solutions/reference-designs/ad-cellpackbm-sl/package.png deleted file mode 100644 index 01a338b71fc..00000000000 --- a/docs/solutions/reference-designs/ad-cellpackbm-sl/package.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f3a32381541ae395a1a506c5bb849b36feab497f00f7eef426d31a97b4fc5137 -size 8399925 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/02-083153-01-c.pdf b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/02-083153-01-c.pdf deleted file mode 100644 index d10a2b2de0d..00000000000 Binary files a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/02-083153-01-c.pdf and /dev/null differ diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/05-083152-01-b.csv.zip b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/05-083152-01-b.csv.zip deleted file mode 100644 index 372c33ac783..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/05-083152-01-b.csv.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e6dd62b36879d6ac80245ebef7a6f6c37d20587552ea29df99abf1ff708e41f3 -size 4610 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/05-083153-01-c.csv.zip b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/05-083153-01-c.csv.zip deleted file mode 100644 index fb6579fe8bc..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/05-083153-01-c.csv.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ff98c998a3ff22d3716311c89298e130510eb30bc1453c870bdbc802fefb4bbf -size 4356 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/05-084576-01-b.csv.zip b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/05-084576-01-b.csv.zip deleted file mode 100644 index 49eb07f3f39..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/05-084576-01-b.csv.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f44c3d63c9db0b64b83f806931f5c0563fd6b8952dce74ae7bc97add5718bd18 -size 4357 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/08-083152-01-b-1.pdf b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/08-083152-01-b-1.pdf deleted file mode 100644 index 1c12e8edc55..00000000000 Binary files a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/08-083152-01-b-1.pdf and /dev/null differ diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/08-083153-01-c.pdf b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/08-083153-01-c.pdf deleted file mode 100644 index 8e8aefa3f73..00000000000 Binary files a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/08-083153-01-c.pdf and /dev/null differ diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-EthernetAPLDDevice-SL Web Page - latest Nov 6.docx b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-EthernetAPLDDevice-SL Web Page - latest Nov 6.docx deleted file mode 100644 index 5fb83233e25..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-EthernetAPLDDevice-SL Web Page - latest Nov 6.docx +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:64da91fbe6419176dc9b6ce6a4ccb342085cf403ac81a3fa91b8d64f42ded5ba -size 68904 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-EthernetAPLDevice-SL-designfiles.zip b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-EthernetAPLDevice-SL-designfiles.zip deleted file mode 100644 index 0c2512f2178..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-EthernetAPLDevice-SL-designfiles.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b06d60f40d8672b6123da7c5506c473fa1bb2337214628d3bf8a1c64da718603 -size 11099392 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-PS0005-RD_bottom-evaluation-board.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-PS0005-RD_bottom-evaluation-board.png deleted file mode 100644 index b7209dd49c1..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-PS0005-RD_bottom-evaluation-board.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2a4055e89cbca44dd3982f6cb2566992f7380ff06f2febc5ae387b7e5bc15c95 -size 458056 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-PS0005-RD_top-angle-evaluation-board.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-PS0005-RD_top-angle-evaluation-board.png deleted file mode 100644 index be2e50ef2c5..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-PS0005-RD_top-angle-evaluation-board.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4cdef3302bc3c7a931d8df7ea784ce6c87f7fa0c122547a1c48c613b108b17f9 -size 777056 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-PS0005-RD_top-evaluation-board.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-PS0005-RD_top-evaluation-board.png deleted file mode 100644 index 1478a865d2b..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/AD-PS0005-RD_top-evaluation-board.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e7dfabe19a242afeb9d458e72d33cc60ba89bb46ea7ff452ce5904909110b258 -size 621449 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/APL_Hockeypuck_block_diagram_nomargin_web.svg b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/APL_Hockeypuck_block_diagram_nomargin_web.svg deleted file mode 100644 index 5439af83628..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/APL_Hockeypuck_block_diagram_nomargin_web.svg +++ /dev/null @@ -1,4688 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SHIELD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CM - POWER LIMITER - POLARITY PROTECTION - ETHERNETCONNECTOR - EXTERNAL SPICONNECTOR - TEMPERATURE SENSECONNECTOR - ISOLATED DOMAIN - DM - - - LT8606 - - - - - - ADIN1110TX/RX - - - - - - SRAM - - FLASH - - - - - - ADFS7124-4ADC - - - - - - - - - - - - - - - - - - - - LOAD_N - LOAD_P - SHUNT - 1.8V - - - MAX32690PROCESSOR - - ADuM1441ISOLATION - - 3.3V - - 3.5V - - 1.1V - - 1.8V - - - 3.3V iso - 3.3V_iso - - - 3.3V - - 3.5V - - - - - MAX253 - - - - - - - - - - - - - 3.5V - - - - - - - - ADP151 - - - - - - - 3.3V - 3.5V - 3.3V - 3.3V - - 1.8V - - 1.1V - - - - - - SPI 3 - SPI 4 - SPI 1 - - SPI 0 iso - SPI 1 - SPI 0 - - - - - - - - - - - - - - - - - - iso - - - - - - - - - iso - iso - - - - - iso - - - - - iso - - - - - - - - - - NTC - - ≥3k - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - < 2 : 2 > - < 2 : 2 > - LOAD_N - LOAD_N - LOAD_N - LOAD_E - x3 - x3 - x2 - - - ADP151 - - - - MAX16895 - - 3.5V - - SUP_3.3V - SUP_3.3V - - - - MAX42500 - MONITOR - - - - - - - 3.3V - 1.8V - 1.1V - RESET_OUT - I2C/WATCHDOG - - - MAX6613 - - PCB_TEMP - HYPERBUS - SUPERVISOR - TEMPERATURESENSOR - SUP_3.3V - - - - - - - - LOAD_E - POWER AND COMMS IS BOARD - DIGITAL NON-IS ONLY - BUCK - LDO - - - - - - - LOAD_N - LDO - ISO-POWER - - - MAX17626 - - - - ADP151 - - - - ADP151 - - BUCK - LDO - LDO - - - - - - - LOAD_N - 3.5V - x2 - - - - - - - - - - - - - - - - - - - - - DIGITAL IS ONLY - - - - - - - - - - - - - - - - QSPI - 1.8V - - 1.8V - - - - MAXQ1065 - - SECURITYCHIP - SPI 2 Security - - 3.3V - - ≥1.8k - - - SWD / UARTARM debugger - JTAGRISC-V debugger - I2C - - ToMAX32690 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LOAD_E - - DIGITAL IS AND NON-IS BOARD - - - - - LOAD_E - - - - - - - x3 - - - - - - - - - - - - For Development/Debugging Only - - - - - - - DIN-B CHASSIS EARTH - - - - - - - - SUPERVISOR - - - ADP123 - - LDO - - - - - - - - - - - - - - - - - - - 25A - LT8440 - - - - - - - - - - - - - - - - diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/APL_Hockeypuck_block_diagram_nomargin_web.svg.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/APL_Hockeypuck_block_diagram_nomargin_web.svg.png deleted file mode 100644 index ef962e8968d..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/APL_Hockeypuck_block_diagram_nomargin_web.svg.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:85ed231454928c75de6d1561797c13871a356f85713eb1db8df6096320956036 -size 78661 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/APL_Hockeypuck_block_diagram.svg b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/apl_hockeypuck_block_diagram.svg similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/APL_Hockeypuck_block_diagram.svg rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/apl_hockeypuck_block_diagram.svg diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/COMB_TOP.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/comb_top.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/COMB_TOP.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/comb_top.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/Config.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/config.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/Config.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/config.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/Hot-Input3.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/hot-input3.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/Hot-Input3.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/hot-input3.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/Hot_input1.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/hot_input1.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/Hot_input1.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/hot_input1.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/Hot_input2.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/hot_input2.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/Hot_input2.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/hot_input2.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/index.rst b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/index.rst index 64a016f772c..18e4f133e5a 100644 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/index.rst +++ b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/index.rst @@ -35,7 +35,7 @@ After the first second the maximum di/dt is limited to 10mA/ms. More details can be found in APL Port Profile Specification or the IEC TS 63444 standard. -.. figure:: Power-up.png +.. figure:: power-up.png :width: 600 px :alt: Illustrative Current Step Characteristics During Power-up @@ -59,7 +59,7 @@ and VCORE(MIN) = 1.05V. .. clear-content:: -.. figure:: MCU_sequence.png +.. figure:: mcu_sequence.png :width: 600 px :alt: Power Up and Power Down Requirements of MAX32690 @@ -74,7 +74,7 @@ failing the charge requirement on the spike from the large peak current it might generate, and may cause other failures on the reference design. -.. figure:: Hot_input1.png +.. figure:: hot_input1.png :width: 700 px Hot Input LINE_P Current Capture w/ REG_3V5, SUP_3V3, ISO_3V3 @@ -102,7 +102,7 @@ never exceed 55.56mA. The reference design has passed the APL port profile current step characteristics requirement for start-up during hot-plug scenario. -.. figure:: Hot_input2.png +.. figure:: hot_input2.png :width: 700 px Hot Input LINE_P Current Capture w/ REG_3V5, LINE_P, LOAD_P Voltages @@ -133,13 +133,13 @@ the time distance between 1V8 and 1V1 is 3.2ms. The sequence is in correct order for start-up, which is 3V3 first, 1V8 second and 1V1 third or last. -.. figure:: Hot-Input3.png +.. figure:: hot-input3.png :width: 700 px :alt: Hot Input Power-up Sequence of 3V3, 1V8 and 1V1 Hot Input Power-up Sequence of 3V3, 1V8 and 1V1 -.. figure:: Zoom_hot_input3.png +.. figure:: zoom_hot_input3.png :width: 700 px :alt: Zoomed Power-up Sequence for 1V8 and 1V1 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/MCU_sequence.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/mcu_sequence.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/MCU_sequence.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/mcu_sequence.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/Power-up.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/power-up.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/Power-up.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/power-up.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/Zoom_hot_input3.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/zoom_hot_input3.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/Zoom_hot_input3.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/ethernet-apl/zoom_hot_input3.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/functional-safety/index.rst b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/functional-safety/index.rst index dd64efda4cb..bba28598f1c 100644 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/functional-safety/index.rst +++ b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/functional-safety/index.rst @@ -9,8 +9,8 @@ Introduction The AD-EthernetAPLDevice-SL has a failure modes, effects, and diagnostics analysis (FMEDA) document readily available upon request to support functional safety designs despite it not being assessed for functional safety. It also utilizes ADI -functional safety certified components like the MAX42500 and ADFS7124-4 as -diagnostics to further improve systematic capability and functional safety +functional safety certified components like the :adi:`MAX42500` and :adi:`ADFS7124-4` +as diagnostics to further improve systematic capability and functional safety compliance. Furthermore, this reference design demonstrates how such FS-certified parts can be implemented in an actual system. @@ -102,48 +102,48 @@ TÜV Rheinland. The diagnostic functions, which aid safe integrity level (SIL) certification, are based on the following features of the component, if ever the user wants to use these features: -1. SIGNAL CHAIN CHECK - ADFS7124-4 can check all voltages connected to the +1. ``SIGNAL CHAIN CHECK`` - ADFS7124-4 can check all voltages connected to the device. -2. REFERENCE DETECT - ADFS7124-4 includes on-chip circuitry to detect if there +2. ``REFERENCE DETECT`` - ADFS7124-4 includes on-chip circuitry to detect if there is a valid reference for conversions or calibrations when selecting an external reference as the reference source. -3. CALIBRATION, CONVERSION, AND SATURATION ERRORS - These diagnostics check the +3. ``CALIBRATION, CONVERSION, AND SATURATION ERRORS`` - These diagnostics check the analog input used as well as the modulator and digital filter during conversions or calibration. -4. OVERVOLTAGE/UNDERVOLTAGE DETECTION - The overvoltage/undervoltage monitors +4. ``OVERVOLTAGE/UNDERVOLTAGE DETECTION`` - The overvoltage/undervoltage monitors check the absolute voltage on the AINx analog input pins. -5. POWER SUPPLY MONITORS - Along with converting external voltages, the ADC can +5. ``POWER SUPPLY MONITORS`` - Along with converting external voltages, the ADC can monitor the voltages on the Analog Supply pin and Digital I/O Supply pins of the ADC. -6. LDO CAPACITOR DETECT - The analog and digital LDOs require an external +6. ``LDO CAPACITOR DETECT`` - The analog and digital LDOs require an external decoupling capacitor of at least 0.1 µF. The ADFS7124-4 can check for the presence of this decoupling capacitor. -7. MCLK COUNTER - The ADFS7124-4 allows the user to monitor the controller +7. ``MCLK COUNTER`` - The ADFS7124-4 allows the user to monitor the controller clock. A stable controller clock is important as the output data rate, filter settling time, and the filter notch frequencies are dependent on the controller clock. -8. SPI SCLK COUNTER - The SPI SCLK counter counts the number of SCLK pulses used +8. ``SPI SCLK COUNTER`` - The SPI SCLK counter counts the number of SCLK pulses used in each read and write operation. -9. SPI READ/WRITE ERRORS - The ADFS7124-4 can check the read and write +9. ``SPI READ/WRITE ERRORS`` - The ADFS7124-4 can check the read and write operations to ensure that valid registers are being addressed. -10. CHECKSUM PROTECTION - Using the checksum ensures that only valid data is +10. ``CHECKSUM PROTECTION`` - Using the checksum ensures that only valid data is written to a register and allows data read from a register to be validated. -11. BURNOUT CURRENTS - The ADFS7124-4 contains two constant current generators +11. ``BURNOUT CURRENTS`` - The ADFS7124-4 contains two constant current generators that can be programmed to 0.5 µA, 2 µA, or 4 µA. Use these currents to verify that an external transducer is still operational before attempting to take measurements on that channel. -12. TEMPERATURE SENSOR - The ADFS7124-4 has an embedded temperature sensor that +12. ``TEMPERATURE SENSOR`` - The ADFS7124-4 has an embedded temperature sensor that is useful to monitor the die temperature of the IC. All the diagnostics are explained further on how to use them in the ADFS7124-4 @@ -183,5 +183,5 @@ Besides which parameters to analyze, it's important that generic parameters are established when initiating the derating analysis, especially if ambient temperature is involved. -.. csv-table:: Generic Parameters for AD-EthernetAPLDevice-SL +.. csv-table:: Generic Parameters for the AD-EthernetAPLDevice-SL :file: generic-parameters.csv diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/index.rst b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/index.rst index 6bdad451277..1dae6209951 100644 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/index.rst +++ b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/index.rst @@ -3,8 +3,7 @@ AD-ETHERNETAPLDEVICE-SL ======================= -Ethernet-APL Field Platform for Intelligent, Secure, and Connected Industrial Devices -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Ethernet-APL Field Platform for Intelligent, Secure, and Connected Industrial Devices. Introduction ------------ @@ -38,14 +37,14 @@ Key Features - Open-source software stack with drivers and example applications - Zephyr RTOS support and integration with Code Fusion Studio -.. figure:: COMB_TOP.png +.. figure:: comb_top.png :width: 450 px :align: left :alt: AD-EthernetAPLDevice-SL Board AD-EthernetAPLDevice-SL Board -.. figure:: APL_Hockeypuck_block_diagram.svg +.. figure:: apl_hockeypuck_block_diagram.svg :width: 450 px :align: right :alt: Simplified Block Diagram @@ -107,17 +106,17 @@ The board is fully supported in Code Fusion Studio {{ soon to be available }} Hardware Components and Connections ----------------------------------- -.. figure:: Power-connectors.png +.. figure:: power-connectors.png :width: 600 px Power Board Connections -.. figure:: IS-connector.png +.. figure:: is-connector.png :width: 600 px Digital IS Board Connections -.. figure:: non-IS-connectors.png +.. figure:: non-is-connectors.png :width: 600 px Digital NON-IS Board Connections @@ -164,7 +163,7 @@ Setup Instructions #. Apply power to the DEMO-ADIN1100D2Z (9V to 15V input). The AD-EthernetAPLDevice-SL will be powered via SPoE. -.. figure:: Config.png +.. figure:: config.png :width: 600 px :alt: Hardware Setup diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/02-083152-01-b.pdf b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/02-083152-01-b.pdf deleted file mode 100644 index 7786d705a2e..00000000000 Binary files a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/02-083152-01-b.pdf and /dev/null differ diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/02-083153-01-c.pdf b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/02-083153-01-c.pdf deleted file mode 100644 index d10a2b2de0d..00000000000 Binary files a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/02-083153-01-c.pdf and /dev/null differ diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/02-084576-01-b.pdf b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/02-084576-01-b.pdf deleted file mode 100644 index 5c9a98bc1ac..00000000000 Binary files a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/02-084576-01-b.pdf and /dev/null differ diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/05-083152-01-b.csv.zip b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/05-083152-01-b.csv.zip deleted file mode 100644 index 372c33ac783..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/05-083152-01-b.csv.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e6dd62b36879d6ac80245ebef7a6f6c37d20587552ea29df99abf1ff708e41f3 -size 4610 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/05-083153-01-c.csv.zip b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/05-083153-01-c.csv.zip deleted file mode 100644 index fb6579fe8bc..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/05-083153-01-c.csv.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ff98c998a3ff22d3716311c89298e130510eb30bc1453c870bdbc802fefb4bbf -size 4356 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/05-084576-01-b.csv.zip b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/05-084576-01-b.csv.zip deleted file mode 100644 index 49eb07f3f39..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/05-084576-01-b.csv.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f44c3d63c9db0b64b83f806931f5c0563fd6b8952dce74ae7bc97add5718bd18 -size 4357 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/08-083152-01-b-1.pdf b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/08-083152-01-b-1.pdf deleted file mode 100644 index 1c12e8edc55..00000000000 Binary files a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/08-083152-01-b-1.pdf and /dev/null differ diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/08-083153-01-c.pdf b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/08-083153-01-c.pdf deleted file mode 100644 index 8e8aefa3f73..00000000000 Binary files a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/08-083153-01-c.pdf and /dev/null differ diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/08-084576-01-b.pdf b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/08-084576-01-b.pdf deleted file mode 100644 index 4eb3627b17b..00000000000 Binary files a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/08-084576-01-b.pdf and /dev/null differ diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/APL_Hockeypuck_block_diagram.svg b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/APL_Hockeypuck_block_diagram.svg deleted file mode 100644 index 5439af83628..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/APL_Hockeypuck_block_diagram.svg +++ /dev/null @@ -1,4688 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SHIELD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CM - POWER LIMITER - POLARITY PROTECTION - ETHERNETCONNECTOR - EXTERNAL SPICONNECTOR - TEMPERATURE SENSECONNECTOR - ISOLATED DOMAIN - DM - - - LT8606 - - - - - - ADIN1110TX/RX - - - - - - SRAM - - FLASH - - - - - - ADFS7124-4ADC - - - - - - - - - - - - - - - - - - - - LOAD_N - LOAD_P - SHUNT - 1.8V - - - MAX32690PROCESSOR - - ADuM1441ISOLATION - - 3.3V - - 3.5V - - 1.1V - - 1.8V - - - 3.3V iso - 3.3V_iso - - - 3.3V - - 3.5V - - - - - MAX253 - - - - - - - - - - - - - 3.5V - - - - - - - - ADP151 - - - - - - - 3.3V - 3.5V - 3.3V - 3.3V - - 1.8V - - 1.1V - - - - - - SPI 3 - SPI 4 - SPI 1 - - SPI 0 iso - SPI 1 - SPI 0 - - - - - - - - - - - - - - - - - - iso - - - - - - - - - iso - iso - - - - - iso - - - - - iso - - - - - - - - - - NTC - - ≥3k - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - < 2 : 2 > - < 2 : 2 > - LOAD_N - LOAD_N - LOAD_N - LOAD_E - x3 - x3 - x2 - - - ADP151 - - - - MAX16895 - - 3.5V - - SUP_3.3V - SUP_3.3V - - - - MAX42500 - MONITOR - - - - - - - 3.3V - 1.8V - 1.1V - RESET_OUT - I2C/WATCHDOG - - - MAX6613 - - PCB_TEMP - HYPERBUS - SUPERVISOR - TEMPERATURESENSOR - SUP_3.3V - - - - - - - - LOAD_E - POWER AND COMMS IS BOARD - DIGITAL NON-IS ONLY - BUCK - LDO - - - - - - - LOAD_N - LDO - ISO-POWER - - - MAX17626 - - - - ADP151 - - - - ADP151 - - BUCK - LDO - LDO - - - - - - - LOAD_N - 3.5V - x2 - - - - - - - - - - - - - - - - - - - - - DIGITAL IS ONLY - - - - - - - - - - - - - - - - QSPI - 1.8V - - 1.8V - - - - MAXQ1065 - - SECURITYCHIP - SPI 2 Security - - 3.3V - - ≥1.8k - - - SWD / UARTARM debugger - JTAGRISC-V debugger - I2C - - ToMAX32690 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LOAD_E - - DIGITAL IS AND NON-IS BOARD - - - - - LOAD_E - - - - - - - x3 - - - - - - - - - - - - For Development/Debugging Only - - - - - - - DIN-B CHASSIS EARTH - - - - - - - - SUPERVISOR - - - ADP123 - - LDO - - - - - - - - - - - - - - - - - - - 25A - LT8440 - - - - - - - - - - - - - - - - diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/COMB_TOP.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/COMB_TOP.png deleted file mode 100644 index 5b4bb501cf3..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/COMB_TOP.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:701d7615d9d6cc5fa7626a5b6182e81ce51e6f699f90a0bd092c74b5e3137980 -size 492441 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/Config.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/Config.png deleted file mode 100644 index d23f5176bb9..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/Config.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:469158e2c174b2cc7a14dd94982bcc7993af6db0131e7fa4f2ce30f49cd5fb9f -size 891547 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/IS-connector.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/IS-connector.png deleted file mode 100644 index 6424e724efd..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/IS-connector.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9b76e1dbf0928d194ef83132facb63f3e78f03f39b41bf6e1ca034441f06ed7f -size 278261 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/Power-connectors.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/Power-connectors.png deleted file mode 100644 index 55fbc6def40..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/Power-connectors.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0d3d25512686d8ad047e2021f36229e669d6c7cf6e507256ae3f0316b6aef223 -size 349761 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/APL_frontend.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/apl_frontend.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/APL_frontend.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/apl_frontend.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/CM-choke.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/cm-choke.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/CM-choke.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/cm-choke.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/index.rst b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/index.rst index 6f1142897dd..8d876c80d69 100644 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/index.rst +++ b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/index.rst @@ -13,7 +13,7 @@ by IEC TS 60079-47. Key Parameters ~~~~~~~~~~~~~~ -The 10Base-T1L Ethernet connection can only be considered 2-WISE, +The 10BASE-T1L Ethernet connection can only be considered 2-WISE, especially for the APL Field Device if it passed the specification of a Power Load Port indicated in IEC TS 60079-47. @@ -54,7 +54,7 @@ Other than the classical considerations for intrinsic safety component selection, such power ratings, distances or temperature coefficients, special attention has been paid to the blocks highlighted in the diagram. -.. figure:: IS-block-analysis.png +.. figure:: is-block-analysis.png :width: 900 px :alt: AD-EthernetAPLDevice-SL Board @@ -81,7 +81,7 @@ verify that the energy stored by the inductor is within allowable limits at different conditions. Maximum allowable energy is 20uJ for Ex ia IIC Ga equipment or device. -.. figure:: CM-choke.png +.. figure:: cm-choke.png :width: 600 px :alt: CM choke @@ -102,7 +102,7 @@ energy. The light-blue highlights on the simplified circuit below indicates the protection parts or “barriers” that prevent excess energy which protect against explosion, more information can be learned on IEC 60079-11. -.. figure:: APL_frontend.png +.. figure:: apl_frontend.png :width: 800 px :alt: APL Front End Circuit with LT8440 Power Conditioner @@ -184,14 +184,14 @@ level protection, we need 3 polarity protection diodes in series to account for 2 simultaneous short circuit failures. The diode bridge and the additional series Schottky diode provide this protection. -3. The DM (differential mode) inductor can store energy that must be +3. The differential mode (DM) inductor can store energy that must be dissipated safely in the event of an open-circuit fault. The bank of diodes connected in parallel to the DM choke only operates in the event of an open circuit in the inductor that would otherwise create a voltage spike. These diodes must be redundant in parallel to reach 'Ex ia' protection. Three diodes in series are recommended for higher or wider operating temperature range because of the diode forward voltages being dependent on ambient temperature, -which the diodes must block the ethernet signal of 1V p-p during forward +which the diodes must block the ethernet signal of 1Vp-p during forward biased, and must not be distorted by diodes conducting across the inductor. But if size and component count are a critical factor, it can be reduced to 2 diodes in series in lesser or narrower temperature range. diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/IS-block-analysis.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/is-block-analysis.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/IS-block-analysis.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/is-block-analysis.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/pin-descriptions.csv b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/pin-descriptions.csv deleted file mode 100644 index 649725ddd58..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/pin-descriptions.csv +++ /dev/null @@ -1,6 +0,0 @@ -Jumper settings, - -R25 & R24,Configure the MAX42500 I2C address -R30 & R68,Configure the ADIN1110 SPI protocol -R98,Connects MAXQ1065 HW Reset pin to teh MAX32690 HW reset pin -R100,Connects the MAX42500 reset pin to the MAX32690 and ADIN1110 HW reset pins diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/sw_block_diagram.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/sw_block_diagram.png deleted file mode 100644 index f7bacfa1db3..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/sw_block_diagram.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:869c2524a94f2a4cb83a83edbcc8850540da50a335079c325e72b124dfcb1375 -size 119657 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/IS-connector.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/is-connector.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/IS-connector.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/is-connector.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/non-IS-connectors.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/non-IS-connectors.png deleted file mode 100644 index dbc8e17a807..00000000000 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/non-IS-connectors.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1c0543ad44766f8bf261e889ee9d83419df79b11f5b0bb5f109fce874d98e1ad -size 283677 diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/non-IS-connectors.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/non-is-connectors.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/intrinsic-safety/non-IS-connectors.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/non-is-connectors.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/Power-connectors.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power-connectors.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/Power-connectors.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/power-connectors.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Connection.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/connection.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Connection.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/connection.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Current_performance.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/current_performance.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Current_performance.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/current_performance.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Efficiency.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/efficiency.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Efficiency.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/efficiency.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/index.rst b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/index.rst index 1f31a04ab99..eb276371fa8 100644 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/index.rst +++ b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/index.rst @@ -54,7 +54,7 @@ reference design with DIN-B form factor), we can slightly compromise the efficiency but making sure first that it won't violate the line current ceiling it can pull to the :adi:`LT8440`. -.. figure:: Connection.png +.. figure:: connection.png :alt: Source to Load Simplified 2-WISE/APL Port Connection Source to Load Simplified 2-WISE/APL Port Connection @@ -77,14 +77,14 @@ is the summation of I_LOADP and I_SHUNT shown in Equation 1. I_LINEP = I_LOADP + I_SHUNTP (1) -.. figure:: LT8440-simplify.png +.. figure:: lt8440-simplify.png :alt: Simplified Partial Circuit of LT8440 Simplified Partial Circuit of LT8440 .. csv-table:: Line Voltage Threshold for sensed voltage between LINEA and LINEB (Excerpt only - incomplete table) - :file: Line_thresholds.csv + :file: line_thresholds.csv During Shunt Regulation Mode, the shunt pin of the LT8440 is conducting in which it satisfies Equation 1. @@ -110,7 +110,7 @@ it will satisfy the ILINEP = 40.5mA (for Level 1) or ILINEP = .. csv-table:: Regulating Line Current during Shunt Regulation Mode (Excerpt only - incomplete table) - :file: Regulation.csv + :file: regulation.csv The LINEA and LINEB pins sensed the voltage on the input line and dictate the current regulation, the position in which the LINEA/B @@ -137,7 +137,7 @@ work as intended. Figure 3 is the designed configuration for AD-EthernetAPLDevice-SL to pass the Intrinsic safety design certification. -.. figure:: LT8440-connection.png +.. figure:: lt8440-connection.png :alt: Required Frontend Design with Large Effective Capacitance & Inductance on the Load Side @@ -162,7 +162,7 @@ worst case and select appropriate power parts for the power tree using the LTPOWERPLANNER for the Power Tree calculation. .. csv-table:: Power Budget at Estimated Full Load - :file: Power_estimation.csv + :file: power_estimation.csv In the power tree provided in Figure 8 based on estimated power budget at full load. @@ -267,7 +267,7 @@ Characterizing the performance of the LT8440 Power Conditioner and the entire Power Tree, the following curves are captured at ambient temperature of 25 degrees Celsius (typical). -.. figure:: LOAD_P.png +.. figure:: load_p.png :width: 600 px :alt: LOAD_P (Load Side) and Shunt Parameters @@ -291,7 +291,7 @@ at 12.7V line voltage which is approximately 139.46mW. The shunt and load side power are small enough to not violate the APL limit when adding the two parameters. -.. figure:: Efficiency.png +.. figure:: efficiency.png :width: 600 px :alt: Efficiency and Current of Power Tree @@ -314,7 +314,7 @@ current and power, but those two parameters must not exceed what is indicated on the APL requirements like the 55.56mA maximum current at 9V, and the 500mW limit for the entire line voltage range. -.. figure:: Power_performance.png +.. figure:: power_performance.png :width: 600 px :alt: LINE_P Power Performance at Normal Operation, Shorted and Opened Load @@ -339,7 +339,7 @@ faulted/shorted, it did not exceed the maximum die power rating of therefore the LT8440 is doing its function as a power conditioner at normal operation and as a power limiter during fault scenario. -.. figure:: Current_performance.png +.. figure:: current_performance.png :width: 600 px :alt: LINE_P Current Performance at Normal Operation, Shorted and Opened Load diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Line_thresholds.csv b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/line_thresholds.csv similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Line_thresholds.csv rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/line_thresholds.csv diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/LOAD_P.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/load_p.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/LOAD_P.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/load_p.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/LT8440-connection.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/lt8440-connection.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/LT8440-connection.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/lt8440-connection.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/LT8440-simplify.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/lt8440-simplify.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/LT8440-simplify.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/lt8440-simplify.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Power_estimation.csv b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/power_estimation.csv similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Power_estimation.csv rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/power_estimation.csv diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Power_performance.png b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/power_performance.png similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Power_performance.png rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/power_performance.png diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Regulation.csv b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/regulation.csv similarity index 100% rename from docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/Regulation.csv rename to docs/solutions/reference-designs/ad-ethernetapldevice-sl/power/regulation.csv diff --git a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/specifications.csv b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/specifications.csv index 08b0c5378e5..c6890aea694 100644 --- a/docs/solutions/reference-designs/ad-ethernetapldevice-sl/specifications.csv +++ b/docs/solutions/reference-designs/ad-ethernetapldevice-sl/specifications.csv @@ -1,6 +1,6 @@ Computing Resources, CPU,MAX32690 Ultralow Power ARM Cortex-M4 with FPU-Based Microcontroller (MCU) with 3 MB Flash and 1 MB SRAM -Memory,512 Gb RAM +Memory,512 GB RAM Storage,64 Mb QSPI Flash Security,MAXQ1065 Ultralow Power Cryptographic Controller with ChipDNATM Connectivity, diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/ad9361_design_file_package.zip b/docs/solutions/reference-designs/ad-fmcomms3-ebz/ad9361_design_file_package.zip new file mode 100644 index 00000000000..cfc0f5b2d50 --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/ad9361_design_file_package.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:950cc1e6dbf378b624c42f9ca617221e0dd3d6ee41662092a681c0d7d218a4a5 +size 3576501 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/ad9361_top_layer.png b/docs/solutions/reference-designs/ad-fmcomms3-ebz/ad9361_top_layer.png new file mode 100644 index 00000000000..b6e9bfc9c35 --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/ad9361_top_layer.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9446222296c39320fd8c8ba2ce2f0bf274e5658fdee5cc7577861cedb78f92e +size 1729103 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/fmcomms3_evm.png b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/fmcomms3_evm.png new file mode 100644 index 00000000000..8c6a88a28fb --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/fmcomms3_evm.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f64af58efddd7240195ad3407c8807d908b1d3c649c9dd976cbef7731333b5b7 +size 12820 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/index.rst b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/index.rst new file mode 100644 index 00000000000..74df1b22175 --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/index.rst @@ -0,0 +1,181 @@ +.. _ad-fmcomms3-ebz card-specifications: + +AD-FMCOMMS3-EBZ Specifications +============================== + +Transmit and Receive Specs +-------------------------- + +LO BW +~~~~~ + +.. figure:: lo_sweep.png + + LO BW over the full range or 70 MHz to 6 GHz + +EVM +~~~ + +The `error vector magnitude `__ +or EVM (sometimes also called receive constellation error or RCE) is a +measure used to quantify the performance of a digital radio transmitter +or receiver. + +A signal would normally be sent by an transmitter and then received by a +receiver, and the resulting constellation would be precisely compared to +the ideal constellation location. This is a interesting metric since any +sort of imperfections in either the transmit or receive implementation +(such as carrier leakage, image rejection, phase noise, group delay +mismatch, any nonlinearity, jitter, timing recovery, equalization, etc) +will cause the actual constellation points to deviate from the ideal +locations. + +Since EVM is a total system test, users must understand for testing a +receiver, a transmitter with better performance that the receiver is +required. For testing a transmitter, a receiver with better performance +than then transmitter is required. Care must be taking to understand the +“weakest” link, and where the performance limit is coming from. It can +be any of: + + - transmitter + + - receiver + + - receive algorithm + +In many cases +`LTE `__ is +used for EVM testing, since it such as well defined, and understood +standard for high-speed wireless communication for mobile phones and +data terminals. The +`European Telecommunications Standards Institute `__ +(ETSI) has :download:`detailed standards ` +which define the waveforms used for LTE EVM testing, including: + + - EVM of single 64QAM PRB (for 1.4 MHz, 3 MHz, 5 MHz, 10 MHz, 15 MHz, + and 20 MHz channels) at max and min powers + + - EVM for 16QAM modulation (for 1.4 MHz, 3 MHz, 5 MHz, 10 MHz, 15 MHz, + and 20 MHz channels) + + - EVM for QPSK modulation (for 1.4 MHz, 3 MHz, 5 MHz, 10 MHz, 15 MHz, + and 20 MHz channels) + +To create these vectors to play out either a bench instrument, or a SDR +platform, most people (including ADI) use one of: + + - Keysight + `SignalStudio `__ + + - MathWorks + `LTE System Toolbox `__ + +On the receive side (to actually decode the LTE signal, and measure +EVM), we use one of: + + - Keysight + `89600 VSA Software `__ + + - MathWorks + `LTE System Toolbox `__ + +To complicate matters, EVM is a unit-less measurement. It’s a ratio, +which can be represented in both percent (%) or as a dB (converting to +log scale). Since dB will show you in details where the differences are +- it’s easier to understand the difference between 2%, 1% and half a +percent by discussing -34 dB, -40 dB, -46 dB (which are the same +physical error). Typically EVM performance of less than -35 dB is +required for many communications applications. + +.. figure:: fmcomms3_evm.png + + EVM over the full range or 70 MHz to 6 GHz + +Transmit Specs +-------------- + +Tx Output Power vs Frequency +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Since there is a large (2 orders of magnitude) tuning range of the +device (70 MHz to 6000 MHz), it’s good to understand how much power the +AD9361 can output. + +Tests were done both with CW (single tone 10 MHz offset from the LO), +measuring output power, lo leakage, and image. + +.. figure:: tx_wb_sweep.png + + Tx Output Power vs Frequency 70 MHz to 6 GHz + +Tests should also be done with a wide band signal (LTE 10), measuring +output power, and +`ACPR `__. + +Adjacent Channel Power +~~~~~~~~~~~~~~~~~~~~~~ + +`ACP `__ + +Phase Noise +~~~~~~~~~~~ + +`Phase noise `__ + +Output power +~~~~~~~~~~~~ + +`Transmitter power output `__ + +Intermodulation Distortion +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`IMD `__ + +Bandwidth +~~~~~~~~~ + +`Bandwidth `__ + +Receive Specs +------------- + +Signal to Noise +~~~~~~~~~~~~~~~ + +`SNR `__ + +Noise floor +~~~~~~~~~~~ + +`Noise floor `__ + +Input sensitivity +~~~~~~~~~~~~~~~~~ + +`Input sensitivity `__ + +Dynamic range +~~~~~~~~~~~~~ + +`Dynamic range `__ + +LO BW +~~~~~ + +.. figure:: rx_sweep_track.png + + LO BW over the full range or 70 MHz to 6 GHz + +EVM +~~~ + +.. figure:: lte_10_rx_slow.png + :width: 800px + + LTE10, slow AGC, 2.4GHz LO, -38dBm input + +.. figure:: lte_20_rx_slow.png + :width: 800px + + LTE20, slow AGC, 2.4GHz LO, -38dBm input diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/lo_sweep.png b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/lo_sweep.png new file mode 100644 index 00000000000..c2a43b241dd --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/lo_sweep.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aca5cafdb59522b85b509b580b468c4fcbcf07c9720ecfa7a4c4f1d079059eb0 +size 13479 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/lte_10_rx_slow.png b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/lte_10_rx_slow.png new file mode 100644 index 00000000000..bdffd4b7374 --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/lte_10_rx_slow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35c3686e5731efc39e3052609bc86451a27b7e07e850ce677b780fcad3e4ad86 +size 114838 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/lte_20_rx_slow.png b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/lte_20_rx_slow.png new file mode 100644 index 00000000000..2717a8bb06d --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/lte_20_rx_slow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a77473dcd6ba5386077162bd772c91cb71134eda1cd49281dce4d0a4eb00ed1a +size 111729 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/rx_sweep_track.png b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/rx_sweep_track.png new file mode 100644 index 00000000000..978d86142c2 --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/rx_sweep_track.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9b8a7b4d0305949b5d1fb881969f33ca3461db07c74405bc86fddf34415071c +size 16513 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/ts_136141.pdf b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/ts_136141.pdf new file mode 100644 index 00000000000..89262c994d9 Binary files /dev/null and b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/ts_136141.pdf differ diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/tx_wb_sweep.png b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/tx_wb_sweep.png new file mode 100644 index 00000000000..3922bf4ba3d --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/card-specifications/tx_wb_sweep.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77d46c238c85a177ae5f3e3ce9d57905d7923c18d7c3851d12d4364c3cf912cc +size 10281 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/ad-fmcomms3-ebz-designsupport.zip b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/ad-fmcomms3-ebz-designsupport.zip new file mode 100644 index 00000000000..aabd73f0ca7 --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/ad-fmcomms3-ebz-designsupport.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00a7ceda430aeaab472b9ee36f32494c0fc6d02357e9754de022eea1ff30ed75 +size 2158308 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/config-options/index.rst b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/config-options/index.rst new file mode 100644 index 00000000000..2505b5e258a --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/config-options/index.rst @@ -0,0 +1,27 @@ +.. _ad-fmcomms3-ebz hardware-guide config-options: + +FMCOMMS3 Configuration Options +============================== + +The AD-FMCOMMS3 has almost no configuration options for normal use. If +you find that this platform does meet your RF performance goals, you +should check out the +:dokuwiki:`ad-fmcomms2-ebz ` +board, which can be tuned with external baluns. + +Changing the external clock +--------------------------- + +The :adi:`AD-FMCOMMS2-EBZ` and :adi:`AD-FMCOMMS3-EBZ` are both +clocked from a 40.000000 MHz Epson crystal. If you want to run from +a external source, you need to remove Y101, populate C113 (0.1uF Cap), +and provide a low jitter clock source into J105 (SMA connector). If +you provide anything but a 40.000000 MHz input, you are required to +change the ``clock-frequency`` setting in the device tree. + + + +To change the frequency follow +:dokuwiki:`this guide ` +on how to build the devicetree binary file (make sure you modify the +``clock-frequency`` attribute first.) diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2_locations.png b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2_locations.png new file mode 100644 index 00000000000..f8ae153b618 --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2_locations.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b0af049fb8e2c9b7652b5a5b6f21fd0898229db8dd2c527fcd9b3c2939ae5ea +size 1890932 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2c_bottom_layout.png b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2c_bottom_layout.png new file mode 100644 index 00000000000..a2dfb31c884 --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2c_bottom_layout.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b11aa82c9ac25b81baece9dde89ea038e6eaadd5a6cb358119863cda472ff0e +size 54143 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2c_dimensions.png b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2c_dimensions.png new file mode 100644 index 00000000000..7b24bc9e685 --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2c_dimensions.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38a0e6f240cf965ca9ab0d408d27e90a29a93aae4aa446315901728d55280a99 +size 43646 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2c_layers.png b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2c_layers.png new file mode 100644 index 00000000000..84b2c05b405 --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2c_layers.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b88485960019e72fafcda3cb61334c18d03a01b6ffa40ed169077127fec27b4 +size 33385 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2c_top_layout.png b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2c_top_layout.png new file mode 100644 index 00000000000..cf7ab78da1c --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/fmcomms2c_top_layout.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0f4560b29bc571e4bbb3ef9be9fa2cb902e63130b62603f4737ed1bece4743c +size 43058 diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/index.rst b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/index.rst new file mode 100644 index 00000000000..d29d77e55cb --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/index.rst @@ -0,0 +1,147 @@ +.. _ad-fmcomms3-ebz hardware-guide: + +Hardware User Guide +=================== + +Schematic, PCB Layout, Bill of Materials +---------------------------------------- + +.. admonition:: Download + + .. note:: + + This is the latest, greatest and production worthy + Rev “A” of this board (Although it indicates “A”, + this is not the first version, and there is no + Rev B planned). + + Note that the RF transformers used as baluns on + the Rev A board are Mini Circuits + :download:`TCM1-63AX+ `. They + are rated for an operating frequency between + 10 MHz and 6 GHz. + + :download:`AD-FMCOMMS3-EBZ Design & Integration Files ` + + - Schematics + - PCB Layout + - Bill of Materials + - Allegro Project (get the + `Allegro FREE Physical Viewer `__ + ;you need 16.5 or higher) + +I/O Voltage +----------- + +The :adi:`AD-FMCOMMS3-EBZ` (AD9361) +assumes a VDD_INTERFACE voltage between 1.71 V and 2.625 V (1.8 +to 2.5 +/- 5%), so on your FPGA carrier board, you should ensure that +VADJ is between these levels. Setting things to 3.3 V will damage the +part. + +Picture and Main components +--------------------------- + +.. figure:: fmcomms2_locations.png + :align: center + :height: 500px + :width: 500px + +Outline +~~~~~~~ + +For those that don’t want to load up the Allegro viewer, here is a basic +outline/component placements of the board. While this board does meet +parts of the VITA-57.1 (FMC) specifications, there are many things it +violates, and is **not** designed to be a form/fit/function board. + +- The FMC cutout for the bezel is missing (so we could space the SMA + connectors out as far as possible, and achieve maximum isolation + between the channels. + +- The mounting holes near the end of the board with the connectors is + also in the wrong place (so it didn’t effect the RF path between the + connectors and the AD9361. + +- The FMC height specification on the top side of the board is violated + to put some 90 degree SMA connectors. + + .. figure:: fmcomms2c_bottom_layout.png + :align: center + :height: 500px + :width: 500px + + .. figure:: fmcomms2c_top_layout.png + :align: center + :height: 500px + :width: 500px + +Size +~~~~ + +The size of the board (not including the SMA connectors, which project +beyond the edge of the board) is 73.3mm x 69mm. This is under the FMC +specifications of 84mm x 69mm). The mounting holes are not compliant +with the FMC standard, and are shown below. + + .. figure:: fmcomms2c_dimensions.png + :align: center + :height: 500px + :width: 500px + +Layers +~~~~~~ + +The :adi:`AD-FMCOMMS3-EBZ` is a 10 layer board. + +Design Cross Section + ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| Subclass | Type | Material | Thickness | Conductivity | Dielectric | Loss | Shield | Width | +| Name | | | (MIL) | (mho/cm) | Constant | Tangent | | (MIL) | ++==========+============+==========+===========+==============+============+=========+========+=======+ +| | SURFACE | AIR | | 0 | 1 | 0 | | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| TOP | CONDUCTOR | COPPER | 2.025 | 595900 | 1 | 0 | | 8.00 | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| | DIELECTRIC | FR-4 | 8 | 0 | 3.38 | 0.035 | | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| L2_GND | PLANE | COPPER | 1.35 | 595900 | 1 | 0.035 | Y | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| | DIELECTRIC | BT_EPOXY | 3 | 0 | 4.10 | 0.02 | | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| L3_PWR | PLANE | COPPER | 1.35 | 595900 | 1 | 0.035 | Y | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| | DIELECTRIC | FR-4 | 3 | 0 | 4.10 | 0.035 | | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| L4_GND | PLANE | COPPER | 1.35 | 595900 | 1 | 0.035 | Y | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| | DIELECTRIC | BT_EPOXY | 4.60 | 0 | 4.10 | 0.02 | | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| L5_SIG | CONDUCTOR | COPPER | 1.35 | 595900 | 1 | 0.035 | | 3.80 | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| | DIELECTRIC | FR-4 | 8 | 0 | 4.10 | 0.035 | | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| L6_SIG | CONDUCTOR | COPPER | 1.35 | 595900 | 1 | 0.035 | | 3.80 | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| | DIELECTRIC | BT_EPOXY | 4.60 | 0 | 4.10 | 0.02 | | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| L7_GND | PLANE | COPPER | 1.35 | 595900 | 1 | 0.035 | Y | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| | DIELECTRIC | FR-4 | 3 | 0 | 4.10 | 0.035 | | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| L8_PWR | PLANE | COPPER | 1.35 | 595900 | 1 | 0.035 | Y | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| | DIELECTRIC | BT_EPOXY | 3 | 0 | 4.10 | 0.02 | | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| L9_GND | PLANE | COPPER | 1.35 | 595900 | 1 | 0.035 | Y | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| | DIELECTRIC | FR-4 | 8 | 0 | 3.38 | 0.035 | | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| BOTTOM | CONDUCTOR | COPPER | 2.025 | 595900 | 1 | 0 | | 8.00 | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ +| | SURFACE | AIR | | 0 | 1 | 0 | | | ++----------+------------+----------+-----------+--------------+------------+---------+--------+-------+ + + .. figure:: fmcomms2c_layers.png + :align: center \ No newline at end of file diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/tcm1-63ax+.pdf b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/tcm1-63ax+.pdf new file mode 100644 index 00000000000..0ba4af0cd9a Binary files /dev/null and b/docs/solutions/reference-designs/ad-fmcomms3-ebz/hardware-guide/tcm1-63ax+.pdf differ diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/index.rst b/docs/solutions/reference-designs/ad-fmcomms3-ebz/index.rst new file mode 100644 index 00000000000..3fb7b2cd524 --- /dev/null +++ b/docs/solutions/reference-designs/ad-fmcomms3-ebz/index.rst @@ -0,0 +1,207 @@ +.. _ad-fmcomms3-ebz: + +AD-FMCOMMS3-EBZ +=============== + +AD9361 Wideband Software Defined Radio Board. + +.. figure:: ad9361_top_layer.png + :align: center + :height: 400px + :width: 400px + +The :adi:`AD-FMCOMMS3-EBZ` is an FMC board for the +:adi:`AD9361`, a highly integrated RF Agile Transceiver™. +While the complete chip level design package can be found +on the :download:`the ADI website `. +Information on the card, and how to use it, the design package that +surrounds it, and the software which can make it work, can be found +here. + +The purpose of the :adi:`AD-FMCOMMS3-EBZ` is to provide an RF platform to +software developers, system architects, etc, who want a single platform +which operates over a much wider tuning range (70 MHz – 6 GHz). It’s +expected that the RF performance of this platform can meet the datasheet +specifications at 2.4 GHz, but not at the entire RF tuning range that +the board supports (but it will work **much** better than the +:dokuwiki:`AD-FMCOMMS2-EBZ ` +over the complete RF frequency). We will provide typical performance +data for the entire range (70 MHz – 6 GHz) which is supported by the +platform. This is primarily for system investigation and bring up of +various waveforms from a software team before their custom hardware is +complete, where they want to see waveforms, but are not concerned about +the last 1dB or 1% EVM of performance. + +The :adi:`AD-FMCOMMS3-EBZ` board is very similar to the +:dokuwiki:`AD-FMCOMMS2-EBZ ` +board with only one exception, the Rx/Tx RF differential to single ended +transformer. The AD-FMCOMMS3-EBZ is more targetted for wider tuning +range applications, that is why we use the +:download:`TCM1-63AX+ ` from +Mini-Circuits as the RF transformer of choice. We affectionately call +the AD-FMCOMMS3-EBZ the “Software Engineers” platform, and the +:adi:`AD-FMCOMMS2-EBZ`, the “RF Engineers” platform to denote +the difference. + +#. :adi:`Purchase ` + +#. :dokuwiki:`Introduction ` + +#. :dokuwiki:`FMCOMMS3 Hardware `: + + This provides a brief description of the AD-FMCOMMS3-EBZ board by + itself, and is a good reference for those who want to understand a + little more about the board. If you just want to use the board, you + can skip this section, and come back to it when you want to + incorporate the AD9361 into your product. + + #. :dokuwiki:`Hardware ` + (including + :dokuwiki:`schematics <=resources/eval/user-guides/ad-fmcomms3-ebz/hardware#downloads>`) + + #. :dokuwiki:`Functional Overview & Specifications ` + + #. :dokuwiki:`Characteristics & Performance ` + + #. :dokuwiki:`Configuration options ` + + #. :dokuwiki:`FCC or CE certification ` + + #. :dokuwiki:`Tuning the system ` + + #. :dokuwiki:`Production Testing Process ` + +#. Use the AD-FMCOMMS3-EBZ Board to better understand the AD9361 + + #. :dokuwiki:`What you need to get started ` + + #. :dokuwiki:`Quick Start Guides ` + + #. :dokuwiki:`Linux on ZC702, ZC706, ZED ` + + #. :dokuwiki:`Linux on ZCU102 ` + + #. :dokuwiki:`Linux on KC705, VC707 ` + + #. :dokuwiki:`Configure a pre-existing SD-Card ` + + #. :dokuwiki:`Update the old card you received with your hardware ` + + #. Linux Applications + + #. :dokuwiki:`IIO Scope ` + + #. :dokuwiki:`AD936X Control IIO Scope Plugin ` + + #. :dokuwiki:`AD936X Advanced Control IIO Scope Plugin ` + + #. :dokuwiki:`Command Line/Shell scripts ` + + #. Push custom data into/out of the AD-FMCOMMS3-EBZ + + #. :dokuwiki:`Basic Data files and formats ` + + #. :dokuwiki:`Create and analyze data files in MATLAB ` + + #. :dokuwiki:`Stream data into/out of MATLAB ` + + #. :dokuwiki:`AD9361 libiio streaming example ` + + #. :dokuwiki:`Python Interfaces ` + +#. Design with the AD9361 + + #. :dokuwiki:`Understanding the AD9361 ` + + #. :adi:`AD9361 Product page ` + + #. :adi:`Full Datasheet and chip design package ` + + #. :dokuwiki:`MATLAB Filter Design Wizard for AD9361 ` + + #. Simulation + + #. :dokuwiki:`MathWorks SimRF Models of the AD9361 ` + + #. :dokuwiki:`Installing RF Blockset Models for AD9361 ` + + #. :dokuwiki:`Running the AD9361 Receive Testbench ` + + #. Hardware in the Loop / How to design your own custom BaseBand + + #. :dokuwiki:`Analog Devices Transceiver Toolbox for MATLAB and Simulink ` + + #. MATLAB/Simulink Examples + + #. :dokuwiki:`Stream data into/out of MATLAB ` + + #. :dokuwiki:`Beacon Frame Receiver Example ` + + #. :dokuwiki:`QPSK Transmit and Receive Example ` + + #. :dokuwiki:`LTE Transmit and Receive Example ` + + #. :dokuwiki:`ADS-B Airplane Tracking Example ` + + #. :dokuwiki:`GNU Radio ` + + #. :dokuwiki:`FM Radio/Tuner ` + (listen to FM signals on the HDMI monitor) + + #. :dokuwiki:`C example ` + + #. Targeting + + #. :dokuwiki:`Analog Devices BSP for MathWorks HDL Workflow Advisor (To be depreciated) ` + + #. :dokuwiki:`Analog Devices Transceiver Toolbox for MATLAB and Simulink ` + + #. Complete Workflow + + #. :dokuwiki:`ADS-B Airplane Tracking Tutorial ` + + #. :dokuwiki:`Frequency Hopping Controller ` + + #. Design a custom AD9361 based platform + + #. :dokuwiki:`Linux software ` + + #. :dokuwiki:`Linux Device Driver ` + + #. :dokuwiki:`Build the demo on ZC702, ZC706, or ZED from source ` + + #. :dokuwiki:`Build ZynqMP/MPSoC Linux kernel and devicetrees from source ` + + #. :dokuwiki:`Build the demo on KC705 or VC707 for Microblaze from source ` + + #. :dokuwiki:`Build the 2015_R2 Release Linux kernel from source ` + + #. :dokuwiki:`Customizing the devicetree on the target ` + + #. :dokuwiki:`No-OS Driver ` + + #. :dokuwiki:`HDL Reference Design ` + which you must use in your FPGA. + + #. :dokuwiki:`Digital Interface Timing Validation ` + +#. Additional Documentation about SDR Signal Chains + + #. :dokuwiki:`The math behind the RF ` + +#. :dokuwiki:`Help and Support ` + +Warning +------- + +.. esd-warning:: + +.. toctree:: + :hidden: + :titlesonly: + :maxdepth: 1 + :glob: + + hardware-guide/index + card-specifications/index + hardware-guide/config-options/index \ No newline at end of file diff --git a/docs/solutions/reference-designs/ad-fmcomms3-ebz/tcm1-63ax+.pdf b/docs/solutions/reference-designs/ad-fmcomms3-ebz/tcm1-63ax+.pdf new file mode 100644 index 00000000000..0ba4af0cd9a Binary files /dev/null and b/docs/solutions/reference-designs/ad-fmcomms3-ebz/tcm1-63ax+.pdf differ diff --git a/docs/solutions/reference-designs/ad-gmsl-d-e-adp/index.rst b/docs/solutions/reference-designs/ad-gmsl-d-e-adp/index.rst index 1a9dd3accac..28768f1f693 100644 --- a/docs/solutions/reference-designs/ad-gmsl-d-e-adp/index.rst +++ b/docs/solutions/reference-designs/ad-gmsl-d-e-adp/index.rst @@ -3,8 +3,7 @@ AD-GMSL-D-E-ADP# ================ -GMSL oLDI/LVDS to HDMI Adapter -"""""""""""""""""""""""""""""" +GMSL oLDI/LVDS to HDMI Adapter. Overview -------- diff --git a/docs/solutions/reference-designs/ad-gmsl522-sl/hardware-guide/02_074767b_top_public.pdf b/docs/solutions/reference-designs/ad-gmsl522-sl/hardware-guide/02_074767b_top_public.pdf index a4915c6d684..efd42911aba 100644 Binary files a/docs/solutions/reference-designs/ad-gmsl522-sl/hardware-guide/02_074767b_top_public.pdf and b/docs/solutions/reference-designs/ad-gmsl522-sl/hardware-guide/02_074767b_top_public.pdf differ diff --git a/docs/solutions/reference-designs/ad-gmsl522-sl/index.rst b/docs/solutions/reference-designs/ad-gmsl522-sl/index.rst index 94b4b908591..b862f38f5ed 100644 --- a/docs/solutions/reference-designs/ad-gmsl522-sl/index.rst +++ b/docs/solutions/reference-designs/ad-gmsl522-sl/index.rst @@ -1,8 +1,7 @@ AD-GMSL522-SL ============= -GMSL Carrier Board -"""""""""""""""""" +GMSL Carrier Board. Overview -------- diff --git a/docs/solutions/reference-designs/ad-gmsl522-sl/software-guide/index.rst b/docs/solutions/reference-designs/ad-gmsl522-sl/software-guide/index.rst index 64b97dfe562..cfc40d6c30e 100644 --- a/docs/solutions/reference-designs/ad-gmsl522-sl/software-guide/index.rst +++ b/docs/solutions/reference-designs/ad-gmsl522-sl/software-guide/index.rst @@ -16,8 +16,8 @@ Introduction .. note:: The AD-GMSL522-SL Development Board or simply “GMSL Dev Board” is just - another name for the AD-GMSL522-SL board. Note that these three names are used - interchangeably throughout this Getting Started Guide. + another name for the AD-GMSL522-SL Board. These three names are used + interchangeably throughout this Software Guide. This page will go over high-level features and functions of the AD-GMSL522-SL Board. The following, specifically, will be covered: @@ -35,15 +35,15 @@ Pre-Requisites No prior training is required to go through the content of this document. A basic understanding of the GMSL technology, however, is recommended. The following sub-sections detail the required and -recommended hardware/software to get the AD-GMSL522-SL board up and running +recommended hardware/software to get the AD-GMSL522-SL Board up and running properly. Required Hardware ~~~~~~~~~~~~~~~~~ The following hardware is required to enable -critical features of the AD-GMSL522-SL Board. The AD-GMSL522-SL board and -vetted hardware is shown below. The customer will need to procure their own +critical features of the AD-GMSL522-SL Board. The AD-GMSL522-SL Board and +vetted hardware are shown below. The customer will need to procure their own Jetson Module and corresponding heatsink. .. csv-table:: @@ -55,47 +55,51 @@ Recommended Hardware - Ethernet Cable or USB <-> Wi-Fi Adapter - MicroUSB Cable -- USB Mouse and eyboard +- USB Mouse and Keyboard - `NVMe Module `__ - `SD Card `__ Required Software and Downloads ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- `AD-GMSL522-SL image for flashing `__ +- `AD-GMSL522-SL image for flashing `__ - Programming potentiometers for configuration pins: WIP -- :git-gmsl:`GMSL GUI Server ` +- :git-gmsl:`GMSL GUI Server ` + + .. note:: + + :git-gmsl:`GMSL GUI Server ` must be downloaded on the board. Recommended Tools and Software ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The following software are tools that +The following are software tools that are commonly referenced and used during different examples, demos and -tutorials for AD-GMSL522-SL. To be able to easily follow along with these +tutorials for the AD-GMSL522-SL Board. To be able to easily follow along with these lessons, it is recommended to download and install these tools. -- NoMachine (there is a following section below for more information) +- NoMachine (there is a section below for more information) AD-GMSL522-SL Hardware Overview ------------------------------- In this section, the inputs, outputs, and other general hardware features of the -AD-GMSL522-SL board will be discussed. +AD-GMSL522-SL Board will be discussed. GMSL Camera Inputs ~~~~~~~~~~~~~~~~~~ One way to send video data to the AD-GMSL522-SL -board is through GMSL-2 compatible camera modules. They can be connected to +Board is through GMSL-2 compatible camera modules. They can be connected to the onboard FAKRA connectors, INA+, INB+, INC+, and IND+. These FAKRA connectors are connected directly to the onboard MAX96724. In addition to -being connected to the deserializer these connectors are also shorted to +12V. -This means that the camera modules can be powered from the AD-GMSL522-SL board +being connected to the deserializer, these connectors are also shorted to +12V. +This means that the camera modules can be powered from the AD-GMSL522-SL Board and do not need to be powered internally. This is important to note because it means that another voltage source should not be connected to these FAKRA connectors, otherwise damage could be caused to either the AD-GMSL522-SL -board, or the user’s module. +Board, or the user’s module. .. figure:: samtec_connector_image.png :width: 600 px @@ -105,7 +109,7 @@ board, or the user’s module. The MAX96724 has its Port B CSI-2 DPHY bus connected to the input of the Jetson SoM. The second way that a user can send video to the Jetson SoM is through the SAMTEC connector on the bottom of the board. Any GMSL2 CSI-2 DPHY deserializer -Evkit, or user-designed, board can be connected to this port. This SAMTEC +Evkit, or user-designed board can be connected to this port. This SAMTEC connector has 2x 1x4 CSI-2 DPHY ports connected directly to the Jetson SoM inputs. Additionally, this connector can supply power, an I2C connection to the Jetson, and GPIO connections to the Jetson to control things like frame sync, or @@ -116,9 +120,9 @@ CSI Input to Jetson SoM Depending on whether you are using camera modules through the onboard MAX96724, or an Evkit connected to the onboard CSI -SAMTEC connector, or both, you will need to know which CSI input port to the -Jetson is connected. The below graphic shows which CSI Ports on the Jetson go -to which video inputs to the AD-GMSL522-SL board. +SAMTEC connector, or both, you will need to know to which CSI input port the Jetson +is connected. The below graphic shows which CSI Ports on the Jetson go +to which video inputs to the AD-GMSL522-SL Board. For more specifics about CSI connections, refer to :ref:`ad-gmsl522-sl hardware`. @@ -127,8 +131,8 @@ I2C Busses The Jetson has many different possible I2C busses and therefore it is important to know which I2C bus connects to where on -AD-GMSL522-SL board. For more specifics about the I2C busses on AD-GMSL522-SL -board, refer to :ref:`ad-gmsl522-sl hardware`. +the AD-GMSL522-SL Board. For more specifics about the I2C busses on +the AD-GMSL522-SL Board, refer to :ref:`ad-gmsl522-sl hardware`. First Time Setup / Getting Started ---------------------------------- @@ -136,18 +140,18 @@ First Time Setup / Getting Started Assembling the SoM to the Board ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -#. First, attach the heatsink to the SOM. -#. Next, plug in the SOM to the AD-GMSL522-SL board at an angle, and once the - SOM is seated into the connector, push the SOM down until it is parallel with - the carrier board, at which point the locks should engage to keep the SOM at +#. First, attach the heatsink to the SoM. +#. Next, plug in the SoM to the AD-GMSL522-SL Board at an angle, and once the + SoM is seated into the connector, push the SoM down until it is parallel with + the carrier board, at which point the locks should engage to keep the SoM at a certain position. -#. Install standoffs to keep SOM safely in a firm and locked position. +#. Install standoffs to keep SoM safely in a firm and locked position. Flashing the AD-GMSL522-SL Board ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. Important:: +.. important:: In this next section, if you see an error during flashing, indicating ‘strings’ is not installed, run the following commands on your host PC to install the required @@ -158,27 +162,79 @@ Flashing the AD-GMSL522-SL Board $sudo apt update $sudo apt install binutils -First, your Linux PC needs to be +First, your Linux PC (or Windows PC with WSL) needs to be configured to be able to flash Jetson devices. To do this, follow NVIDIA’s documentation to install and run their “SDK Manager” program: -https://docs.nvidia.com/sdk-manager/download-run-sdkm/index.html Now, let’s -begin with flashing the AD-GMSL522-SL image onto the NVIDIA Xavier SOM. Follow -the next steps to do so: - -#. With the power off, place jumpers to short pins 3-4 on the P11 header to - force USB Recovery Mode for the Jetson Xavier. See below picture for a - diagram showing jumpers to be shorted. Pins 9-10 should always be shorted. -#. Plug in the power and programming cables to the AD-GMSL522-SL board by - following the below picture. +https://docs.nvidia.com/sdk-manager/download-run-sdkm/index.html + +Now, let’s begin with flashing the AD-GMSL522-SL image onto the NVIDIA Xavier NX SoM. +Follow the next steps to do so: + +#. With the power off, place jumpers to short pins 3-4 on the P11 header. This will + force USB Recovery Mode for the Jetson Xavier NX. See the picture below for a + diagram showing the jumpers to be shorted. Pins 9-10 should always be shorted. + + .. figure:: step1.png + + Jumpers Placement For Flashing + +#. Plug in the power and programming cables to the AD-GMSL522-SL Board by + following the picture below. A MicroUSB cable should be connected to the + P6 port, and 12V should be supplied on the P9 port. Use the S6 switch to + power on the board. + + .. figure:: step2.png + + Cabling Configuration For Flashing + #. Untar, or extract, the image that was downloaded in the “Required Software” - section of this document + section of this document. + + .. shell:: + + $sudo tar -xvf + +#. Change the working directory to the new directory created during the untar process. +#. Run the following commands in order to install a few necessary packages (in case they are not already installed on the host PC). .. shell:: - $sudo tar -xvf + $sudo apt install lz4 libxml2-utils cpio dosfstools + +#. **(Optional)** If using WSL (instead of native Linux), create a ``.ps1`` file which contains the following script. + Then, open an **Administrator** PowerShell terminal on Windows, and execute the script file. This script essentially + keeps the USB port that is associated to the board attached to WSL because the connection becomes unstable during the flashing + process, thus hindering it. + + .. code:: powershell + + $vid = "0955" + + Write-Host "Watching for NVIDIA devices (VID:$vid) to auto-attach to WSL..." + Write-Host "Press Ctrl+C to stop." -#. Change working directory to the new directory created during the untar process. -#. On the host pc (this must be done with a Linux OS), run the following command to flash the Jetson SoM. + while ($true) + { + $lines = usbipd list 2>$null | Select-String $vid + foreach ($line in $lines) + { + if ($line -match "^(\d+-\d+)\s+" -and $line -notmatch "Attached") + { + $busid = $Matches[1] + Write-Host "[$(Get-Date -Format 'HH:mm:ss')] Binding and attaching $busid..." + usbipd bind --busid $busid 2>$null + usbipd attach --wsl --busid $busid 2>$null + Write-Host "[$(Get-Date -Format 'HH:mm:ss')] Attached $busid" + } + } + Start-Sleep -Milliseconds 500 + } + + .. note:: + + The AD-GMSL522-SL Board will appear under the name ``APX`` when running the ``usbipd list`` command in PowerShell. + +#. On the host PC (this must be done with a Linux OS or using WSL), run the following command to flash the Jetson SoM. .. shell:: @@ -188,16 +244,21 @@ the next steps to do so: - "The target t186ref has been flashed properly." -#. Reset the board to boot from internal eMMC via: - - Power down the board, and remove the FORCE_REC jumpered pin and remove the USB connection - - Power cycle the board. Note the fan will run and stop depending on the load level +#. Reset the board to boot from internal eMMC: + + - Power down the board by using the S6 switch. + - Remove the jumper from pins 3-4 on the P11 header (FORCE_REC jumpered pin). + - Remove the MicroUSB connection. + - Power cycle the board. + + .. note:: -#. Power cycle the AD-GMSL522-SL board. + The fan will start and stop running depending on the load level. .. warning:: - It is very important at this point not to run automatic installing - commands like apt-get update because the current viper file system was created + It is very important at this point not to run automatic installation + commands like ``apt-get update`` because the current viper file system was created with an older version of JetPack – 5.3.1. Updating the Digital Potentiometers on AD-GMSL522-SL @@ -211,20 +272,20 @@ Updating the Digital Potentiometers on AD-GMSL522-SL - 6 Gbps Forward Link Speed (Both MAX96724 and MAX96717) - I2C communication method (instead of UART) (Both MAX96724 and MAX96717) - - 8-Bit I2C Address 0x4E (MAX96724) - - 8-bit I2C Address 0x84 (MAX96717) + - 8-bit I2C address 0x4E (MAX96724) + - 8-bit I2C address 0x84 (MAX96717) -The digital potentiometers on the AD-GMSL522-SL board control the voltage that +The digital potentiometers on the AD-GMSL522-SL Board control the voltage that is sent to the configuration pins of the GMSL devices, and therefore, control which mode the GMSL devices are booted up in. Learn more about the configuration pins in the MAX96724 or the MAX96717 datasheets. To update or change these -voltages run the following script. This should be run once when the board is +voltages, run the following script. This should be run once when the board is first received, and again any time a change to the digital potentiometer output voltage is required. The potentiometers will save the configuration in their EEPROM, so it is not required to run this script after every reboot. -#. Change directory where the vr_config.sh script is located. -#. On the AD-GMSL522-SL board, execute the vr_config.sh script to update the +#. Change the directory to where the ``vr_config.sh`` script is located. +#. On the AD-GMSL522-SL Board, execute the ``vr_config.sh`` script to update the potentiometers: .. shell:: @@ -234,20 +295,20 @@ EEPROM, so it is not required to run this script after every reboot. How to Change Configuration Pin Voltages for Onboard SERDES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Below is an example of the digital potentiometer circuit on the AD-GMSL522-SL board. As -you can see, the digital pot sets the point along the internal where the +Below is an example of the digital potentiometer circuit on the AD-GMSL522-SL Board. As +you can see, the digital pot sets the point along the internal resistor where the voltage is measured. Because the internal resistor of the potentiometer is 200k, the pullup and pulldown resistors on the H and L pins have almost no effect and can therefore be ignored. With this in mind, it can be stated that -the voltage see on the configuration pins of the SERDES is almost exactly the -voltage set by the programming of the potentiometer between 0 and 255. i.e., +the voltage seen on the configuration pins of the SERDES is almost exactly the +voltage set by the programming of the potentiometer between 0 and 255, i.e., the voltage on the configuration pin can be summarized by this equation: .. math:: - CFG(V)=VDDIO*ProgrammedValue + CFG(V)=VDDIO \times ProgrammedValue -Where: ProgrammedValue is a hex value between 0 and 255 and is set per device in the vr_config file. +Where: ProgrammedValue is a hex value between 0x00 (0) and 0xFF (255) and is set per device in the ``vr_config.sh`` file. A snippet of the configuration file is shown below. Additionally, there are comments in the configuration file to give example hex values to set for different @@ -260,39 +321,57 @@ configuration profiles at the bottom of the file. Updating/Changing Device Tree Blobs (boot modes) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Multiple different device tree blobs (dtbs) are available for AD-GMSL522-SL user’s convenience. -They each have a separate use. For example, one dtb will allow any™ sensor -resolution to be streamed to AD-GMSL522-SL but the user will need to program +Multiple different device tree blobs (dtbs) are available for AD-GMSL522-SL users’ convenience. +They each have a separate use. For example, one dtb will allow any sensor +resolution to be streamed to the AD-GMSL522-SL Board but the user will need to program the SERDES and sensor themselves. Another dtb, however, will only allow a certain sensor to be streamed and viewed with the Jetson, but the sensor and SERDES programming will be executed at power up and is not configurable. To change the dtb to boot from, follow these steps: -#. Using a text editor on the AD-GMSL522-SL board, open the /boot/extlinux/extlinux.conf file as root: +#. Using a text editor on the AD-GMSL522-SL Board, open the ``/boot/extlinux/extlinux.conf`` file as root: .. shell:: $vim /boot/extlinux/extlinux.conf -#. Find the line that specifies the dtb to boot from. This line “FDT /boot/dtb/tegra194-p3668-0001-viper-reva-gmsl-1.dtb” where the “-1” could be any value depending on what you are using now. +#. Find the line that specifies the dtb to boot from. Look for the line “FDT /boot/dtb/tegra194-p3668-0001-gmsl522-revb-gmsl-0.dtb” where the “-0” could be any value depending on what you are using now. #. Change the “-X”, where the “X” is a value dependent on what you are using now, to whichever version you would like. The currently supported dtbs are shown below: + .. list-table:: + :header-rows: 1 + :widths: 10 45 45 + + * - Suffix + - DTB Filename + - Description + * - ``-0`` + - tegra194-p3668-0001-gmsl522-revb-gmsl-0.dtb + - AD-GMSL522-SL + IMX219 + * - ``-1`` + - tegra194-p3668-0001-gmsl522-revb-gmsl-1.dtb + - AD-GMSL522-SL + OX03A + * - ``-3`` + - tegra194-p3668-0001-gmsl522-revb-gmsl-3.dtb + - AD-GMSL522-SL + GMSL GUI + * - ``-4`` + - tegra194-p3668-0001-gmsl522-revb-gmsl-4.dtb + - AD-GMSL522-SL + GMSL GUI - 2.5Gbps For more information on how to create your own device trees, or modify the -AD-GMSL522-SL Kernel for your own custom use case, see the :git-nvidia:`nvidia ` repository. +AD-GMSL522-SL Kernel for your own custom use case, see the :git-nvidia:`adi-nvidia <../gmsl/jetson_35.3.1/hardware_nvidia_platform_t19x_gmsl522_kernel-dtb>` repository. Verify Proper Flashing/Setup ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Once the Jetson has been flashed and the configuration pins of the SERDES have been properly updated, you should be -able to probe the i2c bus of the AD-GMSL522-SL board and see the SERDES there. +able to probe the I2C bus of the AD-GMSL522-SL Board and see the SERDES there. Open a terminal and run the following command: .. shell:: - #Reads all devices on the I2C Bus #1. - #If a device is detected, its 7-bit address is noted + #Reads all devices on the I2C Bus #1 (if a device is detected, its 7-bit address is noted). $i2cdetect -y -r 1 If the board and SERDES are properly configured, you should see the following: @@ -309,7 +388,7 @@ General Tips for Using the AD-GMSL522-SL Board practice to disable the MAX96717 local control channel. This way, I2C communication will not be duplicated and only sent to the MAX96717 via the GMSL link. To do this, set register bit 5 in register 0x0001 HIGH. For - example, if operating the max96717 in 6G mode, set register 0x0001 == 0x28. + example, if operating the MAX96717 in 6G mode, set register 0x0001 == 0x28. - The MAX96724 has two MIPI ports. One of these ports is connected to the Jetson while the other port is connected to the MAX96717. Specifically, MIPI Port B is connected to the Jetson, while MIPI Port A is connected to the MAX96717. @@ -324,33 +403,33 @@ General Tips for Using the AD-GMSL522-SL Board Streaming Video Data via “Generic Sensor Driver” ------------------------------------------------ -The “generic sensor driver” device tree of the AD-GMSL522-SL board allows a user +The “generic sensor driver” device tree of the AD-GMSL522-SL Board allows a user to stream any resolution camera and any sort of MIPI CSI-2 datatype, within the -capabilities of the jetson. There is one limitation to this tool, and it is that +capabilities of the Jetson. There is one limitation to this tool, and it is that no embedded data may be used. Future device trees will allow different numbers of embedded data at the TOP of the image frame but are currently unavailable. The Jetson, as of writing this, does not currently support any embedded data at the BOTTOM of the image frame. To utilize this tool, the SERDES and the accompanying image sensors must be programmed by the user. This can be done in a -number of ways: The GMSL GUI connected directly to an evkit, the GMSL GUI -connected through the AD-GMSL522-SL board, the “GMSL User Space Drivers”, or any +number of ways: The GMSL GUI connected directly to an Evkit, the GMSL GUI +connected through the AD-GMSL522-SL Board, the “GMSL User Space Drivers”, or any other user-defined way. In general, the sensor can be streamed by following the below steps: #. Program the SERDES - - One way to do this is to open the GMSL server on AD-GMSL522-SL board, and - run the GUI via a user’s PC - - Using the “CSI Configuration Tool” in the GMSL GUI, generate a SERDES script - - Program the SERDES using the “Load (.CPP) File” tool + - One way to do this is to open the GMSL server on the AD-GMSL522-SL Board, and + run the GUI via a user’s PC. + - Using the “CSI Configuration Tool” in the GMSL GUI, generate a SERDES script. + - Program the SERDES using the “Load (.CPP) File” tool. #. Program the Image Sensor - This step will require the user to have a set of register writes to program - the sensor and cause it to stream video data. There are few ways to get + the sensor and cause it to stream video data. There are a few ways to get this data but normally it can be acquired from the image sensor vendor. - Program the Image Sensor. If the register writes are configured in the same - way that that the SERDES register writes are, i.e., in a .cpp format, the + way that the SERDES register writes are, i.e., in a ``.cpp`` format, the GMSL GUI can be used to program the sensor, again, using the “Load (.CPP) File” tool. #. Configure the v4l2 video pipeline @@ -375,8 +454,8 @@ below steps: #. Stream - Once the pipeline is properly configured to the incoming data, the video - viewer, qv4l2 should be called. However, which CSI input to the - Jetson being used, needs to be specified. + viewer, qv4l2, should be called. However, it must be specified which CSI + input of the Jetson is being used. See the following command: .. shell:: @@ -385,9 +464,9 @@ below steps: - The following video devices should be used depending on which MIPI Input is used: - - QTH SAMTEC MIPI Port A: /dev/video0 - - QTH SAMTEC MIPI Port B: /dev/video1 - - MAX96724 MIPI Port B: /dev/video2 + - QTH SAMTEC MIPI Port A: ``/dev/video0`` + - QTH SAMTEC MIPI Port B: ``/dev/video1`` + - MAX96724 MIPI Port B: ``/dev/video2`` - Click the green “Play” button to stream the video (see image below) - Make sure not to change any of the parameters in the window because it @@ -400,12 +479,12 @@ below steps: Loopback Testing and Exercises ------------------------------ -For the following two sub sections, connect your AD-GMSL522-SL board in the +For the following two subsections, connect your AD-GMSL522-SL Board in the following way. Some of these components may not be necessary depending on how you have your system setup. For instance, if you are using NoMachine, an -external display is not necessary. An ethernet is not explicitly needed for this -exercise unless a connection to the internet, or an intranet for use of -NoMachine or another VNC. It is important to have a coax cable connected between +external display is not necessary. An Ethernet connection is not explicitly needed for this +exercise unless a connection to the internet, an intranet for use of +NoMachine, or another VNC is used. It is important to have a coax cable connected between the MAX96717 output and the MAX96724 “A” input. .. figure:: viper_block_diagram_using_loopback_section.png @@ -416,23 +495,24 @@ Looping back the Onboard MAX96717 to the Onboard MAX96724 (streaming a checkerbo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In this exercise, the functionality of both the MAX96717 and the MAX96724 on the -AD-GMSL522-SL board will be exercised. The MAX96717 will uses its internal -pattern generator functionality to build a checkboard pattern and then send that +AD-GMSL522-SL Board will be exercised. The MAX96717 will use its internal +pattern generator functionality to build a checkerboard pattern and then send that pattern to the MAX96724 which will pass that pattern along to the Jetson to be viewed. This exercise will utilize the following: - A Windows PC to run the GMSL GUI - * Pattern Generator Tool - * CSI Programming Tool + - Pattern Generator Tool + - CSI Programming Tool - qv4l2 on the Jetson -- Device Tree “-3” to allow generic input video stream resolutions, datatypes, - and frame rates. Make sure to update the extconf.txt file. - If you do not know how to do this, refer back to this section. +- Device Tree “-3” to allow generic input video stream resolutions, datatypes, + and frame rates. Make sure to update the ``extlinux.conf`` file. + If you do not know how to do this, refer back to the + `Updating/Changing Device Tree Blobs (boot modes)`_ section. Follow these steps to stream the pattern generator tool on the AD-GMSL522-SL -board: +Board: To start, set up your hardware like in the diagram below. Depending on whether or not you are using NoMachine or some other remote-viewing software, your @@ -443,7 +523,7 @@ between the MAX96717 output, and the MAX96724 input “A”. Pattern Generator Test Setup -#. On the AD-GMSL522-SL board, start the GMSL server: +#. On the AD-GMSL522-SL Board, start the GMSL server: .. shell:: @@ -461,9 +541,9 @@ between the MAX96717 output, and the MAX96724 input “A”. * ‘RGB888 Datatype with Virtual Channel 0’ output from the deserializer on MIPI Port B. * Generate the script and save it somewhere you can find it. -#. You can verify your by checking it against the script in the proper appendix. -#. Use that script to program the SERDES using the Load (.CPP) function the GMSL GUI. -#. Now, open the “Video Timing and Pattern Generator” Tool in the GUI +#. You can verify your script by checking it against the script in the proper appendix. +#. Use that script to program the SERDES using the Load (.CPP) function of the GMSL GUI. +#. Now, open the “Video Timing and Pattern Generator” Tool in the GUI. #. Set the parameters of the tool to match what is shown below: .. figure:: viper_video_pattern_generator.png @@ -475,15 +555,23 @@ between the MAX96717 output, and the MAX96724 input “A”. If everything has been done correctly up to this point, MIPI data should be leaving the MAX96724 from MIPI Port B and going to the Jetson. This can be verified by reading register 0x08D1 in the MAX96724. If the register value is -toggling, you know data is outputting the deserializer. +toggling, you know data is being output by the deserializer. + +- Configure the Jetson to expect an input resolution of 1920x1080 and RGB888 pixel format: + + .. shell:: + + $v4l2-ctl --device /dev/video2 --set-fmt-video=width=1920,height=1080,pixelformat=AR24 + +- Start the video streaming application, qv4l2, from video device 2: + + .. shell:: + + $qv4l2 -d /dev/video2 -- Configure the jetson to expect an input resolution of 1920x1080 and RAW12 pixel format - - v4l2-ctl --device /dev/video2 --set-fmt-video=width=1920,height=1080,pixelformat=AR24 -- Start the video streaming application, qv4l2, from video device 2 - - qv4l2 -d /dev/video2 - Click the green play button to begin streaming the checkerboard. -At this point, a black and white checkboard should be shown on the display. +At this point, a black and white checkerboard should be shown on the display. Because the pattern generator builds a static image, it will look like the frame is frozen. Your screen should look similar to this: @@ -495,13 +583,13 @@ is frozen. Your screen should look similar to this: Debugging CSI Input to AD-GMSL522-SL Board ------------------------------------------ -If the SERDES and Sensor are properly programmed, and CSI data is going to the +If the SERDES and sensor are properly programmed, and CSI data is going to the Jetson, you can use the following technique to attempt to debug. To see the low-level details of the MIPI interface to the Jetson, we must enable tracing. Follow these steps to see the trace details: #. Enable tracing. This step must be done as a ‘super user’. Even creating the - file must be done as a super user. + file must be done as a ‘super user’. - Become a super user @@ -509,7 +597,7 @@ Follow these steps to see the trace details: $sudo su - - Create a shell script with the following contents (e.g., (vim enable_tracing.sh): + - Create a shell script with the following contents (e.g., ``vim enable_tracing.sh``): .. code:: bash @@ -533,23 +621,29 @@ Follow these steps to see the trace details: sudo cat /sys/kernel/debug/tracing/trace -#. Make this file executable +#. Make this file executable: - .. shell:: + .. shell:: - $chmod +x (E.g. chmod +x enable_tracing.sh) + $chmod +x -#. Execute the script + (e.g. ``chmod +x enable_tracing.sh``) + +#. Execute the script: .. shell:: - $enable_tracing.sh + $./enable_tracing.sh #. Now enable streaming using qv4l2, for instance. -#. Let the stream run for a several seconds to collect enough data -#. Save the trace logs -#. cat /sys/kernel/debug/tracing/trace > trace_output.txt -#. View the logs +#. Let the stream run for a few seconds to collect enough data. +#. Save the trace logs: + + .. shell:: + + $cat /sys/kernel/debug/tracing/trace > trace_output.txt + +#. View the logs. The error codes can be found in the logs. Here is one example: @@ -575,17 +669,17 @@ Viewing AD-GMSL522-SL Remotely Using NoMachine ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NoMachine allows users to connect to any computer with very little latency and -high resolution. This is recommended to be used because of the common use case +high resolution. This is recommended to be used because the common use case of viewing video data requires low latency and high-resolution video. Compared to other remote desktop viewers, NoMachine has much higher quality video streaming. To install NoMachine on your AD-GMSL522-SL Board and Host PC, follow -this tutorial from Jetsonhacks: https://jetsonhacks.com/2023/12/03/nomachine-jetson-remote-desktop/ +this tutorial from JetsonHacks: https://jetsonhacks.com/2023/12/03/nomachine-jetson-remote-desktop/ or view their own documentation at: https://www.nomachine.com/ Booting from NVMe ~~~~~~~~~~~~~~~~~ -The default memory module on the Jetson Xavier is only 16 GB large. Given the +The default memory module on the Jetson Xavier NX is only 16 GB large. Given the fact that the AD-GMSL522-SL GMSL kernel is already ~14 GB large, there is not much space left to do anything useful. One way to remedy this situation is to buy and use an NVMe. NVMe is typically much faster than the internal eMMC of the @@ -600,11 +694,11 @@ to boot from NVMe. Jetson Xavier NX - Run from SSD -Booting From SD Card +Booting from SD Card ~~~~~~~~~~~~~~~~~~~~ Boot via SD card will be done the same way as an NVMe. In the case of the Jetson -Xavier NX, the SOM will always boot from eMMC, initially, but if properly +Xavier NX, the SoM will always boot from eMMC, initially, but if properly configured, can then hand over the boot process to another memory medium. Therefore, it will always be required that a working image is flashed to the eMMC of the Jetson, and then, that, or a new filesystem, is placed onto the SD @@ -614,8 +708,8 @@ Restarting the Fan Service ~~~~~~~~~~~~~~~~~~~~~~~~~~ There is a known bug on the NVIDIA forums stating that sometimes, the fan will -run at full speed constantly. This appeared in Jetpack Version 5.1 it is -believed. To fix this issue, run the following command: +run at full speed constantly. This is believed to have appeared in JetPack Version 5.1. +To fix this issue, run the following command: .. shell:: @@ -641,7 +735,7 @@ Block Diagram I2C ~~~ -There are multiple ways to interface with the GMSL devices on AD-GMSL522-SL such +There are multiple ways to interface with the GMSL devices on the AD-GMSL522-SL Board such as the Linux I2CSET and I2CGET functions as well as smbus, though, regardless of the method, one should pay attention to which I2C bus of the Jetson is connected to which GMSL parts or connectors. See below for some example commands and what @@ -650,19 +744,19 @@ bus goes where. - I2C Bus 1: MAX96724, MAX96717 - I2C Bus 2: CSI SAMTEC Connector -Some example commands to test out I2C are below: +Some example commands to test out I2C are found below: - .. shell:: +.. shell:: #Reads all devices on the I2C Bus #1. - #If a device is detected, its 7-bit address is noted) + #(If a device is detected, its 7-bit address is noted) $i2cdetect -y -r 1 -MIPI / QTH SAMTEC CONNECTOR +MIPI / QTH Samtec Connector ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -A QTH-030-01-L-D-A high speed connector is present on the bottom of the board. +A QTH-030-01-L-D-A high-speed connector is present on the bottom of the board. GMSL to CSI deserializer evaluation kits can be connected here. In the default configuration, if an evaluation kit is mounted on the carrier board, power to it will not be supplied by the carrier board. R136, R153, R152 can be soldered on @@ -672,8 +766,8 @@ carrier board. .. important:: Please check the board and don’t plug the power supply of the - evkit connected to P1 if R152 is installed 12 MIPI CSI lanes (CSI0-CSI3) - of the XavierNX are routed to this connector, supporting either 4x2, 2x4 CSI-2 + Evkit connected to P1 if R152 is installed. 12 MIPI CSI lanes (CSI0-CSI3) + of the Xavier NX are routed to this connector, supporting either 4x2 or 2x4 CSI-2 DPHY v1.2 configurations. Appendix (proper script for pattern generator viewing exercise) diff --git a/docs/solutions/reference-designs/ad-gmsl522-sl/software-guide/step1.png b/docs/solutions/reference-designs/ad-gmsl522-sl/software-guide/step1.png new file mode 100644 index 00000000000..cba87dae53f --- /dev/null +++ b/docs/solutions/reference-designs/ad-gmsl522-sl/software-guide/step1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d74aba95c1b1a10abc03947b604a34c98e7b3d1e660de7e9ccb78f7151619eb8 +size 2791827 diff --git a/docs/solutions/reference-designs/ad-gmsl522-sl/software-guide/step2.png b/docs/solutions/reference-designs/ad-gmsl522-sl/software-guide/step2.png new file mode 100644 index 00000000000..603c4f47607 --- /dev/null +++ b/docs/solutions/reference-designs/ad-gmsl522-sl/software-guide/step2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7161267b7bcb6f97c7a45f1b7532fac3d3dffa9ba5ef04c4db5c775d0b620e99 +size 8954768 diff --git a/docs/solutions/reference-designs/ad-gmsl716mipi-evk/Hardware-Setup.png b/docs/solutions/reference-designs/ad-gmsl716mipi-evk/hardware-setup.png similarity index 100% rename from docs/solutions/reference-designs/ad-gmsl716mipi-evk/Hardware-Setup.png rename to docs/solutions/reference-designs/ad-gmsl716mipi-evk/hardware-setup.png diff --git a/docs/solutions/reference-designs/ad-gmsl716mipi-evk/index.rst b/docs/solutions/reference-designs/ad-gmsl716mipi-evk/index.rst index 2c996ce1a51..4b69402f237 100644 --- a/docs/solutions/reference-designs/ad-gmsl716mipi-evk/index.rst +++ b/docs/solutions/reference-designs/ad-gmsl716mipi-evk/index.rst @@ -1,8 +1,7 @@ AD-GMSL716MIPI-EVK ================== -GMSL2-to-MIPI Deserializer Board for SoC Camera Systems -""""""""""""""""""""""""""""""""""""""""""""""""""""""" +GMSL2-to-MIPI Deserializer Board for SoC Camera Systems. Overview -------- @@ -148,7 +147,7 @@ Equipment Needed - USB-C power supply (5V, minimum 2A) - Multimeter (for verification) -.. figure:: Hardware-Setup.png +.. figure:: hardware-setup.png AD-GMSL716MIPI-EVK Hardware Setup diff --git a/docs/solutions/reference-designs/ad-gmsl717mipi-evk/index.rst b/docs/solutions/reference-designs/ad-gmsl717mipi-evk/index.rst index a0576f11245..de0be4965a7 100644 --- a/docs/solutions/reference-designs/ad-gmsl717mipi-evk/index.rst +++ b/docs/solutions/reference-designs/ad-gmsl717mipi-evk/index.rst @@ -1,8 +1,7 @@ AD-GMSL717MIPI-EVK ================== -GMSL2 Serializer Board for Raspberry Pi Cameras -"""""""""""""""""""""""""""""""""""""""""""""""""""" +GMSL2 Serializer Board for Raspberry Pi Cameras. Overview diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/amd-kria/hdl-reference-design/gmsl_hdl_block_design1.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/amd-kria/hdl-reference-design/gmsl_hdl_block_design1.png deleted file mode 100644 index a5d8a18db24..00000000000 --- a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/amd-kria/hdl-reference-design/gmsl_hdl_block_design1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:512b0c085a4ed26ff48c837ab70feea5befe7dda531cf7476d501db25445b8cc -size 49200 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/index.rst b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/index.rst index 7f4f37a6096..ebfe6047448 100644 --- a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/index.rst +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/index.rst @@ -3,8 +3,7 @@ AD-GMSLCAMRPI-ADP# ================== -GMSL EV Kit Adapter Board -""""""""""""""""""""""""" +GMSL EV Kit Adapter Board. Seamlessly insert GMSL into the signal chain and create a full GMSL Camera System with off-the-shelf parts. diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/adaptor_block_diagram.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/adaptor_block_diagram.png similarity index 100% rename from docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/adaptor_block_diagram.png rename to docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/adaptor_block_diagram.png diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/gmsl_full_system_config.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/gmsl_full_system_config.png similarity index 100% rename from docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/gmsl_full_system_config.png rename to docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/gmsl_full_system_config.png diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step5.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/step5.png similarity index 100% rename from docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step5.png rename to docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/step5.png diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step6.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/step6.png similarity index 100% rename from docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step6.png rename to docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/step6.png diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step7.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/step7.png similarity index 100% rename from docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step7.png rename to docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/step7.png diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step8.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/step8.png similarity index 100% rename from docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step8.png rename to docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/step8.png diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step9.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/step9.png similarity index 100% rename from docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step9.png rename to docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI4/step9.png diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/adaptor_block_diagram.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/adaptor_block_diagram.png new file mode 100644 index 00000000000..2354dd92209 --- /dev/null +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/adaptor_block_diagram.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3cdf2f341c101f3fa4b8ed201f9f9505f9cd773cbbbc4c6e3f7248e299672c2 +size 114200 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/gmsl_full_system_config.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/gmsl_full_system_config.png new file mode 100644 index 00000000000..fa8417e9772 --- /dev/null +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/gmsl_full_system_config.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de7fb461e473bdca4001968a8a939d4afd30cc5a913ecf640f9eac402cf5083f +size 8197083 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/step5.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/step5.png new file mode 100644 index 00000000000..abe81e29956 --- /dev/null +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/step5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a7bafa334677e7c5b4e4308d64d80abaed2aec711526ede8361e4acd9869d2a +size 637129 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/step6.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/step6.png new file mode 100644 index 00000000000..63eea449131 --- /dev/null +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/step6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f96a1f74a9f8f3d6d82bcab293dd14136616fe3b91c4487bd835a81b85792d14 +size 887631 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/step7.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/step7.png new file mode 100644 index 00000000000..e28b9af330f --- /dev/null +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/RPI5/step7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4b36a27d7368777609f996d7179599c97150dd3971b4a9146cd1d9f861cf41a +size 1484147 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/index.rst b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/index.rst index ff8eef97144..37cfc188b15 100644 --- a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/index.rst +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/index.rst @@ -11,11 +11,12 @@ Required Hardware - :adi:`AD-GMSLCAMRPI-ADP# GMSL EV Kit Adapter Board ` - :adi:`MAX96724 GMSL Deserializer Evaluation Kit ` - :adi:`MAX96717 GMSL Serializer Evaluation Kit ` or *GMSL camera* -- `Raspberry Pi 4 Model B `__ *(2GB of RAM or more preferred)* +- `Raspberry Pi 4 Model B `__ *(2GB of RAM or more preferred)* or `Raspberry Pi 5 `__ *(2GB of RAM or more preferred)* **Supported Image Sensors & Cameras** - `IMX219 Raspberry Pi Camera Module 2 `__ +- `Digilent Pcam 5C (OV5640) `__ **Cables** @@ -23,18 +24,31 @@ Required Hardware Do not use the 15-pin ribbon cable included with the Raspberry Pi camera since that is an opposite sided cable. +*Raspberry Pi 4:* + - 15-Pin Type A (**same side**) Flexible Ribbon Cable, P/N: MP-FFCA10152003A or `similar `__ - 22-Pin Type B (**opposite side**) Flexible Ribbon Cable, P/N: MP-FFCA05222002B or `similar `__ - FAKRA Jack to FAKRA Jack coaxial cable, provided in EV kits -.. figure:: adaptor_block_diagram.png +.. figure:: RPI4/adaptor_block_diagram.png + + GMSL Signal Chain - Raspberry Pi 4 - GMSL Signal Chain +*Raspberry Pi 5:* + +- 15-Pin Type A (**same side**) Flexible Ribbon Cable, P/N: MP-FFCA10152003A or `similar `__ +- 22-Pin Type B (**opposite side**) Flexible Ribbon Cable, P/N: MP-FFCA05222002B or `similar `__ +- 22-Pin Type A (**same side**) Flexible Ribbon Cable, P/N: MP-FFCA05222002A or `similar `__ +- FAKRA Jack to FAKRA Jack coaxial cable, provided in EV kits + +.. figure:: RPI5/adaptor_block_diagram.png + + GMSL Signal Chain - Raspberry Pi 5 Board Modifications ------------------- -Using the procedure to :dokuwiki:`Set CFG Pin Levels `, configure the SerDess +Using the procedure to :dokuwiki:`Set CFG Pin Levels `, configure the SerDes pair as follows: ======== ============================= ============================== @@ -55,25 +69,25 @@ board, please visit the respective datasheet documentation: **GMSL Deserializer Evaluation Kit** -- Slide the **SW5** switches to the ON position to enable I2C communication over the CSI bus. -- Remove the **J18** and **J19** jumpers to allow the RPi to become the Main host controller for the I2C lines. -- Make sure the **J3** is set as default **2-3** position to enable POC. +- Slide the **SW5** switches to the ON position to enable I2C communication over the CSI bus +- Remove the **J18** and **J19** jumpers to allow the RPi to become the Main host controller for the I2C lines +- Make sure the **J3** is set as default **2-3** position to enable POC - .. figure:: gmsl_deserializer_sw5.jpg - :width: 200 px + .. figure:: gmsl_deserializer_sw5.jpg + :width: 200 px - SW5 Switch for Enabling I2C + SW5 Switch for Enabling I2C - Bridge **R88** - provides VDDIO to the adapter - .. figure:: deserializer_resistors.jpg - :width: 200 px + .. figure:: deserializer_resistors.jpg + :width: 200 px - R88 for VDDIO Provision + R88 for VDDIO Provision **GMSL Serializer Evaluation Kit** -- Place a jumper on the **J10** connector to enable power over the coaxial cable. +- Place a jumper on the **J10** connector to enable power over the coaxial cable .. figure:: serializer_mods_j10.png :width: 200 px @@ -92,9 +106,9 @@ board, please visit the respective datasheet documentation: **AD-GMSLCAMRPI-ADP# Adapter** - Configure the switch **S2** on the GMSL Serializer adapter for CAM1 on - connector **P9**. + connector **P9** - Configure the switch **S1** on the GMSL Deserializer adapter for CAM2 on - connector **P6** and slide switch **S3** towards connector **P6**. + connector **P6** and slide switch **S3** towards connector **P6** **Serializer Adapter** @@ -134,23 +148,21 @@ board. Connect the 15-pin Ribbon Cable to the GMSL Adapter Board (opposite side) -On the other side of the 15- to 22-pin adapter board, connect the 22-pin ribbon +On the other side of the 15- to 22-pin adapter board, connect the 22-pin opposite-sided ribbon cable. -.. note:: This is an opposite sided flex cable, please ensure it matches the orientation in the picture. - .. figure:: step2.png :width: 350 px - Connect the 22-pin Ribbon Cable to the GMSL Adapter Board + Connect the 22-pin Opposite-Sided Ribbon Cable to the GMSL Adapter Board -Connect the other end of the 22-pin ribbon cable into the EV Kit adapter board +Connect the other end of the 22-pin opposite-sided ribbon cable into the EV Kit adapter board **P9** connector. .. figure:: step3.png :width: 400 px - Connect the 22-pin Ribbon Cable to the EV Kit Adapter Board (opposite side) + Connect the 22-pin Opposite-Sided Ribbon Cable to the EV Kit Adapter Board (opposite side) Lastly, connect the EV kit adapter board to the MAX96717 EV Kit. @@ -162,10 +174,12 @@ Lastly, connect the EV kit adapter board to the MAX96717 EV Kit. MAX96724 Deserializer EV Kit Configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +**Raspberry Pi 4** + Starting with the Raspberry Pi 4B, connect the 15-pin ribbon cable to the CSI input connector. -.. figure:: step5.png +.. figure:: RPI4/step5.png :width: 200 px Connect the 15-pin Ribbon Cable to the Raspberry Pi @@ -173,41 +187,79 @@ input connector. Connect the other end of the 15-pin ribbon cable into the 15- to 22-pin adapter board. -.. figure:: step6.png +.. figure:: RPI4/step6.png :width: 300 px Connect the 15-pin ribbon cable into the GMSL Adapter Board (opposite side) -On the other side of the 15-to-22 pin adapter board, connect the 22-pin ribbon -cable. **Note:** This is an opposite sided flex cable, please ensure it matches -the orientation in the picture. +On the other side of the 15-to-22 pin adapter board, connect the 22-pin opposite-sided ribbon +cable. -.. figure:: step7.png +.. figure:: RPI4/step7.png :width: 350 px - Connect the 22-pin Ribbon Cable to the GMSL Adapter Board + Connect the 22-pin Opposite-Sided Ribbon Cable to the GMSL Adapter Board + +Connect the other end of the 22-pin opposite-sided ribbon cable into the EV kit adapter board +**P6** connector. + +.. figure:: RPI4/step8.png + :width: 400 px + + Connect the 22-pin Opposite-Sided Ribbon Cable to the EV Kit Adapter Board + +Lastly, connect the EV kit adapter board to the MAX96724 EV kit. + +.. figure:: RPI4/step9.png + :width: 600 px + + Connect the EV Kit Adapter Board to the MAX96724 Deserializer EV Kit + +With both sides of the SerDes devices connected up, the last step is to connect +the two sides together with the coax cable. The MAX96717 serializer only has one +connection. The MAX96724 deserializer has 4 inputs so connect the coax cable to +link A (INA) on **J7**. + +.. figure:: RPI4/gmsl_full_system_config.png + :width: 600 px + + Full GMSL System Setup + +Connect power to the 12V barrel jack **J1** of the MAX96724 deserializer. If +utilizing the GMSL GUI, also connect the micro USB cable to **J6** of the +MAX96724 deserializer EV kit. + +**Raspberry Pi 5** -Connect the other end of the 22-pin ribbon cable into the EV kit adapter board -**P8** connector. +Starting with the Raspberry Pi 5, connect the 22-pin same-sided ribbon cable to the CSI +input connector on **J3**. -.. figure:: step8.png +.. figure:: RPI5/step5.png + :width: 200 px + + Connect the 22-pin Same-Sided Ribbon Cable to the Raspberry Pi + +Connect the other end of the 22-pin same-sided ribbon cable into the EV kit adapter board +**P6** connector. + +.. figure:: RPI5/step6.png :width: 400 px - Connect the 22-pin Ribbon Cable to the EV Kit Adapter Board + Connect the 22-pin Same-Sided Ribbon Cable to the EV Kit Adapter Board Lastly, connect the EV kit adapter board to the MAX96724 EV kit. -.. figure:: step9.png +.. figure:: RPI5/step7.png :width: 600 px Connect the EV Kit Adapter Board to the MAX96724 Deserializer EV Kit -With both sides of the SerDes devices connected up, the last step it to connect +With both sides of the SerDes devices connected up, the last step is to connect the two sides together with the coax cable. The MAX96717 serializer only has one connection. The MAX96724 deserializer has 4 inputs so connect the coax cable to link A (INA) on **J7**. -.. figure:: gmsl_full_system_config.png +.. figure:: RPI5/gmsl_full_system_config.png :width: 600 px Full GMSL System Setup @@ -216,38 +268,82 @@ Connect power to the 12V barrel jack **J1** of the MAX96724 deserializer. If utilizing the GMSL GUI, also connect the micro USB cable to **J6** of the MAX96724 deserializer EV kit. -Raspberry Pi 4 Configuration +Raspberry Pi Configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Connect the USB-C power supply to the Raspberry Pi 4 connector. -- Connect the HDMI cable from the monitor to the Raspberry Pi micro HDMI connector. -- Write the Raspberry Pi latest SD card image on a 8 GB (or more) SD card. -- Plug the SD card into the Raspberry Pi 4 SD card slot. -- Connect a USB mouse and keyboard to the Raspberry Pi 4. - It’s possible to use either a mouse & keyboard combo or a separate mouse and keyboard. +- Connect the USB-C power supply to the Raspberry Pi connector +- Connect the HDMI cable from the monitor to the Raspberry Pi micro HDMI connector +- Write the Raspberry Pi latest SD card image on an 8 GB (or more) SD card +- Plug the SD card into the Raspberry Pi SD card slot +- Connect a USB mouse and keyboard to the Raspberry Pi (it is possible to use either a mouse & keyboard combo or a separate mouse and keyboard) Running the Evaluation Application ---------------------------------- -Once Linux boots, you’ll see on the HDMI monitor the Linux desktop and on the top -left corner a shortcut to the script named **video_cfg.sh**. Double-clicking on -the icon will start the media-ctl configuration script to connect to the V4L2 -media pipeline. It may not appear that anything happens but the script runs in -background without any pop-ups. +Once Linux boots, you will see the Linux desktop on the HDMI monitor. Double-click +the **Home** icon and navigate to the **Workspace** folder. Right-click inside this +folder and select the **Open Terminal Here** option. Inside the terminal, type the +following command and hit Enter: + +.. shell:: + + $ ./video_cfg.sh .. figure:: rpi_video_cfg.png Raspberry Pi Video Configuration Script -After the script runs, double-click on the Qt V4L2 test Utility icon to start -the video capture application. A window will open then press the green play -button to start video capturing. +This script configures the Linux V4L2 (Video4Linux2) media pipeline for a GMSL +multi-camera system on a Raspberry Pi: + +.. code-block:: bash + + #!/bin/bash + + CAM_LIST="cam0" + CAM_MODEL="imx219" + PYV4L2_PATH="/home/analog/Workspace/pyv4l2" + DT_MODEL_PATH="/proc/device-tree/model" + + if [[ $(cat $DT_MODEL_PATH | tr -d '\0') =~ "Raspberry Pi 4" ]]; then + echo "Running on RPI4" + RPI_MODEL="rpi4" + elif [[ $(cat $DT_MODEL_PATH | tr -d '\0') =~ "Raspberry Pi 5" ]]; then + echo "Running on RPI5" + RPI_MODEL="rpi5" + else + echo "Unknown platform" + exit 0 + fi + + $PYV4L2_PATH/utils/cam.py -c -p "$RPI_MODEL"-gmsl-"$CAM_MODEL":$CAM_LIST + +The following variables can be changed (if needed) inside the script: + + - ``CAM_LIST`` (specifies the list of cameras in the setup): + - ``cam0`` (default) + - ``cam0,cam1`` + - ``cam0,cam1,cam2`` + - ``cam0,cam1,cam2,cam3`` + - ``cam1,cam2`` + - ``cam0,cam3`` + - ``CAM_MODEL`` (specifies the model of the camera): + - ``imx219`` (default) + - ``ov5640`` + +The model of the Raspberry Pi does not need to be explicitly specified because the script detects it automatically. + +After the script is done running, click on **Applications** (found in the top +left corner), which will open a dropdown list of items. From this list, select +**Multimedia** and then **Qt V4L2 test Utility** in order to start the video +capture application. After the application opens, press the green play button +to start capturing video. .. figure:: rpi_qv4l2.png - Video Capture Button + Video Capture Utility -The capture window will look like below. +The capture window will look as shown below. .. figure:: rpi_running_qv4l2.png @@ -262,9 +358,9 @@ The capture window will look like below. Power-off Sequence ~~~~~~~~~~~~~~~~~~ -- Open a terminal and type **sudo poweroff**. This will safely power off the Raspberry Pi 4 and ensure that the SD card is properly unmounted. -- Remove the power supply from the Raspberry Pi 4. -- Remove the power supply from the MAX96724 EV kit. +- Open a terminal and type **sudo poweroff**. This will safely power off the Raspberry Pi and ensure that the SD card is properly unmounted +- Remove the power supply from the Raspberry Pi +- Remove the power supply from the MAX96724 EV kit Getting the Software -------------------- @@ -279,21 +375,21 @@ Tips for Troubleshooting There are a few key commands in the Linux environment that can help identify if the expected connections and communications have been made. -#. In the Linux environment, you can check to see if the Rpi I2C is detecting - the GMSL boards by sending a I2C detect command [#f1]_ as follows: +#. In the Linux environment, you can check to see if the RPi I2C is detecting + the GMSL boards by sending an I2C detect command [#f1]_ as follows: .. shell:: $sudo i2cdetect -y 10 - The Result should look as follows in the terminal: + The result should look as follows in the terminal, if using the IMX camera: .. shell:: :group: kuiper-gmsl :show-user: $sudo i2cdetect -y 10 - [sudo] password for analog: + [sudo] password for analog: 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- 10: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- @@ -304,13 +400,33 @@ the expected connections and communications have been made. 60: -- -- -- -- 64 -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- -#. You can also confirm that the video for Linux application is detecting the + Or, as follows, if using the Pcam camera: + + .. shell:: + :group: kuiper-gmsl + :show-user: + + $sudo i2cdetect -y 10 + [sudo] password for analog: + 0 1 2 3 4 5 6 7 8 9 a b c d e f + 00: -- -- -- -- -- -- -- -- + 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + 20: -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- -- + 30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- + 40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + 50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + 70: -- -- -- -- -- -- -- -- + +#. You can also confirm that the *Video for Linux* application is detecting the camera and GMSL devices by using the following command: .. shell:: $v4l2-ctl --list-devices + **Raspberry Pi 4** + The response should look like the following: .. shell:: @@ -345,7 +461,51 @@ the expected connections and communications have been made. /dev/video19 /dev/media0 - The key is to identify the **unicam** output, which correspond to the Raspberry Pi - camera setup. + .. note:: + + For Raspberry Pi 4, the key idea is to identify the **unicam** output, which corresponds to the Raspberry Pi + camera setup. + + **Raspberry Pi 5** + + The response should look like the following: + + .. shell:: + + $v4l2-ctl --list-devices + pispbe (platform:1000880000.pisp_be): + /dev/video20 + /dev/video21 + /dev/video22 + /dev/video23 + /dev/video24 + /dev/video25 + /dev/video26 + /dev/video27 + /dev/video28 + /dev/video29 + /dev/video30 + /dev/video31 + /dev/video32 + /dev/video33 + /dev/video34 + /dev/video35 + /dev/media0 + /dev/media1 + + rp1-cfe (platform:1f00110000.csi): + /dev/video0 + /dev/video1 + /dev/video2 + /dev/video3 + /dev/video4 + /dev/video5 + /dev/video6 + /dev/video7 + /dev/media3 + + rpi-hevc-dec (platform:rpi-hevc-dec): + /dev/video19 + /dev/media2 .. [#f1] More information about these commands found at `mankier.com/8/i2cdetect `__. \ No newline at end of file diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/rpi_qv4l2.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/rpi_qv4l2.png index ea06074ef36..3a858bf8db7 100644 --- a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/rpi_qv4l2.png +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/rpi_qv4l2.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:06280165125b6a12f721ccaa5240c324dc532950d56597b0ad7cca447413dbee -size 191454 +oid sha256:9c2c73b6b4d5bdc6223e644953a59a9fdc444b7864ece5c0eb169b7329676f18 +size 397204 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/rpi_running_qv4l2.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/rpi_running_qv4l2.png index dc917db1e66..807f4e59309 100644 --- a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/rpi_running_qv4l2.png +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/rpi_running_qv4l2.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9b7a639dea8893750aa955a17d28e15fa25ad462146b9c24876c2d7b63caaf34 -size 404039 +oid sha256:e09e3eef24942f51748cffcd2a2c1f889b5c12d2a7a861adf1eb34aa562b9dc7 +size 1831648 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/rpi_video_cfg.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/rpi_video_cfg.png index c83ecf18973..a507d70c992 100644 --- a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/rpi_video_cfg.png +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/rpi_video_cfg.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6f7652ccdb6b81d0ec861f5d80569143ebdb9956abb27b225900172868b4925b -size 187617 +oid sha256:70a2c7bbf66f806e0faf4e1e28fcc216e79b78fa058a4dba030d16f1e4a3beff +size 414645 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step0.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step0.png index 59e5e78355e..fb43dff0fc5 100644 --- a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step0.png +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:acb14d1a6a748b1926047810ec58e94cb9fadab952b528bcdc2f137724abdbf0 -size 299599 +oid sha256:3d6bfc2f0c7083bf8e02ebbcc3af83fc3ddf5978e15206d2b8a9eda1efc10a36 +size 90453 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step1.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step1.png index 2283c83ee62..0530a0b16aa 100644 --- a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step1.png +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f2422a55e391be7d7f72224b5e5cc52a4c7ff5d4d98b50183883065e52a910ce -size 394838 +oid sha256:8c1ce3caf6844de866aab7b99d7bfc8049bcd60fc8c45314572ae80f6f3f3989 +size 217928 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step2.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step2.png index 62122d72b42..770f974535c 100644 --- a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step2.png +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step2.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ea81bf040c4232d0405186828f6e6fe945704318e08025877024adf42dda3f4b -size 229175 +oid sha256:20b2e86487391319c83c1f9d496d2efc6d58c91a6b883447811e2c66c74d5dfb +size 221422 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step3.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step3.png index 0800523c439..2f5a8ef1795 100644 --- a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step3.png +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step3.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:27ec7a04362d22caf4959a901ca21c8da2f573b3897858eda5ad7671828ddf4c -size 364905 +oid sha256:d6df25f6a7fb79fda5a84fd4407d7b3697dcf523b29a87b415d40195a2f6d53f +size 1788321 diff --git a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step4.png b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step4.png index e851ed8c7bc..df96b5d7bfc 100644 --- a/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step4.png +++ b/docs/solutions/reference-designs/ad-gmslcamrpi-adp/raspberry-pi-user-guide/step4.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b6f9ab4d571991dad92d4029d8b1eda1a544ab5e7f33a6da53a9cde5e63cacd -size 300358 +oid sha256:ce11749af0295ff7fcd885719bc9fbb35e62ecf0a649798dc47783b042709d4b +size 3812561 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/02-048139-01-c.pdf b/docs/solutions/reference-designs/ad-jupiter-ebz/02-048139-01-c.pdf new file mode 100644 index 00000000000..12d36424d4d Binary files /dev/null and b/docs/solutions/reference-designs/ad-jupiter-ebz/02-048139-01-c.pdf differ diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/02-071103-01-b.pdf b/docs/solutions/reference-designs/ad-jupiter-ebz/02-071103-01-b.pdf new file mode 100644 index 00000000000..6e2dae6b2bc Binary files /dev/null and b/docs/solutions/reference-designs/ad-jupiter-ebz/02-071103-01-b.pdf differ diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/05-048139-01-c.zip b/docs/solutions/reference-designs/ad-jupiter-ebz/05-048139-01-c.zip new file mode 100644 index 00000000000..d4b326071bc --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/05-048139-01-c.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9be29ff6b8ba5d3ad639cacb5b4a539f465199a4eef353049c2be42c10114aac +size 15841 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/05-071103-01-b.zip b/docs/solutions/reference-designs/ad-jupiter-ebz/05-071103-01-b.zip new file mode 100644 index 00000000000..15a0017ac61 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/05-071103-01-b.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b7bb95db1ae16b822dc9ad768cc019bab3b2249b724b96cb4e09d748f8914cf +size 2913 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/ad-synchrona14-ebz2_top-1000.jpg b/docs/solutions/reference-designs/ad-jupiter-ebz/ad-synchrona14-ebz2_top-1000.jpg new file mode 100644 index 00000000000..3e69675a2d4 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/ad-synchrona14-ebz2_top-1000.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60acbc889d54823f9b0ffdcfd533c1b8def556b2e043c11475789592bf5af42b +size 360036 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/hardware-overview.rst b/docs/solutions/reference-designs/ad-jupiter-ebz/hardware-overview.rst new file mode 100644 index 00000000000..69dfd585dd8 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/hardware-overview.rst @@ -0,0 +1,495 @@ +.. _jupiter-sdr hardware-overview: + +Jupiter SDR Hardware Overview +============================= + +Processing System +~~~~~~~~~~~~~~~~~ + +.. figure:: jupitersdr_blockdiagram.png + :align: center + +Zynq Ultrascale+ MPSOC XCZU3EG +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- Application Processing Unit - Quad ARM Cortex-A53 (1.5 GHz each) + + - L1 Cache 32KB I / D per core + + - L2 Cache 1MB + + - 256kB on-chip Memory + +- Real time Processing Unit - Dual ARM Cortex-R5 (600 MHz each) + + - L1 Cache 32KB I / D per core + + - 128kB/core memory + +- Graphics Processing Unit - ARM Mali-400 MP2 + + - L2 Cache 64KB + +- Programmable logic + + - 154k Logic cells + + - 360 DSP slices + + - 7.6Mb block RAM + +DDR +^^^ + +2GB DDR4 with 32 bit data bus connected to the PS of XCZU3EG are shared +by the OS, video (optional) and RF data streaming. XCZU3EG DDR memory +controller has the maximum data rate limited to 2133Mbps. + +Configuration and boot +^^^^^^^^^^^^^^^^^^^^^^ + +The following boot options are supported: + +#. Quad-SPI - 2 x 64MB Flash memory + + - dual parallel configuration with 8-bit data bus width + + - 32 bits addressing + + - ZU3EG boot mode configuration MODE[3:0] = 0010 + +#. SD1 LS (3.0) + + - Supports FAT 16/32 filesystem + + - ZU3EG boot mode configuration MODE[3:0] = 1110 + +MODE pins are automatically configured in hardware so that the SD card +boot option has higher priority than Quad-SPI Flash. + +The ZU3EG on-chip SD Controller is compatible with SD memory card +specification version 3.01, supporting UHS-I speeds and SDXC capacity +format. The front panel includes a micro SD card connector. + +Multi Gigabit Transceiver (MGTR) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +XCZU3EG Zynq Ultrascale+ has 4 GTR channels up to 6Gb/s. The following +table shows the GTR channels usage on Jupiter SDR. + +============ ========= ================= +MGTR Channel Interface Data Rate +============ ========= ================= +RX0 USB3 USB 3, 5Gb/s +TX0 USB3 USB 3, 5Gb/s +RX1 SATA SATA III, 6Gb/s +TX1 SATA SATA III, 6Gb/s +RX2 - +TX2 DP DP1 v1.2, 5.4Gb/s +RX3 - +TX3 DP DP0 v1.2, 5.4Gb/s +CLK0 USB3 26 MHz +CLK1 DP 108 MHz +CLK2 SATA 150 MHz +CLK3 not used +============ ========= ================= + +:adi:`AD9542` provides a flexible solution for generating the required +MGTR clocks. It integrates a dual PLL with 5 pairs of clock output +pins. AD9542 is capable to load its configuration from EEPROM making +it suitable for stand alone use. + +-------------- + +User Interfaces +~~~~~~~~~~~~~~~ + +USB +^^^ + +USB Type-C data connector exposes a DRP (Dual Role Port) USB 3.1 Gen1 +interface which operate as either a DFP (Downstream Facing Port) or a +UFP (Upstream Facing Port): + +- UFP – it is used to connect Jupiter-SDR (device) to a computer (host) + for data streaming + +- DFP – it is used to connect different USB3 devices to Jupiter-SDR + (keyboard, mouse, wi-fi, etc.); + +- backward compatibility with USB2 interface is supported by USB3320 + transceiver connected over ULPI interface to the PS side of XCZU3EG. + +Ethernet +^^^^^^^^ + +:adi:`ADIN1300` is a 10BASE-Te/100BASE-TX/1000BASE-T IEEE 802.3 +compliant Ethernet PHY interfaced to the PS of XCZU3EG through +RGMII interface. + +SATA +^^^^ + +XCZU3EG supports SATA III – 6Gb/s or 600MB/s. SATA interface is exposed +to the user through an eSATA connector which supports 2.5K mating cycles +and shielded cable. + +Display Port +^^^^^^^^^^^^ + +XCZU3EG supports Display Port 1.2 source-only controller with two lanes +having link data rate of 1.62Gb/s, 2.7Gb/s or 5.4Gbps. Most of the +monitors will achieve 1080p at 60 FPS. It also supports AUX channel for +audio digital signal transfer (720 Mb/s). + +.. warning:: + + AMD Xilinx provide a list of + `monitors `__ + that were tested and work with the Ultrascale+ Display Port + controller. + +Debug interfaces +^^^^^^^^^^^^^^^^ + +#. Micro USB connector exposes an UART interface that gives the + possibility to communicate with Linux running on the XCZU3EG. The + FT230XQ transceiver is used for USB to UART interfacing. + +#. Optionally the user could populate 14 pins JTAG header inside the + enclosure that allows to do deeper development debug. + +GPIOs +^^^^^ + +We are exposing XCZU3EG IO lines of Bank 26 to a 20 pins (1.27mm pitch) +header on the front panel. The GPIO connector also provide 3.3V supply +rail to the user which is also used to supply the FPGA IO Bank. + +- 16 lines independently configurable as inputs or outputs + +- 3V3 TTL levels + +- ESD protection + +- I2C0, SPI0, UART0 could be exposed using EMIO + +LEDs and Button +^^^^^^^^^^^^^^^ + +Status LED (bi-color red and blue) + +- red - at least one of the power sources is present and the board was + not turned on + +- purple (both red and blue turned on) - after turn on it will indicate + that bitstream was loaded into FPGA + +- this LED is hardware controlled + +User LED (blue) + +- by default it blinks once per second after boot up + +- it could be programmed to desired functionality + +User button (S1) + +- it could be used to enter DFU mode (it makes sense only for FLASH + boot) + +-------------- + +RF Front-end +~~~~~~~~~~~~ + +The Main Board RF front end block diagram is presented in the following +picture. + +.. figure:: jupitersdr_rf_fe_main.png + :align: center + +ADRV9002 clock +^^^^^^^^^^^^^^ + +Jupiter SDR supports two ADRV9002 clock sources: + +#. on-board 38.4MHz oscillator - + `GTXO-74V/JI `__ + made by Golledge + +#. external clock input exposed to the dedicated SMA connector + + - 50 ohm input + + - input level range from -8dBm to 15.8 dBm + +adrv9002_clksrc signal selects ADRV9002 clock source: + +- LOW - on-board oscillator (default) + +- HIGH - external clock + +The adrv9002_clksrc control is implemented in the device tree. + +The on-board oscillator GTXO-74V is coming with voltage tune feature +that allows frequency adjustment in the range of +/-8 to +/-14 ppm. The +oscillator has frequency tuning pin connected to AUXDAC3 of ADRV9002 +which allows frequency correction algorithms to tune the LO frequency. +The following formula could be used to find required DAC voltage for +desired tune voltage: + +.. math:: + + VAUXDAC3 = (2.47V-VTUNE)/1.47 + +For example if we want VTUNE = 1.5V then we need VAUXDAC3 = 0.659V. + +RF FE Main Board +^^^^^^^^^^^^^^^^ + +The main board expose to the front panel two wide band receive channels +RX1A and RX2A which are connected to the ADRV9002 transceiver Rx A +channels. The receive path consist of a by-passable LNA +:adi:`HMC8414`, a non-reflective SPDT +switch :adi:`HMC8038` that allows to +terminate with 50 ohms the RX input during internal calibration and a +`TCM1-83X+ `__ +MiniCircuits balun. The control of calibration switch is done by the +driver and is not exposed to the user. The frequency range of the main +board RX1A and RX2A paths is 100 MHz to 6 GHz. + +On the main board we have another two receive channels RX1B and RX2B +which are connected to Rx B channels of ADRV9002. These receive channels +are connected to the RF add-on board through uFL cables and also have +the same SPDT switch and balun as on the RX A channels. + +The main board also expose to the front panel two transmit channels TX1A +and TX2A which consists of a TCM1-83X+ balun and a three way +non-reflective switch :adi:`ADRF5040` +which allows disconnecting the TX output during internal calibration or +connecting the transmit path to the RF Add-on board. There are some +attributes exposed to the user that allows selecting between TX1A and +TX1B respective TX2A and TX2B. +(:ref:`link to command example `) + +RF FE Add-on board +^^^^^^^^^^^^^^^^^^ + +The picture below show the block diagram of the RF Add-on board. + +.. figure:: jupitersdr_rf_fe_add-on.png + :align: center + +The RF Add-on board expose B receive channels RX1B and RX2B to the front +pannel. The receive path has a by-passable +`LNA TSY-13LNB+ `__ +with frequency range 10MHz to 1GHz. + +TX1B and TX2B channels include just an amplifier +:adi:`HMC8413` that boosts by 20 dB the transmit signal. + +RF FE Add-on interface +^^^^^^^^^^^^^^^^^^^^^^ + +Main Board expose a control interface for the RF Add-on board to a 40 +pin connector. The table below show the pinout of the interface +connector. + +====================== == == ================= +VAGPIO_1P8 1 2 ADV9002_AUXADC_0 +ADV9002_AUXADC_1 3 4 ADV9002_AUXADC_2 +ADV9002_AUXADC_3 5 6 ADV9002_AUXDAC_0 +ADV9002_AUXDAC_1 7 8 +ADV9002_AUXDAC_3 9 10 GND +ADV9002_AGPIO_5 11 12 ADV9002_AGPIO_7 +ADV9002_AGPIO_8 13 14 ADV9002_AGPIO_9 +ADV9002_AGPIO_10 15 16 ADV9002_AGPIO_11 +3V3 17 18 GND +IO_L9P_AD3P_26 19 20 IO_L10P_AD2P_26 +IO_L9N_AD3N_26 21 22 IO_L10N_AD2N_26 +IO_L11P_AD1P_26 23 24 IO_L12P_AD0P_26 +IO_L11N_AD1N_26 25 26 IO_L12N_AD0N_26 +1V8_VCCO 27 28 GND +IO_L1P_T0L_N0_DBC_64 29 30 IO_L2P_T0L_N2_64 +IO_L1N_T0L_N1_DBC_64 31 32 IO_L2N_T0L_N3_64 +IO_L21P_T3L_N4_AD8P_64 33 34 IO_L23P_T3U_N8_64 +IO_L21P_T3L_N5_AD8N_64 35 36 IO_L23N_T3U_N9_64 +VIN_PWR 37 38 GND +VIN_PWR 39 40 GND +====================== == == ================= + +Transceiver Resources + +- 4 AUX ADC channels + +- 4 AUX DAC channels + +- 6/10 AGPIO lines (AUX DAC channels could also be used as AGPIOs) + +FPGA Resources + +- 8 FPGA IO LVTTL 3V3 (HD bank) + +- 8 FPGA IO LVTTL 1V8 (HP bank) + +Power Budget + +- VAGPIO_1P8 - 1V8/100 mA + +- 3V3/100 mA + +- VIN_PWR - 5V - 20V/TBD A + +The user could build their own RF Add-on board to suit their specific +needs. + +RX gain control +^^^^^^^^^^^^^^^ + +ADRV9002 external gain control functionality allows AGPIO pins +configured as output to automatically set required front end gain. The +software exposes required attributes that allows to manually control the +AGPIO state. +(:ref:`link to command example `) + +=========== ============================== +LNA control ADRV9002 external gain control +=========== ============================== +RX1A agpio4 +RX1B agpio5 +RX2A agpio6 +RX2B agpio7 +=========== ============================== + +AGPIO driven LOW bypass the LNA while driven HIGH turns on the LNA. + +-------------- + +Power +~~~~~ + +The picture below show the power supply high level block diagram. + +.. figure:: jupitersdr_powermap.png + :align: center + +Power Sources +^^^^^^^^^^^^^ + +The board has three power sources: + +- USB Type-C (power only) - priority 1 + + - power sink - PDO1 9V/3A (default), PDO2 5V/3A + +- USB Type-C (data and power) - priority 3 + + - power sink - PDO1 5V/3A + + - power source - PDO1 5V/0.9A + +- POE - priority 2 + + - :adi:`LT4276` - IEEE 802.3at 25.5W Compliant + +:adi:`LTC4417` power selector turns on the +highest priority valid power source. The switchover from one power +source to another should not cause the board to reset when total power +consumption of the system does not exceed 15W. + +.. warning:: + + When you want to use Jupiter SDR by just connecting one cable to the USB + Type-C data and power port make sure that your computer’s USB port (or + docking station) supports 5V and 3A PDO. Jupiter SDR will not boot up + with 5V and 1.5A PDO. + +.. warning:: + + The board is not going to power up if your PSE (Power Source Equipment) + does not support POE+ (IEEE 802.3at). + +System Power on/off +^^^^^^^^^^^^^^^^^^^ + +:adi:`LTC2955` is a push button on/off +controller that manages the power supply enable/disable when the push +button is pressed. A short button press will generate an enable signal +to the power selector which is enabling the appropriate path and the +board powers up. Once the board has booted up a short press of the +button will notify the operating system that power off is desired then +when operating system is ready it will send the shutdwon signal to the +push button controller which in turn will disable the power selector +cutting off the power of the board. When things are not working as +expected it is possible to force a shutdown by pressing the button more +than 5s. + +System Monitoring +^^^^^^^^^^^^^^^^^ + +:adi:`LTC2945` measures the input voltage and current consumption of +the entire board giving the board’s total power consumption. + +ZU3EG and ADRV9002 integrated temperature sensors offers the possibility +to monitor system’s hottest parts. + +Fan control +^^^^^^^^^^^ + +The fan could be controlled to be in three states: off, low speed and +high speed. There are two lines that control the fan speed: + +- fan_en - enables the fan to spin + +- fan_ctl - when the fan is enabled the signal controls the fan speed to + low speed or high speed. + +====== ======= ========== +fan_en fan_ctl fan state +====== ======= ========== +LOW LOW off +LOW HIGH off +HIGH LOW low speed +HIGH HIGH high speed +====== ======= ========== + +By default the fan is set to low speed. For higher power applications +the fan can be set to high speed by changing the device tree +configuration. + +-------------- + +Mechanical +~~~~~~~~~~ + +Jupiter SDR temperature storage and operating range is 0 to 50 degC. + +Panels Map +^^^^^^^^^^ + +The early samples doesn’t have the panels printed. We are presenting in +the next pictures the meaning of each connector exposed on the two sides +of the enclosure. + +.. figure:: jupitersdr_front_panel.png + :align: center + +-------------- + +Jupiter-SDR Schematics, BOM +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Main Board + +.. admonition:: Download + + - :download:`Rev C Schematics <02-048139-01-c.pdf>` + - :download:`Rev C BOM <05-048139-01-c.zip>` + +RF Add-on + +.. admonition:: Download + + - :download:`Rev B Schematics <02-071103-01-b.pdf>` + - :download:`Rev B BOM <05-071103-01-b.zip>` \ No newline at end of file diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/index.rst b/docs/solutions/reference-designs/ad-jupiter-ebz/index.rst new file mode 100644 index 00000000000..d991fc4b242 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/index.rst @@ -0,0 +1,191 @@ +.. _ad-jupiter-ebz: + +AD-JUPITER-EBZ +============== + +Software-Defined Radio. + +Overview +-------- + +Jupiter is a versatile software-defined platform based on Analog Devices +:adi:`ADRV9002` and +:xilinx:`AMD Xilinx Zynq UltraScale+ MPSoC. ` +:adi:`ADRV9002` is a new generation RF transceiver that has dual-channel +transmitters, dual-channel receivers covering 30 MHz to 6 GHz frequency +range with very good RF linearity performance and a set of advanced +features like fast profiles switching, flexible power vs performance +configuration, fast frequency hopping, multi-chip synchronization and +DPD for narrow and wide band waveform. The evaluation platform includes +XCZU3EG processing device that has a wide range of interfaces making the +system capable of local processing or streaming to a remote host. It +comes integrated in a self-contained ruggedised aluminum case which +gives flexibility in evaluating and prototyping across different +environments. + +.. figure:: jupitersdr_back1.png + :align: center + +.. figure:: jupitersdr_front1.png + :align: center + +The platform comes with open-source software that includes: + +- Linux and no-OS +- HDL reference design +- IIO +- MATLAB +- GNU Radio +- Python + +Key Features +------------ + +- RF/SDR + - ADRV9002 transceiver + - 2 x RX, 2 x TX + - LO Frequency range 30 MHz to 6 GHz + - 12 KHz to 40 MHz frequency bandwidth + - Sampling rate 12 KS/s to 61.44 MS/s + - External device clock input + - External MCS input + - RF Front-end +- Processing system + - AMD Xilinx Zynq UltraScale+ MPSoC XCZU3EG + - ARM CORTEX-A53 1.5GHz + - ARM CORTEX-R5 500 MHz + - Mali-400 MP2 graphic processor + - Programmable logic 154k + - DDR4 – 2 GB (x32) + - Boot source + - SD CARD 3.0 + - FLASH memory 128MB +- User Interfaces + - USB 3.1 Gen 1 – Type C + - Upstream Facing Port (UFP) + - Downstream Facing Port (DFP) + - USB 2.0 compatible + - Ethernet 1000BASE-T RGMII + - Display Port v1.2 (2 lanes 5.4Gb/s) + - SATA 3 + - USB (micro) debug interface + - 16 GPIOs (3V3 LVCMOS) +- Power Sources + - USB Type-C (power only) + - Power Sink 5V, 9V/3A + - USB Type-C (data) + - Power Sink 5V/3A + - Power Source 5V/0.9A + - 802.3at POE compliant, 25.5W Type2 (POE+) + +User Resources +-------------- + +People who follow the flow that is outlined, have a much better +experience with things. However, like many things, documentation is +never as complete as it should be. If you have any questions, +feel free to ask. + +- Getting Started + #. Quick Start Guide (see :ref:`ad-jupiter-ebz quickstart`) + #. Quick Start Guides + #. Generate a custom device profile using TES (see :ref:`ad-jupiter-ebz profile-generation`) + #. :external+kuiper:ref:`use-kuiper-image` +- Software Solutions + #. :ref:`iio-oscilloscope` + #. :dokuwiki:`ADRV9001/2 IIO Scope View ` + #. :dokuwiki:`ADRV9001/2 Control IIO Scope Plugin ` + #. :dokuwiki:`ADRV9001/2 Profile Generator Plugin ` + #. :external+scopy:ref:`adrv9002` + #. :ref:`matlab transceiver-toolbox` + #. :dokuwiki:`GNU Radio ` + #. :ref:`pyadi-iio` + #. :ref:`libiio cli` +- Embedded Resources + #. :dokuwiki:`ADRV9001/2 Linux Device Driver ` + #. :dokuwiki:`ADRV9001/2 Device Driver Customization ` + #. :dokuwiki:`AXI-DMAC DMA Controller Linux Driver ` + #. :dokuwiki:`AXI ADC HDL Linux Driver ` + #. :ref:`matlab transceiver-toolbox` + #. :dokuwiki:`GNU Radio ` + #. :ref:`pyadi-iio` + #. :ref:`libiio cli` + #. :external+no-OS:doc:`projects/rf-transceiver/adrv9001` + #. :ref:`linux-kernel zynqmp` +- FPGA Resources + #. HDL Reference Design (see :ref:`ad-jupiter-ebz reference-design`) which you must use in your FPGA. + #. :external+hdl:ref:`adrv9001` + #. :external+hdl:ref:`user_guide` + #. :ref:`matlab transceiver-toolbox` +- Hardware Resources + #. Jupiter SDR Hardware Overview (see :ref:`jupiter-sdr hardware-overview`) + #. :adi:`ADRV9002 Product page ` + #. :adi:`Full Datasheet and chip design package ` +- Multi-chip synchronization support (see :ref:`ad-jupiter-ebz mcs-setup`) +- :ref:`Help and Support ` + - Known issues (see :ref:`jupiter-sdr known-issues`) + - For Hardware technical support go to: + - :ez:`Design Support Community ADRV9001-ADRV9007 ` + - For Evaluation System Software support (TES GUI, ADRV9001 API driver, etc.) go to: + - :ez:`TES GUI Software Support Community ADRV9001-ADRV9007 ` + - For questions regarding the HDL reference design please use the + - :ez:`FPGA Reference Designs ` sub-community. + - For questions regarding the the ADI Linux distribution, the Linux drivers, or the device trees for the ADRV9001/2 based platforms, please use the + - :ez:`Linux Software Drivers ` sub-community. + - For questions regarding the no-OS drivers for ADRV9001/2, please use the + - :ez:`Microcontroller and No-OS Driver ` sub-community. + - :dokuwiki:`Additional Documentation about SDR Signal Chains - The math behind the RF ` + +.. toctree:: + :hidden: + + quickstart/index + hardware-overview + mcs-setup + known-issues + reference-design + profile-generation + +Downloads +--------- + +Binaries: + +Osc for windows can be downloaded directly from Github. Go to to the following link and download the latest release. + + - :git-iio-oscilloscope:`IIO-Scope ` + +The latest boot files for adrv9002 (for all supported carriers) can be found in the latest Kuiper Image release (note one can choose between downloading the full image or just the boot partition): + + - :dokuwiki:`Kuiper Image ` + +Below it's an experimental pre-release which enables DMA Coherency on the AXI DMA core. That means the IP core can snoop the caches and so samples can actually live in them. This gave some promising throughput improvements when using libiio IP and USB backends: + + - :download:`Jupiter DMA Coeherent ` + +Reference Material +------------------ + +- :adi:`ADRV9002: Narrow to Wide Band Integrated RF Transceiver ` + +Software Defined Radio using the Linux IIO Framework +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. video:: http://ftp.fau.de/fosdem/2015/devroom-software_defined_radio/iiosdr.mp4 + +ADI Articles +~~~~~~~~~~~~ + +- Four Quick Steps to Production: Using Model-Based Design for Software-Defined Radio + - :adi:`Part 1 - the Analog Devices/Xilinx SDR Rapid Prototyping Platform: Its Capabilities, Benefits, and Tools ` + - :adi:`Part 2 - Mode S Detection and Decoding Using MATLAB and Simulink ` + - :adi:`Part 3 - Mode S Signals Decoding Algorithm Validation Using Hardware in the Loop ` + - :adi:`Part 4 - Rapid Prototyping Using the Zynq SDR Kit and Simulink Code Generation Workflow ` + +MathWorks Webinars +~~~~~~~~~~~~~~~~~~ + +- :mw:`Modelling and Simulating Analog Devices’ RF Transceivers with MATLAB and SimRF ` +- :mw:`Getting Started with Software-Defined Radio using MATLAB and Simulink ` + +.. esd-warning:: \ No newline at end of file diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/jupiter-dma-coeherent.tar.gz b/docs/solutions/reference-designs/ad-jupiter-ebz/jupiter-dma-coeherent.tar.gz new file mode 100644 index 00000000000..3a64fbeb585 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/jupiter-dma-coeherent.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e21cb2cf31ebff1801ea9c43c9ebf220b2d5d748897ba5f2f5123a95270a6d5 +size 13782752 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/jupiter_mcs_sync_03_25.zip b/docs/solutions/reference-designs/ad-jupiter-ebz/jupiter_mcs_sync_03_25.zip new file mode 100644 index 00000000000..6d3b0b261c4 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/jupiter_mcs_sync_03_25.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db009fcb0ed09d82b02ea1e13ee542c905547341a99c3f0e0344ea3b6374b555 +size 14323450 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/jupiter_sdr.svg b/docs/solutions/reference-designs/ad-jupiter-ebz/jupiter_sdr.svg new file mode 100644 index 00000000000..a32c5c1c040 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/jupiter_sdr.svg @@ -0,0 +1,5471 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + MEMORY INTERCONNECT + FPGA + + RX1 data path + AXI_9001 + I,QStrobeClock  + + RX1 PHY + + RX1 LINK + + RX12 TPL + + RX12 CPACK + + RX12 DMA + + + + + + + 32 + + 32 + + I + Q + + + + 64 + + RX2 PHY + + RX2 LINK + + RX2 TPL + + RX2 CPACK + + RX2 DMA + + + + + + + 16 + + 16 + + I + Q + + + + 32 + + TX1 PHY + + TX1 LINK + + TX12 TPL + + TX12 UPACK + + TX12 DMA + + + + + + + 32 + + 32 + + I + Q + + + + 64 + + TX2 PHY + + TX2 LINK + + TX2 TPL + + TX2 UPACK + + TX2 DMA + + + + + + + 16 + + 16 + + I + Q + + + + 32 + + TX1 data path + I,QStrobeClock  + I,QStrobeClock  + I,QStrobeClock  + + RX2 data path + + TX2 data path + + AXI_LITE + + + Clock + Clock + + Ref_Clk + + + + + + + + + + + + + + + + + + + + R1_MODE + 0 + 1 + 0 + 1 + + + + + + + + + + Ethernet + UART + DDRx + SPI + I2C + Interrupts + ZynqMP + Timer + + + eSATA + + USB C + Display P + (xczu3eg) + + + + ADRV9002 + + JUPITER_SDR + + + 38.4 MHz + + + + + + + + + + + + + + + + + + Rx1 + Rx2 + Tx1 + Tx2 + + + + + + Rx1A + + Rx1B + + Rx2A + + Rx2B + + Tx1A + + Tx1B + + Tx2A + + Tx2B + J2 + + + + + J3 + J1 + J4 + J8 + + + J7 + + + + J10 + J9 + + + + CLK_IN + + + + diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/jupiter_sdr_2x_system_sync.svg b/docs/solutions/reference-designs/ad-jupiter-ebz/jupiter_sdr_2x_system_sync.svg new file mode 100644 index 00000000000..d3f970bf560 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/jupiter_sdr_2x_system_sync.svg @@ -0,0 +1,307 @@ + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + Splitter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Host(controller) + Jupiters + Synchrona + + diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_back1.png b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_back1.png new file mode 100644 index 00000000000..501d751321b --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_back1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1658b9d208ee9a371414e7613227690b0a1a7c3ee737f964bae357f64bf6495 +size 205929 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_blockdiagram.png b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_blockdiagram.png new file mode 100644 index 00000000000..b7dac52b3f2 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_blockdiagram.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e74557fa8d43336b95026349374b79eeaeeb9078bc01f871fe51a48aa52648b8 +size 161316 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_front1.png b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_front1.png new file mode 100644 index 00000000000..de726b43d5d --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_front1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d18a938ce7ccb7a6ab96c8f16ae65ea917cf0c7d2cbfdf16558c35111d6f0f4 +size 227563 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_front_panel.png b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_front_panel.png new file mode 100644 index 00000000000..06d3e8a3418 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_front_panel.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fe2775c497087b35a89b584ff5a5a72071fce1f34ac8be8e7949b1bf1b17b59 +size 29703 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_powermap.png b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_powermap.png new file mode 100644 index 00000000000..d6e70b65a54 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_powermap.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f272d925ca4467dd6ab7356994d6df360442a1ac5e37e79248e050f3a2a927e4 +size 172206 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_rf_fe_add-on.png b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_rf_fe_add-on.png new file mode 100644 index 00000000000..39cbdf535b2 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_rf_fe_add-on.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fcffd7eb8a9c2cda0172de694d05043ccc57a0af7583c2082535d27d08e2702 +size 15985 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_rf_fe_main.png b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_rf_fe_main.png new file mode 100644 index 00000000000..a08f4128b11 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/jupitersdr_rf_fe_main.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6b9758ec77f1b6fbe5424c89c5ebfebe7dac261d5df2a55b1e6befa7a9596aa +size 108014 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/known-issues.rst b/docs/solutions/reference-designs/ad-jupiter-ebz/known-issues.rst new file mode 100644 index 00000000000..dd17d6fa8e4 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/known-issues.rst @@ -0,0 +1,26 @@ +.. _jupiter-sdr known-issues: + +Jupiter SDR - known issues +========================== + +Jupiter SDR known issues when used with +:external+kuiper:doc:`2023_r2 Patch1 Kuiper image ` + +#. IIO buffer size limited to 131072 samples when USB 3 interface is + used to stream data to a host + +#. USB 3 and Gigabit Ethernet interfaces throughput is currently limited + by :ref:`libiio v0.26 ` + implementation. The throughputs will significantly improve once + libiio v1.0 will be realeaed. + +#. IIO Oscilloscope profile generator (latest libadrv9002-iio) supports + v68.10.1 API while 2023_r3 Patch1 comes with v68.14.10 API; + :ref:`Generate a custom device profile using TES ` + +#. Multi chip synchronization support is not included in the 2023_r2 + Patch1 Kuiper release. Please visit + :ref:`multi-chip synchronization page ` + to check available support. + +#. :adi:`ADRV9002` CMOS interface not implemented diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/mcs-setup.rst b/docs/solutions/reference-designs/ad-jupiter-ebz/mcs-setup.rst new file mode 100644 index 00000000000..b52cd99b0da --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/mcs-setup.rst @@ -0,0 +1,418 @@ +.. _ad-jupiter-ebz mcs-setup: + +Jupiter_SDR MCS Setup +===================== + +Hardware requirements +--------------------- + +.. figure:: jupiter_sdr_2x_system_sync.svg + :align: center + :width: 800px + +- 1x Main machine running Linux - it’s goal is to control and process + data from others, through Ethernet(ssh) + +- 2x jupiter_sdr + USB C Power supply (5V/3A, 9V/3A) if PoE is not + available. + +- 2x SD card(min 32G) for jupiter_sdr + +- 1x Synchrona + ADD-ON Voltage Translation Board + 12V Power Supply + +- 1x Ethernet Switch/Router + +- 3x Ethernet cables + +- 3x Micro-USB (UART) + +- 9x SMA cables + + - 4x SMA cables of same length and type for > 6GHz (splitter to + Jupiter_sdr Rx) + + - 4x SMA cables for of same length and type for > 6GHz (synchrona to + jupiter) + + - 1x SMA cable (Jupiter_sdr Tx to splitter input) + +.. important:: + We chose to use Synchrona for clock and MCS requests. If you have + a different sync setup the constraints are: + + #. Clocks, MCS 6 pulse train or MCS requests should be generated + from the same source for both systems + + *2x 30.72 MHz, (LVPECL)* + + *2x MCS pulse, at request (LVPECL)* + + #. The trace length should be equal for all mcs and clock paths, + from reference to the systems inputs. This is if you can + afford to delay the MCS in regard to the clock, otherwise + the MCS cables should be longer than the clock ones. + +MCS prebuild files +------------------ + +- Jupiter SDR boot partition files for MCS sync example: + + :download:`jupiter_mcs_sync_03_25.zip ` + +- Device tree source and blob overlay for Synchrona: + + :download:`synchrona_jupiter_mcs_setup_03_28.zip ` + +.. caution:: + + There is a known issue with this Image version that the IP + of the board will change from boot to boot because the MAC + addr is not read from the flash memory on the Jupiter + +Setup +----- + +#. Write the latest Kuiper image on the SD cards + :external+kuiper:doc:`Kuiper images ` + +#. Copy on the boot partition of the SD cards, the provided + boot files from the archive above, for MCS sync (Image, + system.dtb, BOOT.BIN and boot.scr) + +#. Configure the Synchrona, see the :ref:`ad-jupiter-ebz mcs-setup`. + +#. Connect all SMA cable and terminations as described in + :dokuwiki:`connecting_jupiter_sdr_with_synchrona ` + section + +#. The reference clock from the signal generator(Synchrona) + must be, connected, and running before the next step + +#. Insert the SD cards and power up the jupiter_sdrs + +#. You need all 4 machines(Main, jupiter_sdr, Synchrona) in + the same LAN network, even if a DHCP server is not present + +#. Using a UART terminal, read the IP addresses of the + Jupiter_SDRs and Synchrona. By entering “ifconfig” + in their UART console + +#. On the main Linux machine, make sure you have + installed python3, libiio and pyadi-iio more info in + :dokuwiki:`prepare_and_run_python_tests ` + section. + +#. Enter in the folder examples/adrv9002_mcs_sync and + run “python3 jupiter_sync.py”. + +Setting Synchrona for MCS setup +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. Power up the system/Wait for it to boot(1min). + +#. Using a UART terminal, read the IP address of the Pi(synchrona). + Enter ifconfig + +#. Copy the device-tree rpi-ad9545-hmc7044.dtbo on the synchrona SD card + via scp (or locally on a different machine) on the boot partition in + /boot/overlays. + :red:`Loading the devicetree object in the GUI might get the` + :red:`desired frequency but it will not wait for a synq request`. + +#. Reboot Synchrona + +#. To check if the configuration was set, after reboot, you can enter in + a browser enter the IP address. In the GUI that will open in browser, + log in with User ”admin”, pass: “analog” + +If your Synchrona does not boot or you need a fresh SD card for +synchrona, you should re-image the SD card with the image from the +bottom of this section, or check if there is a newer version on +:dokuwiki:`ad-synchrona14-ebz ` + +- Write the image to an SD card, 16 G or above. Using your favourite + tool + +- Insert the freshly written SD card into the Synchrona’s raspberry Pi + and power up the system + +- After boot, configure the following in the serial terminal: + + - Make sure in the /boot/config.txt there the below line pointing to + the Synchrona devicetree overlay. + + .. code-block:: + + dtoverlay=rpi-ad9545-hmc7044.dtbo + +- By default, the IP is static. 192.168… . So, if needed you can enable + the dhcp by running the enable_dhcp.sh script: + + .. code-block:: + + root@analog:~# cd /root/linux_image_ADI-scripts/ + root@analog:/linux_image_ADI-scripts# ./enable_dhcp.sh + root@analog:/linux_image_ADI-scripts# reboot + +After reboot, start from +:dokuwiki:`setting_synchrona_for_mcs_setup ` +point 1. above. + +More info on +:dokuwiki:`ad-synchrona14-ebz ` + +None of the jumpers should be connected on Synchrona’s ADD-ON board + +.. figure:: ad-synchrona14-ebz2_top-1000.jpg + :align: center + :width: 800px + +.. admonition:: Download + + - **22 June 2022 release** + - :download:`Actual file ` + +Connecting Jupiter SDR with Synchrona +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. figure:: jupitersdr_front1.png + :align: center + :width: 800px + +.. figure:: synchrona_front.jpg + :align: center + :width: 800px + +============= =========== ====== ========= ======== +Synchrona SMA Jupiter SMA Signal Frequency Standard +============= =========== ====== ========= ======== +ch9_p Ref Clk Clock 30.72 MHz LVPECL +ch10_p Ref Clk Clock 30.72 MHz LVPECL +ch5_p MCS MCS 640 KHz CMOS +ch8_p MCS MCS 640 KHz CMOS +============= =========== ====== ========= ======== + +.. caution:: + + ch9_n and ch10_n must have 50 ohm SMA terminations. + +.. figure:: sma-termination.jpg + :align: center + :width: 800px + +Configuring Synchrona in a 4 Jupiter SDR syncronization setup +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Not all channels can be used, some channels have the option for sync +request, others don’t. Below is a table with the possible sync scheme, +sine channels require soldering components on Synchrona. More info on +:dokuwiki:`ad-synchrona14-ebz ` + +============= =========== ====== ========= ======== +Synchrona SMA Jupiter SMA Signal Frequency Standard +============= =========== ====== ========= ======== +ch1_p MCS MCS 640 KHz CMOS +ch2_p Ref Clk Clock 30.72 MHz LVPECL +ch3_p Ref Clk Clock 30.72 MHz LVPECL +ch4_p MCS MCS 640 KHz CMOS +ch5_p MCS MCS 640 KHz CMOS +ch6_p Ref Clk - 30.72 MHz - +ch7_p Ref Clk - 30.72 MHz - +ch8 MCS MCS 640 KHz CMOS +ch9_p Ref Clk Clock 30.72 MHz LVPECL +ch10_p Ref Clk Clock 30.72 MHz LVPECL +============= =========== ====== ========= ======== + +.. caution:: + + Each negative pair of a clock must have 50 ohm SMA termination mounted. + +Prepare and run Python tests +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +We recommend that you have git installed on your machine. Because we +need a specific branch of the development repo. + +.. code-block:: + + sudo apt install git + +You also need to have +`libiio `__ and +`pyadi-iio `__ installes, +as described below Install the required tools + +.. code-block:: + + sudo apt-get update + sudo apt install git + sudo apt-get install build-essential + sudo apt-get install libxml2-dev libzstd-dev bison flex libcdk5-dev cmake + sudo apt-get install libaio-dev libusb-1.0-0-dev + sudo apt-get install libserialport-dev libavahi-client-dev + sudo apt-get install doxygen graphviz + sudo apt-get install python3 python3-pip python3-setuptools + apt install python3.10-venv + pip install paramiko + pip install matplotlib + +Clone libiio, use v0.25. + +.. code-block:: + + git clone https://github.com/analogdevicesinc/libiio.git + git checkout v0.25 + cd libiio + mkdir build + cd build + cmake ../ -DCPP_BINDINGS=ON -DPYTHON_BINDINGS=ON + make -j$(nproc) + sudo make install + cd ../.. + +Clone and install pyadi-iio, use tfcollins/jupiter-sync brnach. The +below example was runed on Ubuntu 22.4, which requires a virtual +environment. + +.. code-block:: + + git clone https://github.com/analogdevicesinc/pyadi-iio.git + cd pyadi-iio + git checkout tfcollins/jupiter-sync + python3 -m venv venv + sudo apt install python3.10-venv + source venv/bin/activate + pip install -e . + +Go to the example jupiter scripts folder and edit, using your desired +editor, jupiter_sync.py. Add the ip addr of the Synchrona and of the +Jupiters to sync. + +.. code-block:: + + cd examples/adrv9002_mcs_sync + vim jupiter_sync.py + +The script can synchronize from 1 up to 4 Jupiters. At this moment, the +limit comes from Synchrona’s available outputs. + +.. code-block:: + + synchrona_ip = "192.168.0.1" + device_ips = ["192.168.0.2", "192.168.0.3", "192.168.0.4", "192.168.0.5"] + +Call the script + +.. code-block:: + + python3 ./jupiter_sync.py + +Expected results +~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: + + DEBUG:adi.adrv9002_multi:Creating primary device: ip:192.168.0.2 + DEBUG:adi.adrv9002_multi:Creating secondary device: ip:192.168.0.3 + DEBUG:adi.adrv9002_multi:Creating secondary device: ip:192.168.0.4 + DEBUG:adi.adrv9002_multi:Creating secondary device: ip:192.168.0.5 + Loading profiles + DEBUG:adi.adrv9002_multi:Setting profile_config on ip:192.168.0.2 + DEBUG:adi.adrv9002_multi:Setting profile_config on ip:192.168.0.3 + DEBUG:adi.adrv9002_multi:Setting profile_config on ip:192.168.0.4 + DEBUG:adi.adrv9002_multi:Setting profile_config on ip:192.168.0.5 + + Waiting for 6 pulses + Requesting sysref + Waiting for MCS done on ip:192.168.0.2 + ARM rx DMA and DDS cores + Mute DAC data sources + ARM RX/TX transfer paths + Configure DDSs + Set DDS as DAC data source + Enable Rx channels and define buffer size + Issue Sync pulse + Capture data + + +A window with a python plot will appear. + +.. figure:: mcs_result.png + :align: center + :width: 800px + + +Description of key aspects +-------------------------- + +MCS process +~~~~~~~~~~~ + +jupiter_sdr signal chain description +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The clock and MCS requests, generated by Synchrona, are driving the +Jupiter_SDRs. The 6 MCS pulses required by adrv9002, are generated in +HDL and have characteristics defined in software by the user. + +The MCS procedure is not enough to synchronize the systems. + +After MCS we will have synchronized clocks and LOs. Each Rx channel has +in independent SSI reference clock driving the data path up to a DMA. +Meaning, for this e.g. to synchronize a reception, we have to +synchronize 4 DMAs across 2 systems. This is done with a sync_req from +Synchrona. The sync_request will generate a trigger pulse in the HDL MCS +sync logic, dedicated for the transmission steps. Which will release the +armed Rx DMAS on the start_sync DMA feature/signal. + +The Tx receives the same trigger signal, which releases the cores from +the armed state. + +Notes +----- + +- SSI - source synchronous interface + +- MCS - Multi Chip Synchronization + +Tips +---- + +If you can connect the systems to a LAN which has DHCP server, it is +recommended to do so. Otherwise, you can use a switch and set static +IPs. + +If you get a static IP and are expecting one from your network, call +script: + +.. code-block:: + + ./enable_dhcp.sh + +Same for Jupiter and Synchrona, see Synchrona setup above. + +If you need a static IP, you can set the system for a desired IP by +calling: + +.. code-block:: + + enable_static_ip.sh 192.168.1.100 eth0 + +Resources +--------- + +- Branches: + + - :git-pyadi-iio:`pyadi-iio/tree/tfcollins/jupiter-sync/examples/adrv9002_mcs_sync ` + + - :git-linux:`linux/tree/staging/adrv9002-mcs-updates ` + + - :git-hdl:`hdl/tree/dev_jupiter_sdr_sync_update ` + +- Jupiter SDR boot partition files for MCS sync example: + + :download:`jupiter_mcs_sync_03_25.zip ` + +- Device tree source and blob overlay for Synchrona: + + :download:`synchrona_jupiter_mcs_setup_05_08.zip ` \ No newline at end of file diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/mcs_result.png b/docs/solutions/reference-designs/ad-jupiter-ebz/mcs_result.png new file mode 100644 index 00000000000..66bf7d26b2c --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/mcs_result.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7a3cacf1324a7198912351cfee9d8548cb64d553237ea1976648fe189d8364f +size 141453 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/profile-generation.rst b/docs/solutions/reference-designs/ad-jupiter-ebz/profile-generation.rst new file mode 100644 index 00000000000..8dd337aad1a --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/profile-generation.rst @@ -0,0 +1,120 @@ +.. _ad-jupiter-ebz profile-generation: + +Profile generation flow using TES +================================= + +Profiles +-------- + +:adi:`ADRV9002` uses profiles to designate different device configuration +settings for the Tx/Rx channels. The profile dictates how the digital +filters, analog filters, clock rates, and clock dividers are configured +in the device. Some specific parameters set by profiles include the IQ +data rate, ADC clock rate, analog filter corners, FIR filter +coefficients, and interpolation/decimation factors in the half-band +filters. Several profiles can be examined in the ADRV9002 Transceiver +Evaluation Software for given device clock frequencies. If the desired +profile exists in the software, it is recommended to set up the desired +profile in and use the generated JSON file by pressing the +``Generate Profile File`` button. Custom profiles can be generated using +other ADI software tools not described here +:adi:`ADRV9002 transceiver evaluation software (TES) ` +. + +.. warning:: + + Profiles are specific to the versions of ADRV9001/2 API that the driver + uses. Therefore, they must be generated from the + :adi:`TES software ` + that coincides with that API version. Unfortunately, profiles themselves + are not versioned so it is recommended to note the API version in the + generated profile filenames when created. The driver will print the API + version during boot for reference. + +For more information about profiles and how to load please see here: +:dokuwiki:`Profile section on the ADRV9002 Linux driver documentation ` + +.. note:: + + We are about to release a library which allows device profile generation + outside of TES. This library can be used in applications such as the + :ref:`iio-oscilloscope`, or other SDR software. + +Installation and Configuration +------------------------------ + +Detailed installation and configuration instructions can be found under +section ``TRANSCEIVER EVALUATION SOFTWARE (TES)`` in the +:adi:`UG-1828:ADRV9001 system development user guide ` + +Download: + +- :adi:`TRANSCEIVER EVALUATION SOFTWARE (TES) ` + +Worked example +-------------- + +In the following picture we can see the base controls for the profile: + +.. figure:: tes_main_configuration_4.png + :align: center + +In here, one can change the main profile type (LTE, DMR, etc), interface +rate, disabling ports and so on… + +.. caution:: + + Special care for the fields highlighted in channel 2 (also applies for + channel 1) that must be set like in the image. The LVDS enforcement is + specific to **jupiter**. + +Once we are done with the settings, time to generate the stream and the +profiles files: + +.. figure:: tes_save_profile_and_stream_2.png + :align: center + +In the next subsections, we can see some extra and useful settings that +one might want to set before generating the stream and the profile +files. + +Enable NCO Frequency offset +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. figure:: tes_enable_nco_correction_2.png + :align: center + +.. note:: + + Enabling this setting, enables the IIO attribute + :dokuwiki:`in_voltage0_nco_frequency `. + These settings are on by default on **jupiter** default profile. + +Enable Antenna Diversity +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. figure:: tes_diversity_settings_2.png + :align: center + +.. note:: + + This setting affects the LO mapping (which ports each LO drives). + Basically having this on, means that all ports are mapped into + the same LO. + +.. warning:: + + This settings is obviously only available if TDD is set in the + **Device Configuration** tab + +Enable Frequency hopping +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. figure:: test_fh_enablement_2.png + :align: center + +.. note:: + + The only thing needed to do in TES is just to enable Frequency hopping + as highlighted. All the other settings does not map in any profile + setting… diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/quickstart/index.rst b/docs/solutions/reference-designs/ad-jupiter-ebz/quickstart/index.rst new file mode 100644 index 00000000000..e3db6f3b662 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/quickstart/index.rst @@ -0,0 +1,855 @@ +.. _ad-jupiter-ebz quickstart: + +Jupiter SDR Quick Start Guide +============================= + +.. figure:: jupitersdr_front_explained.png + :align: center + +This guide provides some quick instructions on how to setup Jupiter SDR. + +Required Software +----------------- + +- SD Card 16GB image using the instructions here: :external+kuiper:doc:`Kuiper Linux image ` +- Instructions on how to build the ZynqMP / MPSoC Linux kernel and + devicetrees from source can be found here: + + - :ref:`linux-kernel zynqmp` + - :external+hdl:ref:`build_boot_bin` + +- When streaming data over USB3 interface is desired + :git-plutosdr-m2k-drivers-win:`USB driver ` need to be + installed on the host computer +- UART terminal (Putty/Tera Term/Minicom, etc.), Baud rate 115200 (8N1). +- :ref:`iio-oscilloscope` + +Please use the :external+kuiper:doc:`release Image 2021_R2 or later ` + +Hardware Setup +-------------- + +What's in the box +~~~~~~~~~~~~~~~~~ + +- Jupiter SDR +- 2 x USB Type-C cables +- 150mm RF loopback cable +- micro SD Card with pre-programmed image +- USB Type-C power supply (one USB Type-C cable is used to + supply the board) + +Use case 1 - data streaming to a host computer +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Jupiter SDR +- Micro-USB cable +- USB Type-C cable (or Ethernet cable) +- USB Type-C Power Supply + +Use case 2 - stand alone use +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Jupiter SDR +- Display Port compatible Monitor +- USB Type-C multiport hub, mouse and keyboard +- USB Type-C Power Supply + +Testing +------- + + +- Insert SD card into the socket. +- Connect USB UART (Micro USB) to your host PC and connect your + terminal application to the corresponding port. +- Connect the Power Supply to USB Type-C power only connector - + after this the Status LED turns on red. +- Press Power Button to boot up - short time after button press + Status LED becomes purple (both red and blue LEDs are on) +- Observe kernel and serial console messages on your terminal. +- Optionally connect test and measurement equipment to SMA ports + or just connect the loopback cable included and use + IIO Osciloscope to control the :adi:`ADRV9002` settings. + +.. note:: + + This specifies any shell prompt running on the target + +.. code-block:: + + Xilinx Zynq MP First Stage Boot Loader + Release 2022.2 Jun 27 2023 - 07:04:57 + NOTICE: BL31: Non secure code at 0x8000000 + NOTICE: BL31: v2.8(release):4683880e5 + NOTICE: BL31: Built : 06:39:41, Jun 27 2023 + + + U-Boot 2022.01-40843-ga16a6a9cb3 (Jun 26 2023 - 15:37:16 +0300) + + CPU: ZynqMP + Silicon: v3 + Model: Analog Devices, Inc. Jupiter SDR + Board: Xilinx ZynqMP + DRAM: 2 GiB + PMUFW: v1.1 + PMUFW: No permission to change config object + EL Level: EL2 + Chip ID: zu3eg + NAND: 0 MiB + MMC: mmc@ff170000: 0 + Loading Environment from FAT... *** Error - No Valid Environment Area found + *** Warning - bad env area, using default environment + + In: serial + Out: serial + Err: serial + Bootmode: LVL_SHFT_SD_MODE1 + Reset reason: EXTERNAL + Net: FEC: can't find phy-handle + + ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 15, interface rgmii-id + + Error: ethernet@ff0e0000 address not set. + No ethernet found. + + scanning bus for devices... + SATA link 0 timeout. + SATA link 1 timeout. + AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl SATA mode + flags: 64bit ncq pm clo only pmp fbss pio slum part ccc apst + starting USB... + No working controllers found + Hit any key to stop autoboot: 0 + switch to partitions #0, OK + mmc0 is current device + Scanning mmc 0:1... + Found U-Boot script /boot.scr + 242 bytes read in 20 ms (11.7 KiB/s) + ## Executing script at 20000000 + 33378 bytes read in 29 ms (1.1 MiB/s) + 33384960 bytes read in 2251 ms (14.1 MiB/s) + ## Flattened Device Tree blob at 00100000 + Booting using the fdt blob at 0x100000 + FEC: can't find phy-handle + + ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 15, interface rgmii-id + + Error: ethernet@ff0e0000 address not set. + FEC: can't find phy-handle + + ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 15, interface rgmii-id + + Error: ethernet@ff0e0000 address not set. + Loading Device Tree to 000000007bdf8000, end 000000007be03261 ... OK + + Starting kernel ... + + [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] + [ 0.000000] Linux version 5.15.0-175797-g9379dba5c06d (dragos@debian) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621, GNU ld (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 2.36.1.20210621) #6 SMP Fri Jun 23 12:59:00 EEST 2023 + [ 0.000000] Machine model: Analog Devices, Inc. Jupiter SDR + [ 0.000000] earlycon: cdns0 at MMIO 0x00000000ff010000 (options '115200n8') + [ 0.000000] printk: bootconsole [cdns0] enabled + [ 0.000000] efi: UEFI not found. + [ 0.000000] Zone ranges: + [ 0.000000] DMA [mem 0x0000000000000000-0x000000007fffffff] + [ 0.000000] DMA32 empty + [ 0.000000] Normal empty + [ 0.000000] Movable zone start for each node + [ 0.000000] Early memory node ranges + [ 0.000000] node 0: [mem 0x0000000000000000-0x000000007fffffff] + [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000007fffffff] + [ 0.000000] cma: Reserved 256 MiB at 0x000000006bc00000 + [ 0.000000] psci: probing for conduit method from DT. + [ 0.000000] psci: PSCIv1.1 detected in firmware. + [ 0.000000] psci: Using standard PSCI v0.2 function IDs + [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. + [ 0.000000] psci: SMC Calling Convention v1.2 + [ 0.000000] percpu: Embedded 18 pages/cpu s34008 r8192 d31528 u73728 + [ 0.000000] Detected VIPT I-cache on CPU0 + [ 0.000000] CPU features: detected: ARM erratum 845719 + [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 517120 + [ 0.000000] Kernel command line: earlycon clk_ignore_unused root=/dev/mmcblk0p2 rw rootwait + [ 0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear) + [ 0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) + [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off + [ 0.000000] Memory: 1765380K/2097152K available (16000K kernel code, 1690K rwdata, 12252K rodata, 2560K init, 615K bss, 69628K reserved, 262144K cma-reserved) + [ 0.000000] rcu: Hierarchical RCU implementation. + [ 0.000000] rcu: RCU event tracing is enabled. + [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4. + [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. + [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 + [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 + [ 0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000 + [ 0.000000] Root IRQ handler: gic_handle_irq + [ 0.000000] GIC: Using split EOI/Deactivate mode + [ 0.000000] random: get_random_bytes called from start_kernel+0x470/0x6fc with crng_init=0 + [ 0.000000] arch_timer: cp15 timer(s) running at 33.33MHz (phys). + [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x7b0074340, max_idle_ns: 440795202884 ns + [ 0.000000] sched_clock: 56 bits at 33MHz, resolution 30ns, wraps every 2199023255543ns + [ 0.008302] Console: colour dummy device 80x25 + [ 0.012374] printk: console [tty0] enabled + [ 0.016436] printk: bootconsole [cdns0] disabled + [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] + [ 0.000000] Linux version 5.15.0-175797-g9379dba5c06d (dragos@debian) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621, GNU ld (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 2.36.1.20210621) #6 SMP Fri Jun 23 12:59:00 EEST 2023 + [ 0.000000] Machine model: Analog Devices, Inc. Jupiter SDR + [ 0.000000] earlycon: cdns0 at MMIO 0x00000000ff010000 (options '115200n8') + [ 0.000000] printk: bootconsole [cdns0] enabled + [ 0.000000] efi: UEFI not found. + [ 0.000000] Zone ranges: + [ 0.000000] DMA [mem 0x0000000000000000-0x000000007fffffff] + [ 0.000000] DMA32 empty + [ 0.000000] Normal empty + [ 0.000000] Movable zone start for each node + [ 0.000000] Early memory node ranges + [ 0.000000] node 0: [mem 0x0000000000000000-0x000000007fffffff] + [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000007fffffff] + [ 0.000000] cma: Reserved 256 MiB at 0x000000006bc00000 + [ 0.000000] psci: probing for conduit method from DT. + [ 0.000000] psci: PSCIv1.1 detected in firmware. + [ 0.000000] psci: Using standard PSCI v0.2 function IDs + [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. + [ 0.000000] psci: SMC Calling Convention v1.2 + [ 0.000000] percpu: Embedded 18 pages/cpu s34008 r8192 d31528 u73728 + [ 0.000000] Detected VIPT I-cache on CPU0 + [ 0.000000] CPU features: detected: ARM erratum 845719 + [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 517120 + [ 0.000000] Kernel command line: earlycon clk_ignore_unused root=/dev/mmcblk0p2 rw rootwait + [ 0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear) + [ 0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) + [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off + [ 0.000000] Memory: 1765380K/2097152K available (16000K kernel code, 1690K rwdata, 12252K rodata, 2560K init, 615K bss, 69628K reserved, 262144K cma-reserved) + [ 0.000000] rcu: Hierarchical RCU implementation. + [ 0.000000] rcu: RCU event tracing is enabled. + [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4. + [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. + [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 + [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 + [ 0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000 + [ 0.000000] Root IRQ handler: gic_handle_irq + [ 0.000000] GIC: Using split EOI/Deactivate mode + [ 0.000000] random: get_random_bytes called from start_kernel+0x470/0x6fc with crng_init=0 + [ 0.000000] arch_timer: cp15 timer(s) running at 33.33MHz (phys). + [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x7b0074340, max_idle_ns: 440795202884 ns + [ 0.000000] sched_clock: 56 bits at 33MHz, resolution 30ns, wraps every 2199023255543ns + [ 0.008302] Console: colour dummy device 80x25 + [ 0.012374] printk: console [tty0] enabled + [ 0.016436] printk: bootconsole [cdns0] disabled + [ 0.021040] Calibrating delay loop (skipped), value calculated using timer frequency.. 66.66 BogoMIPS (lpj=133332) + [ 0.021057] pid_max: default: 32768 minimum: 301 + [ 0.021183] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear) + [ 0.021203] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear) + [ 0.022116] rcu: Hierarchical SRCU implementation. + [ 0.022306] EFI services will not be available. + [ 0.022442] smp: Bringing up secondary CPUs ... + [ 0.022805] Detected VIPT I-cache on CPU1 + [ 0.022842] CPU1: Booted secondary processor 0x0000000001 [0x410fd034] + [ 0.023222] Detected VIPT I-cache on CPU2 + [ 0.023246] CPU2: Booted secondary processor 0x0000000002 [0x410fd034] + [ 0.023598] Detected VIPT I-cache on CPU3 + [ 0.023621] CPU3: Booted secondary processor 0x0000000003 [0x410fd034] + [ 0.023663] smp: Brought up 1 node, 4 CPUs + [ 0.023699] SMP: Total of 4 processors activated. + [ 0.023708] CPU features: detected: 32-bit EL0 Support + [ 0.023716] CPU features: detected: CRC32 instructions + [ 0.023757] CPU: All CPU(s) started at EL2 + [ 0.023776] alternatives: patching kernel code + [ 0.024818] devtmpfs: initialized + [ 0.028759] Registered cp15_barrier emulation handler + [ 0.028776] Registered setend emulation handler + [ 0.028888] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns + [ 0.028911] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) + [ 0.037569] pinctrl core: initialized pinctrl subsystem + [ 0.038315] NET: Registered PF_NETLINK/PF_ROUTE protocol family + [ 0.039513] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations + [ 0.039662] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations + [ 0.039792] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations + [ 0.039846] audit: initializing netlink subsys (disabled) + [ 0.039937] audit: type=2000 audit(0.032:1): state=initialized audit_enabled=0 res=1 + [ 0.040223] cpuidle: using governor menu + [ 0.040299] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. + [ 0.040362] ASID allocator initialised with 65536 entries + [ 0.054625] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages + [ 0.054646] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages + [ 0.054657] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages + [ 0.054668] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages + [ 1.114544] DRBG: Continuing without Jitter RNG + [ 1.217848] raid6: neonx8 gen() 2133 MB/s + [ 1.285908] raid6: neonx8 xor() 1582 MB/s + [ 1.353965] raid6: neonx4 gen() 2184 MB/s + [ 1.422013] raid6: neonx4 xor() 1556 MB/s + [ 1.490086] raid6: neonx2 gen() 2071 MB/s + [ 1.558128] raid6: neonx2 xor() 1429 MB/s + [ 1.626187] raid6: neonx1 gen() 1769 MB/s + [ 1.694248] raid6: neonx1 xor() 1212 MB/s + [ 1.762293] raid6: int64x8 gen() 1437 MB/s + [ 1.830358] raid6: int64x8 xor() 771 MB/s + [ 1.898414] raid6: int64x4 gen() 1602 MB/s + [ 1.966471] raid6: int64x4 xor() 818 MB/s + [ 2.034540] raid6: int64x2 gen() 1398 MB/s + [ 2.102591] raid6: int64x2 xor() 749 MB/s + [ 2.170653] raid6: int64x1 gen() 1033 MB/s + [ 2.238705] raid6: int64x1 xor() 517 MB/s + [ 2.238715] raid6: using algorithm neonx4 gen() 2184 MB/s + [ 2.238724] raid6: .... xor() 1556 MB/s, rmw enabled + [ 2.238733] raid6: using neon recovery algorithm + [ 2.239067] iommu: Default domain type: Translated + [ 2.239078] iommu: DMA domain TLB invalidation policy: strict mode + [ 2.239294] SCSI subsystem initialized + [ 2.239462] usbcore: registered new interface driver usbfs + [ 2.239498] usbcore: registered new interface driver hub + [ 2.239527] usbcore: registered new device driver usb + [ 2.239654] mc: Linux media interface: v0.10 + [ 2.239678] videodev: Linux video capture interface: v2.00 + [ 2.239742] pps_core: LinuxPPS API ver. 1 registered + [ 2.239752] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti + [ 2.239772] PTP clock support registered + [ 2.239805] EDAC MC: Ver: 3.0.0 + [ 2.240099] zynqmp-ipi-mbox mailbox@ff990400: Registered ZynqMP IPI mbox with TX/RX channels. + [ 2.240421] jesd204: found 0 devices and 0 topologies + [ 2.240461] FPGA manager framework + [ 2.240589] Advanced Linux Sound Architecture Driver Initialized. + [ 2.241014] Bluetooth: Core ver 2.22 + [ 2.241041] NET: Registered PF_BLUETOOTH protocol family + [ 2.241050] Bluetooth: HCI device and connection manager initialized + [ 2.241064] Bluetooth: HCI socket layer initialized + [ 2.241075] Bluetooth: L2CAP socket layer initialized + [ 2.241091] Bluetooth: SCO socket layer initialized + [ 2.241506] clocksource: Switched to clocksource arch_sys_counter + [ 2.241624] VFS: Disk quotas dquot_6.6.0 + [ 2.241669] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) + [ 2.245768] NET: Registered PF_INET protocol family + [ 2.245886] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear) + [ 2.246780] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear) + [ 2.246818] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear) + [ 2.246933] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear) + [ 2.247145] TCP: Hash tables configured (established 16384 bind 16384) + [ 2.247225] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear) + [ 2.247275] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear) + [ 2.247406] NET: Registered PF_UNIX/PF_LOCAL protocol family + [ 2.247787] RPC: Registered named UNIX socket transport module. + [ 2.247799] RPC: Registered udp transport module. + [ 2.247808] RPC: Registered tcp transport module. + [ 2.247816] RPC: Registered tcp NFSv4.1 backchannel transport module. + [ 2.248419] PCI: CLS 0 bytes, default 64 + [ 2.248814] armv8-pmu pmu: hw perfevents: no interrupt-affinity property, guessing. + [ 2.248987] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available + [ 2.249729] Initialise system trusted keyrings + [ 2.249810] workingset: timestamp_bits=62 max_order=19 bucket_order=0 + [ 2.250372] NFS: Registering the id_resolver key type + [ 2.250391] Key type id_resolver registered + [ 2.250401] Key type id_legacy registered + [ 2.250421] nfs4filelayout_init: NFSv4 File Layout Driver Registering... + [ 2.250432] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... + [ 2.250458] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. + [ 2.250637] fuse: init (API version 7.34) + [ 2.286700] NET: Registered PF_ALG protocol family + [ 2.286714] xor: measuring software checksum speed + [ 2.290896] 8regs : 2363 MB/sec + [ 2.294427] 32regs : 2799 MB/sec + [ 2.298740] arm64_neon : 2287 MB/sec + [ 2.298749] xor: using function: 32regs (2799 MB/sec) + [ 2.298762] Key type asymmetric registered + [ 2.298770] Asymmetric key parser 'x509' registered + [ 2.298812] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246) + [ 2.298826] io scheduler mq-deadline registered + [ 2.298835] io scheduler kyber registered + [ 2.324628] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled + [ 2.326446] cacheinfo: Unable to detect cache hierarchy for CPU 0 + [ 2.330645] brd: module loaded + [ 2.334122] loop: module loaded + [ 2.334341] Registered mathworks_ip class + [ 2.336103] libphy: Fixed MDIO Bus: probed + [ 2.337258] tun: Universal TUN/TAP device driver, 1.6 + [ 2.337350] CAN device driver interface + [ 2.337928] usbcore: registered new interface driver asix + [ 2.337974] usbcore: registered new interface driver ax88179_178a + [ 2.338005] usbcore: registered new interface driver cdc_ether + [ 2.338033] usbcore: registered new interface driver net1080 + [ 2.338061] usbcore: registered new interface driver cdc_subset + [ 2.338088] usbcore: registered new interface driver zaurus + [ 2.338125] usbcore: registered new interface driver cdc_ncm + [ 2.338566] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver + [ 2.338577] ehci-pci: EHCI PCI platform driver + [ 2.338893] usbcore: registered new interface driver uas + [ 2.338930] usbcore: registered new interface driver usb-storage + [ 2.338998] usbcore: registered new interface driver usbserial_generic + [ 2.339021] usbserial: USB Serial support registered for generic + [ 2.339047] usbcore: registered new interface driver ftdi_sio + [ 2.339068] usbserial: USB Serial support registered for FTDI USB Serial Device + [ 2.339095] usbcore: registered new interface driver upd78f0730 + [ 2.339115] usbserial: USB Serial support registered for upd78f0730 + [ 2.339928] i2c_dev: i2c /dev entries driver + [ 2.341249] usbcore: registered new interface driver uvcvideo + [ 2.342168] Bluetooth: HCI UART driver ver 2.3 + [ 2.342180] Bluetooth: HCI UART protocol H4 registered + [ 2.342190] Bluetooth: HCI UART protocol BCSP registered + [ 2.342213] Bluetooth: HCI UART protocol LL registered + [ 2.342223] Bluetooth: HCI UART protocol ATH3K registered + [ 2.342244] Bluetooth: HCI UART protocol Three-wire (H5) registered + [ 2.342285] Bluetooth: HCI UART protocol Intel registered + [ 2.342307] Bluetooth: HCI UART protocol QCA registered + [ 2.342341] usbcore: registered new interface driver bcm203x + [ 2.342374] usbcore: registered new interface driver bpa10x + [ 2.342405] usbcore: registered new interface driver bfusb + [ 2.342436] usbcore: registered new interface driver btusb + [ 2.342480] usbcore: registered new interface driver ath3k + [ 2.342569] EDAC MC: ECC not enabled + [ 2.342710] EDAC DEVICE0: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT) + [ 2.343077] sdhci: Secure Digital Host Controller Interface driver + [ 2.343088] sdhci: Copyright(c) Pierre Ossman + [ 2.343096] sdhci-pltfm: SDHCI platform and OF driver helper + [ 2.343390] ledtrig-cpu: registered to indicate activity on CPUs + [ 2.343546] SMCCC: SOC_ID: ID = jep106:0049:0000 Revision = 0x14710093 + [ 2.343622] zynqmp_firmware_probe Platform Management API v1.1 + [ 2.343636] zynqmp_firmware_probe Trustzone version v1.0 + [ 2.373414] zynqmp-aes firmware:zynqmp-firmware:zynqmp-aes: will run requests pump with realtime priority + [ 2.385413] zynqmp-keccak-384 firmware:zynqmp-firmware:sha384: The zynqmp-sha-deprecated driver shall be deprecated in 2022.2 and removed in 2023.1 release + [ 2.385509] alg: No test for xilinx-keccak-384 (zynqmp-keccak-384) + [ 2.385689] alg: No test for xilinx-zynqmp-rsa (zynqmp-rsa) + [ 2.385844] usbcore: registered new interface driver usbhid + [ 2.385856] usbhid: USB HID core driver + [ 2.391942] axi_sysid 85000000.axi-sysid-0: AXI System ID core version (1.01.a) found + [ 2.392138] axi_sysid 85000000.axi-sysid-0: [jupiter] on [sdr] git branch git <38d58dc604ac06fe2912b1420a2963b46dd28984> dirty [2023-06-26 13:37:34] UTC + [ 2.392686] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered + [ 2.393093] usbcore: registered new interface driver snd-usb-audio + [ 2.394630] pktgen: Packet Generator for packet performance testing. Version: 2.75 + [ 2.395046] Initializing XFRM netlink socket + [ 2.395132] NET: Registered PF_INET6 protocol family + [ 2.395583] Segment Routing with IPv6 + [ 2.395607] In-situ OAM (IOAM) with IPv6 + [ 2.395662] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver + [ 2.396003] NET: Registered PF_PACKET protocol family + [ 2.396023] NET: Registered PF_KEY protocol family + [ 2.396112] can: controller area network core + [ 2.396146] NET: Registered PF_CAN protocol family + [ 2.396156] can: raw protocol + [ 2.396166] can: broadcast manager protocol + [ 2.396177] can: netlink gateway - max_hops=1 + [ 2.396251] Bluetooth: RFCOMM TTY layer initialized + [ 2.396266] Bluetooth: RFCOMM socket layer initialized + [ 2.396286] Bluetooth: RFCOMM ver 1.11 + [ 2.396299] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 + [ 2.396308] Bluetooth: BNEP filters: protocol multicast + [ 2.396319] Bluetooth: BNEP socket layer initialized + [ 2.396327] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 + [ 2.396339] Bluetooth: HIDP socket layer initialized + [ 2.396454] 9pnet: Installing 9P2000 support + [ 2.396474] NET: Registered PF_IEEE802154 protocol family + [ 2.396498] Key type dns_resolver registered + [ 2.396686] registered taskstats version 1 + [ 2.396697] Loading compiled-in X.509 certificates + [ 2.397183] Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no + [ 2.405842] domain0: domain0 request failed for node 33: -13 + [ 2.405882] xuartps ff000000.serial: failed to add to PM domain domain0: -13 + [ 2.405896] xuartps: probe of ff000000.serial failed with error -13 + [ 2.406984] ff010000.serial: ttyPS0 at MMIO 0xff010000 (irq = 30, base_baud = 6249999) is a xuartps + [ 3.845140] printk: console [ttyPS0] enabled + [ 3.849794] of-fpga-region fpga-full: FPGA Region probed + [ 3.855292] gpio-347 (usb-reset): hogged as output/high + [ 3.860522] gpio-413 (adrv9002-clksrc): hogged as output/high + [ 3.866275] gpio-478 (fan-en): hogged as output/high + [ 3.871246] gpio-479 (fan-ctl): hogged as output/low + [ 3.877645] xilinx-zynqmp-dpdma fd4c0000.dma-controller: Xilinx DPDMA engine is probed + [ 3.886533] zynqmp-display fd4a0000.display: vtc bridge property not present + [ 3.900973] zynqmp_clk_divider_set_rate() set divider failed for adma_ref_div1, ret = -13 + [ 3.911337] xilinx-dp-snd-codec fd4a0000.display:zynqmp_dp_snd_codec0: Xilinx DisplayPort Sound Codec probed + [ 3.921442] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm0: Xilinx DisplayPort Sound PCM probed + [ 3.929531] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm1: Xilinx DisplayPort Sound PCM probed + [ 3.938458] xilinx-dp-snd-card fd4a0000.display:zynqmp_dp_snd_card: Xilinx DisplayPort Sound Card probed + [ 3.948039] OF: graph: no port node found in /axi/display@fd4a0000 + [ 3.954570] xlnx-drm xlnx-drm.0: bound fd4a0000.display (ops 0xffffffc0110729d0) + [ 5.041526] zynqmp-display fd4a0000.display: [drm] Cannot find any crtc or sizes + [ 5.049170] [drm] Initialized xlnx 1.0.0 20130509 for fd4a0000.display on minor 0 + [ 5.056685] zynqmp-display fd4a0000.display: ZynqMP DisplayPort Subsystem driver probed + [ 5.064899] ahci-ceva fd0c0000.ahci: supply ahci not found, using dummy regulator + [ 5.072458] ahci-ceva fd0c0000.ahci: supply phy not found, using dummy regulator + [ 5.079928] ahci-ceva fd0c0000.ahci: supply target not found, using dummy regulator + [ 5.087778] ahci-ceva fd0c0000.ahci: AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl platform mode + [ 5.096744] ahci-ceva fd0c0000.ahci: flags: 64bit ncq sntf pm clo only pmp fbs pio slum part ccc sds apst + [ 5.107274] scsi host0: ahci-ceva + [ 5.110866] scsi host1: ahci-ceva + [ 5.114287] ata1: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x100 irq 26 + [ 5.122215] ata2: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x180 irq 26 + [ 5.131641] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM + [ 5.138184] xilinx-axipmon fd0b0000.perf-monitor: Probed Xilinx APM + [ 5.144669] xilinx-axipmon fd490000.perf-monitor: Probed Xilinx APM + [ 5.151160] xilinx-axipmon ffa10000.perf-monitor: Probed Xilinx APM + [ 5.181487] at24 0-0050: supply vcc not found, using dummy regulator + [ 5.185596] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller + [ 5.193350] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1 + [ 5.201022] at24 0-0050: 2048 byte 24c16 EEPROM, writable, 16 bytes/write + [ 5.201116] xhci-hcd xhci-hcd.0.auto: hcc params 0x0238f625 hci version 0x100 quirks 0x0000000002010090 + [ 5.217223] xhci-hcd xhci-hcd.0.auto: irq 40, io mem 0xfe200000 + [ 5.223251] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller + [ 5.228754] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2 + [ 5.236436] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed + [ 5.243101] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15 + [ 5.251393] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 + [ 5.258635] usb usb1: Product: xHCI Host Controller + [ 5.263521] usb usb1: Manufacturer: Linux 5.15.0-175797-g9379dba5c06d xhci-hcd + [ 5.270753] usb usb1: SerialNumber: xhci-hcd.0.auto + [ 5.275960] hub 1-0:1.0: USB hub found + [ 5.279749] hub 1-0:1.0: 1 port detected + [ 5.283904] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. + [ 5.292074] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.15 + [ 5.300357] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 + [ 5.307594] usb usb2: Product: xHCI Host Controller + [ 5.312494] usb usb2: Manufacturer: Linux 5.15.0-175797-g9379dba5c06d xhci-hcd + [ 5.319721] usb usb2: SerialNumber: xhci-hcd.0.auto + [ 5.324875] hub 2-0:1.0: USB hub found + [ 5.328646] hub 2-0:1.0: 1 port detected + [ 5.396777] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 22 + [ 5.403171] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer with timeout 60s + [ 5.440693] random: fast init done + [ 5.445064] ata1: SATA link down (SStatus 0 SControl 330) + [ 5.449552] mmc0: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit + [ 5.450501] ata2: SATA link down (SStatus 0 SControl 330) + [ 5.550685] mmc0: new ultra high speed SDR104 SDHC card at address 5048 + [ 5.557732] mmcblk0: mmc0:5048 SD32G 28.8 GiB + [ 5.564178] mmcblk0: p1 p2 p3 + [ 6.125532] zynqmp-display fd4a0000.display: [drm] Cannot find any crtc or sizes + [ 6.477135] random: crng init done + [ 13.058846] adrv9002 spi0.0: adrv9002-phy Rev 12.0, Firmware 0.22.0.0, Stream 0.7.9.0, API version: 68.5.0 successfully initialized + [ 13.072050] cf_axi_adc 84a00000.axi-adrv9002-rx-lpc: ADI AIM (10.02.b) at 0x84A00000 mapped to 0x000000008edaa943 probed ADC ADRV9002 as MASTER + [ 13.105827] cf_axi_dds 84a0a000.axi-adrv9002-tx-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.01.b) at 0x84A0A000 mapped to 0x00000000fbe94996, probed DDS ADRV9002 + [ 13.137822] cf_axi_dds 84a0c000.axi-adrv9002-tx2-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.01.b) at 0x84A0C000 mapped to 0x000000002101aee5, probed DDS ADRV9002 + [ 13.153803] macb ff0e0000.ethernet: Not enabling partial store and forward + [ 13.161811] libphy: MACB_mii_bus: probed + [ 13.166237] macb ff0e0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0e0000 irq 20 (00:05:f7:80:74:3e) + [ 13.178792] input: gpio-keys-power as /devices/platform/gpio-keys-power/input/input0 + [ 13.186908] of_cfs_init + [ 13.189367] of_cfs_init: OK + [ 13.192291] cfg80211: Loading compiled-in X.509 certificates for regulatory database + [ 13.326959] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' + [ 13.333490] clk: Not disabling unused clocks + [ 13.338021] ALSA device list: + [ 13.340984] #0: DisplayPort monitor + [ 13.344946] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 + [ 13.353572] cfg80211: failed to load regulatory.db + [ 13.364112] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none. + [ 13.373893] VFS: Mounted root (ext4 filesystem) on device 179:2. + [ 13.383115] devtmpfs: mounted + [ 13.387102] Freeing unused kernel memory: 2560K + [ 13.405563] Run /sbin/init as init process + [ 13.617964] systemd[1]: System time before build time, advancing clock. + [ 13.637584] systemd[1]: systemd 247.3-7+rpi1+deb11u1 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified) + [ 13.661587] systemd[1]: Detected architecture arm64. + + Welcome to Kuiper GNU/Linux 11.2 (bullseye)! + + [ 13.682526] systemd[1]: Set hostname to . + [ 14.436264] systemd[1]: /lib/systemd/system/plymouth-start.service:16: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed. + [ 14.636253] systemd[1]: Queued start job for default target Graphical Interface. + [ 14.645081] systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling. + [ 14.657451] systemd[1]: (This warning is only shown for the first unit using IP firewalling.) + [ 14.666547] systemd[1]: Created slice system-getty.slice. + [ OK ] Created slice system-getty.slice. + [ 14.690008] systemd[1]: Created slice system-modprobe.slice. + [ OK ] Created slice system-modprobe.slice. + [ 14.709928] systemd[1]: Created slice system-serial\x2dgetty.slice. + [ OK ] Created slice system-serial\x2dgetty.slice. + [ 14.733910] systemd[1]: Created slice system-systemd\x2dfsck.slice. + [ OK ] Created slice system-systemd\x2dfsck.slice. + [ 14.757807] systemd[1]: Created slice User and Session Slice. + [ OK ] Created slice User and Session Slice. + [ 14.777865] systemd[1]: Started Forward Password Requests to Wall Directory Watch. + [ OK ] Started Forward Password R…uests to Wall Directory Watch. + [ 14.801843] systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped. + [ 14.814148] systemd[1]: Reached target Slices. + [ OK ] Reached target Slices. + [ 14.829696] systemd[1]: Reached target Swap. + [ OK ] Reached target Swap. + [ 14.846351] systemd[1]: Listening on Syslog Socket. + [ OK ] Listening on Syslog Socket. + [ 14.861920] systemd[1]: Listening on fsck to fsckd communication Socket. + [ OK ] Listening on fsck to fsckd communication Socket. + [ 14.885747] systemd[1]: Listening on initctl Compatibility Named Pipe. + [ OK ] Listening on initctl Compatibility Named Pipe. + [ 14.910252] systemd[1]: Listening on Journal Audit Socket. + [ OK ] Listening on Journal Audit Socket. + [ 14.929933] systemd[1]: Listening on Journal Socket (/dev/log). + [ OK ] Listening on Journal Socket (/dev/log). + [ 14.953990] systemd[1]: Listening on Journal Socket. + [ OK ] Listening on Journal Socket. + [ 14.970994] systemd[1]: Listening on udev Control Socket. + [ OK ] Listening on udev Control Socket. + [ 14.993934] systemd[1]: Listening on udev Kernel Socket. + [ OK ] Listening on udev Kernel Socket. + [ 15.015596] systemd[1]: Mounting Huge Pages File System... + Mounting Huge Pages File System... + [ 15.035385] systemd[1]: Mounting POSIX Message Queue File System... + Mounting POSIX Message Queue File System... + [ 15.059209] systemd[1]: Mounting RPC Pipe File System... + Mounting RPC Pipe File System... + [ 15.075541] systemd[1]: Mounting Kernel Debug File System... + Mounting Kernel Debug File System... + [ 15.094063] systemd[1]: Condition check resulted in Kernel Trace File System being skipped. + [ 15.102800] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped. + [ 15.115549] systemd[1]: Starting Restore / save the current clock... + Starting Restore / save the current clock... + [ 15.142746] systemd[1]: Starting Set the console keyboard layout... + Starting Set the console keyboard layout... + [ 15.170869] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped. + [ 15.184556] systemd[1]: Starting Load Kernel Module configfs... + Starting Load Kernel Module configfs... + [ 15.203983] systemd[1]: Starting Load Kernel Module drm... + Starting Load Kernel Module drm... + [ 15.223826] systemd[1]: Starting Load Kernel Module fuse... + Starting Load Kernel Module fuse... + [ 15.244489] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped. + [ 15.253802] systemd[1]: Condition check resulted in File System Check on Root Device being skipped. + [ 15.264835] systemd[1]: Starting Journal Service... + Starting Journal Service... + [ 15.285903] systemd[1]: Starting Load Kernel Modules... + Starting Load Kernel Modules... + [ 15.303738] systemd[1]: Starting Remount Root and Kernel File Systems... + Starting Remount Root and Kernel File Systems... + [ 15.327623] systemd[1]: Starting Coldplug All udev Devices... + Starting Coldplug All udev Devices... + [ 15.352792] systemd[1]: Mounted Huge Pages File System. + [ OK ] Mounted Huge Pages File System. + [ 15.386242] systemd[1]: Mounted POSIX Message Queue File System. + [ OK ] Mounted POSIX Message Queue File System. + [ 15.410207] systemd[1]: Started Journal Service. + [ OK ] Started Journal Service. + [ OK ] Mounted RPC Pipe File System. + [ OK ] Mounted Kernel Debug File System. + [ OK ] Finished Restore / save the current clock. + [ OK ] Finished Set the console keyboard layout. + [ OK ] Finished Load Kernel Module configfs[ 15.493163] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null). Quota mode: none. + . + [ OK ] Finished Load Kernel Module drm. + [ OK ] Finished Load Kernel Module fuse. + [FAILED] Failed to start Load Kernel Modules. + See 'systemctl status systemd-modules-load.service' for details. + [ OK ] Finished Remount Root and Kernel File Systems. + Mounting FUSE Control File System... + Mounting Kernel Configuration File System... + Starting Flush Journal to Persistent Storage... + [ 15.660144] systemd-journald[184]: Received client request to flush runtime journal. + Starting Load/Save Random Seed... + Starting Apply Kernel Variables... + [ 15.686650] systemd-journald[184]: File /var/log/journal/ada1ca10884b40d5a842c3234f7b495f/system.journal corrupted or uncleanly shut down, renaming and replacing. + Starting Create System Users... + [ OK ] Mounted FUSE Control File System. + [ OK ] Mounted Kernel Configuration File System. + [ OK ] Finished Load/Save Random Seed. + [ OK ] Finished Apply Kernel Variables. + [ OK ] Finished Create System Users. + Starting Create Static Device Nodes in /dev... + [ OK ] Finished Coldplug All udev Devices. + Starting Helper to synchronize boot up for ifupdown... + Starting Wait for udev To …plete Device Initialization... + [ OK ] Finished Helper to synchronize boot up for ifupdown. + [ OK ] Finished Create Static Device Nodes in /dev. + [ OK ] Reached target Local File Systems (Pre). + Starting Rule-based Manage…for Device Events and Files... + [ OK ] Finished Flush Journal to Persistent Storage. + [ OK ] Started Rule-based Manager for Device Events and Files. + Starting Show Plymouth Boot Screen... + [ OK ] Started Show Plymouth Boot Screen. + [ OK ] Started Forward Password R…s to Plymouth Directory Watch. + [ OK ] Reached target Local Encrypted Volumes. + [ OK ] Found device /dev/ttyPS0. + [ OK ] Found device /dev/disk/by-partuuid/9785213e-01. + [ OK ] Found device /dev/ttyS0. + [ OK ] Listening on Load/Save RF …itch Status /dev/rfkill Watch. + Starting File System Check…isk/by-partuuid/9785213e-01... + Starting Load Kernel Modules... + [FAILED] Failed to start Load Kernel Modules. + See 'systemctl status systemd-modules-load.service' for details. + [ OK ] Finished Wait for udev To Complete Device Initialization. + [ OK ] Finished File System Check…/disk/by-partuuid/9785213e-01. + Mounting /boot... + [ OK ] Started File System Check Daemon to report status. + [ OK ] Mounted /boot. + [ OK ] Reached target Local File Systems. + Starting Set console font and keymap... + Starting Raise network interfaces... + Starting Preprocess NFS configuration... + Starting Tell Plymouth To Write Out Runtime Data... + Starting Create Volatile Files and Directories... + [ OK ] Finished Set console font and keymap. + [ OK ] Finished Preprocess NFS configuration. + [ OK ] Reached target NFS client services. + [ OK ] Reached target Remote File Systems (Pre). + [ OK ] Reached target Remote File Systems. + [ OK ] Finished Tell Plymouth To Write Out Runtime Data. + [ OK ] Finished Create Volatile Files and Directories. + Starting Update UTMP about System Boot/Shutdown... + [ OK ] Finished Update UTMP about System Boot/Shutdown. + [ OK ] Reached target System Initialization. + [ OK ] Started CUPS Scheduler. + [ OK ] Started Daily apt download activities. + [ OK ] Started Daily apt upgrade and clean activities. + [ OK ] Started Periodic ext4 Onli…ata Check for All Filesystems. + [ OK ] Started Discard unused blocks once a week. + [ OK ] Started Daily rotation of log files. + [ OK ] Started Daily man-db regeneration. + [ OK ] Started Daily Cleanup of Temporary Directories. + [ OK ] Reached target Paths. + [ OK ] Reached target Timers. + [ OK ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket. + [ OK ] Listening on CUPS Scheduler. + [ OK ] Listening on D-Bus System Message Bus Socket. + [ OK ] Listening on Erlang Port Mapper Daemon Activation Socket. + [ OK ] Listening on GPS (Global P…ioning System) Daemon Sockets. + [ OK ] Listening on triggerhappy.socket. + [ OK ] Reached target Sockets. + [ OK ] Reached target Basic System. + Starting Analog Devices power up/down sequence... + Starting Save/Restore Sound Card State... + Starting Avahi mDNS/DNS-SD Stack... + [ OK ] Started Regular background program processing daemon. + [ OK ] Started D-Bus System Message Bus. + Starting dphys-swapfile - …unt, and delete a swap file... + Starting Remove Stale Onli…t4 Metadata Check Snapshots... + Starting Creating IIOD Context Attributes...... + Starting Analog Devices Jupiter User LED... + Starting Initialize hardware monitoring sensors... + Starting Authorization Manager... + Starting DHCP Client Daemon... + Starting LSB: Switch to on…nless shift key is pressed)... + Starting LSB: rng-tools (Debian variant)... + Starting System Logging Service... + Starting User Login Management... + Starting triggerhappy global hotkey daemon... + Starting Disk Manager... + Starting WPA supplicant... + [ OK ] Finished Save/Restore Sound Card State. + [ OK ] Reached target Sound Card. + [ OK ] Started triggerhappy global hotkey daemon. + [ OK ] Finished Raise network interfaces. + [ OK ] Finished Initialize hardware monitoring sensors. + [ OK ] Started System Logging Service. + [ OK ] Started DHCP Client Daemon. + [ OK ] Finished Remove Stale Onli…ext4 Metadata Check Snapshots. + [ OK ] Started LSB: rng-tools (Debian variant). + [ OK ] Started Avahi mDNS/DNS-SD Stack. + [ OK ] Started User Login Management. + [ OK ] Started WPA supplicant. + [ OK ] Reached target Network. + [ OK ] Reached target Network is Online. + Starting CUPS Scheduler... + [ OK ] Started Erlang Port Mapper Daemon. + Starting HTTP based time synchronization tool... + Starting Internet superserver... + Starting /etc/rc.local Compatibility... + Starting OpenBSD Secure Shell server... + Starting Permit User Sessions... + [ OK ] Started Unattended Upgrades Shutdown. + [ OK ] Finished dphys-swapfile - …mount, and delete a swap file. + [ OK ] Started Internet superserver. + [ OK ] Started /etc/rc.local Compatibility. + [ OK ] Started Authorization Manager. + Starting Modem Manager... + [ OK ] Finished Permit User Sessions. + Starting Light Display Manager... + Starting Hold until boot process finishes up... + [ OK ] Started HTTP based time synchronization tool. + [ OK ] Started OpenBSD Secure Shell server. + Starting Manage, Install and Generate Color Profiles... + [ OK ] Finished Analog Devices power up/down sequence. + [FAILED] Failed to start VNC Server for X11. + + Raspbian GNU/Linux 11 analog ttyPS0 + + analog login: root (automatic login) + + Linux analog 5.15.0-175797-g9379dba5c06d #6 SMP Fri Jun 23 12:59:00 EEST 2023 aarch64 + + The programs included with the Debian GNU/Linux system are free software; + the exact distribution terms for each program are described in the + individual files in /usr/share/doc/*/copyright. + + Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent + permitted by applicable law. + Last login: Thu Jun 29 14:36:16 BST 2023 on ttyPS0 + root@analog:~# + +Make sure all devices are present +--------------------------------- + +.. note:: + + This specifies any shell prompt running on the target + +.. code-block:: + + root@analog:~# iio_info | grep iio:device + iio:device0: ams + iio:device1: adrv9002-phy + iio:device2: axi-adrv9002-rx-lpc (buffer capable) + iio:device3: axi-adrv9002-rx2-lpc (buffer capable) + iio:device4: axi-adrv9002-tx-lpc (buffer capable) + iio:device5: axi-adrv9002-tx2-lpc (buffer capable) + +RX gain control +--------------- + +The following commands enable the LNA on RX1A channel. + +.. note:: + + This specifies any shell prompt running on the target + +.. code-block:: + + root@analog:~# cd /sys/kernel/debug/iio/iio:device1 + root@analog:/sys/kernel/debug/iio/iio:device1# echo 1 > agpio4_direction + root@analog:/sys/kernel/debug/iio/iio:device1# echo 1 > agpio4_value + +RF Add-on power enable +---------------------- + +When RXB or TXB channels need to be used the RF Add-on board could be +powered on with the following commands. Once the RF Add-on is powered +up the TX amplifieres will be turned on. + +.. note:: + + This specifies any shell prompt running on the target + +.. code-block:: + + root@analog:/# cd /sys/class/gpio + root@analog:/sys/class/gpio# echo 475 > export + root@analog:/sys/class/gpio# cd gpio475 + root@analog:/sys/class/gpio/gpio475# echo out > direction + root@analog:/sys/class/gpio/gpio475# echo 1 > value + +TX channel selection +-------------------- + +The transceiver TX could be routed to the main board output +connector (TXA) or to the RF Add-on board (TXB). The +out_voltage0_port_select and out_voltage1_port_select +attributes allows us to select the desired TX1 respective TX2 +outputs. Below is a command example showing how to configure +TX1 channel to TX1B (RF Add-on output). + +.. note:: + + This specifies any shell prompt running on the target + +.. code-block:: + + root@analog:/# cd /sys/bus/iio/devices/iio:device1 + root@analog:/sys/bus/iio/devices/iio:device1# cat out_voltage0_port_select_available + tx_a tx_b + root@analog:/sys/bus/iio/devices/iio:device1# echo tx_b > out_voltage0_port_select + +Video Configuration +------------------- + +The default configuration for most of the projects is to use the HDMI +output, but for this project the DisplayPort is used. In order for it +to work, you should follow the steps described here: +:dokuwiki:`DisplayPort No Picture ` + +After following the steps, the board should be rebooted. + +Setup Networking +---------------- + +Follow :dokuwiki:`this article for further network config ` \ No newline at end of file diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/quickstart/jupitersdr_front_explained.png b/docs/solutions/reference-designs/ad-jupiter-ebz/quickstart/jupitersdr_front_explained.png new file mode 100644 index 00000000000..ad67135939d --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/quickstart/jupitersdr_front_explained.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aab10beee53dd549a5ba0e842e644849f4882b6b5c593e89d22d0c9c9177c4df +size 48560 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/reference-design.rst b/docs/solutions/reference-designs/ad-jupiter-ebz/reference-design.rst new file mode 100644 index 00000000000..50cc604dc87 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/reference-design.rst @@ -0,0 +1,370 @@ +.. _ad-jupiter-ebz reference-design: + +Jupiter SDR HDL Reference Design +================================ + +This design allows controlling, receiving and transmitting sample stream +from/to an :adi:`ADRV9002` device through two independent source synchronous +interface. At the moment, only LVDS interface is supported. + +The design supports SDR or DDR modes, one or two lane mode. This is +runtime selectable. The complete list of supported adrv9001 modes, can +be consulted in the :external+hdl:ref:`adrv9001` documentation. + +Block design +------------ + +The design has two receive paths and two transmit paths. One of the +receive paths (Rx12) has four channels and the other (Rx2) two channels. +These can work independently having each two active channels, or just +the Rx12 path having four active channels, while Rx2 is disabled. The +same applies to the transmit path but in the other direction. + +When only the Rx12 path is active with four channels mode the core will +take ownership of both source synchronous interfaces. The requirement in +this case is that both interfaces run at the same rate. + +.. figure:: jupiter_sdr.svg + :align: center + +DAC Interface +------------- + +- Has DDS + +- **Has PRBS** generation + +ADC Interface +------------- + +- Has PN checking + +- Has data formater + +- Has programmable input delay + +SW programming +-------------- + +Register map +^^^^^^^^^^^^ + ++-----------------------------------+------------------------------------------+ +| Address | IP | ++-----------------------------------+------------------------------------------+ +| 0x44A00000 | :external+hdl:ref:`axi_adrv9001 | +| | ` | ++-----------------------------------+------------------------------------------+ +| 0x44A30000 | :external+hdl:ref:`axi_adrv9001_rx1_dma | +| | ` | ++-----------------------------------+------------------------------------------+ +| 0x44A40000 | :external+hdl:ref:`axi_adrv9001_rx2_dma | +| | ` | ++-----------------------------------+------------------------------------------+ +| 0x44A50000 | :external+hdl:ref:`axi_adrv9001_tx1_dma | +| | ` | ++-----------------------------------+------------------------------------------+ +| 0x44A60000 | :external+hdl:ref:`axi_adrv9001_tx2_dma | +| | ` | ++-----------------------------------+------------------------------------------+ +| 0x44A70000 | :xilinx:`pl_sysmon ` | ++-----------------------------------+------------------------------------------+ +| 0x45000000 | :external+hdl:ref:`axi_sysid_0 | +| | ` | ++-----------------------------------+------------------------------------------+ + +SPI connections +^^^^^^^^^^^^^^^ + +==================== ======== =========== =============== === +SPI manager instance Alias SPI address SPI subordinate CSn +==================== ======== =========== =============== === +psu spi 0 spi_fpga 0xFF040000 ADRV9002 0 +==================== ======== =========== =============== === + +PL Interrupts +^^^^^^^^^^^^^ + +==================== ============= =================== +Instance HDL interrupt Linux PsU interrupt +==================== ============= =================== +— 0 89 +— 1 90 +— 2 91 +— 3 92 +— 4 93 +— 5 94 +— 6 95 +— 7 96 +\ 8 104 +pl_sysmon 9 105 +axi_adrv9002_tx2_dma 10 106 +axi_adrv9002_tx1_dma 11 107 +axi_adrv9002_rx2_dma 12 108 +axi_adrv9002_rx1_dma 13 109 +— 14 110 +— 15 111 +==================== ============= =================== + +ZYNQ U PS EMIO GPIO signals translation from schematic to GPIO number +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Ps8 EMIO offset = 78 + ++---------------+---------------+---------+---------------+-----------+ +| HW Signal | HDL Signal | PS GPIO | HDL GPIO | Direction | +| | | | EMIOn | | ++===============+===============+=========+===============+===========+ +| IO_L7N_66_FAN\| fan_ctl | 145 | 67 | O | +| _CTL | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_66_USB_FLA\| usb_flash_pro\| 144 | 66 | O | +| SH_PROG_EN | g_en | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L4N_64_ADR\| adrv9002_mcss\| 143 | 65 | O | +| V9002_MCSSRC | rc | | | | ++---------------+---------------+---------+---------------+-----------+ +| -- (internal) | mcs_or_system\| 142 | 64 | O | +| | _sync_n | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L1P_T0L\ | add_on_power | 141 | 63 | O | +| _N0_DBC_64 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L23N\ | add\ | 140 | 62 | I/O | +| _T3U_N9_64 | _on_gpio[14] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L23P\ | add\ | 139 | 61 | I/O | +| _T3U_N8_64 | _on_gpio[13] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L21N_T\ | add\ | 138 | 60 | I/O | +| 3L_N5_AD8N_64 | _on_gpio[12] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L21P_T\ | add\ | 137 | 59 | I/O | +| 3L_N4_AD8P_64 | _on_gpio[11] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L2N\ | add\ | 136 | 58 | I/O | +| _T0L_N3_64 | _on_gpio[10] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L2P\ | add_on_gpio[\ | 135 | 57 | I/O | +| _T0L_N2_64 | 9] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L1N_T0L\ | add_on_gpio[\ | 134 | 56 | I/O | +| _N1_DBC_64 | 8] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | add_on_gpio[\ | 133 | 55 | I/O | +| _L12N_AD0N_26 | 7] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | add_on_gpio[\ | 132 | 54 | I/O | +| _L12P_AD0P_26 | 6] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | add_on_gpio[\ | 131 | 53 | I/O | +| _L11N_AD1N_26 | 5] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | add_on_gpio[\ | 130 | 52 | I/O | +| _L11P_AD1P_26 | 4] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | add_on_gpio[\ | 129 | 51 | I/O | +| _L10N_AD2N_26 | 3] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | add_on_gpio[\ | 128 | 50 | I/O | +| _L10P_AD2P_26 | 2] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | add_on_gpio[\ | 127 | 49 | I/O | +| _L9N_AD3N_26 | 1] | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | add_on_gpio[\ | 126 | 48 | I/O | +| _L9P_AD3P_26 | 0] | | | | ++---------------+---------------+---------+---------------+-----------+ +| -- (internal) | gpio_rx1\ | 126 | 47 | I/O | +| | _enable_in | | | | ++---------------+---------------+---------+---------------+-----------+ +| -- (internal) | gpio_rx2\ | 126 | 46 | I/O | +| | _enable_in | | | | ++---------------+---------------+---------+---------------+-----------+ +| -- (internal) | gpio_tx1\ | 126 | 45 | I/O | +| | _enable_in | | | | ++---------------+---------------+---------+---------------+-----------+ +| -- (internal) | gpio_tx2\ | 126 | 44 | I/O | +| | _enable_in | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | dgpio[11] | 121 | 43 | I/O | +| _L18P_64_ADRV | | | | | +| 9002_DGPIO_11 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | dgpio[10] | 120 | 42 | I/O | +| _L18N_64_ADRV | | | | | +| 9002_DGPIO_10 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L9N_64_ADR\| dgpio[ 9] | 119 | 41 | I/O | +| V9002_DGPIO_9 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L9P_64_ADR\| dgpio[ 8] | 118 | 40 | I/O | +| V9002_DGPIO_8 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_T\ | dgpio[ 7] | 117 | 39 | I/O | +| 2U_N12_64_ADR | | | | | +| V9002_DGPIO_7 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | dgpio[ 6] | 116 | 38 | I/O | +| _L14N_64_ADR\ | | | | | +| V9002_DGPIO_6 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L7N_64_ADR\| dgpio[ 5] | 115 | 37 | I/O | +| V9002_DGPIO_5 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L7P_64_ADR\| dgpio[ 4] | 114 | 36 | I/O | +| V9002_DGPIO_4 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L6N_64_ADR\| dgpio[ 3] | 113 | 35 | I/O | +| V9002_DGPIO_3 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L6P_64_ADR\| dgpio[ 2] | 112 | 34 | I/O | +| V9002_DGPIO_2 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L5N_64_ADR\| dgpio[ 1] | 111 | 33 | I/O | +| V9002_DGPIO_1 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L5P_64_ADR\| dgpio[ 0] | 110 | 32 | I/O | +| V9002_DGPIO_0 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| I\ | ext_gpio[15] | 109 | 31 | I/O | +| O_L8N_AD4N_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| I\ | ext_gpio[14] | 108 | 30 | I/O | +| O_L8P_AD4P_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| I\ | ext_gpio[13] | 107 | 29 | I/O | +| O_L7N_AD5N_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| I\ | ext_gpio[12] | 106 | 28 | I/O | +| O_L7P_AD5P_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| I\ | ext_gpio[11] | 105 | 27 | I/O | +| O_L6N_AD6N_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| I\ | ext_gpio[10] | 104 | 26 | I/O | +| O_L6P_AD6P_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| I\ | ext_gpio[ 9] | 103 | 25 | I/O | +| O_L5N_AD7N_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| I\ | ext_gpio[ 8] | 102 | 24 | I/O | +| O_L5P_AD7P_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| I\ | ext_gpio[ 7] | 101 | 23 | I/O | +| O_L4N_AD8N_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| I\ | ext_gpio[ 6] | 100 | 22 | I/O | +| O_L4P_AD8P_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| I\ | ext_gpio[ 5] | 99 | 21 | I/O | +| O_L3N_AD9N_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| I\ | ext_gpio[ 4] | 98 | 20 | I/O | +| O_L3P_AD9P_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | ext_gpio[ 3] | 97 | 19 | I/O | +| _L2N_AD10N_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | ext_gpio[ 2] | 96 | 18 | I/O | +| _L2P_AD10P_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | ext_gpio[ 1] | 95 | 17 | I/O | +| _L1N_AD11N_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO\ | ext_gpio[ 0] | 94 | 16 | I/O | +| _L1P_AD11P_26 | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L17N_RF\ | rf\ | 93 | 15 | O | +| _TX2_MUX_CTL2 | _tx2_mux_ctl2 | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L17P_RF\ | rf\ | 92 | 14 | O | +| _TX2_MUX_CTL1 | _tx2_mux_ctl1 | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L16N_RF\ | rf\ | 91 | 13 | O | +| _TX1_MUX_CTL2 | _tx1_mux_ctl2 | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L16P_RF\ | rf\ | 90 | 12 | O | +| _TX1_MUX_CTL1 | _tx1_mux_ctl1 | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L13P_RF\ | rf\ | 89 | 11 | O | +| _RX2B_MUX_CTL | _rx2b_mux_ctl | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L14P_RF\ | rf\ | 88 | 10 | O | +| _RX2A_MUX_CTL | _rx2a_mux_ctl | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L15P_RF\ | rf\ | 87 | 9 | O | +| _RX1B_MUX_CTL | _rx1b_mux_ctl | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L15N_RF\ | rf\ | 86 | 8 | O | +| _RX1A_MUX_CTL | _rx1a_mux_ctl | | | | ++---------------+---------------+---------+---------------+-----------+ +| -- (internal) | mssi_sync | 85 | 7 | O | ++---------------+---------------+---------+---------------+-----------+ +| VI\ | vi\ | 84 | 6 | I | +| N_POE_VALID_N | n_poe_valid_n | | | | ++---------------+---------------+---------+---------------+-----------+ +| VIN\ | vin\ | 83 | 5 | I | +| _USB2_VALID_N | _usb2_valid_n | | | | ++---------------+---------------+---------+---------------+-----------+ +| VIN\ | vin\ | 82 | 4 | I | +| _USB1_VALID_N | _usb1_valid_n | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_66_AD\ | clksrc | 81 | 3 | O | +| RV9002_CLKSRC | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_65_ADRV\ | mode | 80 | 2 | O | +| 9002_MODE | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_65\ | resetb | 79 | 1 | O | +| _ADRV9002_RST | | | | | ++---------------+---------------+---------+---------------+-----------+ +| IO_L24P_65_AD\| gp_int | 78 | 0 | I | +| RV9002_GP_INT | | | | | ++---------------+---------------+---------+---------------+-----------+ + +Resource Utilization of xczu3eg-sfva625-2-e +------------------------------------------- + +======== =========== ========= ============= +Resource Utilization Available Utilization % +======== =========== ========= ============= +LUT 25131 70560 35.62 +LUTRAM 1812 28800 6.29 +FF 34789 141120 24.65 +BRAM 4 216 1.85 +DSP 12 360 3.33 +IO 136 180 75.56 +BUFG 13 196 6.63 +======== =========== ========= ============= + +Source code +----------- + +.. admonition:: Download + + The source files can be accessed at: + + - :git-hdl:`https://github.com/analogdevicesinc/hdl/tree/main/projects/jupiter_sdr ` + +Building the HDL project +---------------------------- + +To build the project follow the :external+hdl:ref:`build ` +documentation. + +More Information +---------------- + +- :external+hdl:ref:`user_guide` +- :dokuwiki:`ADRV9002 Device Driver Customization ` +- :dokuwiki:`ADRV9002 Integrated Dual RF Transceiver Linux device driver ` +- :ref:`ad-jupiter-ebz` + +Support +------- + +Analog Devices will provide limited online support for anyone using the +reference design with Analog Devices components via the :ez:`fpga`. diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/sma-termination.jpg b/docs/solutions/reference-designs/ad-jupiter-ebz/sma-termination.jpg new file mode 100644 index 00000000000..444e33ac7d6 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/sma-termination.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:267f096bd03a1e54838bd6a660a6f7665182f330b8eef59b3745fb400f6ace96 +size 20850 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/synchrona_front.jpg b/docs/solutions/reference-designs/ad-jupiter-ebz/synchrona_front.jpg new file mode 100644 index 00000000000..2ac9b6d0530 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/synchrona_front.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:355a28078ff8ebc3f2f2f0bb823e1d1d71c311699fdd6ba4017c70955354b2a6 +size 206562 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/synchrona_jupiter_mcs_setup_03_28.zip b/docs/solutions/reference-designs/ad-jupiter-ebz/synchrona_jupiter_mcs_setup_03_28.zip new file mode 100644 index 00000000000..e7fe289104d --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/synchrona_jupiter_mcs_setup_03_28.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e30fd973956abf2eaf373e9a9d921c0978a951a19f9cb760562f2dc42748fba5 +size 5330 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/synchrona_jupiter_mcs_setup_05_08.zip b/docs/solutions/reference-designs/ad-jupiter-ebz/synchrona_jupiter_mcs_setup_05_08.zip new file mode 100644 index 00000000000..5422efac785 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/synchrona_jupiter_mcs_setup_05_08.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24138868e91de247a44d31962fc328e571ad20b360cec8091feded75e9f7d479 +size 5092 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/tes_diversity_settings_2.png b/docs/solutions/reference-designs/ad-jupiter-ebz/tes_diversity_settings_2.png new file mode 100644 index 00000000000..62d7279d2eb --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/tes_diversity_settings_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fee574bf780e36d986b0be1a0f870b8a21b4671ce05137377cf1131aeb9c8342 +size 189843 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/tes_enable_nco_correction_2.png b/docs/solutions/reference-designs/ad-jupiter-ebz/tes_enable_nco_correction_2.png new file mode 100644 index 00000000000..2bdffc5ed76 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/tes_enable_nco_correction_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e73d9cdefa17e78e5b1feeea4674abe7b8a63cb15d7011419282caa09b54a274 +size 202452 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/tes_main_configuration_4.png b/docs/solutions/reference-designs/ad-jupiter-ebz/tes_main_configuration_4.png new file mode 100644 index 00000000000..5ae724da948 --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/tes_main_configuration_4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04bfb889d87a0d187100b57b4f21c81a7ec243670d1317f0a012a0e22725c558 +size 65818 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/tes_save_profile_and_stream_2.png b/docs/solutions/reference-designs/ad-jupiter-ebz/tes_save_profile_and_stream_2.png new file mode 100644 index 00000000000..db5696a0d4f --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/tes_save_profile_and_stream_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f68daae261addcbf1ca7d3e99cc6a0c404af54362c7a365cff3626b26f7dfe2c +size 195694 diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/test_fh_enablement_2.png b/docs/solutions/reference-designs/ad-jupiter-ebz/test_fh_enablement_2.png new file mode 100644 index 00000000000..42a1013640e --- /dev/null +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/test_fh_enablement_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb084b21300dc2ca4ee4d15303ea7775b2444bdba223fa3d12a4a83baaf4c444 +size 189384 diff --git a/docs/solutions/reference-designs/ad-m2kbnc-ebz/02-064107-01-b.pdf b/docs/solutions/reference-designs/ad-m2kbnc-ebz/02-064107-01-b.pdf new file mode 100644 index 00000000000..170a5ee289d Binary files /dev/null and b/docs/solutions/reference-designs/ad-m2kbnc-ebz/02-064107-01-b.pdf differ diff --git a/docs/solutions/reference-designs/ad-m2kbnc-ebz/09-064107-01b.zip b/docs/solutions/reference-designs/ad-m2kbnc-ebz/09-064107-01b.zip new file mode 100644 index 00000000000..919667bd771 --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kbnc-ebz/09-064107-01b.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae7c98c6ddafc7e8171636c4b1b845b60f59cee6f9478dab7e22018b73a47429 +size 1003801 diff --git a/docs/solutions/reference-designs/ad-m2kbnc-ebz/20-064107-01b.zip b/docs/solutions/reference-designs/ad-m2kbnc-ebz/20-064107-01b.zip new file mode 100644 index 00000000000..d1ffde58dba --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kbnc-ebz/20-064107-01b.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f9c34757730b87fa78ba090cc5588ccedf568fefaeb85cdcad90845a0d4a905 +size 9482874 diff --git a/docs/solutions/reference-designs/ad-m2kbnc-ebz/20220314_104919.jpg b/docs/solutions/reference-designs/ad-m2kbnc-ebz/20220314_104919.jpg new file mode 100644 index 00000000000..bb4b96e61d7 --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kbnc-ebz/20220314_104919.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed8218d2d43cc65983eb39b8b6b8734c87b9311b902be85b0db321eb27bb1410 +size 495162 diff --git a/docs/solutions/reference-designs/ad-m2kbnc-ebz/ad-m2kbnc-ebz-angle-web.png b/docs/solutions/reference-designs/ad-m2kbnc-ebz/ad-m2kbnc-ebz-angle-web.png new file mode 100644 index 00000000000..25058d91875 --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kbnc-ebz/ad-m2kbnc-ebz-angle-web.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f88442ed1f00fb8c74d203d5cb13cde0efecc2402b14354738dfdb477c7d285 +size 532618 diff --git a/docs/solutions/reference-designs/ad-m2kbnc-ebz/ad-m2kbnc-ebz-bottom-web.png b/docs/solutions/reference-designs/ad-m2kbnc-ebz/ad-m2kbnc-ebz-bottom-web.png new file mode 100644 index 00000000000..3312186131a --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kbnc-ebz/ad-m2kbnc-ebz-bottom-web.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05a81fe5d32d15726c490aeb50bc746ac596ff6e5e91f75c6822cc01b52f19da +size 344307 diff --git a/docs/solutions/reference-designs/ad-m2kbnc-ebz/ad-m2kbnc-ebz-top-web.png b/docs/solutions/reference-designs/ad-m2kbnc-ebz/ad-m2kbnc-ebz-top-web.png new file mode 100644 index 00000000000..b791a8a1de0 --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kbnc-ebz/ad-m2kbnc-ebz-top-web.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8553280c08ce69c399e40b0d30cd157ff03cfde9bdd20006a532192f3f8ae05 +size 369606 diff --git a/docs/solutions/reference-designs/ad-m2kbnc-ebz/ad-m2kbnc-ebz_package.png b/docs/solutions/reference-designs/ad-m2kbnc-ebz/ad-m2kbnc-ebz_package.png new file mode 100644 index 00000000000..40d6d56caa6 --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kbnc-ebz/ad-m2kbnc-ebz_package.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba6a7b035f279954e8c2fabfb7f81720408979bc4b67d0fe7c5a2feebe51ca9f +size 567607 diff --git a/docs/solutions/reference-designs/ad-m2kbnc-ebz/coupling_highlight.png b/docs/solutions/reference-designs/ad-m2kbnc-ebz/coupling_highlight.png new file mode 100644 index 00000000000..6d5152f7046 --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kbnc-ebz/coupling_highlight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00681339a22f4c8970a7668dd2c6b967c7ed3a4605d36977846e50c3fad163b3 +size 412850 diff --git a/docs/solutions/reference-designs/ad-m2kbnc-ebz/index.rst b/docs/solutions/reference-designs/ad-m2kbnc-ebz/index.rst new file mode 100644 index 00000000000..70a6b7f9f9b --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kbnc-ebz/index.rst @@ -0,0 +1,148 @@ +.. _ad-m2kbnc-ebz: + +AD-M2KBNC-EBZ +============== + +ADALM2000 BNC Adapter Board. + +The :adi:`AD-M2KBNC-EBZ` is an :adi:`ADALM2000` add-on board +which allows the user to connect oscilloscope probes and other test +leads to the analog inputs of M2K. + +.. grid:: + :widths: 50% 50% + + .. figure:: ad-m2kbnc-ebz-top-web.png + :width: 600px + + AD-M2KBNC-EBZ Top View + + .. figure:: ad-m2kbnc-ebz-bottom-web.png + :width: 600px + + AD-M2KBNC-EBZ Bottom View + +Features +-------- + +- AC or DC coupling on all channels +- Possibility to reconfigure the analog inputs as differential input channels +- Access to all other ADALM2000 output pins +- Oscilloscope probes, BNC to grabber cables and mini grabber test clips are + included in the package + +Description +----------- + +The AD-M2KBNC-EBZ has 2 single ended input channels and 2 single ended output +channels. All these channels are terminated in a right-angle BNC connector which +provides quick connection and a locking mechanism. The single ended input +channels can be reconfigured as differential input channels by modifying a +solder jumper on the bottom of the board. In this way, all 4 BNC connectors will +be used for the analog input section and the output of the M2K is still +available on the 30-pin header of the board. + +Applications +~~~~~~~~~~~~ + +- Electronic test and measurement equipment +- General-purpose signal processing applications +- Automated test equipment +- Educational applications + +Package contents +---------------- + +- AD-M2KBNC-EBZ +- 2x Oscilloscope Probes (PA360 60MHz x1 & x10 Passive Probe) +- 2x BNC to grabber cables +- 10x mini grabber test clips + +.. figure:: ad-m2kbnc-ebz-angle-web.png + +.. figure:: ad-m2kbnc-ebz_package.png + + AD-M2KBNC-EBZ Package Contents + +Getting Started +--------------- + +The BNC adapter board is simply plugged into the ADALM2000 and can be used +straight away. It does not need any supply or additional circuitry. + +.. figure:: 20220314_104919.jpg + :width: 600 px + + AD-M2KBNC-EBZ Connected to ADALM2000 + +AC/DC Coupling +~~~~~~~~~~~~~~ + +.. figure:: coupling_highlight.png + :width: 600 px + +**Figure 4. AD-M2KBNC-EBZ jumpers for AC/DC coupling** + +The input and output channels of this board can be AC or DC coupled using the +shunt jumpers. In the following table is presented the jumper configuration: + ++------------------+------------------+------------------+------------------+ +| Jumper | Missing | Jumper 1-2 | Jumper 2-3 | +| | | shorted | shorted | ++==================+==================+==================+==================+ +| S1- Analog In | inoperable | DC coupled | AC Coupled | +| channel 1 | /disconnected | | | ++------------------+------------------+------------------+------------------+ +| S2- Analog In | inoperable | DC coupled | AC Coupled | +| channel 2 | /disconnected | | | ++------------------+------------------+------------------+------------------+ +| P4- Analog Out | inoperable | DC coupled | AC Coupled | +| channel 1 | /disconnected | | | ++------------------+------------------+------------------+------------------+ +| P5- Analog Out | inoperable | DC coupled | AC Coupled | +| channel 2 | /disconnected | | | ++------------------+------------------+------------------+------------------+ + +Differential Inputs +~~~~~~~~~~~~~~~~~~~ + +The :adi:`AD-M2KBNC-EBZ` inputs are reconfigurable. By default +1+ and 2+ channels are referenced to the GND of the board and are single ended +input channels. There are some solder jumpers on the bottom of the board that +allow the user to change the default configuration and use the differential +inputs, as ADALM2000 allows this. If the jumpers are soldered as in the table +below, the BNC connectors J3 and J4 correspond to channels 1- and 2- of the +ADALM2000. + ++-----------------------------+---------------------------+ +| Solder jumpers | BNC Connector to M2K | +| Shorted Pins | Pin Correspondence | ++===========+=====+=====+=====+============+====+====+====+ +| JP1 | JP2 | JP3 | JP4 | J1 | J2 | J3 | J4 | ++-----------+-----+-----+-----+------------+----+----+----+ +| 1 2 | 1 2 | 1 2 | 1 2 | 1+ | 2+ | W1 | W2 | ++-----------+-----+-----+-----+------------+----+----+----+ +| 2 3 | 2 3 | 2 3 | 2 3 | 1+ | 2+ | 1- | 2- | ++-----------+-----+-----+-----+------------+----+----+----+ + +.. grid:: + :widths: 50% 50% + + .. figure:: input_path_single_ended.png + :width: 600px + + AD-M2KBNC-EBZ single-ended inputs bottom solder jumpers + + .. figure:: input_path_differential.png + :width: 600px + + AD-M2KBNC-EBZ right-differential inputs bottom solder jumpers + +Schematics and CAD Files +------------------------ + +.. admonition:: Download + + - :download:`Rev B Schematics <02-064107-01-b.pdf>` + - :download:`Rev B Gerbers <09-064107-01b.zip>` + - :download:`Rev B Cadence Project <20-064107-01b.zip>` diff --git a/docs/solutions/reference-designs/ad-m2kbnc-ebz/input_path_differential.png b/docs/solutions/reference-designs/ad-m2kbnc-ebz/input_path_differential.png new file mode 100644 index 00000000000..da7911fca6c --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kbnc-ebz/input_path_differential.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55ef53d52338019d6e5e2eccdacb29251adff502df5ba9324edf494f9efa7a10 +size 339431 diff --git a/docs/solutions/reference-designs/ad-m2kbnc-ebz/input_path_single_ended.png b/docs/solutions/reference-designs/ad-m2kbnc-ebz/input_path_single_ended.png new file mode 100644 index 00000000000..692476da528 --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kbnc-ebz/input_path_single_ended.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a399aef8ed209b69a4a35a4bd83eb1d93f8ed9c0d295b8c02f40c6a9fae6d08 +size 434626 diff --git a/docs/solutions/reference-designs/ad-m2kcbl-ebz/adalm2000-pin-wires.png b/docs/solutions/reference-designs/ad-m2kcbl-ebz/adalm2000-pin-wires.png new file mode 100644 index 00000000000..0d6b2e81a25 --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kcbl-ebz/adalm2000-pin-wires.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4e64925ef8cd4a416df027ed4fd1d6ac9472545f40ea2acb43f3849cfd5d497 +size 58788 diff --git a/docs/solutions/reference-designs/ad-m2kcbl-ebz/cable_assembly.png b/docs/solutions/reference-designs/ad-m2kcbl-ebz/cable_assembly.png new file mode 100644 index 00000000000..14749fbe374 --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kcbl-ebz/cable_assembly.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c01cdaa6096849401e36e109a469b7b6eec19474c68cfc20b8cc4b42fa3f0a00 +size 6117677 diff --git a/docs/solutions/reference-designs/ad-m2kcbl-ebz/cable_closeup.png b/docs/solutions/reference-designs/ad-m2kcbl-ebz/cable_closeup.png new file mode 100644 index 00000000000..f077aab88dd --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kcbl-ebz/cable_closeup.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a02a8d45d0c0fd221304fa649a77a03be02f72b4a4c3688e430fdf9115a7953 +size 5708850 diff --git a/docs/solutions/reference-designs/ad-m2kcbl-ebz/index.rst b/docs/solutions/reference-designs/ad-m2kcbl-ebz/index.rst new file mode 100644 index 00000000000..9890aa07aad --- /dev/null +++ b/docs/solutions/reference-designs/ad-m2kcbl-ebz/index.rst @@ -0,0 +1,69 @@ +.. _ad-m2kcbl-ebz: + +AD-M2KCBL-EBZ +============= + +ADALM2000 Cable Assembly. + +The AD-M2KCLB-EBZ is a cable assembly, compatible with the +:adi:`ADALM2000 ` and is the replacement +of the multi-colored cable/wires (2×10, 2×5) of the ADALM2000. + +.. figure:: cable_assembly.png + :align: center + :width: 500 px + :height: 500 px + + AD-M2KCBL-EBZ top view + +Features +~~~~~~~~ + +- ADALM2000 compatible + +- keyed connectors + +- color coded + +Description +~~~~~~~~~~~ + +The keyed connectors match the ADALM2000 case and can be easily matched +with it. + +.. figure:: cable_closeup.png + :align: center + :width: 300 px + :height: 300 px + + AD-M2KCBL-EBZ connector closeup + +Each wire is colored differently for easier identification of the +corresponding pin. The 10 pin socket and 10 wires is connected to the +analog section of M2K. First 2 pairs of cables form two general-purpose +differential analog input channels used by the analog signal acquisition +tools (such as oscilloscope, Spectrum analyzer, network analyzer and +voltmeter). Third pair of cables are corresponding to ground. Next pair +corresponds to the user supplies. The red wire corresponds to the +positive supply while the white one corresponds to the negative +supply.The last pair of wires in this cable are two general-purpose +Single-ended analog outputs. The 20 pins socket with 20 wires is +connected to the digital section of the M2k. First pair of pins consists +of 2 ground pins. Second pair are two digital triggers. With grey is the +trigger in and grey with a white stripe is the trigger out. (These are +used in tools Oscilloscope and Logic analyzer tools.) Rest of the pins +are X 16 digital input or output pins. + +.. figure:: adalm2000-pin-wires.png + :align: center + + ADALM2000 pinout-color correspondence. + +Package contents +~~~~~~~~~~~~~~~~ + +The kit has two subcomponents: + +- flywires connected to a 2*5P keyed female pin connector + +- flywires connected to a 2*10P keyed female pin connector \ No newline at end of file diff --git a/docs/solutions/reference-designs/ad-max32lrwise-sl/index.rst b/docs/solutions/reference-designs/ad-max32lrwise-sl/index.rst index 128dc5d8c60..feed0698478 100644 --- a/docs/solutions/reference-designs/ad-max32lrwise-sl/index.rst +++ b/docs/solutions/reference-designs/ad-max32lrwise-sl/index.rst @@ -3,8 +3,7 @@ AD-MAX32LRWISE-SL ================= -Long Range Wireless Radio Development Kit based on MAX32670 MCU and LR1110 RF Transceiver -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Long Range Wireless Radio Development Kit based on MAX32670 MCU and LR1110 RF Transceiver. .. admonition:: Download diff --git a/docs/solutions/reference-designs/ad-max32sxwise-sl/ad-max32sxwise-sl-designsupport.zip b/docs/solutions/reference-designs/ad-max32sxwise-sl/ad-max32sxwise-sl-designsupport.zip deleted file mode 100644 index f003b72d8a3..00000000000 --- a/docs/solutions/reference-designs/ad-max32sxwise-sl/ad-max32sxwise-sl-designsupport.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:31d90cabc1c81b772c7d35015f53c91144971ad25e45651c51e3b578a3489ecd -size 17433130 diff --git a/docs/solutions/reference-designs/ad-max32sxwise-sl/index.rst b/docs/solutions/reference-designs/ad-max32sxwise-sl/index.rst index fc2bf541251..b7d39c63acf 100644 --- a/docs/solutions/reference-designs/ad-max32sxwise-sl/index.rst +++ b/docs/solutions/reference-designs/ad-max32sxwise-sl/index.rst @@ -3,8 +3,7 @@ AD-MAX32SXWISE-SL ================= -Long Range Wireless Radio Development Kit based on MAX32670 MCU and SX1261 RF Transceiver -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Long Range Wireless Radio Development Kit based on MAX32670 MCU and SX1261 RF Transceiver. .. admonition:: Download diff --git a/docs/solutions/reference-designs/ad-max32sxwise-sl/max32670-sx-ardz/index.rst b/docs/solutions/reference-designs/ad-max32sxwise-sl/max32670-sx-ardz/index.rst index b38d5da5700..e6a5bda1e76 100644 --- a/docs/solutions/reference-designs/ad-max32sxwise-sl/max32670-sx-ardz/index.rst +++ b/docs/solutions/reference-designs/ad-max32sxwise-sl/max32670-sx-ardz/index.rst @@ -134,7 +134,7 @@ MAX32670 MCU Pin Map The pin map for the :adi:`MAX32670` is described in the table and its schematic diagram below. .. csv-table:: - :file: MAX32670-MCU-Pin-Map.csv + :file: max32670-mcu-pin-map.csv .. figure:: max32670_mcu_pin_map.png diff --git a/docs/solutions/reference-designs/ad-max32sxwise-sl/max32670-sx-ardz/MAX32670-MCU-Pin-Map.csv b/docs/solutions/reference-designs/ad-max32sxwise-sl/max32670-sx-ardz/max32670-mcu-pin-map.csv similarity index 100% rename from docs/solutions/reference-designs/ad-max32sxwise-sl/max32670-sx-ardz/MAX32670-MCU-Pin-Map.csv rename to docs/solutions/reference-designs/ad-max32sxwise-sl/max32670-sx-ardz/max32670-mcu-pin-map.csv diff --git a/docs/solutions/reference-designs/ad-max32sxwise-sl/max32670-sx-ardz/max32670-sx-ardz_base_board_peripherals_connector.png b/docs/solutions/reference-designs/ad-max32sxwise-sl/max32670-sx-ardz/max32670-sx-ardz_base_board_peripherals_connector.png deleted file mode 100644 index 53b3ec72bd2..00000000000 --- a/docs/solutions/reference-designs/ad-max32sxwise-sl/max32670-sx-ardz/max32670-sx-ardz_base_board_peripherals_connector.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:26b1c7593ffc5f7b1fe41f9906bba5a7aceae2a9f7e61a838118609528613c93 -size 8408741 diff --git a/docs/solutions/reference-designs/ad-paarray3552r-sl/index.rst b/docs/solutions/reference-designs/ad-paarray3552r-sl/index.rst index 7d84c7d0ff0..f0b1bbf825f 100644 --- a/docs/solutions/reference-designs/ad-paarray3552r-sl/index.rst +++ b/docs/solutions/reference-designs/ad-paarray3552r-sl/index.rst @@ -3,8 +3,7 @@ AD-PAARRAY3552R-SL ================== -RF Front-end GaN Power Amplifier Biasing, Protection, and Control Reference Design -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +RF Front-end GaN Power Amplifier Biasing, Protection, and Control Reference Design. Overview -------- diff --git a/docs/solutions/reference-designs/ad-pqmon-sl/index.rst b/docs/solutions/reference-designs/ad-pqmon-sl/index.rst index d4c648bcf3f..8b11960019e 100644 --- a/docs/solutions/reference-designs/ad-pqmon-sl/index.rst +++ b/docs/solutions/reference-designs/ad-pqmon-sl/index.rst @@ -3,8 +3,7 @@ AD-PQMON-SL ============ -Power Quality Analyzer -"""""""""""""""""""""" +Power Quality Analyzer. .. figure:: ade9430_angle.jpg :width: 400px diff --git a/docs/solutions/reference-designs/ad-ps3803-rd/index.rst b/docs/solutions/reference-designs/ad-ps3803-rd/index.rst index dfc9a21cf3f..763d8b3feb0 100644 --- a/docs/solutions/reference-designs/ad-ps3803-rd/index.rst +++ b/docs/solutions/reference-designs/ad-ps3803-rd/index.rst @@ -1,8 +1,7 @@ AD-PS3803-RD ============ -PoE+ with Ideal Diode Bridge to Isolated Flyback DC/DC (12V, 2A) -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +PoE+ with Ideal Diode Bridge to Isolated Flyback DC/DC (12V, 2A). .. figure:: ad-ps3803-rd_angle.jpg :width: 400 px diff --git a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/AD-RPI-T1LPSE-SL-designsupport.zip b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/ad-rpi-t1lpse-sl-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/ad-rpi-t1lpse-sl/AD-RPI-T1LPSE-SL-designsupport.zip rename to docs/solutions/reference-designs/ad-rpi-t1lpse-sl/ad-rpi-t1lpse-sl-designsupport.zip diff --git a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/ADIN2111_Power_Down_Selection.csv b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/adin2111_power_down_selection.csv similarity index 100% rename from docs/solutions/reference-designs/ad-rpi-t1lpse-sl/ADIN2111_Power_Down_Selection.csv rename to docs/solutions/reference-designs/ad-rpi-t1lpse-sl/adin2111_power_down_selection.csv diff --git a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/ADIN2111_SPI_Selection.csv b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/adin2111_spi_selection.csv similarity index 100% rename from docs/solutions/reference-designs/ad-rpi-t1lpse-sl/ADIN2111_SPI_Selection.csv rename to docs/solutions/reference-designs/ad-rpi-t1lpse-sl/adin2111_spi_selection.csv diff --git a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/basic-sample-application/eval-cn0575-rpiz-sample-application-blinky-system.png b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/basic-sample-application/eval-cn0575-rpiz-sample-application-blinky-system.png new file mode 100644 index 00000000000..ff4fbc2a9fe --- /dev/null +++ b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/basic-sample-application/eval-cn0575-rpiz-sample-application-blinky-system.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b24bfa2237d9970db391028c1dc3ca60289d639386494a3e0fca11ce5599b0d +size 288443 diff --git a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/basic-sample-application/eval-cn0575-rpiz-sample-application-nm-nmcli-conn-show.png b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/basic-sample-application/eval-cn0575-rpiz-sample-application-nm-nmcli-conn-show.png new file mode 100644 index 00000000000..089e6c29337 --- /dev/null +++ b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/basic-sample-application/eval-cn0575-rpiz-sample-application-nm-nmcli-conn-show.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8c65f3ab154fbe10d0160712684bce1f02d724156d64c757c9f1ce7e5cb3a52 +size 33201 diff --git a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/basic-sample-application/eval-cn0575-rpiz-sample-application-terminal-result.webp b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/basic-sample-application/eval-cn0575-rpiz-sample-application-terminal-result.webp new file mode 100644 index 00000000000..8031b67b5a7 --- /dev/null +++ b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/basic-sample-application/eval-cn0575-rpiz-sample-application-terminal-result.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc4369baba03afda314347009cdd3976dbab0c9ebb5c3d4d027ee02d90823eaf +size 3803652 diff --git a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/basic-sample-application/index.rst b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/basic-sample-application/index.rst new file mode 100644 index 00000000000..142f7c615a3 --- /dev/null +++ b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/basic-sample-application/index.rst @@ -0,0 +1,256 @@ +Basic Sample Application +======================== + +This simple sample application demonstrates how to get started with the :adi:`AD-RPI-T1LPSE-SL` HAT +by creating a basic Blinky demo. It uses two :adi:`EVAL-CN0575-RPIZ` +(10BASE-T1L Field Device Development Platform with Class 12 and 13 SPoE) HATs, +an :adi:`AD-RPI-T1LPSE-SL` HAT as a communication interface, and three Raspberry Pi computers. +These are set up in a parent-child configuration, where the :adi:`AD-RPI-T1LPSE-SL` HAT acts as the parent device, +and the two :adi:`EVAL-CN0575-RPIZ` HATs act as child devices. +The application toggles the on-board LED of a :adi:`EVAL-CN0575-RPIZ` HAT when the button is pressed on the +other :adi:`EVAL-CN0575-RPIZ` HAT and vice versa. + +Hardware Setup +-------------- + +.. figure:: eval-cn0575-rpiz-sample-application-blinky-system.png + :align: center + :width: 500 + + Hardware Setup for Basic Sample Application + +**Equipment Needed** + +- 1x :adi:`AD-RPI-T1LPSE-SL` Board + +- 2x :adi:`EVAL-CN0575-RPIZ` Boards + +- 3x Raspberry Pi 5 computers running Kuiper 2 + +- 1x USB Type-C Power Supply (at least 9V, 3A; 9V/12V/15V/20V supported) + +- 2x T1L Cables + +**Setup Procedure** + +1. Connect the :adi:`AD-RPI-T1LPSE-SL` board and both :adi:`EVAL-CN0575-RPIZ` boards to Raspberry Pis via the 40-pin header. + +2. Connect the power supply to the :adi:`AD-RPI-T1LPSE-SL` HAT using the USB Type-C port. + +3. Connect the two Raspberry Pi that are interfaced with the :adi:`EVAL-CN0575-RPIZ` HATs to the :adi:`AD-RPI-T1LPSE-SL` HAT + using T1L cables. + +5. Power on the Raspberry Pi computers. + +Software Setup +-------------- + +Prerequisites +~~~~~~~~~~~~~ + +- Three Raspberry Pi computers with :adi:`kuiper-linux` image installed. + Follow the instructions in the `Kuiper 2 User Guide + `_ + to prepare the Raspberry Pi. + +- ADI Kuiper Linux includes Python and pyadi-iio, but the versions may lag behind + that required for this demo. This demo was tested with Python 3.8-3.11, and the + main branch of pyadi-iio. + +- Git command-line tools installed. + +The easiest way to configure Kuiper and install dependencies is with a locally attached +monitor, keyboard, and network connection. One Raspberry Pi can be used to configure all +three cards, swapping SD cards accordingly afterwards. Log into Kuiper Linux and open a +terminal. When running commands with *sudo*, you might be prompted to enter the password +for the **analog** user. If you have not changed it, the default password is **analog**. + +Pyadi-iio Cloning and Installation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. Clone the repository on the parent Raspberry Pi (with the :adi:`AD-RPI-T1LPSE-SL` HAT): + + .. shell:: + :user: analog + :group: analog + :show-user: + + $ git clone https://github.com/analogdevicesinc/pyadi-iio.git + $ cd pyadi-iio + +2. From the pyadi-iio directory, install Python dependencies and open a virtual environment: + + .. shell:: + :user: analog + :group: analog + :show-user: + + $ cd ~/pyadi-iio + $ python3 -m venv ./venv + $ source venv/bin/activate + $ pip install -e . + +Applying Overlays +~~~~~~~~~~~~~~~~~ + +Overlays are required to enable the proper device tree configurations for the HATs. + +In order to apply the overlays, open a terminal on each Raspberry Pi and follow these steps: + +1. For the parent Raspberry Pi: + + .. shell:: + :user: analog + :group: analog + :show-user: + + $ sudo tee -a /boot/firmware/config.txt <<'EOF' + dtoverlay=rpi-t1lpse-class12 + EOF + + .. warning:: + + Use ``rpi-t1lpse-class12`` when an LTC9111 chip is available (as on the :adi:`EVAL-CN0575-RPIZ`). + The ``rpi-t1lpse-apl`` overlay should only be used when no LTC9111 chip is present. + Using ``apl`` bypasses voltage compatibility checks and sources the selected voltage level + (24V/54V) directly to the downstream device, which may damage incompatible equipment. + +2. For each child Raspberry Pi: + + .. shell:: + :user: analog + :group: analog + :show-user: + + $ sudo tee -a /boot/firmware/config.txt <<'EOF' + dtoverlay=rpi-cn0575 + EOF + +Reboot the Raspberry Pi computers to apply the changes: + + .. shell:: + :user: analog + :group: analog: + :show-user: + + $ sudo reboot + +Hostname Setup +~~~~~~~~~~~~~~ + +Each Raspberry Pi must have a unique hostname to avoid network conflicts. + +1. On each Raspberry Pi, open a terminal and enter the following command to edit the hostname file. + + Keep in mind that ** should be replaced with a unique name for each Raspberry Pi. We used + **analog** for the parent Raspberry Pi, **cn0575a** for the first child Raspberry Pi, and **cn0575b** for the second child Raspberry Pi. + + .. shell:: + :user: analog + :group: analog + :show-user: + + $ hostnamectl set-hostname + +Network Setup +~~~~~~~~~~~~~ + +Each Raspberry Pi must be configured with a static IP address to ensure reliable communication. + +For our demo, we will use the following IP addresses: + +- The Raspberry Pi with :adi:`AD-RPI-T1LPSE-SL` HAT (parent): **192.168.10.1/25** on **eth1** and **192.168.10.129/25** on **eth2** + +- First Raspberry Pi with :adi:`EVAL-CN0575-RPIZ` HAT (first child): **192.168.10.2/25** on **eth1** + +- Second Raspberry Pi with :adi:`EVAL-CN0575-RPIZ` HAT (second child): **192.168.10.130/25** on **eth1** + +Open the terminal and write the following commands: + +1. On the parent Raspberry Pi, with the :adi:`AD-RPI-T1LPSE-SL` HAT: + + .. shell:: + :user: analog + :group: analog + :show-user: + + $ sudo nmcli con add type ethernet ifname eth1 con-name t1l-cn0575a \ + ipv4.method manual ipv4.addresses 192.168.10.1/25 \ + connection.autoconnect yes + $ sudo nmcli con add type ethernet ifname eth2 con-name t1l-cn0575b \ + ipv4.method manual ipv4.addresses 192.168.10.129/25 \ + connection.autoconnect yes + $ sudo nmcli con up t1l-cn0575a + $ sudo nmcli con up t1l-cn0575b + +2. On the first child Raspberry Pi, with the first :adi:`EVAL-CN0575-RPIZ` HAT: + + .. shell:: + :user: analog + :group: analog + :show-user: + + $ sudo nmcli con add type ethernet ifname eth1 con-name t1l-master \ + ipv4.method manual ipv4.addresses 192.168.10.2/25 \ + connection.autoconnect yes + $ sudo nmcli con up t1l-master + +3. On the second child Raspberry Pi, with the second :adi:`EVAL-CN0575-RPIZ` HAT: + + .. shell:: + :user: analog + :group: analog + :show-user: + + $ sudo nmcli con add type ethernet ifname eth1 con-name t1l-master \ + ipv4.method manual ipv4.addresses 192.168.10.130/25 \ + connection.autoconnect yes + $ sudo nmcli con up t1l-master + +4. Reboot all the Raspberry Pi computers to apply the changes: + + .. shell:: + :user: analog + :group: analog: + :show-user: + + $ sudo reboot + +5. Verify that the new connections are active on each Raspberry Pi: + + .. shell:: + :user: analog + :group: analog + :show-user: + + $ nmcli connection show + + .. figure:: eval-cn0575-rpiz-sample-application-nm-nmcli-conn-show.png + :align: center + :width: 500 + + Example of active NetworkManager connections + +Application Execution +~~~~~~~~~~~~~~~~~~~~~ + +When executed, the demo continously reads the state of the button the :adi:`CN0575` HAT and +toggles the LED on the other :adi:`CN0575` HAT if pressed and vice versa. The code is run on the +parent only, which communicates with both child devices using *libiio*. + +Run the application the parent Raspberry Pi only, which will handle communication with both child devices. + + .. shell:: + :user: analog + :group: analog + :show-user: + + $ cd ~/pyadi-iio/examples/rpi_t1lpse + $ source ~/pyadi-iio/venv/bin/activate + $ python3 cn0591_2x_cn0575_button_blinky.py + + .. figure:: eval-cn0575-rpiz-sample-application-terminal-result.webp + :align: center + :width: 500 + + Running Basic Sample Application with Button Presses diff --git a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/index.rst b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/index.rst index 4b9489e0433..fec362358af 100644 --- a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/index.rst +++ b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/index.rst @@ -3,8 +3,7 @@ AD-RPI-T1LPSE-SL ================ -2-port 10BASE-T1L Field Switch with SPoE PSE -"""""""""""""""""""""""""""""""""""""""""""" +2-port 10BASE-T1L Field Switch with SPoE PSE. General Description ------------------- @@ -101,7 +100,7 @@ Alliance SPI must be used. To select which SPI protocol to use, the **JP1** follows: .. csv-table:: - :file: ADIN2111_SPI_Selection.csv + :file: adin2111_spi_selection.csv The :adi:`ADIN2111` supports software power-down functionality for each port independently after power-up or reset. To enable this feature: @@ -110,7 +109,7 @@ independently after power-up or reset. To enable this feature: - For PHY2, configure the JP2 solder jumper as follows: .. csv-table:: - :file: ADIN2111_Power_Down_Selection.csv + :file: adin2111_power_down_selection.csv LTC4296 ^^^^^^^ @@ -138,10 +137,10 @@ following solder jumper configurations are required: SPoE PD Power Class Jumpers .. csv-table:: SPoE PSE High Side Circuit Breaker Resistor Selection Table - :file: SPoE_PSE_Power_Class_Selection_High_Side.csv + :file: spoe_pse_power_class_selection_high_side.csv .. csv-table:: SPoE PSE Low Side Sensing Resistor Selection Table - :file: SPoE_PSE_Power_Class_Selection_Low_Side.csv + :file: spoe_pse_power_class_selection_low_side.csv The :adi:`LTC4296` also supports SPoE Class 10. To enable this functionality, specific resistor changes are required: @@ -160,7 +159,7 @@ The complete power requirements for the SPoE classes are shown in the table below: .. csv-table:: SPoE PSE Power Class Requirements - :file: SPoE_PSE_Power_Class_Requirements.csv + :file: spoe_pse_power_class_requirements.csv Secondary Side ~~~~~~~~~~~~~~ @@ -177,7 +176,7 @@ Delivery (PD) controller, can be configured using the following jumper configurations: .. csv-table:: USB-C Power Delivery Controller Configuration - :file: USB_PD_Controller_Configuration.csv + :file: usb_pd_controller_configuration.csv .. warning:: @@ -254,7 +253,7 @@ Debian, designed specifically for Analog Devices hardware and evaluation boards. **Build steps:** -#. :external+adi-kuiper-gen:doc:`Check prerequisites` (Ubuntu 22.04 + Docker for building) +#. :external+kuiper:doc:`Check prerequisites` (Ubuntu 22.04 + Docker for building) #. Build your :ref:`kuiper` image: .. shell:: @@ -262,13 +261,13 @@ Debian, designed specifically for Analog Devices hardware and evaluation boards. :group: analog :show-user: - $git clone --depth 1 --branch kuiper-AD-RPI-T1LPSE-SL https://github.com/analogdevicesinc/adi-kuiper-gen - $cd adi-kuiper-gen + $git clone --depth 1 --branch kuiper-AD-RPI-T1LPSE-SL https://github.com/analogdevicesinc/kuiper + $cd kuiper $sudo ./build-docker.sh - For more details on building the image, please refer to the :external+adi-kuiper-gen:doc:`Quick Start`. + For more details on building the image, please refer to the :external+kuiper:doc:`Quick Start`. -#. :external+adi-kuiper-gen:doc:`Write the built image to the micro-SD card and boot the Raspberry Pi`. +#. :external+kuiper:doc:`Write the built image to the micro-SD card and boot the Raspberry Pi`. Configuring the Micro-SD Card ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -462,7 +461,7 @@ Schematic, PCB Layout, Bill of Materials .. admonition:: Download - :download:`AD-RPI-T1LPSE-SL Design & Integration Files ` + :download:`AD-RPI-T1LPSE-SL Design & Integration Files ` - Schematics - PCB Layout @@ -489,6 +488,15 @@ Hardware Registration videos, and more when you :adi:`register ` your hardware. +Sample Application +------------------ + +.. toctree:: + :maxdepth: 2 + :glob: + + */index + Help and Support ------------------- diff --git a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/SPoE_PSE_Power_Class_Requirements.csv b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/spoe_pse_power_class_requirements.csv similarity index 100% rename from docs/solutions/reference-designs/ad-rpi-t1lpse-sl/SPoE_PSE_Power_Class_Requirements.csv rename to docs/solutions/reference-designs/ad-rpi-t1lpse-sl/spoe_pse_power_class_requirements.csv diff --git a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/SPoE_PSE_Power_Class_Selection_High_Side.csv b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/spoe_pse_power_class_selection_high_side.csv similarity index 100% rename from docs/solutions/reference-designs/ad-rpi-t1lpse-sl/SPoE_PSE_Power_Class_Selection_High_Side.csv rename to docs/solutions/reference-designs/ad-rpi-t1lpse-sl/spoe_pse_power_class_selection_high_side.csv diff --git a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/SPoE_PSE_Power_Class_Selection_Low_Side.csv b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/spoe_pse_power_class_selection_low_side.csv similarity index 100% rename from docs/solutions/reference-designs/ad-rpi-t1lpse-sl/SPoE_PSE_Power_Class_Selection_Low_Side.csv rename to docs/solutions/reference-designs/ad-rpi-t1lpse-sl/spoe_pse_power_class_selection_low_side.csv diff --git a/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/USB_PD_Controller_Configuration.csv b/docs/solutions/reference-designs/ad-rpi-t1lpse-sl/usb_pd_controller_configuration.csv similarity index 100% rename from docs/solutions/reference-designs/ad-rpi-t1lpse-sl/USB_PD_Controller_Configuration.csv rename to docs/solutions/reference-designs/ad-rpi-t1lpse-sl/usb_pd_controller_configuration.csv diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/MAINTENANCE.jpg b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/MAINTENANCE.jpg new file mode 100644 index 00000000000..6a0aeeeb75d --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/MAINTENANCE.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0e7d8c508ee1e624870775ed75b78baeff342ebb0e12bfd6a81b3c7d6083669 +size 36686 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/img_20230912_145550.jpg b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/img_20230912_145550.jpg similarity index 100% rename from docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/img_20230912_145550.jpg rename to docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/img_20230912_145550.jpg diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/index.rst b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/index.rst new file mode 100644 index 00000000000..a05aae5427d --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/index.rst @@ -0,0 +1,105 @@ +Firmware User Guide +=================== + +Required Hardware +~~~~~~~~~~~~~~~~~ + +- **Development kit**: :adi:`AD-SWIOT1L-SL` Software-configurable Analog and Digital I/O with 10BASE-T1L +- **Power supplies**: 24V power supply at minimum 2A +- **Programmer**: :adi:`MAX32625PICO` or any other similar programmer supporting the swd interface + +System Setup +------------ + +- Connect the AD-SWIOT1L-SL to the AD-T1LUSB2.0-EBZ using the single pair Ethernet cable. +- Connect the AD-T1LUSB2.0-EBZ to your PC using an usb cable. +- Connect the 24 V power supply to the AD-SWIOT1L-SL. + +.. figure:: picture1.jpg + :width: 600 px + :align: center + + AD-SWIOT1L-SL Hardware Setup + +.. figure:: picture3.jpg + :width: 600 px + :align: center + + Connecting the :adi:`MAX32625PICO` Programmer + +.. clear-content:: + :side: both + :break: + + +The system is accompanied by an open-source software stack and associated +collateral, enabling a complete experience from evaluation and prototyping all +the way to production firmware and applications development. + + +.. important:: + + The system comes pre-programmed with a standard firmware. To work with + **Scopy**, you need to flash the specific static ip firmware version. + + **Scopy** will work only with the official + `AD-SWIOT1L-SL firmware releases `_ + +Updating the AD-SWIOT1L-SL Firmware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To update the firmware on the AD-SWIOT1L-SL, the MAX32625PICO programmer is used as a swd interface to flash the new firmware image. The MAX32625PICO comes with a default bootloader that we need to replace. + + +#. Download the latest firmware for MAX32650FTHR: `MAX32625PICO firmware `__ +#. Set the MAX32625PICO in MAINTENANCE mode: + + * Disconnect the MAX32625PICO from the PC and the AD-SWIOT1L-SL board. + * Plug the micro usb cable only in the MAX32625PICO. + * Keep the button on the MAX32625PICO pressed. + * Plug the micro usb cable into the PC. + * Once you see the MAINTENANCE drive being mounted, you may release the button. + + .. figure:: MAINTENANCE.jpg + :width: 450 px + + Maintenance Mode - MAX32625PICO + +#. Drag and drop (to the MAINTENANCE drive) the firmware image you previously downloaded. + +.. figure:: picture1.jpg + :width: 600 px + :align: center + +#. After a few seconds, the MAINTENANCE drive will disappear and will be replaced + by a drive named Daplink. Once this is done, the process is complete, and the + MAX32625PICO may be used to flash the firmware on the AD-SWIOT1L-SL board. + +Programming the AD-SWIOT1L-SL +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Connect the MAX32625PICO to the PC using the micro usb cable. +- Connect the MAX32625PICO to the AD-SWIOT1L-SL board using the 10-pin ribbon cable. +- Connect the 24 V power supply to the AD-SWIOT1L-SL. Make sure the board is powered up for the next steps. + +.. figure:: img_20230912_145550.jpg + + AD-SWIOT1L-SL Programming Setup + +* A Daplink should appear as mounted on your PC. +* Drag and drop the new firmware image into the Daplink drive. After a few + seconds, the drive will be remounted. +* Check the Daplink directory and make sure there is no FAIL.TXT file. In case + there is, repeat the drag and drop step. Otherwise, you may disconnect the + MAX32625PICO from the AD-SWIOT1L-SL, since the firmware update is complete. + + +Building Your Own Firmware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The :git-no-OS:`AD-SWIOT1L-SL firmware ` is +based on Analog Devices’ open-source no-OS framework, which includes all the +tools required for embedded code development and debugging as well as libraries +enabling host-side connectivity for system configuration and data transfer over +the uart the 10BASE-T1L interfaces. The firmware source code and related +documentation can be found on the Analog Devices GitHub at the link above. \ No newline at end of file diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/picture1.jpg b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/picture1.jpg similarity index 100% rename from docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/picture1.jpg rename to docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/picture1.jpg diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/picture2.jpg b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/picture2.jpg similarity index 100% rename from docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/picture2.jpg rename to docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/picture2.jpg diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/picture3.jpg b/docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/picture3.jpg similarity index 100% rename from docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/picture3.jpg rename to docs/solutions/reference-designs/ad-swiot1l-sl/firmware-guide/picture3.jpg diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/index.rst b/docs/solutions/reference-designs/ad-swiot1l-sl/index.rst index 538027c4a9a..0f0ba29fcc3 100644 --- a/docs/solutions/reference-designs/ad-swiot1l-sl/index.rst +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/index.rst @@ -1,8 +1,7 @@ AD-SWIOT1L-SL ============= -Software-configurable Analog and Digital I/O with 10BASE-T1L Evaluation and Development Platform -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Software-configurable Analog and Digital I/O with 10BASE-T1L Evaluation and Development Platform. Introduction @@ -50,9 +49,9 @@ system together and get it up and running in no time. This is what you’ll find in the development kit box: - 1 x :adi:`AD-SWIOT1L-SL` board with enclosure -- 1 x :adi:`AD-T1LUSB-EBZ` 10BASE-T1L to USB adapter board -- 1 x PROFIBUS (1x2x18AWG) cable for Single Pair Ethernet (SPE) connectivity -- 1 x USB 2.0 cable +- 1 x :adi:`AD-T1LUSB-EBZ` 10BASE-T1L to usb adapter board. +- 1 x Profibus (1x2x18AWG) cable for Single Pair Ethernet (SPE) connectivity +- 1 x usb 2.0 cable - 1 x cable connector for the external 24 V power supply - 1 x cable connector for channels connectivity @@ -104,9 +103,10 @@ User guides .. toctree:: :titlesonly: - :glob: - */index + hardware-guide/index + firmware-guide/index + software-guide/index Help and Support diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/1.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/1.png new file mode 100644 index 00000000000..5da8333aff0 --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b008664cf439d43d872bc1774d3fd6c79721adb7831db0c8e0c897041f89d8c7 +size 14772 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/2.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/2.png new file mode 100644 index 00000000000..a27a1984681 --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b965eda5aa622b96e093db9ff961c342de9b542da22fa077011cb5620566be7b +size 73242 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/3.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/3.png new file mode 100644 index 00000000000..b612acc7dde --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:848fbc5f856e6b85407466ecba58211e55e9a928595245295cfd02ea97439bfb +size 28753 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/4.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/4.png new file mode 100644 index 00000000000..c62194ddcc3 --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90fe5692c2b98f5020ac71d724ce94b0337e5964f187c32ce5e003d3e8d4deeb +size 32963 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/5.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/5.png new file mode 100644 index 00000000000..b3e7712eadb --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be5d6c2e4505bc94d5ce1296b0242279d83b35acec59a59ff087c4c22a1a391f +size 50879 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/6.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/6.png new file mode 100644 index 00000000000..5fcb6d05233 --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96f205042d7fd9f039fe21bf60bb20ba4882a39c9b24a509443a1f6b0b08c6ca +size 26754 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst index 26178e216d0..008e70bb51a 100644 --- a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/index.rst @@ -12,93 +12,890 @@ System Setup ------------ - Connect the AD-SWIOT1L-SL to the AD-T1LUSB2.0-EBZ using the single pair Ethernet cable. -- Connect the AD-T1LUSB2.0-EBZ to your PC using an USB cable. +- Connect the AD-T1LUSB2.0-EBZ to your PC using a usb cable - Connect the 24 V power supply to the AD-SWIOT1L-SL. -.. figure:: picture1.jpg - :width: 600 px +Windows User Guide +------------------ +- Connect the AD-SWIOT1L-SL to your Windows PC using the AD-T1LUSB2.0-EBZ. + +To communicate with the AD-SWIOT1L-SL board, you need to configure your Windows +PC's network adapter with a static ip address in the same subnet as the board e.g 192.168.97.1/24 + +The AD-SWIOT1L-SL board uses the static ip address: **192.168.97.40** + +Configure Windows Network Adapter +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1. Open the Control Panel and navigate to "Network and Internet" + +.. figure:: 1.png + :width: 400 px :align: center - AD-SWIOT1L-SL Hardware Setup +2. Select your Ethernet interface and click "Edit" to modify the ip settings + +.. figure:: 2.png + :width: 300 px + :align: center + +3. Set the ip settings to manual and configure the following values: + + - **ip address**: 192.168.97.1 + - **Subnet mask**: 255.255.255.0 + + .. figure:: 3.png + :width: 300 px + :align: center + + Save the changes and close the network settings. -.. figure:: picture3.jpg +.. figure:: 4.png + :width: 450 px + :align: center + +4. Open a command prompt and verify the new assigned ip address using the command: + + .. code:: bash + + ipconfig + +.. figure:: 5.png :width: 600 px :align: center + +5. Ping the AD-SWIOT1L-SL board to verify connectivity: + + .. code:: bash + + ping 192.168.97.40 + +.. figure:: 6.png + :width: 800 px + :align: center + +.. Add Windows-specific instructions here + +linux User Guide +---------------- +- Connect the AD-SWIOT1L-SL to your linux PC using the AD-T1LUSB2.0-EBZ + + +To communicate with the AD-SWIOT1L-SL board, you need to configure your linux PC's network +adapter with a static IP address in the same subnet as the board e.g 192.168.97.1/24. + + +Configure linux Network Adapter +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Identify the network interface corresponding to the AD-T1LUSB2.0-EBZ using the command: + +.. figure:: linux_1.png + :width: 300 px + :align: center + +2. Configure the network interface with a static ip address: + +.. figure:: linux_2.png + :width: 400 px + :align: center + +.. figure:: linux_3.png + :width: 400 px + :align: center + + +3. Verify you can ping the AD-SWIOT1L-SL board: + +.. code:: bash + + ping 192.168.97.40 + +.. figure:: linux_4.png + :width: 450 px + :align: center + + + +The Scopy AD-SWIOT1L-SL Plugin +------------------------------ + +For detailed information on how to use the AD-SWIOT1L-SL Scopy plugin, including +configuration, operation modes, and available instruments, please refer to the +comprehensive `Scopy SWIOT1L Plugin Documentation `_. + + +Using the IIO interface +------------------------------ + +The firmware is based on a no-OS implementation of the IIO framework from the linux kernel, which offers similar functionalities. +Thus, the board may be configured through the use of pyadi-iio API. + +In order to get the pyadi-iio drivers follow the next steps: + +#. Clone the pyadi-iio repository: - Connecting the :adi:`MAX32625PICO` Programmer + .. code-block:: bash -.. clear-content:: - :side: both - :break: + git clone https://github.com/analogdevicesinc/pyadi-iio -Software Setup --------------- +#. Follow the installation steps provided in the `pyadi-iio README `_. -The system is accompanied by an open-source software stack and associated -collateral, enabling a complete experience from evaluation and prototyping all -the way to production firmware and applications development. + ### this might need changing once swiot is merged into main -The :dokuwiki:`Scopy ` PC application -provides system configuration and data visualization tools to enable easy system -evaluation from a PC connected to the AD-SWIOT1L-SL via the 10BASE-T1L -interface. +#. Checkout the `swiot branch `_: -The :git-no-OS:`AD-SWIOT1L-SL firmware ` is -based on Analog Devices’ open-source no-OS framework, which includes all the -tools required for embedded code development and debugging as well as libraries -enabling host-side connectivity for system configuration and data transfer over -the UART or the 10BASE-T1L interfaces. The firmware source code and related -documentation can be found on the Analog Devices GitHub at the link above. + .. code-block:: bash + + git checkout swiot +#. Install the pyadi-iio package: + + .. code-block:: bash + + pip install . + + +SWIOT device configuration overview +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This section provides a high-level overview of how the firmware manages +device configuration. Detailed field device usage information is presented in +the following sections. When powered, the SWIOT1L board operates in one of +two states, each identified by a distinct IIO context: + +- **Config**: All channels are in a high impedance state. Users can configure + channel functions and route each SWIOT1L channel to either the MAX14906 + or AD74413R device using the swiot virtual device. + + .. note:: + + When entering this state from the runtime mode, some of the device + configurations will reset. The configuration selected in this context + will help in generating the runtime IIO context. + +Open the IIO context by running iio_info with the appropriate URI: + +.. code:: bash + + iio_info -u ip:192.168.97.40 + +The iio context should look similar to this: + +.. code:: bash + + Library version: 0.24 (git tag: c4498c2) + Compiled with backends: local xml ip usb serial + IIO context created with network backend. + Backend version: 1.1 (git tag: 0000000) + Backend description string: 192.168.97.40 no-OS swiot-rebase-lwip-eda9f736d-modified + IIO context has 2 attributes: + ip,ip-addr: 192.168.97.40 + uri: ip:192.168.97.40 + IIO context has 2 devices: + iio:device0: swiot + 0 channels found: + 27 device-specific attributes found: + attr 0: reset ERROR: No such file or directory (2) + attr 1: serial_id value: 80a4-44044-1f003-2d8104ff-bf + attr 2: mode value: config + attr 3: mode_available value: config runtime + attr 4: identify ERROR: No such file or directory (2) + attr 5: ext_psu value: 1 + attr 6: signal_mse value: 32 + attr 7: ch0_enable value: 0 + attr 8: ch1_enable value: 0 + attr 9: ch2_enable value: 0 + attr 10: ch3_enable value: 0 + attr 11: ch0_function value: high_z + attr 12: ch1_function value: high_z + attr 13: ch2_function value: high_z + attr 14: ch3_function value: high_z + attr 15: ch0_device value: ad74413r + attr 16: ch1_device value: ad74413r + attr 17: ch2_device value: ad74413r + attr 18: ch3_device value: ad74413r + attr 19: ch0_function_available value: high_z voltage_out + current_out voltage_in current_in_ext current_in_loop + resistance digital_input digital_input_loop + current_in_ext_hart current_in_loop_hart + attr 20: ch1_function_available value: high_z voltage_out + current_out voltage_in current_in_ext current_in_loop + resistance digital_input digital_input_loop + current_in_ext_hart current_in_loop_hart + attr 21: ch2_function_available value: high_z voltage_out + current_out voltage_in current_in_ext current_in_loop + resistance digital_input digital_input_loop + current_in_ext_hart current_in_loop_hart + attr 22: ch3_function_available value: high_z voltage_out + current_out voltage_in current_in_ext current_in_loop + resistance digital_input digital_input_loop + current_in_ext_hart current_in_loop_hart + attr 23: ch0_device_available value: ad74413r max14906 + attr 24: ch1_device_available value: ad74413r max14906 + attr 25: ch2_device_available value: ad74413r max14906 + attr 26: ch3_device_available value: ad74413r max14906 + No trigger assigned to device + trigger0: sw_trig + 0 channels found: + No trigger on this device + +- **Runtime**: All channel functions are configured, and the devices are operational + and out of reset. In this state, the devices can sample or output signals, report + faults, and allow register read/write operations. Channel direction and functions + remain fixed during runtime mode, except for the AD74413R's diagnostic channels, + which can still be modified. + + +Field Device Configuration and Usage +---------------------------------------- + +This section details how the IIO interface may be used to configure +and sample data from the field devices. The system has the following +IIO devices: + +SWIOT Virtual Device +^^^^^^^^^^^^^^^^^^^^ + +Field devices must have their channels configured before being used in the runtime context. This is done through the swiot virtual IIO device, which is present in both the config and runtime IIO contexts. + +Device Attributes +""""""""""""""""" + +- **reset**: Write any value to reset the firmware. Cannot be read. +- **serial_id**: Unique ID specific to the microcontroller. Read-only. +- **mode**: Reflects the system's state (config or runtime). Can be written to change state. Possible values are in ``mode_available``. Writing the current state value is a no-op. Invalid values are ignored. +- **mode_available**: Valid mode values: ``config``, ``runtime``. +- **identify**: Write any value to blink LED2. Useful for identifying which board has a specific context (or IP) in a multi-board network. +- **ext_psu**: Mirrors the external power supply switch. A value of 1 does not guarantee power supply connection or 156W capability. Read-only. Possible values: + + - ``0``: Field devices powered only by LT8304 (via 24V terminal block) and/or LTC9111 (via SPoE) + - ``1``: MAX14906 powered directly by external power supply + +- **signal_mse**: Single Pair Ethernet signal quality indicator. Read-only. +- **chX_enable**: Channel-specific enable condition. X refers to the SWIOT1L terminal block channel number (0-based). When set to ``0``, the channel remains in high impedance state regardless of other attributes. Values: ``0`` or ``1``. +- **chX_function**: I/O function for a SWIOT1L terminal block channel. Specific to AD74413R or MAX14906 depending on ``chX_device``. Possible values in ``chX_function_available``. **Important**: Set ``chX_device`` first, as the value is validated when written. Otherwise ``-EINVAL (-22)`` is returned. +- **chX_function_available**: Available values for ``chX_function``. Read-only. +- **chX_device**: Field device controlling the terminal block channel. Possible values in ``chX_device_available``. +- **chX_device_available**: Available values for ``chX_device``: ``ad74413r``, ``max14906``. + +Configuration Example +""""""""""""""""""""" + +In the pyadi-iio example script, channel functions are configured using the ``channel_enable``, ``channel_config``, and ``channel_device`` lists: + +.. code-block:: python + + """ + Possible values: + - max14906 selected as device: input, output + - ad74413r selected as device: voltage_out, current_out, + voltage_in, current_in_ext, current_in_loop, + resistance, digital_input, digital_input_loop, + current_in_ext_hart, current_in_loop_hart + """ + channel_config = ["voltage_in", "current_in_ext", "current_out", "output"] + # Possible values: 0, 1 + channel_enable = [1, 1, 1, 1] + # Possible values: "ad74413r", "max14906" + channel_device = ["ad74413r", "ad74413r", "ad74413r", "max14906"] + +This configuration means: + +- **Channel 1**: Routed to AD74413R channel 1, measuring input voltage +- **Channel 2**: Routed to AD74413R channel 2, measuring input current +- **Channel 3**: Routed to AD74413R channel 3, measuring voltage from current-limited output +- **Channel 4**: Routed to MAX14906 channel 4, configured as digital output + +To ensure config context is selected: + +.. code-block:: python + + swiot.mode = "config" + +Configuration sequence using swiot attributes: + +.. code-block:: python + + swiot.ch0_device = channel_device[0] + swiot.ch0_function = channel_config[0] + swiot.ch0_enable = channel_enable[0] + swiot.ch1_device = channel_device[1] + swiot.ch1_function = channel_config[1] + swiot.ch1_enable = channel_enable[1] + swiot.ch2_device = channel_device[2] + swiot.ch2_function = channel_config[2] + swiot.ch2_enable = channel_enable[2] + swiot.ch3_device = channel_device[3] + swiot.ch3_function = channel_config[3] + swiot.ch3_enable = channel_enable[3] .. important:: - The system comes pre-programmed with a firmware that - works with the **Scopy** application, allowing complete system evaluation. + Set ``chX_device`` before ``chX_function``, otherwise an error will occur. + +The indexes in these lists correspond to the terminal block channel number (0-based). + +When channels are configured, the firmware automatically places the corresponding parallel channel in high impedance to avoid conflicts. + +Switching Contexts +"""""""""""""""""" + +To switch from config to runtime mode: + +.. code-block:: python + + swiot.mode = "runtime" + +After writing this attribute, the IIOD server restarts, causing the connection to drop and the IIO context to be destroyed. The new context must be recreated: + +.. code-block:: python + + ad74413r = adi.ad74413r(uri=dev_uri) + max14906 = adi.max14906(uri=dev_uri) + adt75 = adi.lm75(uri=dev_uri) + swiot = adi.swiot(uri=dev_uri) + +The runtime context also contains the field devices, which can be used to sample data. + +Controlling the MAX14906 +^^^^^^^^^^^^^^^^^^^^^^^^ + +Direct Register Access +"""""""""""""""""""""" + +Device registers can be read or written using the IIO direct register access interface: + +- **Reading**: ``value = max14906.reg_read(0x1)`` +- **Writing**: ``max14906.reg_write(0x1, 0xff)`` + +.. warning:: + + This method should be used with caution as it overwrites firmware settings. Updating an existing value requires a read→apply mask→write sequence. + +Using Channel Attributes +""""""""""""""""""""""""" + +The MAX14906 has the following IIO channels, corresponding to the 4 physical channels: + +**voltageX** (input or output): + +- **raw**: ``0`` or ``1``, representing low/high state. For outputs: + + .. code-block:: python + + max14906.channels["voltage3"].raw = 1 # or 0 + + Can be read in both input and output modes: + + .. code-block:: python + + state = max14906.channels["voltage3"].raw + +- **scale**: Constant value of ``1`` +- **offset**: Constant value of ``0`` +- **current_limit** (output only): Set from predefined values in ``current_limit_available``: + + .. code-block:: python + + max14906.channels["voltage3"].current_limit = 130 + +- **current_limit_available**: ``600``, ``130``, ``300``, ``1200`` (mA) +- **do_mode** (output only): Configure output driver: + + .. code-block:: python + + max14906.channels["voltage3"].do_mode = "High_side" + +- **do_mode_available**: ``High_side``, ``High_side_2x_inrush``, ``Push_pull_clamp``, ``Push_pull`` +- **IEC_type** (input only): Setup digital-IO input type +- **IEC_type_available**: ``Type_1_3``, ``Type_2`` + +.. note:: + + For comprehensive descriptions, refer to the MAX14906 datasheet. + +Controlling the AD74413R +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direct Register Access +"""""""""""""""""""""" + +Device registers can be read or written using the IIO direct register access interface: + +- **Reading**: ``value = ad74413r.reg_read(0x1)`` +- **Writing**: ``ad74413r.reg_write(0x1, 0xff)`` + +.. warning:: + + This method should be used with caution as it overwrites firmware settings. + +Channel Configurations +"""""""""""""""""""""" + +Each AD74413R channel can be configured with one of these functions: ``voltage_out``, ``current_out``, ``voltage_in``, ``current_in_ext``, ``current_in_loop``, ``resistance``, ``digital_input``, ``digital_input_loop``, ``current_in_ext_hart``, ``current_in_loop_hart``. + +1. Voltage Input +'''''''''''''''' + +Creates one IIO channel: + +**Input voltage:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-8191 (DAC code). Vout = (raw + offset) × scale (mV) + - R/W + - No + * - scale + - Constant: 1.342 mV/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes + +2. Current Output +''''''''''''''''' + +Creates two IIO channels: + +**Input voltage** (measures voltage output by DAC): + +Same attributes as Voltage Input configuration above. + +**Output current:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-8191 (DAC code). Iout = (raw + offset) × scale (mA) + - R/W + - No + * - scale + - Constant: 0.003051 mA/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - slew_en + - Enable slew rate control (uses slew_rate and slew_step) + - R/W + - No + * - slew_rate + - Configure DAC output slew rate + - R/W + - No + * - slew_rate_available + - Available slew_rate values + - R + - Yes + * - slew_step + - Configure DAC output slew step + - R/W + - No + * - slew_step_available + - Available slew_step values + - R + - Yes + +3. Voltage Output +''''''''''''''''' + +Creates two IIO channels: + +**Input current** (measures current output by DAC): + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-65535 (ADC code). I = (raw + offset) × scale (mA). Positive = sourced, negative = sinked + - R/W + - No + * - scale + - Constant: 0.000762951 mA/LSB + - R + - No + * - offset + - Constant: -32768 + - R + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes + +**Output voltage:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-8191 (DAC code). Vout = (raw + offset) × scale (mV) + - R/W + - No + * - scale + - Constant: 1.22070 mV/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - slew_en + - Enable slew rate control (uses slew_rate and slew_step) + - R/W + - No + * - slew_rate + - Configure DAC output slew rate + - R/W + - No + * - slew_rate_available + - Available slew_rate values + - R + - Yes + * - slew_step + - Configure DAC output slew step + - R/W + - No + * - slew_step_available + - Available slew_step values + - R + - Yes + +4. Current Input Externally Powered +'''''''''''''''''''''''''''''''''''' + +Creates one IIO channel: + +**Input current:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-65535 (ADC code). I = (raw + offset) × scale (mA) + - R/W + - No + * - scale + - Constant: 0.000381476 mA/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes + +5. Current Input Loop Powered +'''''''''''''''''''''''''''''' + +Creates two IIO channels: + +**Input current** (measures current sourced by AD74413R): + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-65535 (ADC code). I = (raw + offset) × scale (mA) + - R/W + - No + * - scale + - Constant: 0.000381476 mA/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes + +**Output current** (sets current limit sourced by AD74413R): + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-8191 (DAC code). Iout = (raw + offset) × scale (mA) + - R/W + - No + * - scale + - Constant: 0.003051 mA/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - slew_en + - Enable slew rate control (uses slew_rate and slew_step) + - R/W + - No + * - slew_rate + - Configure DAC output slew rate + - R/W + - No + * - slew_rate_available + - Available slew_rate values + - R + - Yes + * - slew_step + - Configure DAC output slew step + - R/W + - No + * - slew_step_available + - Available slew_step values + - R + - Yes + +6. Current Input Loop Powered with HART Compatibility +'''''''''''''''''''''''''''''''''''''''''''''''''''''' + +The channels and their attributes are the same as **Current Input Loop Powered** mode. + +7. Current Input Externally Powered with HART Compatibility +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +The channels and their attributes are the same as **Current Input Externally Powered** mode. + +8. Resistance +''''''''''''' + +Creates one IIO channel: + +**Resistance:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-65535 (raw ADC result register value) + - R/W + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes + +9. Digital Input +'''''''''''''''' + +Creates one IIO channel: + +**Voltage input:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 + + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0 or 1 (comparator output) + - R/W + - No + * - scale + - Constant: 1 + - R + - No + * - offset + - Constant: 0 + - R + - No + * - threshold + - Threshold value in millivolts for comparator + - R/W + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes + +10. Digital Input Loop Powered +''''''''''''''''''''''''''''''' + +Creates two IIO channels: + +**Voltage input:** + +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 - The firmware should be updated only to switch to a newer version or as part of - the software development process. + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0 or 1 (comparator output) + - R/W + - No + * - scale + - Constant: 1 + - R + - No + * - offset + - Constant: 0 + - R + - No + * - threshold + - Threshold value in millivolts for comparator + - R/W + - No + * - sampling_frequency + - Samples per second (divided by enabled channels) + - R/W + - No + * - sampling_frequency_available + - 4800, 1200 (no filter); 20, 10 (filtered) + - R + - Yes - **Scopy** will work only with the official - :git-no-OS:`AD-SWIOT1L-SL firmware releases ` +**Current output** (sets current limit sourced by AD74413R): -Updating the AD-SWIOT1L-SL Firmware -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. list-table:: + :header-rows: 1 + :widths: 20 40 15 15 -To update the board’s firmware, a new bootloader has to be flashed on the -MAX32625PICO. + * - Attribute + - Description + - Access + - Shared + * - raw + - Value 0-8191 (DAC code). Iout = (raw + offset) × scale (mA) + - R/W + - No + * - scale + - Constant: 0.003051 mA/LSB + - R + - No + * - offset + - Constant: 0 + - R + - No + * - slew_en + - Enable slew rate control (uses slew_rate and slew_step) + - R/W + - No + * - slew_rate + - Configure DAC output slew rate + - R/W + - No + * - slew_rate_available + - Available slew_rate values + - R + - Yes + * - slew_step + - Configure DAC output slew step + - R/W + - No + * - slew_step_available + - Available slew_step values + - R + - Yes -#. Download the firmware image: `MAX32625PICO firmware `__ -#. Set the MAX32625PICO in MAINTENANCE mode: - * Disconnect the MAX32625PICO from the PC and the AD-SWIOT1L-SL board. - * Plug the micro USB cable only in the MAX32625PICO. - * Keep the button on the MAX32625PICO pressed. - * Plug the micro USB cable into the PC. - * Once you see the MAINTENANCE drive being mounted, you may release the button. +Sampling Data from the AD74413R +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - .. figure:: picture2.jpg - :width: 300 px +Example: Sampling Buffered Data +"""""""""""""""""""""""""""""""" - MAX32625PICO Button +The following example demonstrates how to use pyadi-iio to sample buffered data from the AD74413R: -#. Drag and drop (to the MAINTENANCE drive) the firmware image you previously downloaded. -#. After a few seconds, the MAINTENANCE drive will disappear and will be replaced - by a drive named DAPLINK. Once this is done, the process is complete, and the - MAX32625PICO may be used to flash the firmware of the AD-SWIOT1L-SL board. +.. code-block:: python -Programming the AD-SWIOT1L-SL -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ad74413r.rx_enabled_channels = ["voltage0"] + ad74413r.sample_rate = 4800 + ad74413r.rx_buffer_size = 4800 + data = ad74413r.rx() -- Connect the MAX32625PICO to the PC using the micro USB cable. -- Connect the MAX32625PICO to the AD-SWIOT1L-SL board using the 10-pin ribbon cable. -- Connect the 24 V power supply to the AD-SWIOT1L-SL. Make sure the board is powered up for the next steps. +You can change the sampling channel to another input channel: -.. figure:: img_20230912_145550.jpg +.. code-block:: python - AD-SWIOT1L-SL Programming Setup + ad74413r.rx_enabled_channels = ["current0"] -* A DAPLINK drive should appear as mounted on your PC. -* Drag and drop the new firmware image into the DAPLINK drive. After a few seconds, the drive will be remounted. -* Check the DAPLINK directory and make sure there is no FAIL.TXT file. In case - there is, repeat the drag and drop step. Otherwise, you may disconnect the - MAX32625PICO from the AD-SWIOT1L-SL, since the firmware update is complete. +The channel must be configured appropriately in the SWIOT1L configuration. Samples are stored in the ``data`` array. diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_1.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_1.png new file mode 100644 index 00000000000..3d18f2e4b0e --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74d8359b14134af6f5acea90df59adf5e9f9f7086f5bc72fc1beae9890f404c1 +size 99565 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_2.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_2.png new file mode 100644 index 00000000000..aaee4ce209d --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4088ac97d3dcab5f74706840df9240a1bae593aeb4b741f2ff3c9190537d027 +size 38179 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_3.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_3.png new file mode 100644 index 00000000000..8f38219c5c7 --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0389c4c0a9d1fc90bcb7ddbaf19a844c496e6c16c4eb87ae5758cdedaa84681 +size 82182 diff --git a/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_4.png b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_4.png new file mode 100644 index 00000000000..5b2cc8227f7 --- /dev/null +++ b/docs/solutions/reference-designs/ad-swiot1l-sl/software-guide/linux_4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ab52c38cbd56229e09fee81eb419c2636c134b3142135160c620d4be898bb95 +size 87375 diff --git a/docs/solutions/reference-designs/ad-synchrona14-ebz/index.rst b/docs/solutions/reference-designs/ad-synchrona14-ebz/index.rst index 807bd6c00a9..a481ea3fadf 100644 --- a/docs/solutions/reference-designs/ad-synchrona14-ebz/index.rst +++ b/docs/solutions/reference-designs/ad-synchrona14-ebz/index.rst @@ -3,8 +3,7 @@ AD-SYNCHRONA14-EBZ ================== -Multichannel System Clocking Device -""""""""""""""""""""""""""""""""""" +Multichannel System Clocking Device. Overview -------- @@ -606,6 +605,6 @@ Design and Integration Files .. admonition:: Download - | :download:`Schematic AD-SYNCHRONA14-EBZ.pdf` - | :download:`Schematic ADD-ON Board.pdf` + | :download:`schematic ad-synchrona14-ebz.pdf` + | :download:`schematic add-on board.pdf` diff --git a/docs/solutions/reference-designs/ad-synchrona14-ebz/Schematic AD-SYNCHRONA14-EBZ.pdf b/docs/solutions/reference-designs/ad-synchrona14-ebz/schematic ad-synchrona14-ebz.pdf similarity index 100% rename from docs/solutions/reference-designs/ad-synchrona14-ebz/Schematic AD-SYNCHRONA14-EBZ.pdf rename to docs/solutions/reference-designs/ad-synchrona14-ebz/schematic ad-synchrona14-ebz.pdf diff --git a/docs/solutions/reference-designs/ad-synchrona14-ebz/Schematic ADD-ON Board.pdf b/docs/solutions/reference-designs/ad-synchrona14-ebz/schematic add-on board.pdf similarity index 100% rename from docs/solutions/reference-designs/ad-synchrona14-ebz/Schematic ADD-ON Board.pdf rename to docs/solutions/reference-designs/ad-synchrona14-ebz/schematic add-on board.pdf diff --git a/docs/solutions/reference-designs/ad4052-ardz/index.rst b/docs/solutions/reference-designs/ad4052-ardz/index.rst index 16238fb291d..9888d611c06 100644 --- a/docs/solutions/reference-designs/ad4052-ardz/index.rst +++ b/docs/solutions/reference-designs/ad4052-ardz/index.rst @@ -17,8 +17,7 @@ EVAL-AD4050/AD4052-ARDZ ======================= -Compact, Low Power, 12-Bit/16-Bit, 2 MSPS Easy Drive SAR ADCs -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Compact, Low Power, 12-Bit/16-Bit, 2 MSPS Easy Drive SAR ADCs. .. image:: eval-angle.png :align: right diff --git a/docs/solutions/reference-designs/ad4052-ardz/user-guide.rst b/docs/solutions/reference-designs/ad4052-ardz/user-guide.rst index 6510d247ab2..212333de56e 100644 --- a/docs/solutions/reference-designs/ad4052-ardz/user-guide.rst +++ b/docs/solutions/reference-designs/ad4052-ardz/user-guide.rst @@ -104,10 +104,10 @@ Linux These steps are done before the hardware setup, with the board powered off. For both CoraZ7S and DE10-Nano, prepare an SD Card with -:external+adi-kuiper-gen:doc:`Kuiper `. +:external+kuiper:doc:`Kuiper `. Then, patch the SD Card with the downloaded files, see -:external+adi-kuiper-gen:doc:`hardware-configuration` for more information. +:external+kuiper:doc:`hardware-configuration` for more information. Insert the flashed SD Card on the carrier powered off and follow the hardware setup steps. diff --git a/docs/solutions/reference-designs/ad4062-ardz/index.rst b/docs/solutions/reference-designs/ad4062-ardz/index.rst index 1db4c622525..3396c2d13bd 100644 --- a/docs/solutions/reference-designs/ad4062-ardz/index.rst +++ b/docs/solutions/reference-designs/ad4062-ardz/index.rst @@ -12,13 +12,14 @@ no-OS: - no-OS driver (ad405x) +.. .. custom-doc:: doc.yml + .. _eval-ad4062-ardz: EVAL-AD4060/AD4062-ARDZ ======================= -Compact, Low Power, 12-Bit/16-Bit, 2 MSPS Easy Drive SAR ADCs -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Compact, Low Power, 12-Bit/16-Bit, 2 MSPS Easy Drive SAR ADCs. .. image:: eval-angle.png :align: right diff --git a/docs/solutions/reference-designs/eval-ad9084/index.rst b/docs/solutions/reference-designs/ad9084_ebz/index.rst similarity index 96% rename from docs/solutions/reference-designs/eval-ad9084/index.rst rename to docs/solutions/reference-designs/ad9084_ebz/index.rst index fce7e5567f0..c84493448d5 100644 --- a/docs/solutions/reference-designs/eval-ad9084/index.rst +++ b/docs/solutions/reference-designs/ad9084_ebz/index.rst @@ -3,8 +3,7 @@ AD9084-FMCA-EBZ (Apollo) =============================================================================== -Apollo MxFE Quad, 16-Bit, 28GSPS RF DAC and Quad, 12-Bit, 20 GSPS RF ADC -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Apollo MxFE Quad, 16-Bit, 28GSPS RF DAC and Quad, 12-Bit, 20 GSPS RF ADC. .. image:: ../images/ad9084.png :align: left @@ -97,8 +96,8 @@ Table of Contents #. Use the board to better understand the :adi:`AD9084` - #. :external+adi-kuiper-gen:doc:`Configure a SD Card ` - #. :external+adi-kuiper-gen:doc:`Update the SD Card ` + #. :external+kuiper:doc:`Configure a SD Card ` + #. :external+kuiper:doc:`Update the SD Card ` #. :ref:`AD9084 (Apollo) Profile Generator ` #. :ref:`Running a new JESD mode on hardware ` diff --git a/docs/solutions/reference-designs/eval-ad9084/prerequisites.rst b/docs/solutions/reference-designs/ad9084_ebz/prerequisites.rst similarity index 100% rename from docs/solutions/reference-designs/eval-ad9084/prerequisites.rst rename to docs/solutions/reference-designs/ad9084_ebz/prerequisites.rst diff --git a/docs/solutions/reference-designs/eval-ad9084/quickstart/agilex.rst b/docs/solutions/reference-designs/ad9084_ebz/quickstart/agilex.rst similarity index 99% rename from docs/solutions/reference-designs/eval-ad9084/quickstart/agilex.rst rename to docs/solutions/reference-designs/ad9084_ebz/quickstart/agilex.rst index 2800f9fbbb4..b5e0a719957 100644 --- a/docs/solutions/reference-designs/eval-ad9084/quickstart/agilex.rst +++ b/docs/solutions/reference-designs/ad9084_ebz/quickstart/agilex.rst @@ -14,7 +14,7 @@ Required Hardware - Intel :intel:`HPS IO48 OOBE Daughter Card `. - :adi:`EVAL-AD9084` evaluation board. - SD Card of at least 16GB imaged with Kuiper Linux (see - :external+adi-kuiper-gen:doc:`Configure a SD Card `). + :external+kuiper:doc:`Configure a SD Card `). - 1x `Vita 57 FMC+ Extender `__. - USB-C cable. - Ethernet cable. diff --git a/docs/solutions/reference-designs/eval-ad9084/quickstart/index.rst b/docs/solutions/reference-designs/ad9084_ebz/quickstart/index.rst similarity index 100% rename from docs/solutions/reference-designs/eval-ad9084/quickstart/index.rst rename to docs/solutions/reference-designs/ad9084_ebz/quickstart/index.rst diff --git a/docs/solutions/reference-designs/eval-ad9084/quickstart/microblaze.rst b/docs/solutions/reference-designs/ad9084_ebz/quickstart/microblaze.rst similarity index 100% rename from docs/solutions/reference-designs/eval-ad9084/quickstart/microblaze.rst rename to docs/solutions/reference-designs/ad9084_ebz/quickstart/microblaze.rst diff --git a/docs/solutions/reference-designs/eval-ad9084/quickstart/new_usecase.rst b/docs/solutions/reference-designs/ad9084_ebz/quickstart/new_usecase.rst similarity index 100% rename from docs/solutions/reference-designs/eval-ad9084/quickstart/new_usecase.rst rename to docs/solutions/reference-designs/ad9084_ebz/quickstart/new_usecase.rst diff --git a/docs/solutions/reference-designs/eval-ad9084/quickstart/versal.rst b/docs/solutions/reference-designs/ad9084_ebz/quickstart/versal.rst similarity index 99% rename from docs/solutions/reference-designs/eval-ad9084/quickstart/versal.rst rename to docs/solutions/reference-designs/ad9084_ebz/quickstart/versal.rst index 1ed6ca8fda1..b4a46539b96 100644 --- a/docs/solutions/reference-designs/eval-ad9084/quickstart/versal.rst +++ b/docs/solutions/reference-designs/ad9084_ebz/quickstart/versal.rst @@ -15,7 +15,7 @@ Required Hardware - AMD Xilinx :xilinx:`VCK190` or :xilinx:`VPK180` board - :adi:`EVAL-AD9084` evaluation board - SD Card of at least 16GB imaged with Kuiper Linux (see - :external+adi-kuiper-gen:doc:`Configure a SD Card `) + :external+kuiper:doc:`Configure a SD Card `) - 2x `Vita 57 FMC+ Extender `__ (:xilinx:`VCK190` only) - USB Type-C cable - Ethernet cables diff --git a/docs/solutions/reference-designs/eval-ad9084/quickstart/versal/beam-board-settings.jpg b/docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/beam-board-settings.jpg similarity index 100% rename from docs/solutions/reference-designs/eval-ad9084/quickstart/versal/beam-board-settings.jpg rename to docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/beam-board-settings.jpg diff --git a/docs/solutions/reference-designs/eval-ad9084/quickstart/versal/beam-home.jpg b/docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/beam-home.jpg similarity index 100% rename from docs/solutions/reference-designs/eval-ad9084/quickstart/versal/beam-home.jpg rename to docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/beam-home.jpg diff --git a/docs/solutions/reference-designs/eval-ad9084/quickstart/versal/beam-set-vadj.jpg b/docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/beam-set-vadj.jpg similarity index 100% rename from docs/solutions/reference-designs/eval-ad9084/quickstart/versal/beam-set-vadj.jpg rename to docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/beam-set-vadj.jpg diff --git a/docs/solutions/reference-designs/eval-ad9084/quickstart/versal/vck190.jpg b/docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/vck190.jpg similarity index 100% rename from docs/solutions/reference-designs/eval-ad9084/quickstart/versal/vck190.jpg rename to docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/vck190.jpg diff --git a/docs/solutions/reference-designs/eval-ad9084/quickstart/versal/vck190_ad9084_ebz.jpg b/docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/vck190_ad9084_ebz.jpg similarity index 100% rename from docs/solutions/reference-designs/eval-ad9084/quickstart/versal/vck190_ad9084_ebz.jpg rename to docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/vck190_ad9084_ebz.jpg diff --git a/docs/solutions/reference-designs/eval-ad9084/quickstart/versal/vck190_sw1.jpg b/docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/vck190_sw1.jpg similarity index 100% rename from docs/solutions/reference-designs/eval-ad9084/quickstart/versal/vck190_sw1.jpg rename to docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/vck190_sw1.jpg diff --git a/docs/solutions/reference-designs/eval-ad9084/quickstart/versal/vck190_sw11.jpg b/docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/vck190_sw11.jpg similarity index 100% rename from docs/solutions/reference-designs/eval-ad9084/quickstart/versal/vck190_sw11.jpg rename to docs/solutions/reference-designs/ad9084_ebz/quickstart/versal/vck190_sw11.jpg diff --git a/docs/solutions/reference-designs/eval-ad9084/user-guide.rst b/docs/solutions/reference-designs/ad9084_ebz/user-guide.rst similarity index 100% rename from docs/solutions/reference-designs/eval-ad9084/user-guide.rst rename to docs/solutions/reference-designs/ad9084_ebz/user-guide.rst diff --git a/docs/solutions/reference-designs/adalp2000/1n3064-284013.pdf b/docs/solutions/reference-designs/adalp2000/1n3064-284013.pdf new file mode 100644 index 00000000000..05efe20f631 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/1n3064-284013.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/1n4001.jpg b/docs/solutions/reference-designs/adalp2000/1n4001.jpg new file mode 100644 index 00000000000..6d6501998a3 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/1n4001.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2497f89eb5e06caf66584856e5a4a8c45f60c76cc2522a28613d19c3ffe3824c +size 11387 diff --git a/docs/solutions/reference-designs/adalp2000/1n4001.pdf b/docs/solutions/reference-designs/adalp2000/1n4001.pdf new file mode 100644 index 00000000000..1d5d84f3826 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/1n4001.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/1n4728a.pdf b/docs/solutions/reference-designs/adalp2000/1n4728a.pdf new file mode 100644 index 00000000000..17553a3ca31 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/1n4728a.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/1n914.jpg b/docs/solutions/reference-designs/adalp2000/1n914.jpg new file mode 100644 index 00000000000..dd7ea405943 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/1n914.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d027e49f8db391d662747f48d3a4cbf3b530c94723d5cd2103cafbbf07ea6c0 +size 11650 diff --git a/docs/solutions/reference-designs/adalp2000/1n914.pdf b/docs/solutions/reference-designs/adalp2000/1n914.pdf new file mode 100644 index 00000000000..4beea3c2fcd Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/1n914.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/20k.jpg b/docs/solutions/reference-designs/adalp2000/20k.jpg new file mode 100644 index 00000000000..2a694b83160 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/20k.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c117281852165ab31d323c86f430b45fee05cfeb956247c52167dd7a1d50f607 +size 11655 diff --git a/docs/solutions/reference-designs/adalp2000/2287891.pdf b/docs/solutions/reference-designs/adalp2000/2287891.pdf new file mode 100644 index 00000000000..36d5dcba9a0 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/2287891.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/3386t-1-503.pdf b/docs/solutions/reference-designs/adalp2000/3386t-1-503.pdf new file mode 100644 index 00000000000..043fdbceb09 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/3386t-1-503.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/ad2210.jpg b/docs/solutions/reference-designs/adalp2000/ad2210.jpg new file mode 100644 index 00000000000..4cac2dba860 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ad2210.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4278373161acc84b02c783890f45f2d1154e20b25e390f1df5858e72dd8c9691 +size 3418 diff --git a/docs/solutions/reference-designs/adalp2000/ad22151.jpg b/docs/solutions/reference-designs/adalp2000/ad22151.jpg new file mode 100644 index 00000000000..8e74dea203a --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ad22151.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e06c58c86874c70894da2b291df0f9c641fd053c54290fc7427b70c4ca27d7b +size 58277 diff --git a/docs/solutions/reference-designs/adalp2000/ad5626.jpg b/docs/solutions/reference-designs/adalp2000/ad5626.jpg new file mode 100644 index 00000000000..c4ca3e3eb70 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ad5626.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc53230352dbb74f1eb5f905ba16f97ace5236613dce86a7d06893e74f937385 +size 53668 diff --git a/docs/solutions/reference-designs/adalp2000/ad584.jpg b/docs/solutions/reference-designs/adalp2000/ad584.jpg new file mode 100644 index 00000000000..43a8de0709f --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ad584.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0eedc2a454788c6735ffe3774b30089cc1bec501d34b1bc106d38a65d9eba6fd +size 3720 diff --git a/docs/solutions/reference-designs/adalp2000/ad592.jpg b/docs/solutions/reference-designs/adalp2000/ad592.jpg new file mode 100644 index 00000000000..325e8d5f4dd --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ad592.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9fe3d264d05b31aa856569d38c3c38a25e82386a9bebbf293bdcd7b2abfd50b +size 3543 diff --git a/docs/solutions/reference-designs/adalp2000/ad654.jpg b/docs/solutions/reference-designs/adalp2000/ad654.jpg new file mode 100644 index 00000000000..027d5a174d0 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ad654.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:758903cbe7eb497b23d3e4a939090cbe7c17372e1f6312518bfc17af7d10fbb0 +size 3604 diff --git a/docs/solutions/reference-designs/adalp2000/ad7920.jpg b/docs/solutions/reference-designs/adalp2000/ad7920.jpg new file mode 100644 index 00000000000..925d0ca147a --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ad7920.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d551d28a394042728c1dd197aeb3b51eaf939ff71fb9d4aea05d897ea41708a6 +size 56861 diff --git a/docs/solutions/reference-designs/adalp2000/ad7920_pinout_error.png b/docs/solutions/reference-designs/adalp2000/ad7920_pinout_error.png new file mode 100644 index 00000000000..4b1d3495972 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ad7920_pinout_error.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e14e0ad3c0114845518d99e4194683da7cc6800b8f70124011aaac7c856c1b1b +size 283439 diff --git a/docs/solutions/reference-designs/adalp2000/ad8210.jpg b/docs/solutions/reference-designs/adalp2000/ad8210.jpg new file mode 100644 index 00000000000..6bc0fa63035 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ad8210.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdcfe9f64cc5a43bdd27381ccbc0655ec860ad82f720d146b787580a0fa788d1 +size 59320 diff --git a/docs/solutions/reference-designs/adalp2000/ad8226.jpg b/docs/solutions/reference-designs/adalp2000/ad8226.jpg new file mode 100644 index 00000000000..7abb1661ec1 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ad8226.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc1ac141101d6c39546237a4546ccef8444ec3d6ec03b76e6cd86a696bd99ad3 +size 56784 diff --git a/docs/solutions/reference-designs/adalp2000/ad8542.jpg b/docs/solutions/reference-designs/adalp2000/ad8542.jpg new file mode 100644 index 00000000000..1ee50158d44 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ad8542.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1561ed41f3614a026d4b118fff26baf835e46f1e19b43caf87f61255b2421c3a +size 59033 diff --git a/docs/solutions/reference-designs/adalp2000/ad8561.jpg b/docs/solutions/reference-designs/adalp2000/ad8561.jpg new file mode 100644 index 00000000000..939a8afce60 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ad8561.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b6497ec7fac776b0e666992092363de9c8cd07050edc86efd76592c2692a08f +size 3798 diff --git a/docs/solutions/reference-designs/adalp2000/adp3300.jpg b/docs/solutions/reference-designs/adalp2000/adp3300.jpg new file mode 100644 index 00000000000..58264bffc1e --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/adp3300.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a2fb522045046ba08cd3a5b6ca29c3bff091d6d855f614039e854f80de83315 +size 54230 diff --git a/docs/solutions/reference-designs/adalp2000/adtl082.jpg b/docs/solutions/reference-designs/adalp2000/adtl082.jpg new file mode 100644 index 00000000000..efaef68bfc0 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/adtl082.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da9e5700bf27cbd3e5399860161372bad0d5e124440f8906dffb9efaae6c82c1 +size 58606 diff --git a/docs/solutions/reference-designs/adalp2000/adxl327.jpg b/docs/solutions/reference-designs/adalp2000/adxl327.jpg new file mode 100644 index 00000000000..808682c59ba --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/adxl327.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6d5626a53b94b9b512499ae608ce664d6987efbb0f405da8289f0e2b1bc1110 +size 53148 diff --git a/docs/solutions/reference-designs/adalp2000/bb_small.png b/docs/solutions/reference-designs/adalp2000/bb_small.png new file mode 100644 index 00000000000..23962e61051 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/bb_small.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f8b54c06a921064e2a761f5e5d82d9f2aa28dd6c2158aa37248e318e0d181ec +size 180955 diff --git a/docs/solutions/reference-designs/adalp2000/c273n.png b/docs/solutions/reference-designs/adalp2000/c273n.png new file mode 100644 index 00000000000..4401807f486 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/c273n.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0560509b26c957ad7159acb71d5883b708e6e5884c3229e561e14e6bd78da24e +size 144267 diff --git a/docs/solutions/reference-designs/adalp2000/caps.jpg b/docs/solutions/reference-designs/adalp2000/caps.jpg new file mode 100644 index 00000000000..48974de10f1 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/caps.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05d8ecd6f829c4a807a7815306a97843c61ae4f2280668c18c7c750eb1bcf6cb +size 67553 diff --git a/docs/solutions/reference-designs/adalp2000/hcm9765-p11-453.pdf b/docs/solutions/reference-designs/adalp2000/hcm9765-p11-453.pdf new file mode 100644 index 00000000000..af875a1dcdc Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/hcm9765-p11-453.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/hexa-path.pdf b/docs/solutions/reference-designs/adalp2000/hexa-path.pdf new file mode 100644 index 00000000000..79ce34c60e4 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/hexa-path.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/hph1-0190.jpg b/docs/solutions/reference-designs/adalp2000/hph1-0190.jpg new file mode 100644 index 00000000000..0b610da97c3 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/hph1-0190.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:346539791b3acbc3d1055be66f9ca5371b12351f7e6dc085baed36deb9d30eb4 +size 65370 diff --git a/docs/solutions/reference-designs/adalp2000/hph1-1400.jpg b/docs/solutions/reference-designs/adalp2000/hph1-1400.jpg new file mode 100644 index 00000000000..312d52f1194 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/hph1-1400.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2992e4b6e89bc37a9e45490c9fd7cc70790c7ecb081cc605130b3886dd5cea3 +size 67476 diff --git a/docs/solutions/reference-designs/adalp2000/index.rst b/docs/solutions/reference-designs/adalp2000/index.rst new file mode 100644 index 00000000000..c6180883c7c --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/index.rst @@ -0,0 +1,436 @@ +.. _adalp2000: + +ADALP2000 +========= + +ADALP2000 Analog Parts Kit. + +.. figure:: kit_contents.jpg + :align: center + +The :adi:`ADALP2000` Parts Kit contains a large selection of components perfect +for creating a wide variety of useful circuits and devices. Featuring a variety +of components from Analog Devices, the kit includes transistors, resistors, +capacitors, diodes, sensors, and variety of useful ICs including op-amps, +converters, and regulators. + +We are on Rev B of the ADALP2000 parts kit, and its BIGGER and more +COMPREHENSIVE than ever. Below is a complete rundown of the components +that can be found within the kit. + +A :adi:`complete list ` +and description of components is listed below. + +.. warning:: + + It is possible that some inductors included in the ADALP2000 parts kit + may have sustained some cosmetic impairments during shipping and + handling. These inductors are 100% functional, and while the cosmetic + issues does not *look* nice, it does not affect the electrical + performance, and all devices meet their datasheet specifications. + +.. warning:: + + Note that the pinout of some of the breakout boards is mirrored. This + was done to maintain a 300-mil row spacing, maximizing available + breadboard connection points. Double-check all pinouts before building + your circuit. + + .. figure:: ad7920_pinout_error.png + :width: 250 px + +Kit Contents +~~~~~~~~~~~~ + ++--------------------------+-------------+----------------+--------------------------+ +| Picture | Part Number | Description | Link | ++==========================+=============+================+==========================+ +| .. figure:: ad22151.jpg | AD22151 | Magnetic Field | :adi:`AD22151 ` | +| :width: 250 px | | Sensor | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ad5626.jpg | AD5626 | 12-Bit Digital | :adi:`AD5626 ` | +| :width: 250 px | | to Analog | | +| | | Converter | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ad7920.jpg | AD7920 | 12-Bit Analog | :adi:`AD7920 ` | +| :width: 250 px | | to Digital | | +| | | Converter | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ad8210.jpg | AD8210 | Current Shunt | :adi:`AD8210 ` | +| :width: 250 px | | Monitor | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ad8226.jpg | AD8226 | Instrumentation| :adi:`AD8226 ` | +| :width: 250 px | | Amplifier | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ad8542.jpg | AD8542 | CMOS Rail to | :adi:`AD8542 ` | +| :width: 250 px | | Rail Op Amp | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: adp3300.jpg | ADP3300 | 3.3V, 50mA | :adi:`ADP3300 ` | +| :width: 250 px | | Linear | | +| | | Regulator(LDO) | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: adtl082.jpg | ADTL082 | JFET Op-Amp | :adi:`ADTL082 ` | +| :width: 250 px | | | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: adxl327.jpg | ADXL327 | 3-Axis Low-G | :adi:`ADXL327 ` | +| :width: 250 px | | Accelerometer | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: lt3092.jpg | LT3092 | Programmable | :adi:`LT3092 ` | +| :width: 250 px | | Current Source | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ltc1541.jpg | LTC1541 | Micropower AM\ | :adi:`LTC1541 ` | +| :width: 250 px | | P, Comparator, | | +| | | & Reference | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ltc6992.jpg | LTC6992-1 | Voltage-\ | :adi:`LTC6992-1 | +| :width: 250 px | | Controlled | ` | +| | | Pulse Width | | +| | | Modulator | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ltm8067.jpg | LTM8067 | Isolated DC-DC | :adi:`LTM8067 ` | +| :width: 250 px | | Converter | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: hph1-0190.jpg| HPH1-0190 | Hexa-Path | :download:`Datasheet | +| :width: 250 px | | Transformer | ` | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: hph1-1400.jpg| HPH1-1400 | Hexa-Path | :download:`Datasheet | +| :width: 250 px | | Transformer | ` | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: trrs_mic.jpg | SJ-43515TS-\| TRRS | :download:`Datasheet | +| :width: 250 px | SMT-TR | Microphone In | ` | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: micro_usb.jpg| ZX62D-B-5PA\| Micro USB | | +| :width: 250 px | 8(30) | Connector | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ad584.jpg | AD584 | Programmable | :adi:`AD584 ` | +| :width: 250 px | | Voltage | | +| | | Reference | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ad592.jpg | AD592 | Current Temper\| :adi:`AD592 ` | +| :width: 250 px | | ature Sensor | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ad654.jpg | AD654 | Voltage to | :adi:`AD654 ` | +| :width: 250 px | | Frequency | | +| | | Converter | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ad2210.jpg | AD22100 | Voltage Temper\| :adi:`AD22100 ` | +| :width: 250 px | | ature Sensor | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ad8561.jpg | AD8561 | Comparator | :adi:`AD8561 ` | +| :width: 250 px | | | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: lt3080.png | LT3080 | Adjustable | :adi:`LT3080 ` | +| :width: 250 px | | 1.1A LDO | | +| | | | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ltc1043.png | LTC1043 | Precision Swit\| :adi:`LTC1043 ` | +| :width: 250 px | | ch-CAP Block | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ltc1054.png | LTC1054 | Switched-Capac\| :adi:`LTC1054 ` | +| :width: 250 px | | itor Regulator | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: ltc1485.png | LTC1485 | Differential B\| :adi:`LTC1485 ` | +| :width: 250 px | | us Transceiver | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: op27.jpg | OP27 | Low Noise, Pre\| :adi:`OP27 ` | +| :width: 250 px | | cision Op Amp | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: op37.jpg | OP37 | Precision Op | :adi:`OP37 ` | +| :width: 250 px | | Amp | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: op97.png | OP97 | Low Noise, Pre\| :adi:`OP97 ` | +| :width: 250 px | | cision Op Amp | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: op482.jpg | OP482 | High Speed | :adi:`OP482 ` | +| :width: 250 px | | JFET Op Amp | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: op484.jpg | OP484 | Precision Rail | :adi:`OP484 ` | +| :width: 250 px | | to Rail Op Amp | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: tmp01.jpg | TMP01 | Temperature | :adi:`TMP01 ` | +| :width: 250 px | | Controller | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: sn74hc04n.png| SN74HC04N | Hex Inverter | :download:`Datasheet | +| :width: 250 px | | | ` | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: sn74hc08n.png| SN74HC08N | Quad AND Gate | :download:`Datasheet | +| :width: 250 px | | | ` | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: sn74hc32n.png| SN74HC32N | Quad OR Gate | :download:`Datasheet | +| :width: 250 px | | | ` | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: c273n.png | SN74HC273N | Octal D | :download:`Datasheet | +| :width: 250 px | | Flip-Flop | ` | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: bb_small.png | solderless | solderless | | +| :width: 250 px | Breadboard | Breadboard | | +| | | | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: j_wires.png | Jumper | Male to Male | | +| :width: 250 px | Wires | Jumper Wires | | +| | | | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: screwd.png | Screwdriver | Flathead | | +| :width: 250 px | | Screwdriver | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: mic.png | HCM9765-P11\| Microphone | :download:`Datasheet | +| :width: 250 px | -453 | | ` | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: speaker_f.png| Speaker | 8 Ω Speaker | | +| :width: 250 px | | | | +| | | | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: therm.jpg | B57164K103J | 10 kΩ Thermist\| :download:`Datasheet | +| :width: 250 px | | or 5mm lead | ` | +| | | coated disk | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: power-r.jpg | SQP10AJB-6R2| 6.2 Ω 10W Power| :download:`Datasheet | +| :width: 250 px | | Resistor Axial | ` | +| | | Cement Link | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: pots.png | * 3386C-1-5\| * Single Turn | :download:`Datasheet | +| :width: 250 px | 02LF | 5 kΩ Poten\ | <3386t-1-503.pdf>` | +| | | tiometer | | +| | * 3386C-1-1\| | | +| | 03LF | * Single Turn | | +| | | 10 kΩ Poten\ | | +| | * 3386C-1-5\| tiometer | | +| | 03LF | | | +| | | * Single Turn | | +| | | 50 kΩ Poten\ | | +| | | tiometer | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: transist.jpg | 2N3904 | NPN General Pu\| `Datasheet `__ | +| | | Marking: 2N3904| | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: transist.jpg | 2N3906 | PNP General Pu\| `Datasheet `__ | +| | | Marking: 2N3906| | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: irf510.jpg | IRF510 | N-Channel MOSF\| :download:`Datasheet | +| :width: 250 px | | ET 100V TO-220 | ` | +| | | Link Marking: | | +| | | IRF510 | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: tip31.jpg | TIP31CFS | NPN Epitaxial | :download:`Datasheet | +| :width: 250 px | | Transistor | ` | +| | | TO-220 Link | | +| | | Marking: TIP31 | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: tip32.jpg | TIP32CFS | PNP Epitaxial | :download:`Datasheet | +| :width: 250 px | | Transistor | ` | +| | | TO-220 Link | | +| | | Marking: TIP32 | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: zvn2110a.jpg | ZVN2110A | N-Channel Enha\| :download:`Datasheet | +| :width: 250 px | | ncement FET | ` | +| | | TO-92 Link | | +| | | Marking: ZVN211| | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: zvn3310.jpg | ZVN3310 | N-Channel Enha\| :download:`Datasheet | +| :width: 250 px | | ncement Transi\| ` | +| | | stor TO-92 Link| | +| | | Marking: ZVN211| | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: zvp2110a.jpg | ZVP2110A | P-Channel Enha\| :download:`Datasheet | +| :width: 250 px | | ncement FET | ` | +| | | TO-92 Link | | +| | | Marking: ZVP211| | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: leds.jpg | various LEDs| T-1 3/4 Link | | +| :width: 250 px | (red, yellow| | | +| | , Green) | | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: qed-123.jpg | QED-123 | Infrared LED | :download:`Datasheet | +| :width: 250 px | | T-1 3/4 | ` | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: qsd123.jpg | QSD123 | Infrared Photo | :download:`Datasheet | +| :width: 250 px | | Transistor T-1 | <2287891.pdf>` | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: 1n914.jpg | 1N3064 | Small Signal D\| :download:`Datasheet | +| :width: 250 px | | iode DO-35 Link| <1n3064-284013.pdf>` | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: 1n4001.jpg | 1N4001 | 50V General | :download:`Datasheet | +| :width: 250 px | | Purpose Rectif\| <1n4001.pdf>` | +| | | ier DO-204 Link| | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: 1n914.jpg | 1N4735 | 6.2V (or 3.6V) | :download:`Datasheet | +| :width: 250 px | (or 1N4729) | Zener Diode | <1n4728a.pdf>` | +| | | DO-41 Link | | ++--------------------------+-------------+----------------+--------------------------+ +| .. note:: | +| Note that the diodes can be difficult to identify. The note below has | +| a circuit that can be used to identify the Zener diode and determine whether | +| it is the 3.6V or 6.2V model. | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: 1n914.jpg | 1N914 | Small Signal | :download:`Datasheet | +| :width: 250 px | | Diode DO-35 | <1n914.pdf>` | +| | | Link | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: qsc114.jpg | OP999 | photodiode | :download:`Datasheet | +| :width: 250 px | | T-1¾ | ` | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: inductors.png| * RFB0807-1\| * 1uH Inductor | :download:`Datasheet | +| :width: 250 px | R0L | 5mm radial | ` | +| | | Link | | +| | * RFB0807-1\| | | +| | 00L | * 10uH Inductor| | +| | | 5mm radial | | +| | * RFB0807-1\| Link | | +| | 01L | | | +| | | * 100uH Induct\| | +| | * RFB0807-1\| or 5mm radial| | +| | 02L | Link | | +| | | | | +| | * RFB0807-1\| * 1mH Inductor | | +| | 03L | 5mm radial | | +| | | Link | | +| | | | | +| | | * 10mH Inductor| | +| | | 5mm radial | | +| | | Link | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: 20k.jpg | | * 1.1 Ω 1/8W a\| `Resistors Link `__ | +| | | | | +| | | * 47 Ω 1/8W ax\| (including color code) | +| | | ial Resistor | Axial Carbon Comp. | +| | | | | +| | | * 68 Ω 1/8W ax\| | +| | | ial Resistor | | +| | | | | +| | | * 100 Ω 1/8W a\| | +| | | xial Resistor| | +| | | | | +| | | * 470 Ω 1/8W a\| | +| | | xial Resistor| | +| | | | | +| | | * 1 kΩ 1/8W ax\| | +| | | ial Resistor | | +| | | | | +| | | * 1.5 kΩ 1/8W | | +| | | axial Resis\ | | +| | | tor | | +| | | | | +| | | * 2.2 kΩ 1/8W | | +| | | axial Resis\ | | +| | | tor | | +| | | | | +| | | * 4.7 kΩ 1/8W | | +| | | axial Resis\ | | +| | | tor | | +| | | | | +| | | * 6.8 kΩ 1/8W | | +| | | axial Resis\ | | +| | | tor | | +| | | | | +| | | * 10 kΩ 1/8W a\| | +| | | xial Resistor| | +| | | | | +| | | * 20 kΩ 1/8W a\| | +| | | xial Resistor| | +| | | | | +| | | * 47 kΩ 1/8W a\| | +| | | xial Resistor| | +| | | | | +| | | * 68 kΩ 1/8W a\| | +| | | xial Resistor| | +| | | | | +| | | * 100 kΩ 1/8W | | +| | | axial Resis\ | | +| | | tor | | +| | | | | +| | | * 200 kΩ 1/8W | | +| | | axial Resis\ | | +| | | tor | | +| | | | | +| | | * 470 kΩ 1/8W | | +| | | axial Resis\ | | +| | | tor | | +| | | | | +| | | * 1 MΩ 1/8W ax\| | +| | | ial Resistor | | +| | | | | +| | | * 5 MΩ 1/8W ax\| | +| | | ial Resistor | | ++--------------------------+-------------+----------------+--------------------------+ +| .. figure:: caps.jpg | | * 39 pF Ceramic| * Link Marking: 39 | +| :width: 250 px | | Capacitor | | +| | | Disc | * Link Marking: 101 | +| | | | | +| | | * 100 pF Ceram\| * Link Marking: 102 | +| | | ic Capacitor | | +| | | Disc | * Link Marking: 472 | +| | | | | +| | | * 0.001 μF Cer\| * Link Marking: 103 | +| | | amic Capacit\| | +| | | or Disc | * Link Marking: 473 | +| | | | | +| | | * 0.0047 μF Ce\| * Link Marking: 104 | +| | | ramic Capaci\| | +| | | tor Disc | * Link Marking: 1 μF | +| | | | | +| | | * 0.01 μF Cera\| * Link Marking: 4.7 μF | +| | | mic Capacitor| | +| | | Disc | * Link Marking: 10 μF | +| | | | | +| | | * 0.047 μF Cer\| * Link Marking: 22 μF | +| | | amic Capacit\| | +| | | or Disc | * Link Marking: 47 μF | +| | | | | +| | | * 0.1 μF Ceram\| * Link Marking: 220 μF | +| | | ic Capacitor | | +| | | Disc | | +| | | | | +| | | * 1 μF Ceramic | | +| | | Capacitor | | +| | | Disc | | +| | | | | +| | | * 4.7 μF Ceram\| | +| | | ic Capacitor | | +| | | Disc | | +| | | | | +| | | * 10 μF Ceramic| | +| | | Capacitor | | +| | | Disc | | +| | | | | +| | | * 22 μF Ceramic| | +| | | Capacitor | | +| | | Disc | | +| | | | | +| | | * 47 μF Ceramic| | +| | | Capacitor | | +| | | Disc | | +| | | | | +| | | * 220 μF Ceram\| | +| | | ic Capacitor | | +| | | Disc | | ++--------------------------+-------------+----------------+--------------------------+ + + +.. note:: + + Set V-/V+ to -5V/+5V (or use a bench-top supply set to 10V.) + The Zener diode will read ~6.2V (or ~3.6V) from 1- to 1+, a + silicon or Schottky diode will read 10V. + + .. figure:: zenert.png + :width: 250 px + +Depreciated items +^^^^^^^^^^^^^^^^^ + +- SSM2220 PNP Matched Transistors BOB +- SSM2212 NPN Matched Transistors BOB +- ADMP504 MEMS Ultralow Noise Microphone BOB +- 605-00004 piezo vibration sensor +- GT-0950RP3 Buzzer/Speaker 5mm radial +- CD4007 +- PDV-P9203 5-20kΩ Photocell +- QSC114 Infrared Transistor diff --git a/docs/solutions/reference-designs/adalp2000/inductors.png b/docs/solutions/reference-designs/adalp2000/inductors.png new file mode 100644 index 00000000000..b176ed46700 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/inductors.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31cdbe54f5bdf75bc6738b7741ef429307e93615d04a2d90c1225156900b6305 +size 926757 diff --git a/docs/solutions/reference-designs/adalp2000/irf510.jpg b/docs/solutions/reference-designs/adalp2000/irf510.jpg new file mode 100644 index 00000000000..aa1391e6492 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/irf510.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d9fc658f18be4dbeb4745a3a1a914cfefe12b16e5df630a4377d993e93c1b15 +size 3699 diff --git a/docs/solutions/reference-designs/adalp2000/irf510.pdf b/docs/solutions/reference-designs/adalp2000/irf510.pdf new file mode 100644 index 00000000000..fe0fb8c6abb Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/irf510.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/j_wires.png b/docs/solutions/reference-designs/adalp2000/j_wires.png new file mode 100644 index 00000000000..6910a059702 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/j_wires.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cbe30c56b6318ce7d31506c414345167eed9eaef8d64227bb092fe80274f975 +size 945320 diff --git a/docs/solutions/reference-designs/adalp2000/k164-1317145.pdf b/docs/solutions/reference-designs/adalp2000/k164-1317145.pdf new file mode 100644 index 00000000000..32bdeac9824 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/k164-1317145.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/kit_contents.jpg b/docs/solutions/reference-designs/adalp2000/kit_contents.jpg new file mode 100644 index 00000000000..ddc3f631836 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/kit_contents.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d0e160ec4d8503612e7c279caad0c9e50fd2fecaec81879fd2c3f80c8ee611c +size 85061 diff --git a/docs/solutions/reference-designs/adalp2000/leds.jpg b/docs/solutions/reference-designs/adalp2000/leds.jpg new file mode 100644 index 00000000000..8a211d9e9dc --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/leds.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0d4e5a18fa4b34eea770c26908231175a915369de35add39c5ab11eb685b544 +size 4125 diff --git a/docs/solutions/reference-designs/adalp2000/lt3080.png b/docs/solutions/reference-designs/adalp2000/lt3080.png new file mode 100644 index 00000000000..3b9e30a49ff --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/lt3080.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34b6b85ef04f46e6d6c940914fea352de8676f4d91b6a114bb8cdd33cdb6ee5c +size 181956 diff --git a/docs/solutions/reference-designs/adalp2000/lt3092.jpg b/docs/solutions/reference-designs/adalp2000/lt3092.jpg new file mode 100644 index 00000000000..1f556259961 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/lt3092.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa0519ed5ea1c7f0cfc4129d1aacc8b65d72104fc345aefd44a46d749a17d444 +size 49471 diff --git a/docs/solutions/reference-designs/adalp2000/ltc1043.png b/docs/solutions/reference-designs/adalp2000/ltc1043.png new file mode 100644 index 00000000000..804d2bda856 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ltc1043.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b94078ee928e6a964333e01cd1eba5eee27666b0fcb6b878ee6f3177042551bf +size 125827 diff --git a/docs/solutions/reference-designs/adalp2000/ltc1054.png b/docs/solutions/reference-designs/adalp2000/ltc1054.png new file mode 100644 index 00000000000..7c3b3cd7ce2 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ltc1054.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7b5e47002bbd413c14b983b87215d6a8e5806031f12bd611dbc999043f0124d +size 81404 diff --git a/docs/solutions/reference-designs/adalp2000/ltc1485.png b/docs/solutions/reference-designs/adalp2000/ltc1485.png new file mode 100644 index 00000000000..116b0602a5e --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ltc1485.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d05c00cc80e6944a03da607deaa72ef81271ce21dd667c6b9c19fe708c6b48b +size 76458 diff --git a/docs/solutions/reference-designs/adalp2000/ltc1541.jpg b/docs/solutions/reference-designs/adalp2000/ltc1541.jpg new file mode 100644 index 00000000000..46d92094c07 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ltc1541.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bda2902bd6fdb0e27efdc3ea5b3bd16b073792fb0c07552f019801c89b7847ba +size 55125 diff --git a/docs/solutions/reference-designs/adalp2000/ltc6992.jpg b/docs/solutions/reference-designs/adalp2000/ltc6992.jpg new file mode 100644 index 00000000000..08acf5e8af6 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ltc6992.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc9882e5d92b9e6b55248b4b9315eeded6bc663a34a9289ccf980058d4c080f0 +size 52275 diff --git a/docs/solutions/reference-designs/adalp2000/ltm8067.jpg b/docs/solutions/reference-designs/adalp2000/ltm8067.jpg new file mode 100644 index 00000000000..cc8012edef8 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/ltm8067.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1773f3281b35bd59ee85e4eb61ab506466b4b018779c3a92e09e3ecd9a536532 +size 61879 diff --git a/docs/solutions/reference-designs/adalp2000/mic.png b/docs/solutions/reference-designs/adalp2000/mic.png new file mode 100644 index 00000000000..8d96e1d6358 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/mic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b027236b5f1b4e38e38deada9643ba7dba26b99110ed736854fe01e0b54441e1 +size 168012 diff --git a/docs/solutions/reference-designs/adalp2000/micro_usb.jpg b/docs/solutions/reference-designs/adalp2000/micro_usb.jpg new file mode 100644 index 00000000000..6a6b1568c85 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/micro_usb.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:419426ea20bcb51cfa8ece868935a4bc41b78bee9ed23470aa13d99c9058b148 +size 55661 diff --git a/docs/solutions/reference-designs/adalp2000/op27.jpg b/docs/solutions/reference-designs/adalp2000/op27.jpg new file mode 100644 index 00000000000..a3f39e92569 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/op27.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3dbb099f8c02b549354e8f68a4d06d23ad7d54f47557208451eee4c4e6138deb +size 3712 diff --git a/docs/solutions/reference-designs/adalp2000/op37.jpg b/docs/solutions/reference-designs/adalp2000/op37.jpg new file mode 100644 index 00000000000..c61b0f47e09 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/op37.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62de3e74fe44b0d9b69dd39334fbd65142dc26ec549a5aa609cc6a3e3b87ea53 +size 3375 diff --git a/docs/solutions/reference-designs/adalp2000/op482.jpg b/docs/solutions/reference-designs/adalp2000/op482.jpg new file mode 100644 index 00000000000..8d4477d4f44 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/op482.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac541855efe9fce43b8d1c7781c14f8d054b91537ec39848bd679139aeb9e42f +size 4610 diff --git a/docs/solutions/reference-designs/adalp2000/op484.jpg b/docs/solutions/reference-designs/adalp2000/op484.jpg new file mode 100644 index 00000000000..6cb72acca7f --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/op484.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e8ee245e2a8379f55a8336d529a0069d79d7680441bfdd84851f1be2c327f37 +size 3923 diff --git a/docs/solutions/reference-designs/adalp2000/op97.png b/docs/solutions/reference-designs/adalp2000/op97.png new file mode 100644 index 00000000000..b579d1fcde0 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/op97.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85368c986e22c5c0480818529c98098a4b5fae30b7a891b56c7f91314b150703 +size 94317 diff --git a/docs/solutions/reference-designs/adalp2000/op999-tt.pdf b/docs/solutions/reference-designs/adalp2000/op999-tt.pdf new file mode 100644 index 00000000000..2c7f5570f7f Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/op999-tt.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/pots.png b/docs/solutions/reference-designs/adalp2000/pots.png new file mode 100644 index 00000000000..ac572313d3e --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/pots.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1dea97f40c81cd4cf229cf3f3470df888af0deef0f61ad26b94b44cc3f3417b5 +size 135060 diff --git a/docs/solutions/reference-designs/adalp2000/power-r.jpg b/docs/solutions/reference-designs/adalp2000/power-r.jpg new file mode 100644 index 00000000000..dd9d78fa235 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/power-r.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97db21e3dfada524890ca58fae38fb4a2239c63e1507497a9f0bb9e18be6ae8d +size 1934 diff --git a/docs/solutions/reference-designs/adalp2000/qed-123.jpg b/docs/solutions/reference-designs/adalp2000/qed-123.jpg new file mode 100644 index 00000000000..c02329be87b --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/qed-123.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b55e9354bdb9df34d9119570566a34a95ee9a84fa00475004fe1f22fae4d6ad +size 11425 diff --git a/docs/solutions/reference-designs/adalp2000/qed123-d.pdf b/docs/solutions/reference-designs/adalp2000/qed123-d.pdf new file mode 100644 index 00000000000..3939538cc7d Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/qed123-d.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/qsc114.jpg b/docs/solutions/reference-designs/adalp2000/qsc114.jpg new file mode 100644 index 00000000000..5abd8820f12 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/qsc114.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8a0820e227852d810127a90cde0deeb77d17c86ae252395563b256b7edbada5 +size 10398 diff --git a/docs/solutions/reference-designs/adalp2000/qsd123.jpg b/docs/solutions/reference-designs/adalp2000/qsd123.jpg new file mode 100644 index 00000000000..171b0bc0b3d --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/qsd123.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:079260abb6d6e13446b1122e4c6b0df480833618a93b47d7d8edae99358b1f89 +size 4491 diff --git a/docs/solutions/reference-designs/adalp2000/rfb.pdf b/docs/solutions/reference-designs/adalp2000/rfb.pdf new file mode 100644 index 00000000000..97d735aeb64 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/rfb.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/screwd.png b/docs/solutions/reference-designs/adalp2000/screwd.png new file mode 100644 index 00000000000..da0b4cd5ff1 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/screwd.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2aa5bc8e871fc86d76ef41ab1abc6c346ad36ae8b051f9b01e1760816daa6b9 +size 427599 diff --git a/docs/solutions/reference-designs/adalp2000/sj-4351x-smt.pdf b/docs/solutions/reference-designs/adalp2000/sj-4351x-smt.pdf new file mode 100644 index 00000000000..b6c2c330897 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/sj-4351x-smt.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/sn54hc273-sp.pdf b/docs/solutions/reference-designs/adalp2000/sn54hc273-sp.pdf new file mode 100644 index 00000000000..71c295f9c5d Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/sn54hc273-sp.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/sn54hc32-sp.pdf b/docs/solutions/reference-designs/adalp2000/sn54hc32-sp.pdf new file mode 100644 index 00000000000..cf72d8aaf7f Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/sn54hc32-sp.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/sn74hc04.pdf b/docs/solutions/reference-designs/adalp2000/sn74hc04.pdf new file mode 100644 index 00000000000..85f9c1320c0 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/sn74hc04.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/sn74hc04n.png b/docs/solutions/reference-designs/adalp2000/sn74hc04n.png new file mode 100644 index 00000000000..5cf4d148ef3 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/sn74hc04n.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d0022c64f5b29a4c8694caacea49be45f6a7c544238bd94d3535f33aba0ad91 +size 129090 diff --git a/docs/solutions/reference-designs/adalp2000/sn74hc08.pdf b/docs/solutions/reference-designs/adalp2000/sn74hc08.pdf new file mode 100644 index 00000000000..14e192e282e Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/sn74hc08.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/sn74hc08n.png b/docs/solutions/reference-designs/adalp2000/sn74hc08n.png new file mode 100644 index 00000000000..b0593b14381 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/sn74hc08n.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b2f84d79bb5e7189bc4254365c32824eac96e65b72d91b3e1985061b9d4c3fe +size 124048 diff --git a/docs/solutions/reference-designs/adalp2000/sn74hc32n.png b/docs/solutions/reference-designs/adalp2000/sn74hc32n.png new file mode 100644 index 00000000000..01dcf390ed7 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/sn74hc32n.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0eafd0987f276c7acbd22003f12067b11b4dd74021968a05c96b9cd791e72d74 +size 114652 diff --git a/docs/solutions/reference-designs/adalp2000/speaker_f.png b/docs/solutions/reference-designs/adalp2000/speaker_f.png new file mode 100644 index 00000000000..35d9ab3fa0e --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/speaker_f.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b21443c09c520cadf129a21926a1a92524a21a517ddc4eaa920b7de74a8a7c2 +size 819421 diff --git a/docs/solutions/reference-designs/adalp2000/therm.jpg b/docs/solutions/reference-designs/adalp2000/therm.jpg new file mode 100644 index 00000000000..c3b260716f2 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/therm.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1e3b8091924b4d2bee3318bc145c0598b4b2940cded1911997c072b637bfb09 +size 3409 diff --git a/docs/solutions/reference-designs/adalp2000/tip31.jpg b/docs/solutions/reference-designs/adalp2000/tip31.jpg new file mode 100644 index 00000000000..625cafc4a96 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/tip31.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd56c0cf6dbe9aeace12f8436a503e2f8ef818e71277ba1afc592cf2ca6ee794 +size 3406 diff --git a/docs/solutions/reference-designs/adalp2000/tip31a-549394.pdf b/docs/solutions/reference-designs/adalp2000/tip31a-549394.pdf new file mode 100644 index 00000000000..23eaa1785f4 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/tip31a-549394.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/tip32.jpg b/docs/solutions/reference-designs/adalp2000/tip32.jpg new file mode 100644 index 00000000000..77482b5418f --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/tip32.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edd9b33f885a02349900f71d9fa0ac63aaf739195aa277e73c202f853ecb8cca +size 12789 diff --git a/docs/solutions/reference-designs/adalp2000/tip32c-890156.pdf b/docs/solutions/reference-designs/adalp2000/tip32c-890156.pdf new file mode 100644 index 00000000000..3a76d4f8ab6 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/tip32c-890156.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/tmp01.jpg b/docs/solutions/reference-designs/adalp2000/tmp01.jpg new file mode 100644 index 00000000000..ad332bd91a1 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/tmp01.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3486a6e218bdb56b87b05bec646ee7c9b3e6a2ff797dfc8e48c73ec4e4d00c7c +size 3763 diff --git a/docs/solutions/reference-designs/adalp2000/transist.jpg b/docs/solutions/reference-designs/adalp2000/transist.jpg new file mode 100644 index 00000000000..72e428f9c66 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/transist.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bbc28270a68a474d8c99f9dca94ade1ee3dcf0f91e0d3b72c793b0338cff6dd +size 3351 diff --git a/docs/solutions/reference-designs/adalp2000/trrs_mic.jpg b/docs/solutions/reference-designs/adalp2000/trrs_mic.jpg new file mode 100644 index 00000000000..3cac1fd19bd --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/trrs_mic.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7a0f5bf54b5d8db4e21183a8d70a5e3eac9dd2637858a43aaa378d2202c27e3 +size 68142 diff --git a/docs/solutions/reference-designs/adalp2000/yageo-sqp_nsp.pdf b/docs/solutions/reference-designs/adalp2000/yageo-sqp_nsp.pdf new file mode 100644 index 00000000000..e1e7ef02631 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/yageo-sqp_nsp.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/zenert.png b/docs/solutions/reference-designs/adalp2000/zenert.png new file mode 100644 index 00000000000..9348a403b9f --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/zenert.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5aba996af6c250c6ab3201bd5e16db6f3d51899d3d5d6f19f9994f1df27ba23 +size 17573 diff --git a/docs/solutions/reference-designs/adalp2000/zvn2110a.jpg b/docs/solutions/reference-designs/adalp2000/zvn2110a.jpg new file mode 100644 index 00000000000..6ae40736abc --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/zvn2110a.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:280b7bad6a390a58549bb71908dbd819f24b1dc6d2a08215735f3e6208eafb70 +size 12483 diff --git a/docs/solutions/reference-designs/adalp2000/zvn2110a.pdf b/docs/solutions/reference-designs/adalp2000/zvn2110a.pdf new file mode 100644 index 00000000000..7f53c181320 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/zvn2110a.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/zvn3310.jpg b/docs/solutions/reference-designs/adalp2000/zvn3310.jpg new file mode 100644 index 00000000000..bba1caeed30 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/zvn3310.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:424a1f74272c6f92d9cb7a085a5662962d6e1e01ca8c74456055ee1de8877ea7 +size 3640 diff --git a/docs/solutions/reference-designs/adalp2000/zvn3310a.pdf b/docs/solutions/reference-designs/adalp2000/zvn3310a.pdf new file mode 100644 index 00000000000..0c866da61c2 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/zvn3310a.pdf differ diff --git a/docs/solutions/reference-designs/adalp2000/zvp2110a.jpg b/docs/solutions/reference-designs/adalp2000/zvp2110a.jpg new file mode 100644 index 00000000000..03c79ede5f7 --- /dev/null +++ b/docs/solutions/reference-designs/adalp2000/zvp2110a.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:781d210b442ede03fc8186154933307f6288ae33efc72506d330fef31404f3ed +size 13523 diff --git a/docs/solutions/reference-designs/adalp2000/zvp2110a.pdf b/docs/solutions/reference-designs/adalp2000/zvp2110a.pdf new file mode 100644 index 00000000000..3fd7a542834 Binary files /dev/null and b/docs/solutions/reference-designs/adalp2000/zvp2110a.pdf differ diff --git a/docs/solutions/reference-designs/admv96s-wgbe-ek1/60ghz_link_angle_projection.jpg b/docs/solutions/reference-designs/admv96s-wgbe-ek1/60ghz_link_angle_projection.jpg deleted file mode 100644 index fef9416e372..00000000000 --- a/docs/solutions/reference-designs/admv96s-wgbe-ek1/60ghz_link_angle_projection.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b705e33d0e6e72dc2bbf313949f54910fe20dd972401b2ea71ce36608925b692 -size 2862220 diff --git a/docs/solutions/reference-designs/admv96s-wgbe-ek1/index.rst b/docs/solutions/reference-designs/admv96s-wgbe-ek1/index.rst index 3d647862986..06647fbda7e 100644 --- a/docs/solutions/reference-designs/admv96s-wgbe-ek1/index.rst +++ b/docs/solutions/reference-designs/admv96s-wgbe-ek1/index.rst @@ -3,8 +3,7 @@ ADMV96S-WGBE-EK1 ================= -60 GHz Wireless Connector -""""""""""""""""""""""""" +60 GHz Wireless Connector. Overview -------- diff --git a/docs/solutions/reference-designs/admv96s-wgbe-ek1/software-guide/wethlink-fw-version.png b/docs/solutions/reference-designs/admv96s-wgbe-ek1/software-guide/wethlink-fw-version.png deleted file mode 100644 index 5cc1c0b3f43..00000000000 --- a/docs/solutions/reference-designs/admv96s-wgbe-ek1/software-guide/wethlink-fw-version.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6ad83123be43d743e10f8b253e783b31e6ca7929d2360ffb4e9ba5a7591e8709 -size 73230 diff --git a/docs/solutions/reference-designs/adrd3161-01z/hardware-guide.rst b/docs/solutions/reference-designs/adrd3161-01z/hardware-guide.rst new file mode 100644 index 00000000000..1fdd18cc18e --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/hardware-guide.rst @@ -0,0 +1,185 @@ +ADRD3161-01Z Hardware Guide +=========================== + +.. figure:: res/adrd3161-01z-annotated.lfs.svg + :align: center + :width: 40em + + ADRD3161-01Z Motor Control board + +========== ========= ================================================================== +Annotation Component Function +========== ========= ================================================================== +1 P10 DC power connection, 9 - 70 V +2 P3 :ref:`Motor windings connection ` +3 P8, P9 :ref:`CAN bus connections ` (daisy-chainable) +4 P7 TMC9660 debug port +5 P6 MAX32662 debug port +6 DS3 :ref:`FAULT LED (CiA 303-3) ` +7 DS2 :ref:`RUN LED (CiA 303-3) ` +8 S1, S3 :ref:`Reset switches ` +9 S2 :ref:`Address selection switch ` +10 P16 :ref:`Encoder cable ` connection +========== ========= ================================================================== + +.. _adrd3161_winding_connections: + +Motor winding connections +------------------------- + +.. warning:: + + Wire colors are not standard and vary between motors. + These tables reflect the wiring of Trinamic motors. + Check your motor's datasheet! + +.. tab-set:: + + .. tab-item:: Stepper + + =========== ========== ======== + Motor phase Wire color Terminal + =========== ========== ======== + A+ Black UX1 + A- Green VX2 + B+ Red WY1 + B- Blue Y2 + =========== ========== ======== + + .. tab-item:: Brushless DC + + =========== ========== ======== + Motor phase Wire color Terminal + =========== ========== ======== + U Yellow UX1 + V Red VX2 + W Black WY1 + =========== ========== ======== + + .. tab-item:: Brushed DC + + =========== ========== ======== + Motor phase Wire color Terminal + =========== ========== ======== + M+ Red UX1 + M- Black VX2 + =========== ========== ======== + +.. _adrd3161_status_leds: + +Status LEDs +----------- + +The LEDs on the board signal the CANopen status according to CiA 303-3. + +.. table:: CiA 303-3 RUN LED patterns + + ==================== ========================================== + RUN LED (Blue, DS2) CANopen NMT state + ==================== ========================================== + Solid on OPERATIONAL + Blinking 2.5 Hz PRE-OPERATIONAL + Single flash STOPPED + Flickering 10 Hz AutoBaud/LSS *(not currently implemented)* + ==================== ========================================== + +.. table:: CiA 303-3 ERR LED patterns + + ================== ================================================ + ERR LED (Red, DS3) CANopen error state + ================== ================================================ + Off No error + Single flash Warning limit reached: too many CAN error frames + Double flash Error Control Event + Triple flash Sync timeout + Flickering 10 Hz AutoBaud/LSS *(not currently implemented)* + Solid on CAN bus off: **needs board reset** + ================== ================================================ + +.. _adrd3161_reset_switches: + +Reset switches +-------------- + +Switches RST_TMC and RST_MCU reset the TMC9660 motor drive and MAX32662 application processor, respectively. Press them in the order: RST_TMC, RST_MCU to do a full board reset. + +.. _adrd3161_address_selection: + +Address selection switch +------------------------ + +The boards' CANopen node IDs can be configured using the DIP switch S2. The CANopen node ID is ``0x10`` + the binary value of the DIP switches. Assigning node IDs via CANopen LSS is not supported yet. Most CAN messages sent and received by a specific device will have the lower 7 bits set to the node ID, allowing for easy identification when monitoring the bus: + +=============== =============== ================ +Switch position CANopen node ID CAN frame IDs +=============== =============== ================ + 𜹥 (111) 0x17 (default) ``x17``, ``x97`` + 𜹵 (110) 0x16 ``x16``, ``x96`` + 𜹩 (101) 0x15 ``x15``, ``x95`` + 𜹹 (100) 0x14 ``x14``, ``x94`` + 𜹦 (011) 0x13 ``x13``, ``x93`` + 𜹶 (010) 0x12 ``x12``, ``x92`` + 𜹪 (001) 0x11 ``x11``, ``x91`` + 𜹺 (000) 0x10 ``x10``, ``x90`` +=============== =============== ================ + +.. _adrd3161_cable_encoder: + +Encoder cable +------------- + +Header P16 provides 5V power to encoders and has isolated inputs corresponding to ABN and Digital Hall encoders. + +Depending on the used motor and its wiring, you may need to customize the encoder cable. Some examples: + +.. tab-set:: + + .. tab-item:: ADI Trinamic ABN (Default) + + Encoder cable for ADI Trinamic ABN encoders, such as the + :adi:`ADI Trinamic TMCS ` series, and the builtin encoders on + :adi:`ADI Trinamic QSH ` series stepper motors. + + .. image:: res/cable-encoder-stepper.lfs.svg + .. .. wireviz:: res/cable-encoder-stepper.wireviz.yml + + .. tab-item:: BLDC with Hall + + Encoder cable for a generic BLDC with Digital Hall sensor configuration, with no special encoder connector, such as the + :adi:`ADI Trinamic QBL ` series. + + + .. image:: res/cable-encoder-bldc.lfs.svg + .. .. wireviz:: res/cable-encoder-bldc.wireviz.yml + + .. tab-item:: BLDC with Hall, VESC-like connector + + Encoder cable for using a Digital Hall sensor with a VESC-like encoder connector (6-pin JST PH), such as the + `REV-21-1650 `_. + + .. image:: res/cable-encoder-bldc-vesc.lfs.svg + .. .. wireviz:: res/cable-encoder-bldc-vesc.wireviz.yml + + .. tab-item:: BLDC with Hall & ADI Trinamic ABN + + Encoder cable for using both an ADI Trinamic ABN encoder and a Digital Hall sensor. + + .. image:: res/cable-encoder-bldc-abn.lfs.svg + .. .. wireviz:: res/cable-encoder-bldc-abn.wireviz.yml + +.. _adrd3161_cable_can: + +CAN cable +--------- + +The ADRDx161 board family communicates via CAN bus. The two headers P8, P9 allow for daisy-chaining CAN devices. + +.. image:: res/cable-can.lfs.svg +.. .. wireviz:: res/cable-can.wireviz.yml + +.. _adrd3161_design_files: + +Design support files +-------------------- + +A design support package consisting of the board schematic, layout, assembly and fabrication files, and more, can be downloaded from the :adi:`ADRD3161-01Z` page. If you intend to build your own board from scratch, follow the :doc:`production-guide` for the necessary first-time programming steps. diff --git a/docs/solutions/reference-designs/adrd3161-01z/index.rst b/docs/solutions/reference-designs/adrd3161-01z/index.rst new file mode 100644 index 00000000000..7d36dc02827 --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/index.rst @@ -0,0 +1,70 @@ +ADRD3161-01Z +============ + +Motor Control module with CANopen CiA 402 +""""""""""""""""""""""""""""""""""""""""" + +Introduction +------------ + +.. figure:: res/adrd3161-01z.png + :width: 30em + :align: right + + ADRD3161-01Z Motor Control board + +The :adi:`ADRD3161-01Z` is an FOC motor driver board based on the :adi:`TMC9660`, capable of +driving Stepper, BLDC, and brushed DC motors with optional quadrature (ABN) +and/or Hall encoders. It communicates via CANopen CiA 402 over 500 kbaud CAN. +For development, the :adi:`TMC9660` may also be accessed directly via UART and thus +controlled / configured via TMCL-IDE. + +Specifications +-------------- + +* 9 - 70 V DC supply +* 10 A max phase current (conservative) +* Supported motor types: 3-phase BLDC/PMSM, 2-phase bipolar stepper, brushed DC +* Supported encoder types: ABN (= ABZ, ABI, quadrature), Digital Hall +* Isolated CAN bus communication, CANopen CiA 402 +* Option to solder a brake chopper resistor +* Option to use an electromechanical brake (only in the BLDC configuration) + +Supporting hardware: + +* :adi:`TMC9660` 70V Smart Gate Driver with Servo (FOC) Controller in HW and Buck Converter +* :adi:`MAX32662` Arm Cortex-M4 Processor with FPU-Based Microcontroller (MCU) with 256KB Flash and 80KB SRAM +* :adi:`ADM3053` Signal and Power Isolated CAN Transceiver with Integrated Isolated DC-to-DC Converter + +Connections: + +* Power input: screw terminal +* Motor connection: screw terminal +* Debug ports (x2): SWD header +* Encoder interface, isolated: :ref:`Custom connector (8 pin) ` +* CAN, isolated: 2x :ref:`Custom connector (4 pin) ` + +Required Hardware +----------------- + +* :adi:`ADRD3161-01Z` +* Stepper / BLDC / DC motor. Documented output represents the :adi:`QSH5718-51-28-101-10k ` Stepper. +* DC power supply (9 .. 70 VDC) +* CAN, encoder cables, described in the :doc:`hardware-guide` + +To debug / reprogram the device, you will need a MAXDAP compatible debug probe, such as the :adi:`MAX32625PICO`. + +User Guides +----------- + +.. toctree:: + + hardware-guide + quick-start-guide + production-guide + +Help and Support +---------------- + +For questions and more information about this product, connect with us through the Analog Devices :ez:`sw-interface-tools/robot-operating-system-ros-sdk` . + diff --git a/docs/solutions/reference-designs/adrd3161-01z/production-guide.rst b/docs/solutions/reference-designs/adrd3161-01z/production-guide.rst new file mode 100644 index 00000000000..e875d0317cc --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/production-guide.rst @@ -0,0 +1,136 @@ +ADRD3161-01Z Production Guide +============================= + +.. note:: + + These instructions are intended for bringing up your own board from scratch. There is no need to follow them if you bought a board. + +Bootstrapping the TMC9660 +------------------------- + +.. warning:: + + **USERS SHOULD NOT HAVE TO FOLLOW THE BOOTSTRAPPING SECTION.** These steps have already been done in the factory. Only follow them if you understand the TMC9660 bootstrap procedure. This permanently uses up one of the 4 configuration slots on the TMC9660. It cannot be undone and may only be overwritten at most 4 times on a given TMC9660 IC. + +The :adi:`TMC9660` has reconfigurable I/O, clocking, LDO outputs, etc. Bootstrapping is the initial step of configuring these. Through bootstrapping, a configuration may be loaded in volatile memory, or "burned" to permanent nonvolatile memory to be loaded at power-up. These burn operations should be used sparingly, as they are limited to a total of 4 :abbr:`OTP (One Time Programmable)` configuration slots. + +Configurations may be applied temporarily. If you want to try out a different configuration to the one provided as a default for this board, follow :adi:`AN-2601: TMC9660 Configuration and Bootstrapping +` and reference the :ref:`board schematic ` and :git-adrd3161-fw:`default configuration `. +These instructions assume the TMC9660 is unconfigured (or has an invalid config, as described in the TMC9660 datasheet, section *Configuration Storage*) and thus enters bootstrap mode at startup. + +Preparation: + +* Download :adi:`UBLTools ` +* Download bootstrap :git-adrd3161-fw:`config file `. +* Obtain an UART probe (:adi:`MAX32625PICO` or other MAXDAP compatible) + +Steps: + +#. Connect the UART probe to header P7 +#. Take note of which serial interface the probe took. In the following commands, replace ``COM123`` with the actual serial port name. +#. Verify the TMC9660 communicates and is in bootstrap mode: + + .. shell:: ps1 + + $ ublcli.exe --port COM123 inspect chip + Chip: TMC9660 + Bootloader Version: v1.0 + +#. Upload the configuration and burn: + + .. shell:: ps1 + + $ ublcli.exe --port COM123 write config --burn ioconfig_adrd3161.toml + Proceed with OTP burn? (y/n): y + Config burned successfully + +Flashing the MAX32662 +--------------------- + +The ADRD316-01Z firmware is based on Zephyr. The source code for the latest version may be found at :git-adrd3161-fw:`/ <+>`. + +Prerequisites: + +* MSDK +* Zephyr workspace + +Install MSDK following the `MSDK User Guide +`_. On WSL, we +recommend installing it as root in ``/MaximSDK``, instead of the default +user home install path. + +.. tab-set:: + + .. tab-item:: Create new west workspace + + If you do not have Zephyr SDK already set up, start by creating a Zephyr + workspace, following the + `Zephyr Getting Started `__ + tutorial. In short, the following commands should suffice: + + Set up virtualenv: + + .. shell:: + + $ mkdir zephyrproject + $ cd zephyrproject + $ python3 -m venv .venv + $ source .venv/bin/activate + + Set up west workspace: + + .. shell:: + + $ pip install west + $ west init -m https://github.com/analogdevicesinc/adrd3161-fw . # This might take a while - big download + $ west update # This might take a while - big download + $ west zephyr-export + $ west packages pip --install + $ cd zephyr + $ west sdk install + $ cd .. + + .. tab-item:: Use existing west workspace + + You may reuse a pre-existing West workspace. This is especially convenient if working on other boards in the ADRD family. + + .. shell:: + + $ cd + $ source .venv/bin/activate + $ git clone https://github.com/analogdevicesinc/adrd3161-fw + $ west config manifest.path adrd3161-fw + $ west update + +Enter the workspace and load the python virtual environment: + +.. shell:: + + $ cd + $ source .venv/bin/activate + $ cd adrd3161-fw + +Build the firmware: + +.. shell:: + + $ west build -b adrd3161 -p auto app + +Flash the firmware (will build if necessary): + +.. shell:: + + # Replace /MaximSDK/ with the path to MSDK + $ west flash --openocd-search /MaximSDK/Tools/OpenOCD/scripts/ --openocd /MaximSDK/Tools/OpenOCD/openocd + +If your debug probe supports this, you may also flash the firmware by dragging and dropping the ``build/zephyr/zephyr.hex`` file onto the debug probe virtual storage device. + +Visual check +------------ + +A correctly prepared flashed board should do the following when power is applied: + +* FAULT LED flashes briefly but stays off +* DS1 LED flashes briefly but stays off +* DS2 LED blinks at 2.5Hz indicating CANopen PRE-OPERATIONAL state + diff --git a/docs/solutions/reference-designs/adrd3161-01z/quick-start-guide.rst b/docs/solutions/reference-designs/adrd3161-01z/quick-start-guide.rst new file mode 100644 index 00000000000..5069bb8ac06 --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/quick-start-guide.rst @@ -0,0 +1,151 @@ +ADRD3161-01Z Quick Start Guide +============================== + +Connect a motor and encoder +--------------------------- + +Connect the motor windings to screw terminal block P3 and a motor position encoder to terminal P16. Consult the :doc:`hardware-guide` for pinouts and wiring diagrams. + +Control using TMCL-IDE +---------------------- + +:adi:`TMCL-IDE ` +is the main software package for Trinamic parts. The TMC9660 may be directly interfaced with from TMCL-IDE if connected via UART. The TMC9660 may be controlled via UART and by the MAX32662 at the same time, seamlessly. This usage is helpful for debugging and lower level access to the TMC9660 than the CANopen interface allows. + +Prerequisites: + +* Install the latest version of :adi:`TMCL-IDE ` +* Obtain a suitable UART probe (:adi:`MAX32625PICO` or other MAXDAP compatible) + +Steps: + +#. Connect a UART probe to header P7. +#. In TMCL-IDE, select the corresponding serial port from the *Connected devices* menu on the left side. +#. Use the following settings to initiate a connection: + + * 115200 baud + * search IDs from 1 to 1 + +Initially, use the TMCL-IDE TMC9660 tuning wizard to obtain proper motor control parameters. Carefully go through each step, up to and including encoder configuration. + +After you have found suitable motor control parameters, use the "Position/Velocity/Torque mode" tools from the menu to move it. + +Control via CAN bus +------------------- + +The ADRD3161-01Z implements CANopen, with the CiA 402 profile for motor drives. The device is interoperable with other CANopen devices, but has limited applicability on a CAN bus that is not CANopen, unless carefully configured. + +Check that the board has started up correctly: + +* The RUN LED (green) should be blinking at 2.5Hz +* The FAULT LED (red) should be off + +Set up CAN adapter +'''''''''''''''''' + +On the software side, CAN communication depends on the OS and used hardware interface. The following guide assumes a **Linux** machine. On Windows, this setup can be achieved in WSL with USB forwarding of CAN adapters. + +Install / load the appropriate kernel modules for your CAN adapter: + +.. tab-set:: + + .. tab-item:: gs_can + + Many off-the-shelf USB-CAN adapters need the ``gs_usb`` driver which is provided by many common Linux distros. + + If the driver is loaded, you should automatically see a ``can0`` network interface being listed when you run ``ip link``. + + .. tab-item:: slcan + + Adapters using the ``slcan`` protocol and driver, such as the :adi:`ADRD4161`, need the slcan daemon to run. On the ADRD4161, run: + + .. code-block:: bash + + sudo slcand -o -c -f -t hw -s 6 -S 2000000 /dev/ttyAMA0 can0 + + Other devices will need a different set of arguments to ``slcand``. + +Configure and bring up the CAN interface (replace can0 with the name of the interface, if different): + +.. shell:: + + $ ip link set can0 down + $ ip link set can0 type can bitrate 500000 + $ ip link set can0 up + +Additionally, the ``can-utils`` package has a useful set of tools which aid in bus monitoring and troubleshooting. + +If connected to an ADRD3161-01Z board, you should see regular heartbeat messages using `candump`: + +.. shell:: + + $ candump can0 + can0 717 [1] 7F + can0 717 [1] 7F + can0 717 [1] 7F + ... + +In the above snippet, ``717`` is the CAN message ID, and it corresponds to node ID ``0x17``. The following content of each line signifies a message length of 1 bytes and hexadecimal content ``7F``. This is an CANopen NMT heartbeat message signaling the node is in the ``PRE-OPERATIONAL`` state. + +To remotely reset all nodes on the bus, run: + +.. shell:: + + $ cansend can0 000#0081 + +To remotely reset a specific node, with ID xx, run (after replacing xx with the ID in hexadecimal): + +.. shell:: + + $ cansend can0 000#xx81 + +Run a simple Python example +''''''''''''''''''''''''''' + +The following example code uses the Python ``canopen`` library to communicate with the ADRD3161-01Z and spin it in velocity mode. + +.. code-block:: python3 + + import canopen + import time + + node_address = 0x17 # Change this to your node address + + net = canopen.Network() + net.connect(channel='can0', interface='socketcan') # Change if using another adapter + node = canopen.BaseNode402(node_address, 'adrd3161.eds') + net.add_node(node) + + # Wait for node to say something, or block if there are communication problems + node.nmt.wait_for_heartbeat() + + + # Set up CiA 402 and set mode of operation to Cyclic Synchronous Velocity + node.load_configuration() + node.setup_402_state_machine() + node.state = 'SWITCH ON DISABLED' + node.sdo['Modes of Operation'] = 9 + + time.sleep(1) + node.nmt.state = 'OPERATIONAL' + time.sleep(1) + + # Engage motor drive + node.state = 'OPERATION ENABLED' + time.sleep(2) + + # Send velocity commands + RPM = 4000 # Scaling between internal units and real-life units + node.sdo['Target Velocity'].raw = 10 * RPM + time.sleep(1) + node.sdo['Target Velocity'].raw = -20 * RPM + time.sleep(1) + node.sdo['Target Velocity'].raw = 30 * RPM + time.sleep(1) + node.sdo['Target Velocity'].raw = 0 + + # Stop + node.state = 'SWITCH ON DISABLED' + + node.nmt.state = 'PRE-OPERATIONAL' + diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/Makefile b/docs/solutions/reference-designs/adrd3161-01z/res/Makefile new file mode 100644 index 00000000000..641141bf3df --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/Makefile @@ -0,0 +1,15 @@ +all: svgs + +wireviz_files := $(wildcard *.wireviz.yml) +pngs: $(wireviz_files:.wireviz.yml=.png) +svgs: $(wireviz_files:.wireviz.yml=.lfs.svg) +gvs: $(wireviz_files:.wireviz.yml=.gv) + +%.png: %.wireviz.yml + wireviz -fp $^ -O $(patsubst %.png,%,$@) + +%.lfs.svg: %.wireviz.yml + wireviz -fs $^ -O $(patsubst %.svg,%,$@) + +%.gv: %.wireviz.yml + wireviz -fg $^ -O $(patsubst %.gv,%,$@) diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/adrd3161-01z-annotated.lfs.svg b/docs/solutions/reference-designs/adrd3161-01z/res/adrd3161-01z-annotated.lfs.svg new file mode 100644 index 00000000000..c6165b38678 --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/adrd3161-01z-annotated.lfs.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37d4b91ea6cf2a6e7b9dde237374aa012e8eb47eda2ae1deaf849b941688d732 +size 2612405 diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/adrd3161-01z.png b/docs/solutions/reference-designs/adrd3161-01z/res/adrd3161-01z.png new file mode 100644 index 00000000000..6b8981a4606 --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/adrd3161-01z.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aeb06538f9889ba60c5d99b1084ef19fd38ac6648112dd09accc596993d6395d +size 1957874 diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/cable-can.lfs.svg b/docs/solutions/reference-designs/adrd3161-01z/res/cable-can.lfs.svg new file mode 100644 index 00000000000..bc18711e245 --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/cable-can.lfs.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fbbd0d3a62f7c9de067a0ee062bef0c4c6b27a83a44a17bd8bd269986b5d9e2 +size 59073 diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/cable-can.wireviz.yml b/docs/solutions/reference-designs/adrd3161-01z/res/cable-can.wireviz.yml new file mode 100644 index 00000000000..2ba12f13c91 --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/cable-can.wireviz.yml @@ -0,0 +1,29 @@ +connectors: + X1: &can + type: Micro-Fit 3.0 + subtype: Receptacle + manufacturer: Molex + mpn: 430250400 + pincount: 4 + pinlabels: [CANH, CANL, GND] + pincolors: [YE, OG, BK] + image: + src: connector-microfit-can.jpg + width: 150 + + X2: + <<: *can + +cables: + W1: + gauge: 24 AWG + wirecount: 3 + colors: [YE, OG, BK] + notes: Twisted + +connections: + - + - X1: [1, 2, 3] + - W1: [1, 2, 3] + - X2: [1, 2, 3] + diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc-abn.lfs.svg b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc-abn.lfs.svg new file mode 100644 index 00000000000..74de7c92018 --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc-abn.lfs.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93ebd88b4bc531d679c785ce81334235489ab96d7ca16afb3dbf6a0a8d874fb4 +size 101112 diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc-abn.wireviz.yml b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc-abn.wireviz.yml new file mode 100644 index 00000000000..650e71ca162 --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc-abn.wireviz.yml @@ -0,0 +1,53 @@ +connectors: + X1: + type: Micro-Fit 3.0 + subtype: Receptacle + manufacturer: Molex + mpn: 430250800 + pinlabels: [VCC, GND, Encoder A, Encoder B, Encoder N, Hall U, Hall V, Hall W] + image: + src: connector-microfit.jpg + width: 200 + notes: to ADRD3161 + + X2: + pinlabels: [VCC, A, B, C, GND] + #pincolors: [RD, BU, GN, WH, BK] + notes: to Hall effect encoder + + X3: + type: CLIK-Mate + subtype: Plug + manufacturer: Molex + mpn: 5023800900 + pinlabels: [VCC, GND, A+, A-, B+, B-, Z+, Z-, Shield] + #pincolors: [RD, BK, WH, WHBK, GN, GNBK, YE, YEBK, BU] + image: + src: connector-clikmate.jpg + width: 200 + notes: to Trinamic ABN encoder + +cables: + W1: + gauge: 26 AWG + wirecount: 5 + colors: [RD, BU, GN, WH, BK] + + W2: + gauge: 28 AWG + wirecount: 9 + colors: [RD, BK, WH, WHBK, GN, GNBK, YE, YEBK, BU] + +connections: + - + - X1: [VCC, GND, Hall U, Hall V, Hall W] + - W1: [1, 5, 2, 3, 4] + - X2: [VCC, GND, A, B, C] + - + - X1: [VCC, GND, Encoder A, Encoder B, Encoder N] + - W2: [1, 2, 3, 5, 7] + - X3: [VCC, GND, A+, B+, Z+] + - + - W2: [4, 6, 8, 9] + - X3: [A-, B-, Z-, Shield] + diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc-vesc.lfs.svg b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc-vesc.lfs.svg new file mode 100644 index 00000000000..38d05a12e29 --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc-vesc.lfs.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e03cdad77c72792e2217a4472ed5290eb74607b98e9aa0178d81ebd3623f104 +size 74561 diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc-vesc.wireviz.yml b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc-vesc.wireviz.yml new file mode 100644 index 00000000000..2a2c4586039 --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc-vesc.wireviz.yml @@ -0,0 +1,47 @@ +connectors: + X1: + type: Micro-Fit 3.0 + subtype: Receptacle + manufacturer: Molex + mpn: 430250800 + pinlabels: [VCC, GND, Encoder A, Encoder B, Encoder N, Hall U, Hall V, Hall W] + image: + src: connector-microfit.jpg + width: 200 + notes: to ADRD3161 + + X2: + type: JST PH + subtype: Header + manufacturer: JST + mpn: B6B-PH-K-S + pinlabels: [VCC, Temperature, Encoder A, Encoder B, Encoder C, GND] + notes: part of adapter cable + + X3: + type: JST PH + subtype: receptacle + manufacturer: JST + mpn: PHR-6 + pinlabels: [VCC, Temperature, Encoder A, Encoder B, Encoder C, GND] + notes: part of motor encoder cable + image: + src: connector-vesc.jpg + width: 200 + +cables: + W1: + gauge: 26 AWG + wirecount: 5 + colors: [RD, BU, GN, WH, BK] + +connections: + - + - X1: [VCC, GND, Hall U, Hall V, Hall W] + - W1: [1, 5, 2, 3, 4] + - X2: [VCC, GND, Encoder A, Encoder B, Encoder C] + - + - X2 + - <== + - X3 + diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc.lfs.svg b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc.lfs.svg new file mode 100644 index 00000000000..14808c4378b --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc.lfs.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54b7409df0eafbf093e46e41b290729fe2fd614447f97d0ea0b4554f52ff71b1 +size 43410 diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc.wireviz.yml b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc.wireviz.yml new file mode 100644 index 00000000000..ab1d2c7187e --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-bldc.wireviz.yml @@ -0,0 +1,29 @@ +connectors: + X1: + type: Micro-Fit 3.0 + subtype: Receptacle + manufacturer: Molex + mpn: 430250800 + pinlabels: [VCC, GND, Encoder A, Encoder B, Encoder N, Hall U, Hall V, Hall W] + image: + src: connector-microfit.jpg + width: 200 + notes: to ADRD3161 + + X2: + pinlabels: [VCC, A, B, C, GND] + pincolors: [RD, BU, GN, WH, BK] + notes: to Hall effect encoder + +cables: + W1: + gauge: 26 AWG + wirecount: 5 + colors: [RD, BU, GN, WH, BK] + +connections: + - + - X1: [VCC, GND, Hall U, Hall V, Hall W] + - W1: [1, 5, 2, 3, 4] + - X2: [VCC, GND, A, B, C] + diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-stepper.lfs.svg b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-stepper.lfs.svg new file mode 100644 index 00000000000..bc332246352 --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-stepper.lfs.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b2e06223b5544bfb89541b7c36187a63fe1f76f6b97213e13cc7ee6f2bdb989 +size 88105 diff --git a/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-stepper.wireviz.yml b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-stepper.wireviz.yml new file mode 100644 index 00000000000..dff2399526b --- /dev/null +++ b/docs/solutions/reference-designs/adrd3161-01z/res/cable-encoder-stepper.wireviz.yml @@ -0,0 +1,37 @@ +connectors: + X1: + type: Micro-Fit 3.0 + subtype: Receptacle + manufacturer: Molex + mpn: 430250800 + pinlabels: [VCC, GND, Encoder A, Encoder B, Encoder N, Hall U, Hall V, Hall W] + image: + src: connector-microfit.jpg + width: 200 + notes: to ADRD3161 + + X2: + type: CLIK-Mate + subtype: Plug + manufacturer: Molex + mpn: 5023800900 + pinlabels: [VCC, GND, A+, A-, B+, B-, Z+, Z-, Shield] + image: + src: connector-clikmate.jpg + width: 200 + notes: to Trinamic ABN encoder + +cables: + W1: + gauge: 28 AWG + wirecount: 9 + colors: [RD, BK, WH, WHBK, GN, GNBK, YE, YEBK, BU] + +connections: + - + - X1: [VCC, GND, Encoder A, Encoder B, Encoder N] + - W1: [1, 2, 3, 5, 7] + - X2: [VCC, GND, A+, B+, Z+] + - + - W1: [4, 6, 8, 9] + - X2: [A-, B-, Z-, Shield] diff --git a/docs/solutions/reference-designs/adrd8012-01Z/ADRD8012-01Z_01-block-diagram.png b/docs/solutions/reference-designs/adrd8012-01Z/adrd8012-01z_01-block-diagram.png similarity index 100% rename from docs/solutions/reference-designs/adrd8012-01Z/ADRD8012-01Z_01-block-diagram.png rename to docs/solutions/reference-designs/adrd8012-01Z/adrd8012-01z_01-block-diagram.png diff --git a/docs/solutions/reference-designs/adrd8012-01Z/ADRD8012-01Z_ANGLE-evaluation-board.jpg b/docs/solutions/reference-designs/adrd8012-01Z/adrd8012-01z_angle-evaluation-board.jpg similarity index 100% rename from docs/solutions/reference-designs/adrd8012-01Z/ADRD8012-01Z_ANGLE-evaluation-board.jpg rename to docs/solutions/reference-designs/adrd8012-01Z/adrd8012-01z_angle-evaluation-board.jpg diff --git a/docs/solutions/reference-designs/adrd8012-01Z/index.rst b/docs/solutions/reference-designs/adrd8012-01Z/index.rst index 0bbe634f757..a5af856b5c8 100644 --- a/docs/solutions/reference-designs/adrd8012-01Z/index.rst +++ b/docs/solutions/reference-designs/adrd8012-01Z/index.rst @@ -1,13 +1,12 @@ ADRD8012-01Z ============ -FPGA-based 8x GMSL to 10 Gb Ethernet Adapter -"""""""""""""""""""""""""""""""""""""""""""" +FPGA-based 8x GMSL to 10 Gb Ethernet Adapter. Overview --------- -.. figure:: ADRD8012-01Z_ANGLE-evaluation-board.jpg +.. figure:: adrd8012-01z_angle-evaluation-board.jpg :width: 600 px ADRD8012-01Z GMSL Board @@ -27,7 +26,7 @@ is critical. Some of the main features and benefits include: - Open-source embedded Linux software and FPGA design - Advanced camera triggering functions and control features -.. figure:: ADRD8012-01Z_01-block-diagram.png +.. figure:: adrd8012-01z_01-block-diagram.png :width: 800 px ADRD8012-01Z Simplified Block Diagram diff --git a/docs/solutions/reference-designs/adxl355-pmdz/adxl355_rpi_pico_connections.jpg b/docs/solutions/reference-designs/adxl355-pmdz/adxl355_rpi_pico_connections.jpg deleted file mode 100644 index be682226a9a..00000000000 --- a/docs/solutions/reference-designs/adxl355-pmdz/adxl355_rpi_pico_connections.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:25c3ee5fc7c113faa1a7e5ae535c0af101daf1a2dec2572681d32b297a6702a4 -size 1044982 diff --git a/docs/solutions/reference-designs/adxl355-pmdz/adxl355_rpi_pico_connections_old.jpg b/docs/solutions/reference-designs/adxl355-pmdz/adxl355_rpi_pico_connections_old.jpg deleted file mode 100644 index a5946bf8ce0..00000000000 --- a/docs/solutions/reference-designs/adxl355-pmdz/adxl355_rpi_pico_connections_old.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:59aa377ed771ce4d40c1200f60a3273f85a173f74b47c87fc37aa654c2734b9c -size 272190 diff --git a/docs/solutions/reference-designs/adxl355-pmdz/adxl355_sdp-k1_connections.jpg b/docs/solutions/reference-designs/adxl355-pmdz/adxl355_sdp-k1_connections.jpg deleted file mode 100644 index 986e429980d..00000000000 --- a/docs/solutions/reference-designs/adxl355-pmdz/adxl355_sdp-k1_connections.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1291f68ffec075fe2ef513fdbb26f1bef3256a8d84df3cb901b980b733d6ef5a -size 582947 diff --git a/docs/solutions/reference-designs/adxl355-pmdz/index.rst b/docs/solutions/reference-designs/adxl355-pmdz/index.rst index c613d211937..ae5f8254eed 100644 --- a/docs/solutions/reference-designs/adxl355-pmdz/index.rst +++ b/docs/solutions/reference-designs/adxl355-pmdz/index.rst @@ -19,8 +19,7 @@ EVAL-ADXL355-PMDZ ################# -Low Noise, Low Drift 3-axis Accelerometer PMOD Board -"""""""""""""""""""""""""""""""""""""""""""""""""""" +Low Noise, Low Drift 3-axis Accelerometer PMOD Board. Overview ======== @@ -382,7 +381,7 @@ The following is a list of items needed in order to replicate this demo. - **Software** - - 32-bit Kuiper Linux Image from :git-adi-kuiper-gen:`GitHub Actions + - 32-bit Kuiper Linux Image from :git-kuiper:`GitHub Actions ` Loading Image on SD Card @@ -397,7 +396,7 @@ Configuring the SD Card ----------------------- Follow the configuration procedure for Raspberry Pi at -:external+adi-kuiper-gen:doc:`hardware-configuration`, substituting the +:external+kuiper:doc:`hardware-configuration`, substituting the following lines in **config.txt**: :: diff --git a/docs/solutions/reference-designs/common/zcu102-zynqmp-setup.rst b/docs/solutions/reference-designs/common/zcu102-zynqmp-setup.rst new file mode 100644 index 00000000000..5f7b2ef7407 --- /dev/null +++ b/docs/solutions/reference-designs/common/zcu102-zynqmp-setup.rst @@ -0,0 +1,80 @@ +This guide provides quick instructions on how to setup the +:adi:`{{ eval_board }} <{{ eval_board_link }}>` on: + +- :xilinx:`ZCU102` + +Using Linux as software +------------------------------------------------------------------------------- + +Necessary files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following files are needed for the system to boot: + +- HDL boot image: ``BOOT.BIN`` +- Linux Kernel image: ``Image`` +- Linux device tree: ``system.dtb`` + +They can either be taken from the SD card -- already generated by us, or you +can build them manually. + +In the following sections, we explain **how to take them from the SD card**. + +Instructions on how to manually build the boot files from source can be found +here: + +- :ref:`linux-kernel zynqmp` +{% if hdl_ref is defined and hdl_ref %} +- :external+hdl:ref:`{{ hdl_ref }}` build documentation. More HDL build details at + :external+hdl:ref:`build_hdl`. +{% endif %} + +Required Software +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- SD Card 16GB imaged with :external+kuiper:doc:`Kuiper ` + (check out that guide on how to do it, then come back to this section) +- A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1) + +Required Hardware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- AMD Xilinx :xilinx:`ZCU102` Rev 1.0 or later FPGA board and its power supply +- :adi:`{{ eval_board }} <{{ eval_board_link }}>` FMC evaluation board +- SD card with at least 16GB of memory +- Micro-USB cable (UART) +- LAN cable (Ethernet) +- (Optional) USB keyboard & mouse and a HDMI compatible monitor + +More details as to why you need these, can be found at +:ref:`{{ label }} prerequisites`. + +Testing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creating the setup +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +{% if setup_image is defined and setup_image %} +.. image:: ../../images/{{ setup_image }} + :width: 800 + +{% endif %} +Follow the steps in this order, to avoid damaging the components: + +#. Connect the :adi:`{{ eval_board }} <{{ eval_board_link }}>` FMC board to the + ZCU102 **{{ fmc_port }}** FMC1 socket +#. Insert SD card into the SD card socket on the FPGA +#. Configure :xilinx:`ZCU102` for SD card boot mode (mode SW6[4:1] switch in + the position **OFF,OFF,OFF,ON** as seen in the below picture) + + .. image:: ../../images/zcu102_1p0_bootmode.jpg + :width: 400 + +#. Plug-in an Ethernet cable from your router/switch to the Ethernet port on + the FPGA board +#. Connect USB UART J83 (Micro-USB) to your host PC +#. (Optional) Connect a monitor to the FPGA by HDMI, and a mouse and a keyboard +#. Turn on the power switch on the FPGA board +#. Observe Kernel and serial console output messages on your terminal (use + the first ttyUSB or COM port registered) diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592-1.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592-1.png new file mode 100644 index 00000000000..dee0014f48d --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5394db827e0fcc5b478a18067386a4555503aadb5438c9bc97a118cfed95c10a +size 107720 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592-2.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592-2.png new file mode 100644 index 00000000000..e83fc7dd4a4 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592-2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:914ab13ec72c546f8b47f18ce7ecdc1202374bfcf8106c90526fffa589794a3b +size 59037 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_debug.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_debug.png new file mode 100644 index 00000000000..f10e4f24987 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_debug.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4593e7ce4dc9e2231dd38c72e8abca0b0ed5912d1b95b1447c25c19f04ce3904 +size 24262 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_dmm.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_dmm.png new file mode 100644 index 00000000000..de2b78bd20d --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_dmm.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9878a6d05efdca6969c913742bdd186efdabfe82732c58ccb2f61e7775734690 +size 25086 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_example.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_example.png new file mode 100644 index 00000000000..84a6d5f7d21 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_example.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f628959cdde9ea0a650e4e5c61013785a57df445384195f8de2a71c035e301b6 +size 294470 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_osc.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_osc.png new file mode 100644 index 00000000000..7c09d3018cc --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_osc.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1f8442ba98f31b4fd3825018241140e8a0ee08b075341f0c008bb786aeab02a +size 32574 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_rpi.jpg b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_rpi.jpg new file mode 100644 index 00000000000..84a54166b9a --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/5592_rpi.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79bddaabbd816b4aa274f4cff070188385722cc7344ecd0357871d5cacf2ec9b +size 39649 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/ad5592r-pmod-on.jpg b/docs/solutions/reference-designs/eval-ad5592R-pmdz/ad5592r-pmod-on.jpg new file mode 100644 index 00000000000..50877573019 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/ad5592r-pmod-on.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3dcfefaa388d59dabc19e0089229e71e8dc756a2080c90f79d431cf59f215eb +size 45996 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/ad5592r-pmod.jpg b/docs/solutions/reference-designs/eval-ad5592R-pmdz/ad5592r-pmod.jpg new file mode 100644 index 00000000000..2f9bd045cb2 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/ad5592r-pmod.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e1612fdd771c5a9c563b92f84c564bb23ba0c1ce129a2a9e456b4481eaa03f3 +size 33229 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/ad5592r_block_diagram.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/ad5592r_block_diagram.png new file mode 100644 index 00000000000..1b795cdf8dd --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/ad5592r_block_diagram.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbfe3cd312f161d6effeb95b9def1703452f1b80045d07a86c9f51d7ee39af1f +size 56881 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/adicup_5592.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/adicup_5592.png new file mode 100644 index 00000000000..e9afdf6d573 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/adicup_5592.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9819a58b1fa39ddd9ea2549f225bd0b75b4a673237dfa6b4a6c0c4fd32e598e6 +size 80529 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/daplink.jpg b/docs/solutions/reference-designs/eval-ad5592R-pmdz/daplink.jpg new file mode 100644 index 00000000000..b210c8bda10 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/daplink.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c653007a1f765e51c92aa3ee5cc552511dc2ab4065683626830bd8c2b64a355 +size 58612 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/eval-ad5592r-pmdz-angle-web.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/eval-ad5592r-pmdz-angle-web.png new file mode 100644 index 00000000000..ce22bbea1fd --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/eval-ad5592r-pmdz-angle-web.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6689b43ac1f0584efb64bd04716be2d83fd3c77c7effddd51a4b8fb6908741f1 +size 82689 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/eval-ad5592r-pmdz-designsupport.zip b/docs/solutions/reference-designs/eval-ad5592R-pmdz/eval-ad5592r-pmdz-designsupport.zip new file mode 100644 index 00000000000..9da7631bac5 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/eval-ad5592r-pmdz-designsupport.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb7a456321e1e524e195d2ad2d452b9adaaaca2ab3789bf7fee152a103235b5e +size 1466205 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/index.rst b/docs/solutions/reference-designs/eval-ad5592R-pmdz/index.rst new file mode 100644 index 00000000000..d1747fa6210 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/index.rst @@ -0,0 +1,607 @@ +.. _eval-ad5592r-pmdz: + +EVAL-AD5592R-PMDZ +================= + +8-channel, 12-Bit, Configurable ADC/DAC/GPIO with on-chip Reference, SPI Interface Pmod Module. + +Overview +-------- + +The :adi:`EVAL-AD5592R-PMDZ` is a minimalist 8-channel, 12-Bit, configurable +ADC/DAC/GPIO with on-chip reference, SPI interface Pmod module. This +board serves as a low-cost alternative to the full-featured product +evaluation boards, with terminal block connections and no extra signal +conditioning. + +.. figure:: eval-ad5592r-pmdz-angle-web.png + :align: center + + EVAL-AD5592R-PMDZ Evaluation Board + +This user guide will focus on the hardware aspect of the +:adi:`EVAL-AD5592R-PMDZ` including the connectors, indicators, and different +configurations a user would require in order to use the hardware. There +is also a link to the design files as well as software reference designs +that use the hardware with example embedded firmware for a real demo. + +Simplified functional block diagram +----------------------------------- + +.. figure:: ad5592r_block_diagram.png + :align: center + + AD5592R Functional Block Diagram + +Connectors and Configuration +---------------------------- + +The following section reviews all the hardware connectors and how to +interface with them. It also reviews configuration options and well as +important onboard indicators. + +Analog/Digital I/O Connector (P2 & P3) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +========= ======= ======== ====================== +Connector Pin No. Pin Name Pin Description +========= ======= ======== ====================== +P3 1 CH3 Channel 3 Input/Output + + 2 CH2 Channel 2 Input/Output + + 3 CH1 Channel 1 Input/Output + + 4 CH0 Channel 0 Input/Output + + 5 GND Ground + + 6 VDD Power Supply + +P2 1 VREF Voltage Reference + + 2 GND Ground + + 3 CH7 Channel 7 Input/Output + + 4 CH6 Channel 6 Input/Output + + 5 CH5 Channel 5 Input/Output + + 6 CH4 Channel 4 Input/Output +========= ======= ======== ====================== + +SPI Pmod Connector (P1) +~~~~~~~~~~~~~~~~~~~~~~~ + ++-------------+-------------+--------------------------+-----------------+-------------+ +| Connector | Pin No. | Pin Name | ADuCM3029 Pin | ADuCM3029 | +| | | | Function | Port No. | ++=============+=============+==========================+=================+=============+ +| SPI_PMOD | 1 | CS | SPI1_CS0/GPIO25 | P1_09 | ++-------------+-------------+--------------------------+-----------------+-------------+ +| 2 | MOSI | SPI1_MOSI/GPIO23 | P1_07 | | ++-------------+-------------+--------------------------+-----------------+-------------+ +| 3 | MISO | SPI1_MISO/GPIO24 | P1_08 | | ++-------------+-------------+--------------------------+-----------------+-------------+ +| 4 | SCLK | SPI1_SCLK/GPIO22 | P1_06 | | ++-------------+-------------+--------------------------+-----------------+-------------+ +| 5 | DGND | DGND | ++-------------+-------------+--------------------------+-----------------+-------------+ +| 6 | 3.3V | +3.3V | ++-------------+-------------+--------------------------+-----------------+-------------+ +| 7 | IO16 | XINT1_WAKE2/GPIO16 | P1_00 | | ++-------------+-------------+--------------------------+-----------------+-------------+ +| 8 | RESET | SYS_HWRST_N | ++-------------+-------------+--------------------------+-----------------+-------------+ +| 9 | RDY | SPI1_RDY/TMR0_OUT/GPIO14 | P0_14 | | ++-------------+-------------+--------------------------+-----------------+-------------+ +| 10 | IO12 | SPT0_AD0/GPIO12 | P0_12 | | ++-------------+-------------+--------------------------+-----------------+-------------+ +| 11 | DGND | DGND | ++-------------+-------------+--------------------------+-----------------+-------------+ +| 12 | 3.3V | +3.3V | ++-------------+-------------+--------------------------+-----------------+-------------+ + +Test Points +~~~~~~~~~~~ + +Users can also check the SPI signal quality, supply, and reference +voltage of the board using test points labeled SS, MOSI, MISO, VLOGIC, +and VREF + +.. figure:: 5592-1.png + :align: center + + Test Points Location + +**Voltage reference configuration** +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The default connection of the :adi:`AD5592R` **VREF** pin is shorted at pin 1 +of JP1 solder jumper where you can easily configure your voltage +reference input at pin 1 of terminal block P2, either from an external +source or internal 2.5 V. + +.. figure:: 5592-2.png + :align: center + + Voltage Reference Configuration Jumper + +LED Indicator +~~~~~~~~~~~~~ + +The DS1 is the power green LED indicator of the board. + +.. figure:: power_led_indicator.png + :align: center + + Power LED Indicator (DS1) + +Power Supply Considerations and Configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When using the :adi:`AD5592R` Pmod board, the 3.3 V power for the Pmod comes +directly from the host board it is connected to. The power from the host +is generally capable of providing up to 100 mA at 3.3 V, but for complete +Pmod power specifications, please click +:adi:`here `. + +Device Driver Support +--------------------- + +There are two device driver solutions that are provided for controlling +the :adi:`EVAL-AD5592R-PMDZ:` + +#. **AD5592R no-OS Driver** + + - The + :dokuwiki:`AD5592R no-OS driver ` + is used in bare-metal applications, typically running on low-power, + embedded microcontrollers. + +#. **AD5592R Linux Driver** + + - The + :dokuwiki:`AD5592R Linux driver ` + is used in applications running the Linux operating system, + typically on larger processors and SoC devices. + + - The AD5592R Linux driver uses the Industrial Input/Output (IIO) + framework, greatly simplifying the development of application code + via the cross-platform Libiio library, which is written in C and + includes bindings for Python, MATLAB, C#, and other languages. + Application code can run directly on the platform board, + communicating with the device over the local backend, or from a + remote host over the network or USB backends. + +System Setup Using ADICUP3029 +----------------------------- + +The :adi:`EVAL-AD5592R-PMDZ` can be used with +:dokuwiki:`ADICUP3029 `. + +Demo Requirements +~~~~~~~~~~~~~~~~~ + +The following is the list of items needed in order to replicate this +demo. + +- **Hardware** + + - :adi:`EVAL-ADICUP3029 ` + + - :adi:`EVAL-AD5592R-PMDZ ` + + - Micro-USB to USB Cable + + - PC or Laptop with USB Port + +- **Software** + + - PuTTY or other similar software + + - :git-eval-adicup3029:`ADuCM3029_demo_AD5592R.hex ` + +.. important:: + + There are two basic ways to program the ADICUP3029 with the + software for the AD5592R. + + #. Dragging and Dropping the Hex to the DAPLink drive + + - Using the drag and drop method, the software is going to be a + version that Analog Devices creates for testing and evaluation + purposes. This is the **EASIEST** way to get started with the + reference design. + + #. Building, Compiling, and Debugging using CCES + + - Importing the project into + :adi:`CrossCore Embedded Studio ` + is going to allow you to change parameters and customize the + software to your application, but will a bit more advanced and + will require you to download the CrossCore toolchain. + +.. admonition:: Download + + The software for the **ADICUP3029_AD5592R** demo can be found here: + + Prebuilt AD5592R Hex File + + - :git-eval-adicup3029:`ADuCM3029_demo_AD5592R.hex ` + + Complete AD5592R Source Files + + - :git-eval-adicup3029:`ADuCM3029_demo_AD5592R Source Code ` + +Setting up the Hardware +~~~~~~~~~~~~~~~~~~~~~~~ + +#. Connect the **EVAL-AD5592R-PMDZ** board at connector **P8** of the + **EVAL-ADICUP3029**. + + .. figure:: ad5592r-pmod.jpg + :align: center + + EVAL-AD5592R-PMDZ Connected to EVAL-ADICUP3029 at P8 + +#. Connect a micro-USB cable to the P8 connector of the EVAL-ADICUP3029 + and connect it to a computer. The final setup should look similar to the + picture below. + + .. figure:: ad5592r-pmod-on.jpg + :align: center + + Complete Hardware Setup with EVAL-ADICUP3029 + +#. Make sure the following switches are as shown in the table + below. + + .. figure:: switch_config.png + :align: center + + Switch Configuration Settings + +#. From your PC, open My Computer and look for the DAPLINK drive, if you + see this then the drivers are complete and correct. + + .. figure:: daplink.jpg + :align: center + :height: 400px + :width: 400px + + DAPLink Drive in File Explorer + +#. Simply extract the provided zip file. Once extracted, you will see + the pre-built hex file for the AD5592R demo. Then drag and drop this Hex + file to the DAPLINK drive and your ADICUP3029 board will be programmed. + The DS2 (red) LED will blink rapidly. + +#. The DS2 will stop blinking and will stay ON once the programming is + done. + +#. Open PuTTY or other similar software. Check the Device Manager to set + the correct COM port for the ADICUP3029. Set the baud rate to 115200. + + .. figure:: putty_5592.png + :align: center + + PuTTY Configuration Settings + +#. The expected output viewed in the PuTTY is shown below. + + .. figure:: adicup_5592.png + :align: center + + Expected Output in PuTTY Terminal + +System Setup Using Raspberry Pi +------------------------------- + +The :adi:`EVAL-AD5592R-PMDZ` can be used with a Raspberry Pi. + +Demo Requirements +~~~~~~~~~~~~~~~~~ + +The following is a list of items needed in order to replicate this demo. + +- **Hardware** + + - :adi:`EVAL-AD5592R-PMDZ` + + - :adi:`PMOD to Raspberry Pi Adapter (PMD-RPI-INTZ) ` + + - Raspberry PI Zero, Zero W, 3B+, or 4 + + - 16GB (or larger) Class 10 (or faster) micro-SD card + + - 5Vdc, 2.5A power supply with micro USB connector (USB-C power supply + for Raspberry Pi 4) + + - User interface setup (choose one): + + - HDMI monitor, keyboard, and mouse plugged directly into Raspberry + Pi + + - Host Windows/Linux/Mac computer on the same network as Raspberry + Pi + +- **Software** + + - :dokuwiki:`Kuiper Linux Image ` + +Loading Image on SD Card +~~~~~~~~~~~~~~~~~~~~~~~~ + +In order to boot the Raspberry Pi and control the **EVAL-AD5592R-PMDZ**, +you will need to install ADI Kuiper Linux on an SD card. Complete +instructions, including where to download the SD card image, how to +write it to the SD card, and how to configure the system are provided on +the +:dokuwiki:`Kuiper Linux Image ` + +Configuring the SD Card +~~~~~~~~~~~~~~~~~~~~~~~ + +Follow the configuration procedure under **Configuring the SD Card for +Raspberry Pi Projects** on the +:dokuwiki:`Kuiper Linux Image ` +page, substituting the following lines in **config.txt**: + +.. code-block:: + + dtoverlay=rpi-ad5592r + +Setting up the Hardware +~~~~~~~~~~~~~~~~~~~~~~~ + +To set up the circuit for evaluation, consider the following steps: + +#. Connect the P9 of the **PMOD to Raspberry Pi Interposer** board at + the male header GPIO pin connector of the **Raspberry Pi** as shown + below. + + .. figure:: interposer.png + :align: center + + Pmod to Raspberry Pi Interposer Connection + + +#. Connect the :adi:`EVAL-AD5592R-PMDZ` + on the PMOD to Raspberry Pi Interposer board either via Port P1 or + P2. + + .. figure:: 5592_rpi.jpg + :align: center + + EVAL-AD5592R-PMDZ Connected to Raspberry Pi via Interposer + +#. Burn the SD card with the proper ADI Kuiper Linux image. Insert the + burned SD card into the designated slot on the RPi. + +#. Connect the system to a monitor using an HDMI cable through the mini + HDMI connector on the RPi. + +#. Connect a USB keyboard and mouse to the RPi through the USB ports. + +#. Power on the RPi board by plugging in a 5V power supply with a + micro-USB connector. The final setup should look similar to the + picture below. + + .. figure:: setup_5592.png + :align: center + + Complete Raspberry Pi Setup + +Application Software (All Platforms) +------------------------------------ + +Hardware Connection +~~~~~~~~~~~~~~~~~~~ + +The Libiio is a library used for interfacing with IIO devices and is +required to be installed on your computer. + +.. admonition:: Download + + Download and Install the latest + :git-libiio:`Libiio package ` + on your machine. + +To be able to connect your device, the software must be able to create a +context. The context creation in the software depends on the backend +used to connect to the device as well as the platform where the +EVAL-AD5592R-PMDZ is attached. Two platforms are currently supported for +the AD5592R: Raspberry Pi using the ADI Kuiper Linux and the ADICUP3029 +running the no-OS AD5592R demo project. The user needs to supply a +**URI** which will be used in the context creation. + +The :ref:`libiio iio_info` command is a part of the libIIO package that reports +all IIO attributes. + +Upon installation, simply enter the command on the terminal command line +to access it. + +For RPI Direct Local Access: +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: + + iio_info + +For Windows machine connected to Raspberry Pi: +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: + + iio_info -u ip: + +Example: + + - If your Raspberry Pi has the IP address 192.168.1.7, you have to use + *iio_info -u ip::192.168.1.7* as your URI + + .. note:: + + Do note that the Windows machine and the RPI board should be connected + to the same network in order for the machine to detect the device. + + +IIO Commands +~~~~~~~~~~~~ + +There are different commands that can be used to manage and control the +device being used. The :ref:`libiio iio_attr` command reads and writes IIO +attributes. + +.. code-block:: + + analog@analog:~$ iio_attr [OPTION]... + +Example: + + - To look at the context attributes, enter this code on the terminal: + + .. code-block:: + + analog@analog:~$ iio_attr -a -C + +The :ref:`libiio iio_reg` command reads or writes SPI or I2C registers in an +IIO device. This is +generally not needed for end applications but can be useful in debugging +drivers. Note that you need to specify a context using the *-u* +qualifier when you are not directly accessing the device via RPI or when +you are using the ADICUP3029 platform. + + .. code-block:: + + analog@analog:~$ iio_reg -u [] + +Example: + + - To read the device ID (register = 0x02) of an AD5592R interfaced via + RPI from a Windows machine, enter the following code on the terminal: + + .. code-block:: + + iio_reg -u ip: ad5592r 0x02 + +IIO Oscilloscope +~~~~~~~~~~~~~~~~ + +.. caution:: + + Make sure to download/update to the latest version of IIO-Oscilloscope + found on this :git-iio-oscilloscope:`link ` + +#. Once done with the installation or an update of the latest + IIO-Oscilloscope, open the application. The user needs to supply a + URI which will be used in the context creation of the IIO + Oscilloscope and the instructions can be seen in the previous + section. + +#. Press refresh to display available IIO Devices, once ad5592r + appeared, press connect. + + .. figure:: 5592_osc.png + :align: center + + IIO Oscilloscope Connection Screen + +Debug Panel +^^^^^^^^^^^ + +Below is the Debug panel of AD5592R wherein you can directly access the +attributes of the device. + + .. figure:: 5592_debug.png + :align: center + + IIO Oscilloscope Debug Panel for AD5592R + +DMM Panel +^^^^^^^^^ + +Access the DMM panel to see the instantaneous reading of the device +temperature and voltages. + + .. figure:: 5592_dmm.png + :align: center + + IIO Oscilloscope DMM Panel + +PyADI-IIO +~~~~~~~~~ + +:ref:`pyadi-iio` is a Python abstraction module for ADI hardware with IIO +drivers to make them easier to use. This module provides device-specific APIs +built on top of the current libIIO Python bindings. These interfaces try to +match the driver naming as much as possible without the need to understand the +complexities of libIIO and IIO. + +Follow the step-by-step procedure on how to install, configure, and set +up PyADI-IIO and install the necessary packages/modules needed by +referring to the :ref:`pyadi-iio` documentation. + +Running the example +^^^^^^^^^^^^^^^^^^^ + +After installing and configuring PYADI-IIO in your machine, you are now +ready to run Python script examples. In our case, run the +:git-pyadi-iio:`ad5592r_example.py ` +found in the examples folder. + +.. code-block:: + + D:\pyadi-iio\examples>python ad5592r_example.py + +Press enter. Input desired voltage levels and you will get these +readings. + + .. figure:: 5592_example.png + :align: center + + PyADI-IIO Example Output + +.. admonition:: Download + + Github link for the Python sample script: + :git-pyadi-iio:`AD5592R Python Example ` + +More Information and Useful Links +--------------------------------- + +- :adi:`AD5592R Product Page ` + +- :adi:`EVAL-AD5592R-PMDZ` + +- :dokuwiki:`AD5592/AD5593 Pmod ADICUP3029 Demo ` + +Schematic, PCB Layout, Bill of Materials +---------------------------------------- + +.. admonition:: Download + + :download:`EVAL-AD5592R-PMDZ Design & Integration Files ` + + - Schematics + - PCB Layout + - Bill of Materials + - Allegro Project + +Additional Information +---------------------- + +- :ref:`pyadi-iio` +- :ref:`libiio cli` +- :ref:`iio-oscilloscope` +- :external+kuiper:doc:`index` + +Registration +------------ + +Receive software update notifications, documentation updates, view the +latest videos, and more when you register your hardware. +`Register `__ +to receive all these great benefits and more! diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/interposer.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/interposer.png new file mode 100644 index 00000000000..34ffdb0bfaa --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/interposer.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e8c9336ce2374b90081c9206d4b0368efb556869e0764c93afde8dc8bfbccf3 +size 494848 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/power_led_indicator.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/power_led_indicator.png new file mode 100644 index 00000000000..1b527edeb13 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/power_led_indicator.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0efb210e168a1b2e0b56c708a8e2e6f1399ff12142cec3888b5a6ee21f56cf99 +size 66853 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/putty_5592.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/putty_5592.png new file mode 100644 index 00000000000..26dd2db0f75 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/putty_5592.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f0dbff5c849635fe6cc4f0a37391e85b3d64dbeae56f8eb4696938d7357299b +size 50963 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/setup_5592.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/setup_5592.png new file mode 100644 index 00000000000..80717d23eae --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/setup_5592.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:340115523cf3db2adaee1491ae233b1c2d59bc5322554a05d03ea295f5b7d64c +size 201728 diff --git a/docs/solutions/reference-designs/eval-ad5592R-pmdz/switch_config.png b/docs/solutions/reference-designs/eval-ad5592R-pmdz/switch_config.png new file mode 100644 index 00000000000..515bc31bcd8 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5592R-pmdz/switch_config.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f103cad14d0c4ced0533b5f4b5672a39f3e9e8d36ca63ac9aa025a5fba9caeeb +size 398336 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593-1.png b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593-1.png new file mode 100644 index 00000000000..5bf4c919725 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7721b8c88f9f7373d6eada9f62622669b8e1a257bb5f601e3ac662240f968491 +size 56541 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593-2.png b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593-2.png new file mode 100644 index 00000000000..2c8888fc6b7 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593-2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99bfc02501bab0a8f97d2f1c4a58c42321fe62841087830f8054c6a44de86d68 +size 36968 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593-3.png b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593-3.png new file mode 100644 index 00000000000..4e26a64c310 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593-3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c38722014a3fe1c9302004bb4310693af50c4d2a3601b0e278999fa1d24ca4eb +size 63414 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_debug.jpg b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_debug.jpg new file mode 100644 index 00000000000..02ed7fc6028 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_debug.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:102471a6404ab463e7eefbda9bffb01d6eed5ffed394971f7f230b9c438bea2b +size 16645 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_dmm.jpg b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_dmm.jpg new file mode 100644 index 00000000000..60211d80895 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_dmm.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0696aeb97e75c38e77476e7805aadcffba2f58d8182357557571b1c2f561b3c +size 14696 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_iio_connect.jpg b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_iio_connect.jpg new file mode 100644 index 00000000000..96b3856b062 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_iio_connect.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8e919f49e860529ba393ae56c29205ff8726d0999efb37d55410d7008982baa +size 18854 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_pyadi.jpg b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_pyadi.jpg new file mode 100644 index 00000000000..0f63a8a4dff --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_pyadi.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a48a66a6c33f3b1e6eff9ad789f298cebc121ee97cc68e3bb4e89cb1bd5a9d1 +size 31622 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_rpi.jpg b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_rpi.jpg new file mode 100644 index 00000000000..5b127d5706b --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/5593_rpi.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a701721bf936b24cbc1c3a9369a4c7da68fb8406e47d3cccaf8a701bbad69bf +size 38664 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/ad5593_example_adicup.png b/docs/solutions/reference-designs/eval-ad5593r-pmdz/ad5593_example_adicup.png new file mode 100644 index 00000000000..96db0d69619 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/ad5593_example_adicup.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba7be77c0a0927294943083a18e9e6ef1a3c7b0420637304a2774686f06e9e50 +size 123406 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/ad5593_putty.png b/docs/solutions/reference-designs/eval-ad5593r-pmdz/ad5593_putty.png new file mode 100644 index 00000000000..425eeaf76d8 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/ad5593_putty.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:991b1c57ee55ffe30e52af1df141838d43208cd943c6a96df8dce073c67b2aa5 +size 50224 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/ad5593r_block_diagram.png b/docs/solutions/reference-designs/eval-ad5593r-pmdz/ad5593r_block_diagram.png new file mode 100644 index 00000000000..31cf07a8ebb --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/ad5593r_block_diagram.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1eeffc77a354e04ea2b4fd116283640ab66d331863d702486d1f42a456791d73 +size 51587 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/aducm3029_demo_ad5592r_ad5593r.zip b/docs/solutions/reference-designs/eval-ad5593r-pmdz/aducm3029_demo_ad5592r_ad5593r.zip new file mode 100644 index 00000000000..c376b62b253 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/aducm3029_demo_ad5592r_ad5593r.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94c4e8b92f13511ef00939fde321b4fb18511ee94d9484a8e749f70e0f2776a2 +size 59125 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/daplink.jpg b/docs/solutions/reference-designs/eval-ad5593r-pmdz/daplink.jpg new file mode 100644 index 00000000000..b210c8bda10 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/daplink.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c653007a1f765e51c92aa3ee5cc552511dc2ab4065683626830bd8c2b64a355 +size 58612 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/eval-ad5593r-pmdz-designsupport.zip b/docs/solutions/reference-designs/eval-ad5593r-pmdz/eval-ad5593r-pmdz-designsupport.zip new file mode 100644 index 00000000000..dff853f7ddf --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/eval-ad5593r-pmdz-designsupport.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96d439c49a3824fc87a7338de76ac356c049724fe312100e779f4386b1e268ff +size 1480742 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/eval-ad5593r-pmdz.png b/docs/solutions/reference-designs/eval-ad5593r-pmdz/eval-ad5593r-pmdz.png new file mode 100644 index 00000000000..691b630851e --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/eval-ad5593r-pmdz.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32ef1e5f42aab5c6c0492f504d05c10b19aa6a76867436289c8f2ff8042fb6ef +size 120759 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/img_2998.jpg b/docs/solutions/reference-designs/eval-ad5593r-pmdz/img_2998.jpg new file mode 100644 index 00000000000..1b2d8e6d77b --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/img_2998.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eddab60358cb6a307a6f6934cad1436f214d1f6e36567e73516265a8d0f2ead6 +size 48372 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/img_3001.jpg b/docs/solutions/reference-designs/eval-ad5593r-pmdz/img_3001.jpg new file mode 100644 index 00000000000..1b020f03f66 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/img_3001.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f2db81df3bd05830975fe79e96d908b683cc4668602a6b8aa84eb1dd482a1dd +size 32651 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/index.rst b/docs/solutions/reference-designs/eval-ad5593r-pmdz/index.rst new file mode 100644 index 00000000000..0f9fb5d6e71 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/index.rst @@ -0,0 +1,521 @@ +.. _eval-ad5593r-pmdz: + +EVAL-AD5593R-PMDZ +================= + +8-channel, 12-Bit, Configurable ADC/DAC/GPIO with on-chip Reference, I2C +interface Pmod Module + +Overview +-------- + +:adi:`EVAL-AD5593R-PMDZ` is a minimalist 8-channel, 12-Bit, Configurable +ADC/DAC/GPIO with on-chip Reference, I2C interface Pmod module. This +board serves as a low-cost alternative to the full-featured product +evaluation boards, with terminal block connections and no extra signal +conditioning. + +.. figure:: eval-ad5593r-pmdz.png + +This user guide will focus on the hardware aspect of the +:adi:`EVAL-AD5593R-PMDZ` including the connectors, indicators, and +different configurations a user would require in order to use the +hardware. There is also a link to the design files as well as +software reference designs that use the hardware with example +embedded firmware for a real demo. + +Simplified functional block diagram +----------------------------------- + +.. figure:: ad5593r_block_diagram.png + +Connectors and Configuration +---------------------------- + +The following section reviews all the hardware connectors and how to +interface with them. It also reviews configuration options and well as +important onboard indicators. + +Analog/Digital I/O Connector (P2 & P3) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +========= ======= ======== ====================== +Connector Pin No. Pin Name Pin Description +========= ======= ======== ====================== +P2 1 CH3 Channel 3 Input/Output + 2 CH2 Channel 2 Input/Output + 3 CH1 Channel 1 Input/Output + 4 CH0 Channel 0 Input/Output + 5 GND Ground + 6 VDD Power Supply +P3 1 VREF Voltage Reference + 2 GND Ground + 3 CH7 Channel 7 Input/Output + 4 CH6 Channel 6 Input/Output + 5 CH5 Channel 5 Input/Output + 6 CH4 Channel 4 Input/Output +========= ======= ======== ====================== + +I2C Pmod Connector (P1) +~~~~~~~~~~~~~~~~~~~~~~~ + +The :adi:`EVAL-AD5593R-PMDZ` digital Pmod connector is described +in the table below. + +======= ======== ================ +Pin No. Pin Name Pin Description +======= ======== ================ +1 NC Not Connected +2 RST Reset Pin +3 SCL I2C Serial Clock +4 SDA I2C Serial Data +5 DGND Digital Ground +6 VDD Power Supply +======= ======== ================ + +Test Points +~~~~~~~~~~~ + +Users can also check the I2C signal quality and voltage supply of the +board using test points labeled RST, SCL, SDA, and VLOGIC. + +.. figure:: 5593-1.png + +Voltage Reference Configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The default connection of the AD5593R **VREF** pin is shorted at pin 1 +of the JP1 solder jumper where you can easily configure your voltage +reference input at pin 1 of terminal block P3, either from an external +source or internal 2.5 V + +.. figure:: 5593-2.png + +LED Indicator +~~~~~~~~~~~~~ + +The DS1 is the power green LED indicator of the board. + +.. figure:: 5593-3.png + +Power Supply Considerations and Configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When using the AD5593R Pmod board, the 3.3V power for the Pmod comes +directly from the host board it is connected to. The power from the host +is generally capable of providing up to 100 mA at 3.3V, but for complete +Pmod power specifications please click +:download:`here `. + +Device Driver Support +--------------------- + +There are two device driver solutions that are provided for controlling +the :adi:`EVAL-AD5593R-PMDZ`: + +#. **AD5593R no-OS Driver** + + - The :dokuwiki:`AD5593R no-OS driver ` + is used in bare-metal applications, typically running on low-power, + embedded microcontrollers. + +#. **AD5593R Linux Driver** + + - The :dokuwiki:`AD5593R Linux driver ` + is used in applications running the Linux operating system, + typically on larger processors and SoC devices. + + - The AD5593R Linux driver uses the Industrial Input/Output (IIO) + framework, greatly simplifying the development of application code + via the cross-platform Libiio library, which is written in C and + includes bindings for Python, MATLAB, C#, and other languages. + Application code can run directly on the platform board, + communicating with the device over the local backend, or from a + remote host over the network or USB backends. + +System Setup Using ADICUP3029 +----------------------------- + +The :adi:`EVAL-AD5593R-PMDZ` can be used with +:dokuwiki:`ADICUP3029 `. + +**Demo Requirements** +~~~~~~~~~~~~~~~~~~~~~ + +The following is the list of items needed in order to replicate this +demo. + +- **Hardware** + + - :adi:`EVAL-ADICUP3029` + - :adi:`EVAL-AD5593R-PMDZ` + - Micro-USB to USB Cable + - PC or Laptop with USB Port + +- **Software** + + - PuTTY or other similar software + - :download:`ADuCM3029_demo_AD5593R.hex ` + +.. important:: + + There are two basic ways to program the ADICUP3029 with the software for + the :adi:`AD5593R`. + + #. Dragging and Dropping the Hex to the DAPLink drive + + #. Using the drag and drop method, the software is going to be a + version that Analog Devices creates for testing and evaluation + purposes. This is the **EASIEST** way to get started with the + reference design. + + #. Building, Compiling, and Debugging using CCES + + #. Importing the project into + :adi:`CrossCore Embedded Studio` + is going to allow you to change parameters and customize the + software to your application, but will a bit more advanced and + will require you to download the CrossCore toolchain. + +.. admonition:: Download + + The software for the **ADICUP3029_AD5593R** demo can be found here: + + Prebuilt AD5593R Hex File + + - :download:`ADuCM3029_demo_AD5593R.hex ` + + Complete AD5593R Source Files + + - :git-eval-adicup3029:`ADuCM3029_demo_AD5593R Source Code ` + +Setting up the Hardware +~~~~~~~~~~~~~~~~~~~~~~~ + +#. Connect **EVAL-AD5593R-PMDZ** board at connector **P9** of the + **EVAL-ADICUP3029**. + + .. figure:: img_3001.jpg + +#. Connect a micro-USB cable to the P9 connector of the EVAL-ADICUP3029 + and connect it to a computer. The final setup should look similar to the + picture below. + + .. figure:: img_2998.jpg + +#. Make sure the following switches are as shown in the table + below. + + .. figure:: switch_config.png + +#. From your PC, open My Computer and look for the DAPLink drive, if you + see this then the drivers are complete and correct. + + .. figure:: daplink.jpg + :width: 600px + +#. Simply extract the provided zip file. Once extracted, you will see + the pre-built hex file for the AD5593R demo. Then drag and drop this Hex + file to the DAPLink drive and your ADICUP3029 board will be programmed. + The DS2 (red) LED will blink rapidly. + +#. The DS2 will stop blinking and will stay ON once the programming is + done. + +#. Open PuTTY or other similar software. Check the Device Manager to set + the correct COM port for the ADICUP3029. Set the baud rate to 115200. + + .. figure:: ad5593_putty.png + +#. The expected output viewed in the PuTTY is shown below. + + .. figure:: ad5593_example_adicup.png + +System Setup Using Raspberry Pi +------------------------------- + +The :adi:`EVAL-AD5593R-PMDZ` can be used with a Raspberry Pi. + +Demo Requirements +~~~~~~~~~~~~~~~~~ + +The following is a list of items needed in order to replicate this demo. + +- **Hardware** + + - :adi:`EVAL-AD5593R-PMDZ` + - :adi:`Pmod to Raspberry Pi Adapter (PMD-RPI-INTZ) ` + - Raspberry PI Zero, Zero W, 3B+, or 4 + - 16 GB (or larger) Class 10 (or faster) micro-SD card + - 5 Vdc, 2.5 A power supply with micro USB connector (USB-C power + supply for Raspberry Pi 4) + - User interface setup (choose one): + + - HDMI monitor, keyboard, and mouse plugged directly into Raspberry + Pi + - Host Windows/Linux/Mac computer on the same network as Raspberry + Pi + +- **Software** + + - :external+kuiper:doc:`index` + +Loading Image on SD Card +~~~~~~~~~~~~~~~~~~~~~~~~ + +In order to boot the Raspberry Pi and control the :adi:`EVAL-AD5593R-PMDZ`, +you will need to install ADI Kuiper Linux on an SD card. Complete +instructions, including where to download the SD card image, how to +write it to the SD card, and how to configure the system are provided on +the :external+kuiper:doc:`index`. + +Configuring the SD Card +~~~~~~~~~~~~~~~~~~~~~~~ + +Follow the configuration procedure under **Configuring the SD Card for +Raspberry Pi Projects** on the :external+kuiper:doc:`index` +page, substituting the following lines in **config.txt**: + +.. code-block:: + + dtoverlay=rpi-ad5593r + +.. warning:: + + The EVAL-AD5593R-PMDZ board has a 100k pullup resistor on the + RESET pin, which correspond to Raspberry Pi GPIO13 and GPIO17 on + PMD-RPI-INTZ P3 and P4, respectively. The default state of these + pins is input, with a weak pulldown, but it is strong enough to + pull the RESET line low. + Adding the following line to config.txt will switch to pullup: + + .. code-block:: + + gpio=13,17=pu,ip + +Setting up the Hardware +~~~~~~~~~~~~~~~~~~~~~~~ + +To set up the circuit for evaluation, consider the following steps: + +#. Connect the P9 of the **Pmod to Raspberry Pi Interposer** board at + the male header GPIO pin connector of the **Raspberry Pi** as shown + below. + + .. figure:: interposer.png + +#. Connect the :adi:`EVAL-AD5593R-PMDZ` + on the Pmod to Raspberry Pi Interposer board either via Port P3 or + P4. + + .. figure:: 5593_rpi.jpg + +#. Burn the SD card with the proper ADI Kuiper Linux image. Insert the + burned SD card into the designated slot on the RPi. + +#. Connect the system to a monitor using an HDMI cable through the mini + HDMI connector on the RPi. + +#. Connect a USB keyboard and mouse to the RPi through the USB ports. + +#. Power on the RPi board by plugging in a 5V power supply with a + micro-USB connector. The final setup should look similar to the + picture below. + + .. figure:: setup_5593.png + +Application Software (All Platforms) +------------------------------------ + +Hardware Connection +~~~~~~~~~~~~~~~~~~~ + +The Libiio is a library used for interfacing with IIO devices and is +required to be installed on your computer. + +.. admonition:: Download + + Download and Install the latest :git-libiio:`Libiio package ` + on your machine. + +To be able to connect your device, the software must be able to create a +context. The context creation in the software depends on the backend +used to connect to the device as well as the platform where the +EVAL-AD5593R-PMDZ is attached. Two platforms are currently supported for +the AD5593R: Raspberry Pi using the ADI Kuiper Linux and the ADICUP3029 +running the no-OS AD5593R demo project. The user needs to supply a +**URI** which will be used in the context creation. + +The :ref:`libiio iio_info` +command is a part of the libIIO package that reports all IIO attributes. + +Upon installation, simply enter the command on the terminal command line +to access it. + +For RPI Direct Local Access: +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: + + iio_info + +For Windows machine connected to Raspberry Pi: +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: + + iio_info -u ip: + +Example: + + - If your Raspberry Pi has the IP address 192.168.1.7, you have to use + *iio_info -u ip::192.168.1.7* as your URI + +.. note:: + + Do note that the Windows machine and the RPI board should be connected + to the same network in order for the machine to detect the device. + +IIO Commands +~~~~~~~~~~~~ + +There are different commands that can be used to manage and control the +device being used. The :ref:`libiio iio_attr` +command reads and writes IIO attributes. + +.. code-block:: + + analog@analog:~$ iio_attr [OPTION]... + +Example: + + - To look at the context attributes, enter this code on the terminal: + + .. code-block:: + + analog@analog:~$ iio_attr -a -C + +The :ref:`libiio iio_reg` +command reads or writes SPI or I2C registers in an IIO device. This is +generally not needed for end applications but can be useful in debugging +drivers. Note that you need to specify a context using the *-u* +qualifier when you are not directly accessing the device via RPI or when +you are using the ADICUP3029 platform. + +.. code-block:: + + analog@analog:~$ iio_reg -u [] + +Example: + + - To read the device ID (register = 0x02) of an AD5593R interfaced via + RPI from a Windows machine, enter the following code on the terminal: + + .. code-block:: + + iio_reg -u ip: ad5593r 0x02 + +IIO Oscilloscope +~~~~~~~~~~~~~~~~ + +.. caution:: + + Make sure to download/update to the latest version of IIO-Oscilloscope + found on this :git-iio-oscilloscope:`link `. + +#. Once done with the installation or an update of the latest + IIO-Oscilloscope, open the application. The user needs to supply a + URI which will be used in the context creation of the IIO + Oscilloscope and the instructions can be seen in the previous + section. + +#. Press refresh to display available IIO Devices, once ad5593r + appeared, press connect. + +.. figure:: 5593_iio_connect.jpg + +Debug Panel +^^^^^^^^^^^ + +Below is the Debug panel of AD5593R wherein you can directly access the +attributes of the device. + +.. figure:: 5593_debug.jpg + +DMM Panel +^^^^^^^^^ + +Access the DMM panel to see the instantaneous reading of the input +capacitances and the device temperature. + +.. figure:: 5593_dmm.jpg + +PyADI-IIO +~~~~~~~~~ + +:ref:`pyadi-iio` is a Python abstraction module for ADI hardware with +IIO drivers to make them easier to use. This module provides +device-specific APIs built on top of the current libIIO Python bindings. +These interfaces try to match the driver naming as much as possible +without the need to understand the complexities of libIIO and IIO. + +Follow the step-by-step procedure on how to install, configure, and set +up PYADI-IIO and install the necessary packages/modules needed by +referring to this link: :ref:`pyadi-iio`. + +Running the example +^^^^^^^^^^^^^^^^^^^ + +After installing and configuring PYADI-IIO in your machine, you are now +ready to run Python script examples. In our case, run the +ad5592r_example.py found in the examples folder. + +.. shell:: + + ~/pyadi-iio/examples + $ python3 ad5592r_example.py + +Press enter and you will get these readings. + +.. figure:: 5593_pyadi.jpg + :align: center + +.. admonition:: Download + + Github link for the Python sample script: + :git-pyadi-iio:`AD5593R Python Example ` + +More Information and Useful Links +--------------------------------- + +- :adi:`AD5593R` +- :adi:`EVAL-AD5593R-PMDZ` +- :dokuwiki:`AD5592/AD5593 Pmod ADICUP3029 Demo ` + +Schematic, PCB Layout, Bill of Materials +---------------------------------------- + +.. admonition:: Download + + :download:`EVAL-AD5593R-PMDZ Design & Integration Files ` + + - Schematics + - PCB Layout + - Bill of Materials + - Allegro Project + +Additional Information +---------------------- + + - :git-pyadi-iio:`pyADI-IIO ` + - :ref:`pyadi-iio` + - :ref:`iio-oscilloscope` + - :external+kuiper:doc:`index` + +Registration +------------ + +Receive software update notifications, documentation updates, view the +latest videos, and more when you register your hardware. +`Register `__ +to receive all these great benefits and more! diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/interposer.png b/docs/solutions/reference-designs/eval-ad5593r-pmdz/interposer.png new file mode 100644 index 00000000000..34ffdb0bfaa --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/interposer.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e8c9336ce2374b90081c9206d4b0368efb556869e0764c93afde8dc8bfbccf3 +size 494848 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/pmod-interface-specification-1_3_1.pdf b/docs/solutions/reference-designs/eval-ad5593r-pmdz/pmod-interface-specification-1_3_1.pdf new file mode 100644 index 00000000000..87890c0f995 Binary files /dev/null and b/docs/solutions/reference-designs/eval-ad5593r-pmdz/pmod-interface-specification-1_3_1.pdf differ diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/setup_5593.png b/docs/solutions/reference-designs/eval-ad5593r-pmdz/setup_5593.png new file mode 100644 index 00000000000..fd3a49e52e4 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/setup_5593.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a9b956e8170c88981174dd5591d30f24f19791e3fa037c802841e62cc24d8c1 +size 200469 diff --git a/docs/solutions/reference-designs/eval-ad5593r-pmdz/switch_config.png b/docs/solutions/reference-designs/eval-ad5593r-pmdz/switch_config.png new file mode 100644 index 00000000000..515bc31bcd8 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5593r-pmdz/switch_config.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f103cad14d0c4ced0533b5f4b5672a39f3e9e8d36ca63ac9aa025a5fba9caeeb +size 398336 diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/ad7124-8_functional_block_diagram.png b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/ad7124-8_functional_block_diagram.png new file mode 100644 index 00000000000..f99cc6abca5 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/ad7124-8_functional_block_diagram.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a352cfe37c9c00bb2a377c4a7d0b7b6d77e824c86dee953f0ca8a3532bddce09 +size 57387 diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/ad71248pmdz_terminal_sample.png b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/ad71248pmdz_terminal_sample.png new file mode 100644 index 00000000000..7ef0eb6965d --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/ad71248pmdz_terminal_sample.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72f721a89aca04fd06c04dbe88170e9f34a527e021d497d8cc1b2b807d3d4af3 +size 77266 diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/ad7124_pmod_plug.jpg b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/ad7124_pmod_plug.jpg new file mode 100644 index 00000000000..ede3e9fea0e --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/ad7124_pmod_plug.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8a522d8ee6c9f0a381acc8ca0af8ed1a1d405ce9d9ca2c93ca681bbb48beb97 +size 1528147 diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/ad7124_pmod_unplug.jpg b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/ad7124_pmod_unplug.jpg new file mode 100644 index 00000000000..c29b65d49be --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/ad7124_pmod_unplug.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6c4b23c507dc4c7b012f297dd163e2546e553b3876bef97192c007f2cf3245c +size 1553814 diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/ad7124pmdz_file_structure.png b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/ad7124pmdz_file_structure.png new file mode 100644 index 00000000000..7fe9e82c415 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/ad7124pmdz_file_structure.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6aad9f3a6e0c6c326cba8bdb9c5404420ee877dcc3605f1e833bee33eb81135 +size 15849 diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/available-commands.csv b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/available-commands.csv new file mode 100644 index 00000000000..ca822ba2afa --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/available-commands.csv @@ -0,0 +1,29 @@ +Function,Command,Description,Example +General commands,,, +Help,h,Display available commands., +Reset,rst,Reset the application.,rst dev - perform only device reset (datasheet defaults); +,, = 'dev' to perform only a device reset; do not include to perform an application reset.,rst - perform application reset (application defaults). +ADC commands,,, +Register read,arr,Read an ADC register of a specific address.,arr 2a - Read register 0x2A +,, = Address of the register to be read in hexadecimal base., +Register write,awr,Write an ADC register of a specific address with a new value.,arw 9 8002 - Write 0x8002 to register 0x9. +,, = Address of the register to be written in hexadecimal base., +,, = New value of the register., +Get data,ags,Get a number of samples per enabled channels. If the operation takes too long press 'q' to abort., +,, = Number of samples (maximum 2048). If sample rate is smaller than 3000 setting the argument 0 or no argument means continuous streaming., +Enable channels,aces,Choose ADC channels to be activated.,aces 0xAAAA - activate every other channel. '0x' is necessary for hexadecimal interpretation. +,, = 16-bit mask of the channels to be activated. Can be hexadecimal or binary., +,,"A bit of 1 means activated the channel, a bit of 0 means deactivate the channel.", +Get enabled channels,aceg,"Get enable status of ADC channels. Returns a hexadecimal 16-bit mask where bits of 1 represent enabled channels, and bits of 0 represent disabled channels.", +Set PGA,aps,Set PGA for a channel.,"aps 0 opt3 - set ADC channel 0 to PGA 3, gain value of 8." +,, = ID of the channel to be changed., +,," = PGA option; values are: opt0, opt1, … opt7 corresponding to the datasheet.", +Get PGA,apg,"Display a channel's PGA option; return values are: opt0, opt1, … opt7 corresponding to the datasheet.",apg 0 - read the PGA value of channel 0. +,, = ID of the channel to be read., +Set sample,aos,"Set ADC sample rate. Filter option, power mode and reference clock must be taken into consideration.",aos 2000 - set sample rate to 2000 samples per second. +rate,, = New sample rate value., +Get sample rate,aog,Read the current sample rate., +Set filter option,afs,Set ADC filter option.,afs fflt4 - set filter option to fast settling sinc4. +,," = filter option; can be: 'sinc4', 'sinc3', 'fflt4', 'fflt3' and 'postf'.", +,," = post-filter option; can be: 'opt0', 'opt1', … 'opt3'; add only when opt=postf.", +Get filter option,afg,Read the current filter., diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/device_manager.png b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/device_manager.png new file mode 100644 index 00000000000..ce80b808063 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/device_manager.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19c2868555efbe0950307b821793f5df3245ef82ba795e4991cc7ed181033995 +size 50627 diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/index.rst b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/index.rst new file mode 100644 index 00000000000..71857872743 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/index.rst @@ -0,0 +1,269 @@ +.. _eval-ad7124-8-pmdz demo: + +EVAL-AD7124-8-PMDZ Demo Project +=============================== + +The **ADuCM3029_demo_ad7124_8PMDZ** project provides a solution to control the +:adi:`AD7124-8` ADC on the :adi:`EVAL-AD7124-8-PMDZ` Pmod Board using a simple CLI +on the **USB**. The demo showcases the flexibility of the AD7124 in choosing +inputs, filters and different ranges for the available 16 channels. + +General Description +------------------- + +The :adi:`EVAL-AD7124-8-PMDZ` is a minimalist 8-Channel, Low Noise, Low Power, +24-bit, Sigma-Delta ADC (Analog to Digital Converter) with PGA and Reference, +SPI Pmod board for the :adi:`AD7124-8`. This module is designed +as a low-cost alternative to the fully-featured :adi:`AD7124-8` +evaluation board and has no extra signal conditioning for the ADC. + +The initial configuration of the **ADuCM3029_demo_ad7124_8PMDZ** engages all +inputs in a mix of differential and single-ended channels. The input assignation +to channels is the following: + +- Channel 0: AIN0-AIN1, differential; +- Channel 1: AIN2-AIN3, differential; +- Channel 2: AIN4-AIN5, differential; +- Channel 3: AIN6-AIN7, differential; +- Channel 4: AIN8-AIN9, differential; +- Channel 5: AIN10-AIN11, differential; +- Channel 6: AIN12-AIN13, differential; +- Channel 7: AIN14-AIN15, differential; +- Channel 8: AIN0-AGND, single-ended; +- Channel 9: AIN1-AGND, single-ended; +- Channel 10: AIN2-AGND, single-ended; +- Channel 11: AIN3-AGND, single-ended; +- Channel 12: AIN4-AGND, single-ended; +- Channel 13: AIN5-AGND, single-ended; +- Channel 14: AIN6-AGND, single-ended; +- Channel 15: AIN7-AGND, single-ended; + +By default only channel 0 is active at first, but this can be adjusted using the +appropriate CLI commands (described below). At first all channels are using the +configuration register 0 which is set to sinc4 filter option and the first +option of PGA corresponding to the widest range. The filter sample rate is set +at maximum. Each configuration register has a different PGA setting so that each +channel can be set using the CLI to any PGA. The demo does this by assigning +each channel to the corresponding configuration register that contains the +desired PGA setting. Most of the demo CLI commands work in this configuration, +but the CLI also offers access to the individual registers for the user to set +the desired configuration manually. + +Demo Requirements +----------------- + +The following is a list of items needed in order to replicate this demo. + +**Hardware** + + - :adi:`EVAL-ADICUP3029` + - :adi:`EVAL-AD7124-8-PMDZ` + - Micro USB to USB cable + - PC or Laptop with a USB port + +**Software** + + - :git-EVAL-ADICUP3029:`ADuCM3029_demo_ad7124_8PMDZ demo application ` + - CrossCore Embedded Studio (2.9.1 or higher) + - ADuCM302x DFP (3.2.0 or higher) + - ADICUP3029 BSP (1.1.0 or higher) + - Serial Terminal Program + + - Such as Putty or TeraTerm + +Setting up the Hardware +----------------------- + +#. Connect **EVAL-AD7124-8-PMDZ** board to the **EVAL-ADICUP3029**. + + .. figure:: ad7124_pmod_unplug.jpg + + EVAL-AD7124-8-PMDZ and EVAL-ADICUP3029 before connection + +#. Connect a micro-USB cable to P10 connector of the **EVAL-ADICUP3029** and connect + it to a computer. The final setup should look similar to the picture below. + + .. figure:: ad7124_pmod_plug.jpg + + EVAL-AD7124-8-PMDZ connected to EVAL-ADICUP3029 + +Configuring the Software +------------------------ + +The software needs no configuration. + +Outputting Data +--------------- + +Serial Terminal Setup +~~~~~~~~~~~~~~~~~~~~~ + +A serial terminal is an application that runs on a PC or laptop that is +used to display data and interact with a connected device +(including many of the Circuits from the Lab reference designs). The +device’s UART peripheral is most often connected to a UART to USB interface +IC, which appears as a traditional COM port on the host PC/ laptop. +(Traditionally, the device’s UART port would have been connected to an RS-232 +line driver / receiver and connected to the PC via a 9-pin or 25-pin serial +port.) There are many open-source applications, and while there are many +choices, typically we use one of the following: + +- `TeraTerm `__ +- `Putty `__ +- `Real Term `__ + +Before continuing, please make sure you download and install one of the above +programs. + +There are several parameters on all serial terminal programs that must be +setup properly in order for the PC and the connected device to communicate. +Below are the common settings that must match on both the PC side and the +connected UART device. + +#. **COM Port** - This is the physical connection made to your PC or laptop, + typically made through a USB cable but can be any serial communications + cable. You can determine the COM port assigned to your device by visiting the + device manager on your computer. Another method for identifying which COM + port is associated with a USB-based device is to look at which COM ports are + present before plugging in your device, then plug in your device, and look + for a new COM port. +#. **Baud Rate** - This is the speed at which data is being transferred from the + connected device to your PC. These parameters must be the same on both + devices or data will be corrupted. The default setting for most of the + reference designs in 115200. +#. **Data Bits** - The number of data bits per transfer. Typically, UART + transmits ASCII codes back to the serial port so by default this is almost + always set to 8-Bits. +#. **Stop Bits** - The number of **“stop”** conditions per transmission. This + is typically set to 1, but can be set to 2 for redundancy.. +#. **Parity** - Is a way to check for errors during the UART transmission. + Unless otherwise specified, set parity to **“none”**. +#. **Flow Control** - Is a way to ensure that data lose between fast and slow + devices on the same UART bus are not lost during transmission. This is + typically not implemented in a simple system, and unless otherwise specified, + set to **“none”**. + +In many instances there are other options that each of the different serial +terminal applications provide, such as **local line echo** or **local line +editing**, and features like this can be turned on or off depending on your +preferences. This setup guide will not go over all the options of each tool, +but just the minor features that will make it easier to read back data from +the connected devices. + +Example Setup using PuTTY +^^^^^^^^^^^^^^^^^^^^^^^^^ + +#. Plug in your connected device using a USB cable or other serial cable. +#. Wait for the device driver of the connected device to install on your PC or + Laptop. +#. Open your device manager, and find out which COM port was assigned to your + device. + + .. figure:: device_manager.png + + Windows Device Manager showing COM port + +#. Open up your serial terminal program (e.g., PuTTY). +#. Click on the serial configuration tab or window, and input the settings to + match the requirements of your connected device. The default baud rate for + most of the reference designs is 115200. Make sure that you use the correct + baud rate for your application. + + .. figure:: putty_serial_config.png + + PuTTY serial configuration + +#. Ensure you click on the checkboxes for **Implicit CR in every LF** and + **Implicit LF in every CF**. + +#. Ensure that local echo and line editing are enabled, so that you can see what + you type and are able to correct mistakes. (Some devices may echo typed + characters - if so, you will see each typed character twice. If this happens, + turn off local echo.) + + .. figure:: putty_terminal_options.png + :width: 600 + + PuTTY terminal options + +#. Click on the ``Open`` button, and as long as your connected device and serial + terminal program are setup the same, then you should be able to start + entering commands. + +Available Commands +~~~~~~~~~~~~~~~~~~ + +Typing **help** or **h** after initial calibration sequence will display the +list of commands and their short versions. Below is the short command list: + +.. csv-table:: Available Commands + :file: available-commands.csv + +.. figure:: ad71248pmdz_terminal_sample.png + + Terminal output sample + +Obtaining the Software +---------------------- + +There are two basic ways to program the EVAL-ADICUP3029 with the software for the +AD7124-8 PMOD. + +#. Dragging and Dropping the .Hex to the DAPLINK drive +#. Building, Compiling, and Debugging using CCES + +Using the drag and drop method, the software is going to be a version that +Analog Devices creates for testing and evaluation purposes. This is the EASIEST +way to get started with the reference design. + +Importing the project into CrossCore is going to allow you to change parameters +and customize the software to fit your needs, but will be a bit more advanced +and will require you to download the CrossCore toolchain. + +The software for the **ADuCM3029_demo_ad7124_8PMDZ** can be found here: + +.. admonition:: Download + + Prebuilt AD7124-8 Pmod Hex File + + - :git-EVAL-ADICUP3029:`ADuCM3029_demo_ad7124_8PMDZ.Hex ` + + Complete AD7124-8 Pmod Source Files + + - :git-EVAL-ADICUP3029:`ADuCM3029_demo_ad7124_8PMDZ Source Code ` + +How to Use the Tools +-------------------- + +The official tool we promote for use with the EVAL-ADICUP3029 is CrossCore +Embedded Studio. For more information on downloading the tools and a quick start +guide on how to use the tool basics, please check out the +:dokuwiki:`Tools Overview page `. + +Importing +~~~~~~~~~ + +For more detailed instructions on importing this application/demo example into +the CrossCore Embedded Studios tools, please view our +:dokuwiki:`How to import existing projects into your workspace ` +section. + +Debugging +~~~~~~~~~ + +For more detailed instructions on importing this application/demo example into +the CrossCore Embedded Studios tools, please view our +:dokuwiki:`How to configure the debug session ` +section. + +Project Structure +~~~~~~~~~~~~~~~~~ + +The application contains the platform drivers with the sources in +**platform_source** and the headers in **platform_include**. In the **src** root +directory there is the ad7124 driver as found on GitHub, but with a custom +initialization vector in **ad7124_regs** module. + +.. figure:: ad7124pmdz_file_structure.png + + AD7124 PMDZ project file structure diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/putty_serial_config.png b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/putty_serial_config.png new file mode 100644 index 00000000000..5cab31eb6a8 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/putty_serial_config.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d024e956e422405c14d68fef19702409e61624021e76d7253fdc3f5f93164719 +size 17549 diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/putty_terminal_options.png b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/putty_terminal_options.png new file mode 100644 index 00000000000..82fd2b67f0b --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/demo/putty_terminal_options.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17e1c40f9951c06bef740d5e918377b859b18f36f4081fd86c1d550acf9b8a76 +size 74121 diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/eval-ad7124-8-pmdzbottom.jpg b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/eval-ad7124-8-pmdzbottom.jpg new file mode 100644 index 00000000000..acacc40da93 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/eval-ad7124-8-pmdzbottom.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8720fa8bf8f446efcc547d1ba6ed22539f7bccd49b2102dea9075f280908780b +size 2260947 diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/eval-ad7124-8-pmdztop.jpg b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/eval-ad7124-8-pmdztop.jpg new file mode 100644 index 00000000000..7260a42ed5e --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/eval-ad7124-8-pmdztop.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9c7f5199a78e97189c7658afa6f697ca3832246e5bdd907c7dcc28be3472ce0 +size 2320856 diff --git a/docs/solutions/reference-designs/eval-ad7124-8-pmdz/index.rst b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/index.rst new file mode 100644 index 00000000000..39825f6e59f --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad7124-8-pmdz/index.rst @@ -0,0 +1,228 @@ +EVAL-AD7124-8-PMDZ +================== + +8-Channel, Low Noise, Low Power, 24-Bit, Sigma-Delta ADC with PGA and Reference Pmod Board + +Overview +-------- + +The :adi:`EVAL-AD7124-8-PMDZ` is a minimalist 8-channel, low noise, +low power, 24-bit, sigma-delta ADC with PGA and reference, SPI Pmod board +for the :adi:`AD7124-8`. This module is designed as a low-cost +alternative to the fully-featured :adi:`AD7124-8` evaluation board +and has no extra signal conditioning for the ADC. + +All pins of the :adi:`AD7124-8` are exposed, which makes the +:adi:`EVAL-AD7124-8-PMDZ` very flexible and easy to use. + +.. figure:: eval-ad7124-8-pmdztop.jpg + :width: 600 + + EVAL-AD7124-8-PMDZ Top View + +Functional Block Diagram +------------------------ + +.. figure:: ad7124-8_functional_block_diagram.png + + AD7124-8 Functional Block Diagram + +About the AD7124-8 +------------------ + +The :adi:`AD7124-8` is a low power, low noise, completely integrated +analog front end for high precision measurement applications. The device +contains a low noise, 24-bit ΣΔ analog-to-digital converter (ADC), and can be +configured to have 8 differential inputs or 15 single-ended or +pseudo-differential inputs. The on-chip programmable gain amplifier (PGA) allows +small amplitude signals to be interfaced directly to the ADC. + +One of the major advantages of the :adi:`AD7124-8` is that it gives +the user the flexibility to employ one of three integrated power modes. The +current consumption, range of output data rates, and RMS noise can be tailored +with the power mode selected. The device also offers a multitude of filter +options, ensuring that the user has the highest degree of flexibility. + +The :adi:`AD7124-8` establishes the highest degree of signal chain +integration. The device includes a precision, low noise, low drift internal +bandgap reference, and accepts an external differential reference, which can be +internally buffered. Other key integrated features include programmable low +drift excitation current sources, burnout detection currents, and a bias voltage +generator, which sets the common-mode voltage of a channel to AVDD/2. The +low-side power switch enables the user to power down bridge sensors between +conversions, ensuring the absolute minimal power consumption of the system. The +device also allows the user the option of operating with either an internal +clock or an external clock. + +The integrated channel sequencer allows several channels to be enabled +simultaneously, and the :adi:`AD7124-8` sequentially converts on +each enabled channel, simplifying communication with the device. As many as 16 +channels can be enabled at any time, where a channel is defined as an analog +input or a diagnostic function such as a power supply check or a reference +check. This unique feature allows diagnostics to be interleaved with +conversions. The :adi:`AD7124-8` also supports per channel +configuration. The device allows eight configurations or setups. Each +configuration consists of PGA gain, filter type, output data rate, buffering, +and reference source. The user can assign any of these setups on a +channel-by-channel basis. + +The :adi:`AD7124-8` also has extensive diagnostic functionality +integrated as part of its comprehensive feature set. These diagnostics include a +cyclic redundancy check (CRC) on the SPI data, signal chain checks, and serial +interface checks, which lead to a more robust solution. These diagnostics reduce +the need for external components to implement diagnostics, resulting in reduced +board space needs, reduced design cycle times and cost savings. The failure +modes effects and diagnostic analysis (FMEDA) of a typical application has shown +a safe failure fraction (SFF) greater than 90% according to IEC 61508. + +The device operates with a single analog power supply from 2.7V to 3.6V or a +dual 1.8V power supply. The digital supply has a range of 1.65V to 3.6V, +eliminating the need for external logic level shifters. + +Connectors and Configuration +---------------------------- + +By default, the :adi:`EVAL-AD7124-8-PMDZ` is configured to +be controlled and power from the Pmod connector using standard connections. So +no additional configuration is required, unless you want to customize it. + +AD7124-8 Inputs/Outputs Connections +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +All the analog and digital input/output pins available on the +:adi:`EVAL-AD7124-8-PMDZ` are brought out to two (2) +separate 16 row 0.1” gold plated through holes. + +============ =========== ============ ========= +Connector P2 Connector P3 +============ =========== ============ ========= +Description Pin(s) Description Pin(s) +GND 1, 3, 5, 16 GND 1, 14, 16 +AVSS 2 REFIN1(-) 2 +IOVDD 4 AIN8 3 +CLK 6 AIN9 4 +AIN0 7 AIN10 5 +AIN1 8 AIN11 6 +AIN2 9 AIN12 7 +AIN3 10 AIN13 8 +AIN4 11 AIN14 9 +AIN5 12 AIN15 10 +AIN6 13 REFOUT 11 +AIN7 14 SYNC 12 +REFIN1(+) 15 PSW 13 +\ AVDD 15 +============ =========== ============ ========= + +.. note:: + Not all pins require inputs. The following pins are exposed and + can be used if necessary if they are first disconnected from their default + onboard connection if that connection exists. (AVSS, AVDD, REFIN1(+), REFIN1(-), + CLK, REFOUT, SYNC, PSW). Please refer to the datasheet to learn more about their + function. + +Digital Communications +~~~~~~~~~~~~~~~~~~~~~~ + +The Digital communication on the :adi:`EVAL-AD7124-8-PMDZ` is accomplished using a +standard expanded SPI Pmod port. + +**Connector P1** + ++----------------+---------+ +| Description | Pin(s) | ++================+=========+ +| CS | 1 | ++----------------+---------+ +| SDIN | 2 | ++----------------+---------+ +| SDO | 3 | ++----------------+---------+ +| SCLK | 4 | ++----------------+---------+ +| GND | 5, 11 | ++----------------+---------+ +| IOVDD | 6, 12 | ++----------------+---------+ +| SDO | 7 | ++----------------+---------+ +| Open or SDO | 8 | ++----------------+---------+ +| Open or SDO | 9 | ++----------------+---------+ +| Open or SDO | 10 | ++----------------+---------+ + +Solder Jumpers +~~~~~~~~~~~~~~ + +Eight solder jumpers are available at the bottom of the board, if you want to +change the operating modes. See the schematic for more details. + +.. figure:: eval-ad7124-8-pmdzbottom.jpg + :width: 600 + + EVAL-AD7124-8-PMDZ Bottom View + ++------------------------------------------+---------------+------------------+ +| Description and default connection | Solder Jumper | Default Position | ++==========================================+===============+==================+ +| ADC REFIN1(-) connection (connect GND | P4 | Shorted | +| and P3 pin 2) | | | ++------------------------------------------+---------------+------------------+ +| ADC REFIN1(+) connection (connect ADC | P7 | Shorted | +| REFOUT and P2 pin 15) | | | ++------------------------------------------+---------------+------------------+ +| ADC AVDD connection (connect ADC IOVDD | P5 | Shorted | +| and P3 pin 15) | | | ++------------------------------------------+---------------+------------------+ +| ADC AVSS connection (connect GND and P2 | P6 | Shorted | +| pin 2) | | | ++------------------------------------------+---------------+------------------+ +| ADC SDO connection (connected to P1 pin | P8 | Shorted | +| 7, default) | | | ++------------------------------------------+---------------+------------------+ +| ADC SDO connection (connected to P1 pin | P9 | Open | +| 8) | | | ++------------------------------------------+---------------+------------------+ +| ADC SDO connection (connected to P1 pin | P10 | Open | +| 9) | | | ++------------------------------------------+---------------+------------------+ +| ADC SDO connection (connected to P1 pin | P11 | Open | +| 10) | | | ++------------------------------------------+---------------+------------------+ + +Test Points +~~~~~~~~~~~ + +Also, four test points are available to probe the SPI interface. + +Schematic, PCB Layout, Bill of Materials +---------------------------------------- + +.. admonition:: Download + + :adi:`EVAL-AD7124-8-PMDZ Design & Integration Files ` + + - Schematic + - PCB Layout + - Bill of Materials + - Allegro Project + +Additional Information and Useful Links +--------------------------------------- + +- :adi:`AD7124-8 Product Page ` + +Reference Demos & Software +-------------------------- + +- :ref:`eval-ad7124-8-pmdz demo` +- :dokuwiki:`AD7124 IIO Sigma-Delta ADC Linux Driver ` +- :dokuwiki:`AD7124 No-OS Software ` +- :git-no-OS:`projects/ad7124-8pmdz` + +.. toctree:: + :titlesonly: + :glob: + + */index diff --git a/docs/solutions/reference-designs/eval-ad9081/index.rst b/docs/solutions/reference-designs/eval-ad9081/index.rst index c353541538b..e06b1699d33 100644 --- a/docs/solutions/reference-designs/eval-ad9081/index.rst +++ b/docs/solutions/reference-designs/eval-ad9081/index.rst @@ -3,8 +3,7 @@ AD9081 & AD9082 =============================================================================== -MxFE™ Quad, 16-Bit, 12GSPS RFDAC and Quad, 12-Bit, 4/6 GSPS RFADC -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +MxFE™ Quad, 16-Bit, 12GSPS RFDAC and Quad, 12-Bit, 4/6 GSPS RFADC. .. image:: ../images/ad9081.webp :align: left @@ -103,7 +102,7 @@ Table of contents #. Using the :ref:`ZCU102/Zynq UltraScale+ MP SoC ` - #. Configure an SD Card with :external+adi-kuiper-gen:doc:`Kuiper ` + #. Configure an SD Card with :external+kuiper:doc:`Kuiper ` #. Linux Applications diff --git a/docs/solutions/reference-designs/eval-ad9081/quickstart/a10soc.rst b/docs/solutions/reference-designs/eval-ad9081/quickstart/a10soc.rst index 324aaabaf5e..a8e94443e59 100644 --- a/docs/solutions/reference-designs/eval-ad9081/quickstart/a10soc.rst +++ b/docs/solutions/reference-designs/eval-ad9081/quickstart/a10soc.rst @@ -63,7 +63,7 @@ here: Required software ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- microSD Card 16GB imaged with :external+adi-kuiper-gen:doc:`Kuiper ` +- microSD Card 16GB imaged with :external+kuiper:doc:`Kuiper ` (check out that guide on how to do it, then come back to this section) - A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1) diff --git a/docs/solutions/reference-designs/eval-ad9081/quickstart/vck190.rst b/docs/solutions/reference-designs/eval-ad9081/quickstart/vck190.rst index 60dee13b9a2..a0b9b4c52b3 100644 --- a/docs/solutions/reference-designs/eval-ad9081/quickstart/vck190.rst +++ b/docs/solutions/reference-designs/eval-ad9081/quickstart/vck190.rst @@ -45,7 +45,7 @@ here: Required Software ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- SD Card 16GB imaged with :external+adi-kuiper-gen:doc:`Kuiper ` +- SD Card 16GB imaged with :external+kuiper:doc:`Kuiper ` - An UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1) - SD card imaged with the System Controller image: :xilinx:`Image ` diff --git a/docs/solutions/reference-designs/eval-ad9081/quickstart/vcu118.rst b/docs/solutions/reference-designs/eval-ad9081/quickstart/vcu118.rst index fca12fbcbd5..ea7114e6d1c 100644 --- a/docs/solutions/reference-designs/eval-ad9081/quickstart/vcu118.rst +++ b/docs/solutions/reference-designs/eval-ad9081/quickstart/vcu118.rst @@ -40,7 +40,7 @@ here: Required Software ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- SD Card 16GB imaged with :external+adi-kuiper-gen:doc:`Kuiper ` +- SD Card 16GB imaged with :external+kuiper:doc:`Kuiper ` (check out that guide on how to do it, then come back to this section) - A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1) diff --git a/docs/solutions/reference-designs/eval-ad9081/quickstart/zc706.rst b/docs/solutions/reference-designs/eval-ad9081/quickstart/zc706.rst index 144acda4bb4..1f1d731af55 100644 --- a/docs/solutions/reference-designs/eval-ad9081/quickstart/zc706.rst +++ b/docs/solutions/reference-designs/eval-ad9081/quickstart/zc706.rst @@ -40,7 +40,7 @@ here: Required Software ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- SD Card 16GB imaged with :external+adi-kuiper-gen:doc:`Kuiper ` +- SD Card 16GB imaged with :external+kuiper:doc:`Kuiper ` (check out that guide on how to do it, then come back to this section) - A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1) diff --git a/docs/solutions/reference-designs/eval-ad9081/quickstart/zcu102.rst b/docs/solutions/reference-designs/eval-ad9081/quickstart/zcu102.rst index 98c5cdfc683..7b9e2e82d08 100644 --- a/docs/solutions/reference-designs/eval-ad9081/quickstart/zcu102.rst +++ b/docs/solutions/reference-designs/eval-ad9081/quickstart/zcu102.rst @@ -40,7 +40,7 @@ here: Required Software ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- SD Card 16GB imaged with :external+adi-kuiper-gen:doc:`Kuiper ` +- SD Card 16GB imaged with :external+kuiper:doc:`Kuiper ` (check out that guide on how to do it, then come back to this section) - A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1) diff --git a/docs/solutions/reference-designs/eval-adbms6830bmsw/EVAL-ADBMS6830BMSW-designsupport.zip b/docs/solutions/reference-designs/eval-adbms6830bmsw/eval-adbms6830bmsw-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/eval-adbms6830bmsw/EVAL-ADBMS6830BMSW-designsupport.zip rename to docs/solutions/reference-designs/eval-adbms6830bmsw/eval-adbms6830bmsw-designsupport.zip diff --git a/docs/solutions/reference-designs/eval-adbms6830bmsw/index.rst b/docs/solutions/reference-designs/eval-adbms6830bmsw/index.rst index bf4d250aba7..09817532a0a 100644 --- a/docs/solutions/reference-designs/eval-adbms6830bmsw/index.rst +++ b/docs/solutions/reference-designs/eval-adbms6830bmsw/index.rst @@ -3,8 +3,7 @@ EVAL-ADBMS6830BMSW =================== -16-Channel Battery Stack Monitor Evaluation Board for Broad Market Applications -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +16-Channel Battery Stack Monitor Evaluation Board for Broad Market Applications. Overview -------- @@ -380,7 +379,7 @@ Design & Integration Files .. admonition:: Download - :download:`EVAL-ADBMS6830BMSW Design Support Package ` + :download:`EVAL-ADBMS6830BMSW Design Support Package ` - Schematic - PCB Layout diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/ad-imp2501dbz-sl.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/ad-imp2501dbz-sl.png new file mode 100644 index 00000000000..171301a1d69 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/ad-imp2501dbz-sl.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:637a9dbb9909a4935e47f8bf2746adcccc1e6ef4960816137229c70b996e77d3 +size 141252 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/ad-imp2501ebz-sl_pinout.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/ad-imp2501ebz-sl_pinout.png new file mode 100644 index 00000000000..5a6ec5c21a9 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/ad-imp2501ebz-sl_pinout.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fa881bcac45ae8e753df9af3a2dbba34d7e9b873cd85b4a06fc7d3cff716d9b +size 137003 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/adi_license.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/adi_license.png new file mode 100644 index 00000000000..1427636728e --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/adi_license.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5417c9982bae001a1b04d24c2da84ff043299c587e3dbcaae71265072612ad48 +size 117863 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/adi_sw_download.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/adi_sw_download.png new file mode 100644 index 00000000000..451015c9e16 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/adi_sw_download.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e25e3450140ac97fbd1515a00c961435ec812e267917c468efd1ee4851ed7a8 +size 77115 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/command_timing_diagram.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/command_timing_diagram.png new file mode 100644 index 00000000000..96a365baecf --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/command_timing_diagram.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad7ea9724c75938b7af594dac8b4888a2b293f3d88fe49b0eb93bcdc3daf06a1 +size 86464 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/daplink_drive.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/daplink_drive.png new file mode 100644 index 00000000000..8962b3c40d3 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/daplink_drive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b3cf436a93ef0bd00b0c2f5d943bb67e38edd58cf1abe5d3aebaf24bb63c20a +size 30243 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/device_manager_com_port.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/device_manager_com_port.png new file mode 100644 index 00000000000..ec93b748675 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/device_manager_com_port.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:159920f21df51f9af9558af178367c15ea13640dd45d2bec2ab49538a2b38883 +size 130471 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/eval-ad-imp2501-sl_block_diagram.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/eval-ad-imp2501-sl_block_diagram.png new file mode 100644 index 00000000000..a64b9123272 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/eval-ad-imp2501-sl_block_diagram.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f3fc1eace660612e34521f65f2df2f70941824e28c8436b049727f908bb8d11 +size 110519 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/eval-admx2001ebz_diagram_3.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/eval-admx2001ebz_diagram_3.png new file mode 100644 index 00000000000..c097ba54bd2 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/eval-admx2001ebz_diagram_3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef7d2b3c484725d46f7621a9939249642063aee8731f5cfff73eb3299d8b3987 +size 80103 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_compensation.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_compensation.png new file mode 100644 index 00000000000..f6408e19b36 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_compensation.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:501b9a37a12aa8009d82745b7805aec57de4c495ecbbeb3d3aa5a32427e050bc +size 458463 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_get_default.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_get_default.png new file mode 100644 index 00000000000..2107c28e38e --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_get_default.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e9d46f6329ee1838e28a1a552acf7398878b2318eb1125d29d44ff186ffa826 +size 11173 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_hardware_setup.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_hardware_setup.png new file mode 100644 index 00000000000..5b0d51ec555 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_hardware_setup.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f14beff89464051885042bca55347f84681a773dc7422b15d7ad3bedc27d352d +size 54333 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_help_command_page1.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_help_command_page1.png new file mode 100644 index 00000000000..44bf2598b51 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_help_command_page1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16497519c9a72a5aeeba811a652a1f2161b16edfd863273b712de68157b6d335 +size 31052 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_help_command_page2.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_help_command_page2.png new file mode 100644 index 00000000000..c634d04fdbb --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_help_command_page2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:baa29a23e704698bbfa9c41d2b6e58c936893d05f5dabc7f1a1c071aaa9e2629 +size 30363 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_jumper_positions.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_jumper_positions.png new file mode 100644 index 00000000000..f18d4485736 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_jumper_positions.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18f9a1f09a952f02131dfa7a5f8fafebb39cbeaa59b4285fc4aa75b2ce8c5f0d +size 3032534 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_open_short_load.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_open_short_load.png new file mode 100644 index 00000000000..a23ff084932 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/fishercat_open_short_load.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86f86ce87d413c29977a6b75a752b1f4202fe237dff3b1fcb3491d6c846f6b9c +size 2026665 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/fw_download.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/fw_download.png new file mode 100644 index 00000000000..c7d5193abe7 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/fw_download.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8f381aca91b0c436595c593944f8dd65e0f6d77296aaaa1c677e9ac5672e6cf +size 25214 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/fw_fail.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/fw_fail.png new file mode 100644 index 00000000000..ce623cf126d --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/fw_fail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d4da4042f8ccd3b2920b9d8d543657b8333cc2ae78900b40f8d0e65283b48eb +size 88384 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/open_short_load_config.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/open_short_load_config.png new file mode 100644 index 00000000000..c011f28fa11 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/open_short_load_config.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:339731d23f49fca4a5644a4df6696cb3593786ba25fd359c066805b404f5ea73 +size 64578 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/open_short_load_config_photo.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/open_short_load_config_photo.png new file mode 100644 index 00000000000..de2259aa48e --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/open_short_load_config_photo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe39c63bad724417660955fc82834806b25f8605c67380f9e7a30713e3700c39 +size 2186730 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/reactance_chart_labeled.jpg b/docs/solutions/reference-designs/eval-admx2501ebz/images/reactance_chart_labeled.jpg new file mode 100644 index 00000000000..5cfb0ad73fa --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/reactance_chart_labeled.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40204ad3225b344807f9fc0da8849dbafb6987bd61348e0381610691114a3118 +size 361993 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/teraterm_new_conn.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/teraterm_new_conn.png new file mode 100644 index 00000000000..32894496cb0 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/teraterm_new_conn.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3741090b7f9bc7a80a50ffdfbbdaceba03c43df1de9f74e94322b05d48503641 +size 15085 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/images/teraterm_settings.png b/docs/solutions/reference-designs/eval-admx2501ebz/images/teraterm_settings.png new file mode 100644 index 00000000000..31166a85753 --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/images/teraterm_settings.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ab6704168fc949aecd0dfaac9ba34c0c6a630692f8391c6a34dda4336d54aaa +size 28347 diff --git a/docs/solutions/reference-designs/eval-admx2501ebz/index.rst b/docs/solutions/reference-designs/eval-admx2501ebz/index.rst new file mode 100644 index 00000000000..3fa5cdeb7cd --- /dev/null +++ b/docs/solutions/reference-designs/eval-admx2501ebz/index.rst @@ -0,0 +1,2296 @@ +.. imported from: https://wiki.analog.com/resources/eval/user-guides/admx/eval-admx2501ebz + +.. _admx eval-admx2501ebz: + +EVAL-AD-IMP2501-SL +================== + +OVERVIEW +-------- + +The EVAL-AD-IMP2501-SL is an impedance analyzer demonstrator and technology +evaluation system comprised of both the AD-IMP2501DBZ-SL and the +AD-IMP2501EBZ-SL boards. The AD-IMP2501EBZ-SL is the carrier board that allows +for simplified host PC communication interfacing, varying electrical load +connections, and easier setup/debug. The AD-IMP2501DBZ-SL is the electrical +impedance spectroscopy module, capable of tetrapolar impedance measurements up +to 250 impedance samples per second. It integrates AC waveform signal generation +from 0V - 2.4V at 1Hz up to 1.5MHz, differential voltage measurement, current +return measurement, and full impedance processing with an arm cortex M4 +microprocessor. All in a 400mm square PCB. + +Features +~~~~~~~~ + +The **AD-IMP2501DBZ-SL** is a high-performance, impedance analyzer module. + +- Highly compact, 31.24mm x 12.83mm System-on-Module (SOM) +- Impedance measurements from 0.1 Hz to 1.5 MHz +- Current or Voltage drive application modes +- 16-bit acquisition channels +- Operates from a single 5V supply +- UART interface + :red:`(additional BLE 5.2, USB, and SPI hardware support capable)` +- Meets patient leakage requirements for IEC 60601-1* +- 6 display mode formats in SI units +- Command line, Graphical user interface, and Python API for easy system evaluation and data collection + +*\*Current hardware implementation is dependent on voltage drive levels. The +hardware can be modified to limit the current depending on application +specifications and voltage drive needs* + +The **AD-IMP2501EBZ-SL** is an easy to use evaluation and development board that +enables convenient access to the functionality of the AD-IMP2501DBZ-SL Impedance +Analyzer Measurement Module. + +- USB C connector provides power and serial communication to host PC +- On board FTDI USB to UART conversion +- DIN and SMA connectors and for interfacing with an external load +- On board loads with jumper configurations for testing and evaluation without + external components or connections + +Applications +~~~~~~~~~~~~ + +- Surgical Tools +- Surgical Tissue Sensing +- Medical Diagnostics and Life Sciences Devices +- Bio-Z and Vital Signs Applications +- Electronics Testing Systems +- Chemistry Systems +- Laboratory Bench-top Sensing Applications +- Research in Industry or Academia + +System Architecture +~~~~~~~~~~~~~~~~~~~ + +.. figure:: images/eval-ad-imp2501-sl_block_diagram.png + :width: 600px + +Specifications +~~~~~~~~~~~~~~ + +TBD from the characterization table what we want to include here: + +.. list-table:: + :header-rows: 1 + + * - Parameter + - Min + - Typical + - Max + - Units + * - Vin + - 4.6 + - 5 + - 20 + - V + * - Load Range + - + - + - + - V + * - Relative Accuracy + - + - 0.2 + - 0.05 + - % + * - Iout + - + - + - + - mA + * - Vout + - 0.1 + - + - 2.4 + - V + * - Samples/s + - + - + - + - + * - Frequency Range + - 0.1 + - + - 1500000 + - Hz + * - DC Offset + - + - 0 + - + - V + +… + +AD-IMP2501EBZ-SL Package Contents +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. **AD-IMP2501EBZ-SL** Impedance Demonstration Board +#. USB Cable + +AD-IMP2501DBZ-SL Package Contents +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. **AD-IMP2501DBZ-SL** Impedance Analyzer Measurement Module + +.. figure:: images/ad-imp2501dbz-sl.png + :width: 300px + +.. important:: + + It is critical to purchase **both** the the **AD-IMP2501DBZ-SL** Impedance + Analyzer Measurement Module and the **AD-IMP2501EBZ-SL** Impedance + Demonstration Board. These are sold separately. + +Quick Start +~~~~~~~~~~~ + +Follow these steps to start evaluating the AD-IMP2501DBZ-SL: + +#. Driver Installation +#. Terminal Emulator/GUI Installation +#. Hardware Setup +#. Command Line or GUI Operation +#. Performing Impedance Measurements + +These steps are explained in detail in the following sections. + +Hardware User Guide +------------------- + +The AD-IMP2501DBZ-SL and AD-IMP2501EBZ-SL are designed for evaluating impedance +analysis technology in an application that requires a small form factor and wide +frequency range. This platform is designed to get an impedance analysis +evaluation set-up running quickly with only a provided USB cable and a computer. +This hardware guide will walk the user through the basic setup, the varying +jumper configurations for different measurement modes, and how to interface with +an external load that is more specific to his or her application. + +Equipment Needed +~~~~~~~~~~~~~~~~ + +Required Equipment +^^^^^^^^^^^^^^^^^^ + +#. **AD-IMP2501DBZ-SL** +#. **AD-IMP2501EBZ-SL** +#. USB C Cable +#. PC + + USB drivers and terminal emulator required. Please see + :ref:`eval-admx2501ebz software-user-guide` for instructions to download and + install on your PC if not already installed. + +.. _eval-admx2501ebz optional-equipment: + +Optional Equipment +^^^^^^^^^^^^^^^^^^ + +#. Programming equipment for Firmware Updates + + - :adi:`MAX32625PICO2 ` + with ribbon cable + +#. Impedance measurement accessories. Available from various test and + measurement manufacturers, for example: + + - `Keysight's Impedance Measurement Accessories `__ + - `B+K Precision TL89S1 SMD Test Fixture `__ + - `B+K Precision TL89F1 4-Terminal Test Fixture for leaded components `__ + - `SMA Male Pin to BNC Jack `__ + +#. Calibration Standards and Accessories + + - `IET Labs `__ (former General Radio products) + - `Keysight 42090A Open Termination `__ + - `Keysight 42091A Short Termination `__ + - `Keysight 42030A Four Terminal Pair Standard Resistor Set `__ + - `Keysight 16380A Standard Air Capacitor Set (1pF to 1000pF) `__ + - `Keysight 16380C Capacitance Standard Set (0.01uF to 10uF) `__ + +#. LCR Meter for verification + + - `Keysight E4980A Precision LCR Meter `__ + +EVAL-ADMX2001EBZ Terminal Description +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. figure:: images/eval-admx2001ebz_diagram_3.png + :width: 600px + +.. list-table:: + :header-rows: 1 + + * - Terminal Name + - Description + * - H_CUR + - Signal source terminal. It generates the excitation required for + measurement. This terminal can source up to +/-5V @ 50mA + * - H_POT + - Voltage sense terminal. Connect to H_CUR at the device under test (DUT) + * - L_POT + - Voltage sense terminal. Connect to L_CUR at the device under test (DUT) + * - L_CUR + - Current sense terminal. Return path for the excitation signal. Connect to + the opposite end of the DUT as H_CUR + * - UART TX + - UART transmitter pin. Connect to TX pin on the UART to USB cable. Uses + 3.3V logic + * - UART RX + - UART receiver pin. Connect to RX pin on the UART to USB cable. Uses 3.3V + logic + * - UART GND + - UART ground. Connect to ground pin on the UART to USB cable + * - CLK_SEL + - Jumper selection of internal or external clock. Set to internal for + default operation + * - TRIG_IN + - Trigger input. Use for hardware-timed acquisition only, otherwise leave + disconnected + * - TRIG_OUT + - Measurement complete trigger out + * - CLK_IN + - External clock input. Use a LVCMOS 50MHz clock signal and set CLK_SEL to + EXT position + * - CLK_OUT + - Clock output. These two terminals have a buffered replica of the 50MHz + main clock + * - PMOD + - Controller and Peripheral PMOD terminals for SPI port + * - Header P6 pins [9-10] + - Digital output 0-1 + * - Header P7 pins [1-6] + - Digital output 2-7 + +AD-IMP2501DBZ Pin Configuration and Descriptions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. figure:: images/ad-imp2501ebz-sl_pinout.png + :width: 600px + +.. list-table:: + :header-rows: 1 + + * - Pin Number + - Mnemonic + - Description + * - P1.1, P1.2, P1.7, P1.8, P1.17, P1.22, P1.28, P1.31, P1.32 + - AGND + - Ground + * - P1.3 + - L_CUR + - Low Current signal + * - P1.4 + - L_POT + - Voltage measurement low potential terminal + * - P1.5 + - H_CUR + - High Current or signal + * - P1.6 + - H_POT + - Voltage measurement high potential terminal + * - P1.9 + - SQWOUT + - Square-Wave Output + * - P1.10 + - TX_OUT_SELECT + - Drive Mode Select + * - P1.11 + - CAN0B_RX + - Controller Area Network Receive Input + * - P1.12, P1.15, P1.16, P1.18, P1.20, P1.21, P1.23, P1.24 + - GPIO + - General purpose GPIO + * - P1.13 + - CAN0B_TX + - Controller Area Network Transmit Output + * - P1.14 + - OWM_IO + - 1-Wire Controller Data + * - P1.19 + - OWM_PE + - 1-Wire Controller Pull-up Enable + * - P1.25 + - ST_ENABLE + - Self-Test Enabled + * - P1.26 + - OUTPUT_ENABLE + - Signal Output Enabled + * - P1.27 + - ST_ENABLE_N + - Self-Test Not Enabled + * - P1.29 + - MCU_RESET_N + - Active-Low. External System Reset Input + * - P1.30 + - PDOWN + - Power-Down Output + * - P2.1 + - I2C_SCL + - I2C Serial Clock + * - P2.2 + - SPI2A_SCK + - SPI Clock + * - P2.3 + - I2C_SDA + - I2C Serial Data + * - P2.4 + - SPI2A_MISO + - SPI Controller In Target Out + * - P2.5 + - POWER_GOOD + - Power Boot-up Verification Signal + * - P2.6 + - SPI2A_SDIO2 + - SPI Data 2 + * - P2.7, P2.13, P2.14, P2.20, P2.21, P2.27, P2.28 + - AGND + - Ground + * - P2.8 + - SPI2A_MOSI + - SPI Controller Out Target In + * - P2.9 + - UART_RX + - UART Receive + * - P2.10 + - SPI2B_SDIO3 + - SPI Data 3 + * - P2.11 + - UART_TX + - UART Transmit + * - P2.12 + - SPI2A_SS0 + - SPI Target Select 0 + * - P2.15 + - SPI2A_SS1 + - SPI Target Select 1 + * - P2.16 + - SWDIO + - Serial Wire Debug I/O + * - P2.17 + - USBC_DM + - USBC Differential pair D- + * - P2.18 + - SWDCLK + - Serial Wire Debug Clock + * - P2.19 + - USBC_DP + - USBC Differential pair D+ + * - P2.22 + - VDD_3P3_D + - +3.3V Digital Rail output from AD-IMP2501DBZ_SL + * - P2.23 + - VDD_3P3_A + - +3.3V Analog Rail output from AD-IMP2501DBZ_SL + * - P2.24 + - VDD_1P8 + - +1.8V Rail output from AD-IMP2501DBZ_SL + * - P2.25 + - VCC + - +5V Rail output from AD-IMP2501DBZ_SL + * - P2.26 + - VEE + - -5V Rail output from AD-IMP2501DBZ_SL + * - P2.29 + - FC_VPOWER_IN + - Input Power Supply for AD-IMP2501DBZ_SL (+5V nominal) + * - P2.30 + - FC_VPOWER_IN + - Input Power Supply for AD-IMP2501DBZ_SL (+5V nominal) + * - All other pins + - NC + - Do not connect + +General Setup +~~~~~~~~~~~~~ + +The following figure shows the basic connections required for evaluating the +ADMX2501B. + +.. figure:: images/fishercat_hardware_setup.png + :width: 800px + +- Insert the AD-IMP2501DBZ-SL module into the AD-IMP2501EBZ-SL board in the + location shown above. Use the small white triangle on both the module and the + carrier board to orient properly. The connectors are different sizes, so they + can only be inserted in one orientation shown, but excessive force in the + wrong orientation could damage the connectors. +- Use the picture below and the following tables to install the correct jumpers + for your desired operation. The first table is for power and general + communication. The second table is for EIS on board measurements. The third + table is for EIS off board measurements. + +.. figure:: images/fishercat_jumper_positions.png + :width: 600px + +- Verify jumpers are installed in the locations designated by the following + table for power and communication. + +.. list-table:: + :header-rows: 1 + + * - Jumper Designation + - Install Position + - Description + * - P4 + - Not Installed + - Programming Header + * - P5 + - Not Installed + - Debug UART TX + * - P6 + - Not Installed + - Debug UART RX + * - P11 + - Pins 1-2 + - USB C Power Supply + * - P14 + - Pins 1-2 + - USB C DM + * - P15 + - Pins 1-2 + - USB C DP + * - P16 + - Pins 1-2 + - FTDI UART RX + * - P17 + - Pins 1-2 + - FTDI UART TX + * - P18 + - Pins 1-2 + - FTDI Power + * - P20 + - Not Installed + - CAN Bus + +- For EIS on board measurements install jumpers according to the following + table. Note that to select an onboard load, both jumpers, corresponding to the + appropriate load, need to be installed. If the user selects their own + component in position 8, no jumpers should be installed on P21 or P22. + +.. list-table:: + :header-rows: 1 + + * - Jumper Designation + - Install Position + - Description + * - P27 + - Pins 1-2 + - EIS HCUR + * - P28 + - Pins 1-2 + - EIS HPOT + * - P29 + - Pins 1-2 + - EIS LPOT + * - P30 + - Pins 1-2 + - EIS LCUR + * - P23 + - Pins 1-2 + - HCUR to HPOT connection + * - P24 + - Pins 1-2 + - LCUR to LPOT connection + * - P21 + - Selectable: + - + * - + - Pins 1-2 + - 10k ohms + * - + - Pins 3-4 + - 1k ohms + * - + - Pins 5-6 + - 100 ohms + * - + - Pins 7-8 + - 10 ohms + * - + - Pins 9-10 + - 0 ohms + * - P22 + - Selectable: + - + * - + - Pins 1-2 + - 10k ohms + * - + - Pins 3-4 + - 1k ohms + * - + - Pins 5-6 + - 100 ohms + * - + - Pins 7-8 + - 10 ohms + * - + - Pins 9-10 + - 0 ohms + * - P8 + - Not Installed + - User selectable load + * - P12 + - Pins 1-2 + - EIS HCUR SMA + * - + - Pins 5-6 + - EIS HPOT SMA + * - + - Pins 9-10 + - EIS LPOT SMA + * - + - Pins 13-14 + - EIS LCUR SMA + +- For EIS off board measurements using the SMA connectors, install jumpers + according to the following table. Connect SMA cables to J1-J4, and verify no + jumpers are installed on P8, P21, P22, P23, and P24. + +.. list-table:: + :header-rows: 1 + + * - Jumper Designation + - Install Position + - Description + * - P27 + - Pins 1-2 + - EIS HCUR + * - P28 + - Pins 1-2 + - EIS HPOT + * - P29 + - Pins 1-2 + - EIS LPOT + * - P30 + - Pins 1-2 + - EIS LCUR + * - P23 + - Pins 1-2 + - HCUR to HPOT connection + * - P24 + - Pins 1-2 + - LCUR to LPOT connection + * - P21 + - Not Installed + - 10k ohms + * - + - + - 1k ohms + * - + - + - 100 ohms + * - + - + - 10 ohms + * - + - + - 0 ohms + * - P22 + - Not Installed + - 10k ohms + * - + - + - 1k ohms + * - + - + - 100 ohms + * - + - + - 10 ohms + * - + - + - 0 ohms + * - P8 + - Not Installed + - User selectable load + +- For EIS off board measurements using the DIN connector, only change jumpers on + P12 according to the following table. Connect DIN cable to P7. + +.. list-table:: + :header-rows: 1 + + * - Jumper Designation + - Install Position + - Description + * - P12 + - Pins 3-4 + - EIS HCUR SMA + * - + - Pins 7-8 + - EIS HPOT SMA + * - + - Pins 11-12 + - EIS LPOT SMA + * - + - Pins 15-16 + - EIS LCUR SMA + +- Connect the USB C cable to P3 on AD-IMP2501EBZ-SL and the host PC. +- An LED on the top side of the AD-IMP2501DBZ-SL should turn on, blink twice, + and turn off. It should now only turn on when data is being processed. + +.. _eval-admx2501ebz software-user-guide: + +Software User Guide +------------------- + +This software user guide will help the user navigate the settings and command +set to properly evaluate the best impedance analysis set-up for his or her +application. The number of parameters makes it impossible to show every +combination, but the user will understand how each parameter affects the +measurement data. + +The **AD-IMP2501DBZ-SL** comes with pre-loaded with embedded firmware and can be +used out of the box. This firmware handles communication with the host PC, +setting user specified parameters, initiating signal generation, processing +impedance measurement data, and reporting that information back to the user. +There are a variety of measurement parameters and modes that can be configured. + +Some drivers and peripheral software is required for operation. Instructions on +how to download and install all necessary software or firmware is provided +below. + +.. _eval-admx2501ebz usb-driver-installation: + +USB Driver Installation +~~~~~~~~~~~~~~~~~~~~~~~ + +.. note:: + + The default communication interface to the EVAL-AD-IMP250-SL is via its USB + port. Using the USB Type C cable included with the evaluation board + (TTL-232R-RPI), FTDI"s Virtual COM Port (VCP) drivers must be downloaded from + their website located at https://www.ftdichip.com/Drivers/VCP.htm + +**Installation steps:** + +- Download the driver setup executable for the host OS version from + https://www.ftdichip.com/Drivers/VCP.htm + + - Note: for detailed instructions, visit + https://www.ftdichip.com/Support/Documents/InstallGuides.htm + +- Unzip the file and run the setup executable +- Connect the USB cable to the PC +- Open the Device Manager +- In the Device Manager window, verify that the USB Serial Port is displayed + under ``Ports (COM & LPT)`` and that a serial port identifier has been + assigned as shown below (the COM# may be different than shown here): + +.. figure:: images/device_manager_com_port.png + :width: 600px + +Embedded Software Update +~~~~~~~~~~~~~~~~~~~~~~~~ + +If during development it becomes necessary to load new firmware onto the +AD-IMP2501DBZ-SL, follow these steps using the +:adi:`MAX32625PICO2 ` +``PICO`` Board + +.. _eval-admx2501ebz request-fw-sw: + +Request and Download New Firmware or Software +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Follow these instruction for downloading software/firmware from Analog Device"s +Secure Software Delivery (SSD) system. The example below is for requesting new +firmware, but the process is the same for requesting software: + +- A user must first make a myAnalog account by clicking ``Register with email`` + on my.analog.com. The email used to create an account will be needed in the + next step. +- Please contact your local ADI support or Ben Ferrara (Ben.Ferrara@analog.com) + and request access to the AD-IMP2501DBZ-SL firmware or software and designate + the email address used to create your myAnalog account. +- You will receive an email that looks like the below image once the request has + been processed. Follow the URL at the bottom of the page: + +.. figure:: images/adi_license.png + :width: 600px + +- View the software license agreement by selecting the hyperlink ``software + license agreement`` highlighted in blue, and hit the check box to indicate + that you have read and agree to the terms outlined in the license. + +.. figure:: images/adi_sw_download.png + :width: 500px + +- Then select the green ``Download`` button. This will download a zipped folder + containing a .hex file that can be flashed onto the AD-IMP2501DBZ-SL. + +Connect the PICO board +^^^^^^^^^^^^^^^^^^^^^^ + +Using a USB micro cable connect the PICO board to your host PC. Connect the +programming cable to the programming header on the PICO board and the +AD-IMP2501EBZ-SL board, P4, as shown in the *Hardware User Guide*. Use the +picture in the Hardware User Guide *General Setup section* for locating the +proper header. Once connected, open a file explorer window and verify that a +DAPLINK drive has been found by your PC. See below circled in red. + +.. figure:: images/daplink_drive.png + :width: 400px + +Flash the ADI Provided Firmware File +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Locate the firmware file that was downloaded via ADI"s SSD system in the +Installation Instruction section of this document. The file should be named with +the following convention: AD-IMP2501DBZ-SL_RX.Y.Z_B1.0 where the ``X.Y.Z`` +corresponds to the numbered revision of the firmware file. + +Simply drag and drop the .hex file into the DAPLINK drive and a download screen +should open and show the process. + +.. figure:: images/fw_download.png + :width: 400px + +After flashing, power cycle the AD-IMP2501DBZ-SL by removing the USB C cable +from the AD-IMP2501EBZ-SL, and then reconnecting it. Check that the process was +successful by opening a terminal and using the ``version`` command. Verify the +revision the board reports is the same as the firmware file that was flashed +(more explanation on how to do this in the *USING THE COMMAND LINE* section). + +.. note:: + + If the version reported by the AD-IMP2501DBZ-SL is not correct, the flashing + process may have failed. A good check is to re-open the explorer window and + check the DAPLINK drive. + +.. figure:: images/fw_fail.png + :width: 400px + +If a FAIL.TXT file exists, as shown in the image above, the FW flash was not +successful. If a failure has occurred, power cycle both the PICO board and the +AD-IMP2501DBZ-SL by removing the USB cables and then reconnecting them both. +Attempt the download process again until successful. + +Application Software +~~~~~~~~~~~~~~~~~~~~ + +This platform utilizes multiple forms of application software. The most basic is +direct communication with the **AD-IMP2501DBZ-SL** via the command line and a +terminal emulator. This section is also where the most detail of each API +command is covered. + +An application GUI is also available for faster prototyping, testing, and visual +data analysis. + +A python script with basic command functionality is offered as a starting point +for custom scripting. This script is offered for users who want to implement +post processing of their data in real time or create their own visual +representation of the impedance data. + +.. _eval-admx2501ebz ad-imp2501dbz-sl-available-commands: + +AD-IMP2501DBZ-SL Available Commands +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +All commands should be in lower case type and each command and input value +should be separated by spaces. Only one command can be entered at a time. An +incorrect format or command that is not listed will result in the terminal +prompting the user to correct their input, or type ``help`` to review the list. +At any point, to cancel a measurement or any command that is currently running +on the system, hit ``Esc`` and the system will abort the current command and +prompt the user for a new input. + +#. **help:** Typing ``help`` and hitting enter will display all the available + commands the user can choose from. The command, followed by the necessary + input/s separated by spaces. A short description of the command and inputs + are provided on the left. An empty bracket ``< >`` indicates that no input is + necessary other than the command itself. +#. **z:** Typing ``z`` starts a measurement and returns impedance data to the + screen. This is considered one measurement loop. +#. **eit:** Typing ``eit`` followed by 4 individual values defines and starts a + single specific EIT measurement. The 4 individual values correspond to I+, + I-, V+, and V-. I+ is the current drive, I- is the current return, V+ is the + positive voltage differential measurement, and V- is the negative voltage + differential measurement. Typing different values after eit will enable + different switches and force the different signals through the desired path. +#. **eitpattern:** Typing ``eitpattern`` starts EIT measurements with all the + electrode patterns saved in memory from the ``eitlist`` command. This will + iterate through all patterns and output data for each configuration. +#. **eitlist:** Typing ``eitlist`` will prompt the user to input how many EIT + measurements they would like to take. The device will then prompt the user to + enter all EIT switch configurations. Each configuration should be a set of 4 + values, separated by spaces, and each configuration should be separated by + newlines. +#. **appmode:** Typing ``appmode`` allows the user to select different frequency + ranges for different application types. Currently, there are two ranges, 1Hz + to 1.5MHz, and 0.01Hz to 10kHz. The 0.01Hz to 10kHz range is primarily + untested at this point in time. +#. **freq:** Typing ``freq`` and a value between 1 and 1000000 changes the + frequency parameter of the next single frequency measurement. +#. **sweeptype:** Typing ``sweeptype`` and ``0`` disables the sweep measurement. + Typing ``1`` as an input enables a frequency sweep measurement. Enabling + sweeptype will utilize the sweeprange and sweepscale parameters. +#. **sweeprange:** Typing ``sweeprange`` and two values selects the sweep range. + The first value indicates the starting frequency point of the sweep and the + second value indicates the ending frequency point of the sweep. The number of + points between the sweep start and sweep stop will be determined by the count + parameter. The spacing between points will be determined by sweepscale + parameter. +#. **sweepscale:** Typing ``sweepscale`` and ``0`` enables a linear distribution + of points in the sweeprange or typing ``1`` enables a logarithmic + distribution. +#. **drive:** Typing ``drive`` and ``0`` enables the voltage drive output while + typing ``1`` enables the current drive output. +#. **count:** Typing ``count`` and a value between 1 and 255 sets the number of + measurements to display to the screen per measurement loop. This will apply + to both single frequency measurements or sweeps. +#. **avg:** Typing ``avg`` and a value between 1 and 255 sets how many + measurements will be taken and then averaged for every displayed measurement. +#. **trigger:** Typing ``trigger`` and a value between 0 and 255 sets how many + times to run the measurement loop. Setting trigger to 0 will enable a + continuous measurement loop and will end when the user aborts by entering + ``ESC``. +#. **mag:** Typing ``mag`` and a value between 20 and 2400 sets the signal + magnitude in mV. This is the magnitude generated before the load and before + the current limiting series resistor. The current limiting resistor is set to + 100 ohms but could be changed depending on the application. +#. **gain:** Typing ``gain`` and two values. The first is either ``0`` or ``1`` + to determine which channel gain should be adjusted. 0 represents the voltage + receive path and 1 represents the current receive path. The second value is + either 0 – 3 if the voltage gain channel was chosen or 0 – 2 if the current + gain channel was chosen. These gain values will multiply the measured signal + via hardware and are approximately equal to x1, x2, x4, and x8 for the + voltage channel and equal to x50, x500 and x5000 for the current channel. +#. **dcoffset:** Typing ``dcoffset`` and a value between -2500 and 2500 sets the + DC voltage offset of the output signal. +#. **measdelay:** Typing ``measdelay`` and a value between 1 and 60000 sets the + delay between displayed measurements in milliseconds. +#. **trigdelay:** Typing ``trigdelay`` and a value between 0 and 60000 sets the + delay between displayed measurement loops in milliseconds. +#. **autogain:** Typing ``autogain`` and ``0`` to disable the system auto gain + feature or ``1`` to enable the auto gain. When auto gain is enabled the + voltage and current gain channels will be automatically selected for each + measurement. It is not recommended to have auto gain turned on during + frequency sweeps. There will not be a recording of which gain setting was + used for each sweep measurement and it is possible that slight discrepancies + between gain settings could exist. Gains will be re-evaluated and re-set + after each measurement. +#. **display:** Typing ``display`` and a value between 0 and 6 chooses the + format of the displayed measurement. 0 will turn off the display. 1 will + format the measurements in impedance rectangular form [R, X] (Resistance, + Reactance). 2 will format the measurements in impedance magnitude and phase + (in degrees). 3 will format the measurements in impedance magnitude and phase + (radians). 4 will format the measurements in admittance rectangular form [G, + B] (Conductance, Susceptance). 5 will format the measurements in admittance + magnitude and phase (in degrees). 6 will format the measurements in + admittance magnitude and phase (radians). +#. **imprange:** Typing ``imprange`` and two values between 0 and 100000 + represents the impedance warning threshold. The first value represents the + minimum impedance value the user expects and the second value represents the + maximum impedance value. Any measured value outside this range will cause the + system to generate a warning message. Typing 0 and 0 will turn warnings off. +#. **devwarn:** Typing ``devwarn`` and two values represents the standard + deviation warning. These values should be entered for measurements in + rectangular form. The first value represents the deviation range of ``R`` and + second represents the deviation range of ``X``. This threshold will only be + applied if avg is greater than 1. Typing 0 and 0 will turn warnings off. +#. **correction:** Typing ``correction`` and a value between 0 and 2 changes the + calibration setting. 0 represents no calibration applied to the measurements. + 1 will apply only calibration adjustments to the measurements. 2 will apply + both calibration and compensation adjustments. +#. **calopen:** Typing ``calopen`` initiates the open calibration procedure. + H_CUR and H_POT nodes should be tied together and the L_CUR and L_POT nodes + should be tied together. +#. **calshort:** Typing ``calshort`` initiates the short calibration procedure. + H_CUR and H_POT nodes should be tied together with the L_CUR and L_POT nodes. +#. **calload:** Typing ``calload`` followed by two values initiates the load + calibration procedure. The first value represents the true resistive part of + the connected load and the second value represents the true reactive part of + the connected load. Connect the H_CUR and H_POT nodes to one side of the + desired load and the L_CUR and L_POT nodes to the other side of the load. +#. **calread:** Typing ``calread`` followed by two values reads the saved + calibration values for a specific gain combination. The first value + represents the voltage gain setting and the second represents the current + gain setting. +#. **calcommit:** Typing ``calcommit`` saves any calibration data that has been + measured in this session to memory. Calibration data will not be saved after + a power cycle if it is not committed to memory. +#. **calclear:** Typing ``calclear`` erases all saved calibration data that has + been saved to memory. +#. **compopen:** Typing ``compopen`` initiates the open compensation procedure. + H_CUR and H_POT nodes should be tied together and the L_CUR and L_POT nodes + should be tied together. +#. **compshort:** Typing ``compshort`` initiates the short compensation + procedure. H_CUR and H_POT nodes should be tied together with the L_CUR and + L_POT nodes. +#. **compload:** Typing ``compload`` followed by two values initiates the load + compensation procedure. The first value represents the true resistive part of + the connected load and the second value represents the true reactive part of + the connected load. Connect the H_CUR and H_POT nodes to one side of the + desired load and the L_CUR and L_POT nodes to the other side of the load. +#. **compread:** Typing ``compread`` followed by two values reads the saved + compensation values for a specific gain combination. The first value + represents the voltage gain setting and the second represents the current + gain setting. +#. **get:** Typing ``get`` prints the current system configuration parameters to + the screen. +#. **selftest:** Typing ``selftest`` runs a system self test. The system should + be set up in an open configuration with H_CUR and H_POT tied together and + L_CUR and L_POT tied together with no load attached. +#. **default:** Typing ``default`` sets the system back to its original default + configuration. +#. **version:** Typing ``version`` reads the firmware version that is currently + loaded on the module. +#. **restart:** Typing ``restart`` internally power cycles and restarts the + system. This will not change the configuration after the module comes back + online. + +Command Line +^^^^^^^^^^^^ + +For command line operation and explanation of the system API, please continue +here. + +Terminal Emulator Installation +'''''''''''''''''''''''''''''' + +To communicate with AD-IMP2501DBZ-SL via its command-line interface and UART, a +terminal emulator like TeraTerm is recommended. Other user preferred terminal +emulators should be acceptable but may not be tested. For instruction purposes +we will continue with TeraTerm. + +.. admonition:: Download + + TeraTerm Download: https://github.com/TeraTermProject/teraterm/releases + +Download and run the latest stable release, following the on-screen +instructions. + +.. important:: + + Some terminals, such as PuTTY do not support the ANSI Escape Codes which + manipulate the cursor position. If the ANSI Escape Codes are not supported, + the terminal may not work properly. TeraTerm supports these characters. + +Opening a Session via Teraterm +'''''''''''''''''''''''''''''' + +Verify the COM Port that your system is connected to in the PC"s Device +Manager. Check the :ref:`eval-admx2501ebz usb-driver-installation` instructions +if needed. + +If multiple ports are in use and you are unsure which is connected to the +AD-IMP2501DBZ-SL board simply remove the USB from the computer and when the +Device Manager window refreshes, note which Port is no longer in use. Plug the +system USB back into your PC and that Port should again be listed. + +Continue with the system powered on via USB connection to the host PC, open the +TeraTerm application and choose File -> New Connection, and choose the "Serial" +radio button and select "OK". + +.. figure:: images/teraterm_new_conn.png + :width: 400px + +Select the COM port identified earlier in the Device Manager. Click "OK". Then +choose the tab labeled "Setup" and select "Serial port…". Ensure that the COM +port is set and the following are set accordingly, Speed = 115200, Data = 8 +bits, Parity = none, Stop bits = 1 bits, Flow control = None. Then select "OK" + +.. figure:: images/teraterm_settings.png + :width: 500px + +Optionally, choose "Setup" -> "Save setup…". Save the file to the default +directory. Now, when launching TeraTerm, it will automatically try to connect +with those saved settings. + +Verify the board is communicating properly by checking the following: + +- Press ENTER within the terminal and verify the entry ``>>`` prompt. +- Type ``version`` and press ENTER to display the module name and firmware + revision. +- Type ``get`` and press ENTER to see the current parameter settings on the + AD-IMP2501DBZ-SL. +- Type ``help`` and press ENTER to see a list of all commands supported by + AD-IMP2501DBZ-SL. + +Note that closing the TeraTerm window does not reset the AD-IMP2501DBZ-SL +settings from the last session. + +Using the "help" Functionality in the Command-Line Interface +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +The ``help`` command will display all the commands available to the user from +the command-line interface (CLI). Use this command while operating for a quick +refresher. See the :ref:`eval-admx2501ebz ad-imp2501dbz-sl-available-commands` +section for more details on each command. + +.. figure:: images/fishercat_help_command_page1.png + :width: 700px + +.. figure:: images/fishercat_help_command_page2.png + :width: 700px + +.. _eval-admx2501ebz calibration-procedure: + +Calibration Procedure +''''''''''''''''''''' + +TBD… + +Performing Basic Measurements via Command Line +'''''''''''''''''''''''''''''''''''''''''''''' + +Upon opening a session with TeraTerm, the AD-IMP2501DBZ-SL is ready to perform +impedance measurements. + +.. important:: + + The measurements reported by the module may not be accurate unless it has + been calibrated. For detailed instructions on how to calibrate the module, + please refer to the :ref:`eval-admx2501ebz calibration-procedure` section + in this user guide. + +By default, the module is set to perform single-point impedance measurements in +rectangular coordinates with a 300mV peak-to-peak signal (magnitude = 300) at +1kHz, and no DC offset. To initiate a measurement type the ``z`` command at the +prompt and press ENTER. + +Type ``get`` and press ENTER to view the current default parameter settings in +the terminal window. + +.. figure:: images/fishercat_get_default.png + :width: 600px + +Measurement settings are not always in their base SI form. Frequency is in Hz, +delays are in milliseconds. The signal magnitude sets the peak-to-peak value, +centered around the offset voltage. The DC offset is in millivolts. + +The AC magnitude can be configured anywhere between approximately 10mV pk-pk and +2.4V pk-pk. This represents the generated signal, but the actual magnitude +across the DUT will be be dependent on the DUT impedance, due to the onboard +100Ω source resistance (for current limiting and patient protection, can be +modified for different applications); see +:ref:`eval-admx2501ebz selecting-a-measurement-range` for details. + +.. tip:: + + The order in which the settings commands are entered is not important. + +Example +''''''' + +Perform a 100 ohm (Jumpers on P21.5-6 and P22.5-6 in the EIS on board +measurement table above) resistive measurement at 100kHz with a 1V pk-pk +magnitude. Return 5 readings, displayed in Magnitude and Phase (in degrees), +where each is an average of 10 samples. + +:: + + >>freq 100000 + Frequency: 100000Hz + + >>display 2 + Display Mode: Impedance, Magnitude and Phase in degrees (Z, deg) + + >>mag 1000 + Signal Magnitude: 1000mV + + >>avg 10 + Average: 10 + + >>count 5 + Count: 5 + + >>z + + 0, 1.024279e+02, -1.312940e+00 + 0, 4.878047e-02, 4.109422e-02 + 1, 1.024257e+02, -1.305184e+00 + 1, 5.721481e-02, 5.543189e-02 + 2, 1.024132e+02, -1.303233e+00 + 2, 3.633902e-02, 4.070190e-02 + 3, 1.024019e+02, -1.310408e+00 + 3, 4.281778e-02, 4.233954e-02 + 4, 1.023718e+02, -1.320099e+00 + 4, 4.378229e-02, 3.729085e-02 + + >> + +Output is displayed as index, Magnitude, Phase (in degrees). The second line +with the same index indicates the standard deviation of the averaged samples for +both Magnitude and Phase of the previous measurement. + +.. note:: + + By default, auto-range is not selected and the default gain channels are + selected as 0 (x1 Voltage Gain) and 0 (x50 Current Gain). + +Plotting Measurement Data +''''''''''''''''''''''''' + +When acquiring multiple measurements or performing sweeps, it is useful to plot +the results to observe trends or characteristics of the device under test. +TeraTerm allows the user to save a log by going to File->Log, which can then be +copy and pasted into a \*.csv file that can be opened by spreadsheet +applications such as Microsoft Excel®. The log file must be saved BEFORE taking +any measurements. + +To plot the acquired data in Microsoft Excel, follow the steps below: + +#. In TeraTerm, click File, in the dropdown list select Log, and save the log + file with any name and location, but make sure to change the default + extension from \*.log to\*.csv +#. Select the settings desired and hit ``OK`` +#. Configure the AD-IMP2501DBZ-SL and run the ``z`` command to acquire the + desired measurements +#. A separate TeraTerm window named ``TeraTerm:Log`` will have opened, click + ``Close`` to stop logging data +#. Open the file with Excel +#. Select the data to plot and insert a scatter plot to visualize the data + +Graphical User Interface +^^^^^^^^^^^^^^^^^^^^^^^^ + +TBD… + +Python Script +^^^^^^^^^^^^^ + +TBD… + +To facilitate easier measurement optimization on a PC, there is a library of +Python functions which make it easy to operate the command-line interface from a +Python script and implement a user specific set of measurements and potentially +built in processing. Instead of typing commands over TeraTerm, the library +accesses the Serial port directly, and calling the library functions will +execute the same commands that are normally typed into the terminal emulator. + +This Python library and project are currently accessible by request. Follow the +instructions in the :ref:`eval-admx2501ebz request-fw-sw` section but request +the Python Application Software for the AD-IMP2501DBZ-SL. + +The Python script download includes an example measurement sweep script, which +shows how to set up the Serial port, configure measurements and begin collecting +data. Most functions found in the command-line interface have corresponding +Python functions in the library, but not all. These functions perform a certain +degree of error checking but is not complete. This library is for evaluation +purposes only and is meant to be a starting point for a user to develop further. + +Operation +~~~~~~~~~ + +The sections below are filled with examples and techniques on the system +operation, mostly using the command line interface. The goal here is to show how +different parameters may affect measurement results. + +Measurement Display Modes +^^^^^^^^^^^^^^^^^^^^^^^^^ + +The AD-IMP2501DBZ-SL returns a result in one of 7 different display modes, shown +below. The result is always reported in the base SI unit. For instance, +``display mode 1`` (R, X) returns the impedance in rectangular form, both in +ohms. + +.. list-table:: + :header-rows: 1 + + * - Display Mode Number + - Mode Name + - Form + - SI Unit + * - 0 + - Display Off + - N/A + - None + * - 1 + - Impedance in rectangular coordinates (default) + - R, X + - Ohms, Ohms + * - 2 + - Impedance in magnitude and phase in degrees + - Z, deg + - Ohms, Degrees + * - 3 + - Impedance in magnitude and phase in radians + - Z, rad + - Ohms, Radians + * - 4 + - Admittance in rectangular coordinates + - G, B + - Siemens, Siemens + * - 5 + - Admittance in magnitude and phase in degrees + - Y, deg + - Siemens, Degrees + * - 6 + - Admittance in magnitude and phase in radians + - Y, rad + - Siemens, Radians + +.. _eval-admx2501ebz selecting-a-measurement-range: + +Selecting a Measurement Range +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +By default, the AD-IMP2501DBZ-SL is not auto-ranging mode, and will use the +default or previously set gain settings. Auto-range can be turned on which will +use the highest voltage and current settings based on the frequency and +magnitude of the signal. + +.. note:: + + The auto-ranging algorithm is applied to each measurement. This will slow the + measurement time. When performing frequency sweeps, the impedance of the + device under test will change and the auto-range could detect a new setting + for a later measurement than the first measurement in the sweep. These + changes will not be recorded so it is not advised to use auto-range during + frequency sweeps unless tested and it has been determined there are no + incongruent measurement points. + +In some cases, the user may want to select a specific measurement range. The +measurement range is affected by the voltage gain setting of channel 0, the +current gain setting of channel 1, and the test signal magnitude. It is +recommended to run a single measurement with ``autogain`` turned on at the +frequency of interest, (this may be multiple single measurements at the +frequency sweep limits if running planning to run a frequency sweep). After +running a single measurement, run a ``get`` command and verify the voltage and +current gain settings in the parameter list. Turn ``autogain`` off, the voltage +and current gain parameters will retain the values set during the autogain +measurement. If testing at multiple frequencies, note the gain settings for each +measurement and verify the same gain settings were chosen by the autogain +setting for each measurement. If the gain settings changed, the lowest gain +settings should be chosen for an entire sweep so the system does not saturate. + +Available voltage gain values for channel 0 are listed below. + +.. list-table:: + :header-rows: 1 + + * - Ch0 Gain + - Max Input Voltage Range + - Gain Factor + * - 0 + - ±2.4V + - 1 + * - 1 + - ±1.2V + - 2 + * - 2 + - ±600mV + - 4 + * - 3 + - ±300mV + - 8 + +Available current gain settings and the transimpedance values associated with +them are listed below. + +.. list-table:: + :header-rows: 1 + + * - Ch1 Gain + - Max Input Current + - Transimpedance + * - 0 + - 24mA + - 49.9Ω + * - 1 + - 2.4mA + - 499Ω + * - 2 + - 240uA + - 4.99kΩ + +Estimating the Impedance and Admittance of Capacitive and Inductive Devices +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +Impedance is defined as the opposition to the flow of alternating current. +Admittance is the reciprocal of impedance, or how easy is for alternating +current to flow. Electrical components such as resistors, capacitors and +inductors have a direct relationship between their value and the expected +impedance (Z): + +| Z = X = -1/(2πfC) for capacitors +| Z = X = 2πfL for inductors +| Z = R for resistors + +Where f is the frequency of the signal; C, L, and R are the component values in +Farads, Henries and Ohms respectively. R represents resistance and X reactance. + +For admittance (Y): + +| Y = B = 2πfC for capacitors +| Y = B = -1/(2πfL) for inductors +| Y = G = 1/R for resistors + +Where f is the frequency of the signal; C, L, and R are the component values in +Farads, Henries and Ohms respectively. G represents conductivity and B +susceptance. + +All components, regardless of their construction, will show a combination of +resistive (conductive) and reactive (susceptive) properties. These properties +can be expressed in the form of ideal electrical components combined either in +series or parallel. At any given frequency, impedance/admittance can be +expressed as a combination of the reactive element (capacitor or inductor) and a +resistive element. The total impedance or admittance magnitude can be obtained +by calculating the square-root of the sum of squares (RSS) of the two components +or + +| \|Z\| = sqrt(R*R + X*X) +| \|Y\| = sqrt(G*G + B*B) + +To determine the best measurement range for measurement, it is necessary to +estimate the impedance or admittance of the device under test at the frequency +of measurement using the equations above. A simpler method to obtain an +approximate value based on the expected capacitance or inductance value is +through the reactance chart shown below. + +.. figure:: images/reactance_chart_labeled.jpg + :width: 600px + +To find the approximate impedance or admittance value for a capacitor or +inductor, find the closest expected value assigned to the diagonal lines and +find its equivalent impedance/admittance value on the vertical axis at the +frequency of interest (on the horizontal axis). For example, the impedance of a +159fF capacitor, which is represented by the red solid diagonal line in the +reactance chart, exhibits \|Z|=1MΩ at 1MHz, indicated by the ``1M`` tick on the +vertical axis. This matches the estimated value using equation Z = X = +-1/(2πfC). Similarly, for a 15.9nF capacitor, which is shown as blue solid +diagonal line in the chart, \|Z|=10KΩ at 1kHz. + +However, depending on the DUT, it may not always be possible to estimate the +properties, which is why the experimental and testing method utilizing the +``autogain`` feature is also recommended. + +Reducing Measurement Noise +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ``avg`` command determines how many samples are averaged for each reading +returned. Averaging reduces noise and is helpful in applications that require +detecting small changes in a value or when the impedance component of interest +is small in comparison to the total impedance magnitude. The default is set to +1, which means no averaging is done. + +.. tip:: + + Averaging increases the time required to return a reading. So finding the + compromise between improved noise and measurement speed will depend on the + application. At some point there is a limited return as the average value + continues to increases. This threshold of limited return will depend on the + application. + +Improving Measurement Precision +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To ensure precise and accurate measurements, impedance measurements should be +performed with appropriate test fixtures. Measurement leads can introduce +additional errors due to parasitic impedances that will vary depending on +mechanical configuration and cabling. + +To help ensure repeatable and stable measurements, custom-made fixtures that +minimize impedance fluctuations due to mechanical configuration are recommended. +To test surface-mount components, fixtures like the +`B+K Precision TL89S1 `__ +or the +`Keysight 16034G `__ +are good examples. For a full list of recommended accessories, please refer to +the :ref:`eval-admx2501ebz optional-equipment` section +at the beginning of this user guide. These fixtures are not possible for all +applications and some systems will require relative precision versus absolute +precision. + +Performing Frequency Sweeps +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The AD-IMP2501DBZ-SL can automatically perform measurements that sweep the +frequency parameter, enabling EIS (Electrical Impedance Spectroscopy) +applications. The incremental frequency points can be spaced linearly or +logarithmically within a specified range. + +By default, the sweep function is off. To enable a frequency sweep, use the +``sweeptype`` command and specify the sweep type, ``1`` for frequency sweep, +``0`` to turn off. The ``sweeprange`` command allows the user to enter the start +and end points of the sweep. Use ``sweepscale`` to choose between a linear ``0`` +or logarithmic ``1`` sweep. The number of incremental points including the start +and stop points is determined by the ``count`` parameter. + +Example +''''''' + +Perform an 11-point logarithmic frequency sweep from 1kHz to 1MHz. + +:: + + >>count 11 + Count: 11 + + >>sweeptype 1 + Sweep Type: Frequency + + >>sweeprange 1000 1000000 + Sweep Start: 1000Hz + Sweep Stop: 1000000Hz + + >>sweepscale 1 + Scale: Log + + >>z + + 1.000000e+03, 1.031255e+02, -1.630275e-02 + 1.995262e+03, 1.023943e+02, -2.934620e-02 + 3.981072e+03, 1.025097e+02, -4.382038e-02 + 7.943283e+03, 1.024828e+02, -1.119833e-01 + 1.584893e+04, 1.024931e+02, -2.017830e-01 + 3.162278e+04, 1.024935e+02, -4.088743e-01 + 6.309575e+04, 1.024701e+02, -8.741217e-01 + 1.258926e+05, 1.024697e+02, -1.634526e+00 + 2.511887e+05, 1.026109e+02, -3.280124e+00 + 5.011873e+05, 1.029818e+02, -6.563277e+00 + 1.000000e+06, 1.043930e+02, -1.319202e+01 + + >> + +.. note:: + + When sweeping frequency, the first value printed will be the frequency value + instead of index, followed by the measurement in the display format selected. + +Optimizing Measurement Timing +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This section describes what settings impact the measurement time and how. The +measurement time is dependent on a number of factors. Command transmission time, +configured delays, source setup time, ADC acquisition time, count setting, +averages, etc. Some factors, like the ADC acquisition time, are dependent on the +frequency since the ADC needs to capture a minimum number of cycles of the +waveform. + +Delay Usage and Measurement Sequencing +'''''''''''''''''''''''''''''''''''''' + +The commands ``measdelay`` (measurement delay) and ``trigdelay`` (trigger delay) +can be used to control the settling time between measurements. + +- The measurement delay or ``measdelay`` is observed before each measurement, + but not between samples when averaging. The delay is also applied during + sweeps and between multiple counts. Both the DC offset and AC test signal are + enabled during the delay, but the ADCs do not capture data for the measurement + until the delay has elapsed. +- The ideal measurement delay suitable for different DUTs may vary. When + measuring a large capacitive load, consider the settling time it requires to + charge; a longer measdelay is preferred to prevent accuracy loss. +- Trigger delay is only observed after trigger events controlled by the + ``trigger`` command. It is easiest to think of trigger events as measurement + loops. One measurement loop could consist of multiple measurements and then + repeats several times. If configured, the DC offset will be enabled during the + trigger delay, but the AC source will only start after the delay for the data + capture. + +To setup ``measdelay`` and ``trigdelay``, simply enter the command followed by a +value in milliseconds, up to a maximum of 60 seconds. + +Below is a demonstration on how each measurement time parameter fits in the +measurement sequence. Note that the sinusoidal excitation is turned on during +periods marked with blocks in light/dark green. If enabled, the DC offset will +turn on during the tdelay blocks. The example measurement uses a 100 Ohm onboard +resistor as the DUT. + +.. figure:: images/command_timing_diagram.png + :width: 1000px + +Single Sample Measurement +''''''''''''''''''''''''' + +When measuring one sample (one count), a ``measdelay`` is observed before each +measurement where the single sample is captured. + +:: + + >>count 1 + Count: 1 + + >>avg 1 + Average: 1 + + >>z + + 1.000000e+03, 1.022631e+02, -4.570409e-02 + +Single Sample with Averaging +'''''''''''''''''''''''''''' + +When measuring with ``avg`` > 1, but ``count`` == 1, ``measdelay`` is observed +only before the first sample, but not between internal averaged samples. The +display now shows 2 lines after a measurement due to averaging. The second line +shows the index, the standard deviation of the first display unit, the standard +deviation of the second display unit. + +:: + + >>count 1 + Count: 1 + + >>avg 10 + Average: 10 + + >>z + + 1.000000e+03, 1.022631e+02, -4.570409e-02 + 1.000000e+03, 5.502485e-01, 4.377977e-01 + +Multiple Samples +'''''''''''''''' + +When measuring and displaying multiple samples (``count`` > 1), ``measdelay`` is +observed before each measurement. + +:: + + >>count 3 + Count: 3 + + >>avg 1 + Average: 1 + + >>z + + 0, 1.025080e+02, -6.183665e-01 + 1, 1.027569e+02, -1.343047e+00 + 2, 1.030360e+02, -3.661266e-01 + +Multiple Triggers +''''''''''''''''' + +When ``trigger`` > 1, multiple measurement triggers (or measurement loops) are +enabled. A single measurement loop setting (say ``count`` = 3, ``avg`` = 1), +will be triggered ``trigger`` number of times. The ``trigdelay`` defines the +delay time between these trigger events. + +:: + + >>count 3 + Count: 3 + + >>avg 1 + Average: 1 + + >>trigdelay 250 + Trigger Delay: 250ms + + >>trigger 3 + Trigger Count: 3 + + >>z + + 0, 1.024911e+02, -1.148774e-01 + 1, 1.025547e+02, -1.195827e-01 + 2, 1.024493e+02, -1.660484e-01 + + 0, 1.024618e+02, -1.313231e-01 + 1, 1.025220e+02, -1.391520e-01 + 2, 1.024505e+02, -1.339683e-01 + + 0, 1.025001e+02, -1.355432e-01 + 1, 1.024866e+02, -1.084897e-01 + 2, 1.025063e+02, -1.583959e-01 + +Optimizing Single Point Measurements +'''''''''''''''''''''''''''''''''''' + +To achieve the fastest single-point measurement time, there are a few points to +consider. + +- Delays: the trigger delay ``trigdelay`` and measurement delay ``measdelay`` + directly impact the measurement time. As explained above, ``trigdelay`` is + applied once per trigger loop, and the ``measdelay`` is applied once per + ``count`` (or displayed measurement sample). Therefore, a typical single + measurement will have ``trigdelay`` + ``measdelay`` added on. The default + ``trigdelay`` is 0 ms; and this is recommended to optimize the measurement + time. The default ``measdelay`` is 1 ms; this is restricted to a 1ms minimum + as lower could cause the ADC to capture some data before the AC source has + fully turned on. Increasing this value can be useful for some situations + depending on the load, but does not generally lead to improved measurement + data. However, it can be good practice to test with different setups. +- Autogain: the ``autogain`` feature should be disabled for the fastest + measurements. The ``autogain`` tests the ideal gain by taking multiple + measurements with different gain settings, and checking for ADC saturation. + This can significantly increase the measurement time. +- Averaging: adding more averaging increases the number of samples taken and + averaged together per measurement ``count``, which can significantly add time + between each displayed value. This can increase measurement time but it will + reduce the per sample time when compared to taking individual samples and + averaging them together post measurement. An example times are shown in the + table below. +- Frequency: the measurement time is highly dependent on the test frequency. The + system tries to capture a specific number of data points of the signal + waveform for a more accurate measurement. Generally, frequencies above 1kHz + this impact becomes minimized. +- Display mode: the measurement can be slightly slower if not using the + rectangular format. Less processing is required when not converting from + rectangular coordinates such as display mode 1 (R, X). Modes with angle in + degrees or radians (polar form) can take slightly longer, but usually the + effect is negligible. +- Calibration/Compensation: turning on different calibration/compensation modes + can cause added delays as well but similar to the display mode, the effect is + negligible. More processing is required to apply calibration/compensation + models to measured data. The delay is microseconds, up to 100"s of + microseconds. + +This table shows various timing measurements at different frequencies with +different parameter settings. Some timings could change slightly depending on +frequency, setup, or different with combinations of parameters, but this table +should give a good estimate of the impact of different parameter settings. The +average time is calculated as how long an individual sample took when either +there were multiple samples being averaged together or multiple samples being +displayed as one measurement loop. The delta time is the comparison of a +measurement to the same frequency under ideal parameters in the first few rows. + +.. list-table:: + :header-rows: 1 + + * - Freq (Hz) + - # Samples + - Avg + - Meas Delay (ms) + - Display + - Cal/Comp + - Auto Gain + - Time (s) + - Avg Time (s) + - Δ Time (s) + * - 1000000 + - 1 + - 1 + - 1 + - R/X + - None + - Off + - 0.00544 + - NA + - NA + * - 100000 + - 1 + - 1 + - 1 + - R/X + - None + - Off + - 0.00461 + - NA + - NA + * - 10000 + - 1 + - 1 + - 1 + - R/X + - None + - Off + - 0.00445 + - NA + - NA + * - 1000 + - 1 + - 1 + - 1 + - R/X + - None + - Off + - 0.00489 + - NA + - NA + * - 100 + - 1 + - 1 + - 1 + - R/X + - None + - Off + - 0.01439 + - NA + - NA + * - 10 + - 1 + - 1 + - 1 + - R/X + - None + - Off + - 0.10454 + - NA + - NA + * - 1 + - 1 + - 1 + - 1 + - R/X + - None + - Off + - 1.014 + - NA + - NA + * - 1000000 + - 1 + - 10 + - 1 + - R/X + - None + - Off + - 0.02333 + - 0.002333 + - -0.003107 + * - 100000 + - 1 + - 10 + - 1 + - R/X + - None + - Off + - 0.01516 + - 0.001516 + - -0.003094 + * - 10000 + - 1 + - 10 + - 1 + - R/X + - None + - Off + - 0.01354 + - 0.001354 + - -0.003096 + * - 1000 + - 1 + - 10 + - 1 + - R/X + - None + - Off + - 0.01813 + - 0.001813 + - -0.003077 + * - 100 + - 1 + - 10 + - 1 + - R/X + - None + - Off + - 0.10954 + - 0.010954 + - -0.003436 + * - 10 + - 1 + - 10 + - 1 + - R/X + - None + - Off + - 1.015 + - 0.1015 + - -0.003040 + * - 1 + - 1 + - 10 + - 1 + - R/X + - None + - Off + - 10.119 + - 1.0119 + - -0.002100 + * - 10000 + - 1 + - 1 + - 10 + - R/X + - None + - Off + - 0.01345 + - NA + - 0.009000 + * - 1000 + - 1 + - 1 + - 10 + - R/X + - None + - Off + - 0.01393 + - NA + - 0.009040 + * - 10000 + - 1 + - 1 + - 1 + - Z/Deg + - None + - Off + - 0.00451 + - NA + - 0.000060 + * - 1000 + - 1 + - 1 + - 1 + - Z/Deg + - None + - Off + - 0.00496 + - NA + - 0.000070 + * - 10000 + - 1 + - 1 + - 1 + - R/X + - None + - On + - 0.03499 + - NA + - 0.030540 + * - 1000 + - 1 + - 1 + - 1 + - R/X + - None + - On + - 0.03803 + - NA + - 0.033140 + * - 10000 + - 1 + - 1 + - 1 + - R/X + - Cal + - Off + - 0.00449 + - NA + - 0.000040 + * - 1000 + - 1 + - 1 + - 1 + - R/X + - Cal + - Off + - 0.00489 + - NA + - 0.000000 + * - 10000 + - 1 + - 1 + - 1 + - R/X + - Cal/Comp + - Off + - 0.00456 + - NA + - 0.000110 + * - 1000 + - 1 + - 1 + - 1 + - R/X + - Cal/Comp + - Off + - 0.00502 + - NA + - 0.000130 + * - 10000 + - 10 + - 1 + - 1 + - R/X + - None + - Off + - 0.03904 + - 0.003904 + - -0.000546 + * - 1000 + - 10 + - 1 + - 1 + - R/X + - None + - Off + - 0.04343 + - 0.004343 + - -0.000547 + +Calibration and Compensation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +A few milliseconds after power up, the AD-IMP2501DBZ-SL is ready to perform +measurements. However, any readings and their units are scaled and assigned +using nominal circuit parameters. Measurement accuracy should only be evaluated +after performing calibration on the module. Using an external calibration source +with certified traceability. For example, the +`Keysight E4980A `__ +can be used to validate. + +There are three basic calibration steps involved in calibrating the module: open +calibration, short calibration, and load calibration. The first two correct the +module and test lead parasitics. The latter provides traceability to an external +source. The calibration steps must be performed in the order open->short->load. +Open and load calibration are the most important. Short calibration may need to +be skipped in certain gain/load ranges where the current ADC would saturate. +Open calibration may need to be skipped in gain/load ranges that the voltage ADC +would saturate. + +.. figure:: images/open_short_load_config.png + :width: 800px + +.. figure:: images/fishercat_open_short_load.png + :width: 800px + +.. figure:: images/open_short_load_config_photo.png + :width: 800px + +.. tip:: + + When performing load calibration for a given gain setting, the optimal load + device (usually a resistor) is one with an impedance magnitude close to that + of the eventual load impedance. This will give the best system accuracy. + + Resistors, capacitors or inductors can be used for calibration. High-quality + resistors (e.g. thin film or metal film), air capacitors, and gas-filled + capacitors tend to provide the best results. Alternatively, C0G/NP0 type + ceramic capacitors can be used as well. The true value of these components + should be determined with traceable measurements from another meter, such as + the Keysight E4980A. + +Each measurement configuration (ch0 and ch1 gain combination) needs to be +calibrated separately. If calibration is performed for only one gain +combination, calibration needs to be carried out again if the gain configuration +changes. There are a total of **12** possible gain combinations based on the 4 +gain and 3 transimpedance settings for channel 0 (voltage) and channel 1 +(current) respectively. + +If the user calibrates at a specific gain, then changes the load and calibrates +again, the user will overwrite the result of the first calibration. Support for +calibration over frequency is included and incorporates the entire 1Hz to 1.5MHz +range. + +.. _eval-admx2501ebz calibration-steps: + +Calibration Steps +''''''''''''''''' + +To calibrate the module in a specific gain combination, follow the steps below: + +- Select the desired measurement configuration (gain, magnitude, and offset) +- Connect the H_POT and H_CUR terminal together and the L_POT and L_CUR + terminals together to form two separate connection pairs +- If using the on board loads, apply the jumpers as designated below: + +.. list-table:: + :header-rows: 1 + + * - Jumper Designation + - Install Position + - Description + * - P27 + - Pins 1-2 + - EIS HCUR + * - P28 + - Pins 1-2 + - EIS HPOT + * - P29 + - Pins 1-2 + - EIS LPOT + * - P30 + - Pins 1-2 + - EIS LCUR + * - P23 + - Pins 1-2 + - HCUR to HPOT connection + * - P24 + - Pins 1-2 + - LCUR to LPOT connection + * - P21 + - Not Installed + - User Selectable Load + * - P22 + - Not Installed + - User Selectable Load + * - P8 + - Not Installed + - User Selectable Load + * - P12 + - Pins 1-2 + - EIS HCUR SMA + * - + - Pins 5-6 + - EIS HPOT SMA + * - + - Pins 9-10 + - EIS LPOT SMA + * - + - Pins 13-14 + - EIS LCUR SMA + +- If using test clips or SMA cables that are tied together at the clip, remove + jumpers from P23 and P24. Place them so the clips are separated as close to + the same distance as they will be when the DUT is connected. + +.. note:: + + Open calibration at high frequencies and in higher impedance measurement + ranges is especially susceptible to error, due to the increased opportunity + for coupling into the current measurement path. The test setup is especially + important under these conditions + +- Run the ``calopen`` command and follow the prompts when ready. +- Connect all the measurement terminals together. + + - When measuring very small impedances, short calibration becomes extremely + important. Many fixtures have a low repeatability under these conditions. + Optimizing the repeatability of the setup is critical to getting a + meaningful result, for both calibration and measurement. + - In some instances ``calopen`` or ``calshort`` cannot be run due to the gain + or magnitude setting with the desired load. In this instance, do not run the + command, the system will use the default values. Alternatively, consider a + different gain combination for that desired load. + +- Run the ``calshort`` command, if possible, and follow the prompts when ready. +- Connect a known impedance between the measurement leads or choose a connection + configuration from the on board resistors. +- Run the ``calload `` command where ```` is the true + resistive value of the component (Ohms) and ```` is the true reactive + value of the component (Ohms) and follow the prompts when ready. + + - To obtain true values of resistive and reactive components beforehand, use a + calibrated LCR meter and select Rs and X for the display mode. + - For improved results, a standard resistor set like the + `Keysight 42030A `__ + can be used. + +After completing the steps above, calibration coefficients are generated and +stored in RAM. These coefficients will be applied to any subsequent measurements +when that gain combination is applied and the calibration is enabled, but will +be lost after a power cycle or reset of the module. To store the coefficients in +non-volatile memory (flash) the command ``calcommit`` must be executed. For +example: + +:: + + >>calcommit + Are you sure you want to commit the current calibration data to memory!? + + Press Y/y when ready to proceed or N/n to cancel. + >>y + Calibration data committed to memory... + >> + +This will store the calibration coefficients in RAM to flash. Power loss will no +longer remove the stored calibration data. + +.. note:: + + This commit of calibration data does not need to be done immediately after + running the calibration. As long as it is completed before the next power + loss the data will be saved. Multiple gain combination calibrations can be + completed before committing all the data to non-volatile memory. + +Calibration Example +''''''''''''''''''' + +Calibrate the gain setting (0, 1) with a resistor of value 100 Ohms. +:red:`The true resistance Rt from the E4980A at 100kHz was measured as 1000.019 Ohms, and the true reactance Xt was 0.822 Ohms.` + +:: + + >>gain 0 0 + Voltage Gain: x1 + + >>gain 1 1 + Current Gain: x500 + + >>mag 300 + Signal Magnitude: 300mV + + >>dcoffset 0 + DC Offset: 0mV + + >>calopen + + Beginning open load calibration... Connect the H_POT and H_CUR together and the L_POT and L_CUR together. + + Then hit Y/y when ready to proceed or N/n to cancel. <--- Connect open load now + + >>y + + Beginning Calibration... + + Calibration Stage Completed... + + >>calshort + + Beginning short load calibration... Connect all the measurement terminals together. + + Then hit Y/y when ready to proceed or N/n to cancel. <--- Connect short load now + + >>y + + Beginning Calibration... + + Calibration Stage Completed... + + >>calload 100 0 + + Beginning user load calibration... Connect known impedance between the measurements leads. + + Then hit Y/y when ready to proceed or N/n to cancel. <--- Connect calibration load now (100Ω on board resistor) + + >>y + + Beginning Calibration... + + Calibration Stage Completed... + + >>calread 0 1 + + Calibration Data + -------------------------- + R Gain Coeff: -2.409224e+06 + X Gain Coeff: 5.887465e+06 + R Open Coeff: 2.458235e+06 + X Open Coeff: -6.021623e+06 + R Short Coeff: 1.214380e-02 + X Short Coeff: -4.682108e-03 + G Gain Coeff: -7.332180e+01 + B Gain Coeff: -2.819907e+01 + G Open Coeff: 5.811038e-08 + B Open Coeff: 1.423455e-07 + G Short Coeff: 7.168965e+01 + B Short Coeff: 2.764033e+01 + -------------------------- + + >>calcommit + + Are you sure you want to commit the current calibration data to memory!? + + Press Y/y when ready to proceed or N/n to cancel. + + >>y + + Calibration data committed to memory... + + >>count 5 <--- simply for more samples + Count: 5 + + >>z <--- measurement with no calibration enabled + + 0, 1.013174e+02, 6.936672e-01 + 1, 1.016581e+02, 1.105903e+00 + 2, 1.030758e+02, -1.493440e-01 + 3, 1.010275e+02, 9.489138e-02 + 4, 1.036238e+02, -3.363047e-01 + + >>correction 1 + Correction Mode: Calibration Enabled + + >>z + + 0, 9.975729e+01, -5.334712e-01 + 1, 1.005431e+02, 2.199431e-01 + 2, 1.001880e+02, -5.269702e-01 + 3, 1.004466e+02, 1.122557e+00 + 4, 9.954122e+01, -1.490209e-01 + + >> + +Reading Calibration Coefficients +'''''''''''''''''''''''''''''''' + +Calibration coefficients for each gain can be read to the terminal. To read the +currently loaded coefficients for a certain gain setting, run the command +``calread ``. This prints the 12 AC coefficients to the terminal, +where they could be noted for future reference. If the gain combination has not +been calibrated yet, the default values will be shown. + +:: + + >>calread 0 1 + + Calibration Data + -------------------------- + R Gain Coeff: -2.409224e+06 + X Gain Coeff: 5.887465e+06 + R Open Coeff: 2.458235e+06 + X Open Coeff: -6.021623e+06 + R Short Coeff: 1.214380e-02 + X Short Coeff: -4.682108e-03 + G Gain Coeff: -7.332180e+01 + B Gain Coeff: -2.819907e+01 + G Open Coeff: 5.811038e-08 + B Open Coeff: 1.423455e-07 + G Short Coeff: 7.168965e+01 + B Short Coeff: 2.764033e+01 + -------------------------- + + >>calread 1 0 + + Calibration Data + -------------------------- + R Gain Coeff: -1.000000e+06 + X Gain Coeff: -1.000000e+06 + R Open Coeff: 1.000000e+06 + X Open Coeff: 1.000000e+06 + R Short Coeff: 0.000000e+00 + X Short Coeff: 0.000000e+00 + G Gain Coeff: -1.000000e+06 + B Gain Coeff: -1.000000e+06 + G Open Coeff: 0.000000e+00 + B Open Coeff: 0.000000e+00 + G Short Coeff: 1.000000e+06 + B Short Coeff: 1.000000e+06 + -------------------------- + + >> + +All gain combinations that will be utilized should be configured, otherwise the +default coefficients will be used even if calibration is turned on. Coefficients +must be saved using ``calcommit``; otherwise, they will be lost if the system +reboots or loses power. + +Compensation Procedure +'''''''''''''''''''''' + +Compensation is an additional measurement adjustment function designed to +account for changes in the test fixture or application setup that were not +present during calibration. This feature is useable, but it is also reasonable +to recalibrate for each fixture/setup, and use the commands detailed in +:ref:`eval-admx2501ebz calibration-steps` to save data for each config. + +To configure compensation coefficients, run the same steps in the calibration +procedure, but use the ``comp`` commands instead of the ``cal`` commands. Make +sure the commands are run with the setup fully intact and all connections to the +DUT in place. Refer to the help section on available commands for the specific +list and associated names for compensation located at +:ref:`eval-admx2501ebz ad-imp2501dbz-sl-available-commands` + +.. figure:: images/fishercat_compensation.png + :width: 600px + +Firmware Release Highlights +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Currently available firmare versions and release highlights: + +.. list-table:: + :header-rows: 1 + + * - Version + - Status + - Release Highlights + * - 4.3.1 + - Stable + - First web release + +Support +~~~~~~~ + +For support, general questions, or firmware update help, reach out to your local +ADI support team or email imp2501-support@analog.com. diff --git a/docs/solutions/reference-designs/eval-adrv9009/index.rst b/docs/solutions/reference-designs/eval-adrv9009/index.rst index 1ed930feb8b..10f42421caf 100644 --- a/docs/solutions/reference-designs/eval-adrv9009/index.rst +++ b/docs/solutions/reference-designs/eval-adrv9009/index.rst @@ -3,8 +3,7 @@ ADRV9009 & ADRV9008 =============================================================================== -Integrated Dual RF Tx, Rx, and Observation Rx -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Integrated Dual RF Tx, Rx, and Observation Rx. .. image:: adrv9009-bc.jpg :align: left @@ -41,7 +40,7 @@ If you have any questions, feel free to :ref:`ask `. #. :ref:`Quick Start Guides ` #. :ref:`Linux on ZCU102 ` - #. Configure an SD Card with :external+adi-kuiper-gen:doc:`Kuiper ` + #. Configure an SD Card with :external+kuiper:doc:`Kuiper ` #. Linux Applications diff --git a/docs/solutions/reference-designs/eval-adrv9009/quickstart/zynqmp.rst b/docs/solutions/reference-designs/eval-adrv9009/quickstart/zynqmp.rst index 6419a392b33..ada2756fa61 100644 --- a/docs/solutions/reference-designs/eval-adrv9009/quickstart/zynqmp.rst +++ b/docs/solutions/reference-designs/eval-adrv9009/quickstart/zynqmp.rst @@ -22,7 +22,7 @@ from source can be found here: Required Software ----------------- -- SD Card 8GB imaged with :external+adi-kuiper-gen:doc:`Kuiper ` +- SD Card 8GB imaged with :external+kuiper:doc:`Kuiper ` - A UART terminal (Putty/Tera Term/Minicom, etc.), Baud rate 115200 (8N1). Required Hardware diff --git a/docs/solutions/reference-designs/eval-adrv902x/index.rst b/docs/solutions/reference-designs/eval-adrv902x/index.rst index 57bfaa14dd2..e40aca5272e 100644 --- a/docs/solutions/reference-designs/eval-adrv902x/index.rst +++ b/docs/solutions/reference-designs/eval-adrv902x/index.rst @@ -3,8 +3,7 @@ EVAL-ADRV902X =============================================================================== -Integrated, Quad RF Transceiver with Observation Path -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Integrated, Quad RF Transceiver with Observation Path. .. image:: ../images/adrv9026.webp :align: left @@ -87,7 +86,7 @@ Table of contents #. Using the :ref:`VCK190/Versal ` #. Using the :ref:`ZCU102/Zynq UltraScale+ MP SoC ` - #. Configure an SD Card with :external+adi-kuiper-gen:doc:`Kuiper ` + #. Configure an SD Card with :external+kuiper:doc:`Kuiper ` #. Linux Applications diff --git a/docs/solutions/reference-designs/eval-adrv902x/quickstart/vck190.rst b/docs/solutions/reference-designs/eval-adrv902x/quickstart/vck190.rst index 0b4ffb4ae89..76bfa59ae1b 100644 --- a/docs/solutions/reference-designs/eval-adrv902x/quickstart/vck190.rst +++ b/docs/solutions/reference-designs/eval-adrv902x/quickstart/vck190.rst @@ -43,7 +43,7 @@ here: Required Software ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- SD Card 16GB imaged with :external+adi-kuiper-gen:doc:`Kuiper ` +- SD Card 16GB imaged with :external+kuiper:doc:`Kuiper ` - **Since the Versal support is not part of the latest release**, you must update the BOOT partition of the SD card with the latest built files from main branches. They can be downloaded from here: diff --git a/docs/solutions/reference-designs/eval-adrv902x/quickstart/zcu102.rst b/docs/solutions/reference-designs/eval-adrv902x/quickstart/zcu102.rst index f42c6bb2bc7..431309bbc98 100644 --- a/docs/solutions/reference-designs/eval-adrv902x/quickstart/zcu102.rst +++ b/docs/solutions/reference-designs/eval-adrv902x/quickstart/zcu102.rst @@ -8,82 +8,14 @@ ZCU102 Quick start .. esd-warning:: -This guide provides quick instructions on how to setup the -:adi:`EVAL-ADRV9026/ADRV9029 ` on: - -- :xilinx:`ZCU102` - -Using Linux as software -------------------------------------------------------------------------------- - -Necessary files -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following files are needed for the system to boot: - -- HDL boot image: ``BOOT.BIN`` -- Linux Kernel image: ``Image`` -- Linux device tree: ``system.dtb`` - -They can either be taken from the SD card -- already generated by us, or you -can build them manually. - -In the following sections, we explain **how to take them from the SD card**. - -Instructions on how to manually build the boot files from source can be found -here: - -- :ref:`linux-kernel zynqmp` -- :external+hdl:ref:`adrv9026` build documentation. More HDL build details at - :external+hdl:ref:`build_hdl`. - -Required Software -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- SD Card 16GB imaged with :external+adi-kuiper-gen:doc:`Kuiper ` - (check out that guide on how to do it, then come back to this section) -- A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1) - -Required Hardware -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- AMD Xilinx :xilinx:`ZCU102` Rev 1.0 FPGA board and its power supply -- :adi:`EVAL-ADRV9026/ADRV9029 ` FMC evaluation board -- SD card with at least 16GB of memory -- Micro-USB cable (UART) -- LAN cable (Ethernet) -- (Optional) USB keyboard & mouse and a HDMI compatible monitor - -More details as to why you need these, can be found at -:ref:`adrv902x prerequisites`. - -Testing -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Creating the setup -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. image:: ../../images/adrv9026_zcu102_setup.jpg - :width: 800 - -Follow the steps in this order, to avoid damaging the components: - -#. Connect the :adi:`EVAL-ADRV9026/ADRV9029 ` FMC board to the - ZCU102 **HPC1** FMC1 socket -#. Insert SD card into the SD card socket on the FPGA -#. Configure :xilinx:`ZCU102` for SD card boot mode (mode SW6[4:1] switch in - the position **OFF,OFF,OFF,ON** as seen in the below picture) - - .. image:: ../../images/zcu102_1p0_bootmode.jpg - :width: 400 - -#. Plug-in an Ethernet cable from your router/switch to the Ethernet port on - the FPGA board -#. Connect USB UART J83 (Micro-USB) to your host PC -#. (Optional) Connect a monitor to the FPGA by HDMI, and a mouse and a keyboard -#. Turn on the power switch on the FPGA board -#. Observe Kernel and serial console output messages on your terminal (use - the first ttyUSB or COM port registered) +.. include-template:: ../../common/zcu102-zynqmp-setup.rst + + label: adrv902x + eval_board: EVAL-ADRV9026/ADRV9029 + eval_board_link: EVAL-ADRV9026 + fmc_port: HPC1 + hdl_ref: adrv9026 + setup_image: adrv9026_zcu102_setup.jpg Boot messages ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/solutions/reference-designs/eval-adrv9032/block-diagram.png b/docs/solutions/reference-designs/eval-adrv9032/block-diagram.png new file mode 100644 index 00000000000..ee815065e24 --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv9032/block-diagram.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f583cf3d375e662ee82bbcbc9b44cf4e4439c23c2069a885fade0baa78a611c2 +size 263436 diff --git a/docs/solutions/reference-designs/eval-adrv9032/evaluation-board-angle.webp b/docs/solutions/reference-designs/eval-adrv9032/evaluation-board-angle.webp new file mode 100644 index 00000000000..2a9c146943a --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv9032/evaluation-board-angle.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9a74fdfe0469604a0ec2ae3f2a52e445bb7d4ec9ab78d536bbc616fa42bd28c +size 1433824 diff --git a/docs/solutions/reference-designs/eval-adrv9032/evaluation-board-bottom.webp b/docs/solutions/reference-designs/eval-adrv9032/evaluation-board-bottom.webp new file mode 100644 index 00000000000..894f3405830 --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv9032/evaluation-board-bottom.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3173204cd1f1f06c0ea0fa93addf3aaeae746f2fb5b5f58f1b3e490382d21327 +size 3142718 diff --git a/docs/solutions/reference-designs/eval-adrv9032/evaluation-board-top.webp b/docs/solutions/reference-designs/eval-adrv9032/evaluation-board-top.webp new file mode 100644 index 00000000000..91e0c966466 --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv9032/evaluation-board-top.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec3086a90aa658dc604fa8cf2b8cddf72c755af4b940343508066d457d1a124c +size 4033852 diff --git a/docs/solutions/reference-designs/eval-adrv9032/index.rst b/docs/solutions/reference-designs/eval-adrv9032/index.rst new file mode 100644 index 00000000000..d0f3ccf23e3 --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv9032/index.rst @@ -0,0 +1,207 @@ +.. _adrv9032: + +EVAL-ADRV9032 +=============================================================================== + +Integrated 2T2R TDD and FDD RadioVerse Transceiver with Dual Observation Paths. + +Overview +------------------------------------------------------------------------------- + +.. image:: evaluation-board-angle.webp + :align: right + :width: 500 + +The :adi:`EVAL-ADRV903x `, is an FMC radio card +designed to showcase the :adi:`ADRV9032 ` and :adi:`ADRV9032R`, highly +integrated, radio frequency (RF) agile transceivers offering 2 independently +controlled transmitters, dual observation receiver inputs for monitoring +transmitter channels, 2 independently controlled receivers, integrated +local oscillator (LO) and clock synthesizers, and digital signal processing +functions providing a complete transceiver solution. + +The device provides the high radio performance and low-power consumption +demanded by cellular infrastructure applications, software-defined radios, +portable instruments, and military communications. + +Features: + +- Both chips feature: + + - 2 differential transmitters & 2 differential receivers + - 2 differential observation receivers + - Support for TDD and FDD applications + - LO tunable range: 450 MHz to 7125 MHz + - RF range: 350 MHz to 7225 MHz + - Maximum transmitter large-signal bandwidth: 200 MHz + - Maximum transmitter synthesis bandwidth: 450 MHz + - Maximum receiver signal bandwidth: 200 MHz + - Maximum observation receiver signal bandwidth: 450 MHz + - JESD204B and JESD204C digital interface: up to 16.5 Gbps + - Low power consumption: 4.82 W for TDD mode with 200 MHz bandwidth + +- Complete ADRV9032/ADRV9032R radio cards for evaluation + + - FMC connector for FPGA integration + - Fully integrated fractional-N RF synthesizer + - Fully integrated clock synthesizer + - Dual external LO inputs supporting operation up to 6 GHz (ADRV9032R) + +Applications: + +- Software defined radios +- Portable instrumentation +- Military communications +- General-purpose radios +- Wireless infrastructure +- 3G/4G/5G TDD and FDD base stations + +.. toctree:: + :hidden: + + user-guide + prerequisites + quickstart/index + +Recommendations +------------------------------------------------------------------------------- + +People who follow the flow that is outlined, have a much better experience with +things. However, like many things, documentation is never as complete as it +should be. If you have any questions, feel free to ask on our +:ref:`EngineerZone forums `, but before that, please make +sure you read our documentation thoroughly. + +To better understand the :adi:`ADRV9032 ` / :adi:`ADRV9032R`, we recommend to use +the :adi:`EVAL-ADRV903x ` evaluation board. + +Table of contents +------------------------------------------------------------------------------- + +#. Using the evaluation board/full stack reference design that we offer: + + #. :ref:`Prerequisites ` - what you need to get started + #. :ref:`Quick start guides `: + + #. Using the :ref:`ZCU102/Zynq UltraScale+ MP SoC ` + + #. Configure an SD Card with :external+kuiper:doc:`Kuiper ` + + #. Linux Applications + + #. :ref:`iio-oscilloscope` + +#. Design with the ADRV9032/ADRV9032R + + - :ref:`adrv9032 block-diagram` + + - :adi:`ADRV9032R product page ` + - :adi:`Full data sheet and chip design package ` + + - Hardware in the Loop / How to design your own custom BaseBand + + - :dokuwiki:`GNU Radio ` + - :dokuwiki:`Transceiver Toolbox ` + + - Resources for designing a custom ADRV9032/ADRV9032R-based platform software + + #. For Linux software: + + #. About the device driver: + + - :dokuwiki:`JESD204B Transmit Linux driver ` + - :dokuwiki:`JESD204B Receive Linux driver ` + - :external+hdl:ref:`axi_jesd204_tx` + - :external+hdl:ref:`axi_jesd204_rx` + - :dokuwiki:`JESD204B/C AXI_ADXCVR High-speed transceivers Linux driver ` + - :dokuwiki:`AXI ADC HDL Linux driver ` + - :dokuwiki:`AXI DAC HDL Linux driver ` + - :dokuwiki:`AD9528 Low Jitter Clock Generator Linux driver ` + - :external+hdl:ref:`axi_dmac` + - ADRV9032/ADRV9032R Linux device driver (in-tree at :git-linux:`drivers/iio/adc/adrv903x/adrv903x.c`) + + #. About the device tree: + + - :dokuwiki:`Customizing the device tree on the target ` + + #. About the JESD204 utilities: + + - :dokuwiki:`JESD204 (FSM) interface Linux Kernel framework ` + - :dokuwiki:`JESD204 status utility ` + - :dokuwiki:`JESD204 Eye Scan ` + - :external+hdl:ref:`jesd204` + + #. :dokuwiki:`Changing the VCXO frequency and updating the default RF Transceiver Profile ` + #. :git-hdl:`HDL reference design ` which you must use in your FPGA. + More HDL build details at :external+hdl:ref:`build_hdl`. + +#. :dokuwiki:`Additional documentation about SDR Signal Chains - The math behind the RF ` +#. :ref:`Help and Support ` + +.. _adrv9032 block-diagram: + +Block diagram +------------------------------------------------------------------------------- + +The ADRV9032/ADRV9032R features a zero-IF (ZIF) architecture that provides +wide bandwidth with dynamic range suitable for non-contiguous multicarrier +applications. The transceiver includes: + +- 2 transmitter channels with integrated DACs +- 2 receiver channels with integrated ADCs +- 2 observation receiver channels for transmitter monitoring +- Integrated RF and clock synthesizers +- JESD204B/C digital interface (up to 16.5 Gbps) +- SPI control interface +- General purpose I/O and interrupts + +.. image:: block-diagram.png + :align: center + :width: 800 + +Pictures +------------------------------------------------------------------------------- + +.. figure:: evaluation-board-top.webp + + ADRV903X evaluation board - top view + +.. figure:: evaluation-board-bottom.webp + + ADRV903X evaluation board - bottom view + +Videos +------------------------------------------------------------------------------- + +Software Defined Radio using the Linux IIO Framework +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. video:: http://ftp.fau.de/fosdem/2015/devroom-software_defined_radio/iiosdr.mp4 + +ADI articles +------------------------------------------------------------------------------- + +Four Quick Steps to Production: Using Model-Based Design for Software-Defined +Radio: + +#. :adi:`Part 1 - The Analog Devices/AMD Xilinx SDR Rapid Prototyping Platform: Its Capabilities, Benefits, and Tools ` +#. :adi:`Part 2 - Mode S Detection and Decoding Using MATLAB and Simulink ` +#. :adi:`Part 3 - Mode S Signals Decoding Algorithm Validation Using Hardware in the Loop ` +#. :adi:`Part 4 - Rapid Prototyping Using the Zynq SDR Kit and Simulink Code Generation Workflow ` + +About JESD standard: + +#. :adi:`JESD204B Survival Guide ` +#. :adi:`JESD204C Primer: What's New and in It for You—Part 1 ` +#. :adi:`JESD204C Primer: What's New and in It for You—Part 2 ` + +MathWorks webinars +------------------------------------------------------------------------------- + +#. :mw:`Modelling and Simulating Analog Devices' RF Transceivers with MATLAB and SimRF ` +#. :mw:`Getting Started with Software-Defined Radio using MATLAB and Simulink ` + +Warning +------------------------------------------------------------------------------- + +.. esd-warning:: diff --git a/docs/solutions/reference-designs/eval-adrv9032/prerequisites.rst b/docs/solutions/reference-designs/eval-adrv9032/prerequisites.rst new file mode 100644 index 00000000000..48410e7a31e --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv9032/prerequisites.rst @@ -0,0 +1,53 @@ +.. _adrv9032 prerequisites: + +Prerequisites +=============================================================================== + +What you need, depends on what you are trying to do. As a minimum, you need to +start out with: + +Hardware prerequisites +------------------------------------------------------------------------------- + +#. The ADRV9032/ADRV9032R-based evaluation board: + :adi:`EVAL-ADRV903x ` +#. An FPGA carrier platform. Our recommended ones can be found + :ref:`here `. + + - There are a few more boards, which do work, but are currently not + supported by us. The experience with the fabric-only solutions is very + close to the ARM/FPGA SoC based solutions, but the GUI runs on a host PC + (Windows or Linux). + +#. Some way to interact with the FPGA platform: + + #. for the ARM/FPGA SoC platforms, this normally includes: + + - HDMI or DisplayPort monitor + - USB Keyboard + - USB Mouse + + #. for the FPGA only solutions, this includes: + + - LAN cable (Ethernet) + - Host PC (Windows or Linux) + +#. Internet connection (without proxies makes things much easier) to update the + scripts/binaries on the SD card that came with the ADI FMC Card (firewalls + are OK, proxies make things a pain). +#. RF Test equipment +#. An SD card with at least 16GB of memory (in case you're using Linux). You + should have received one when purchasing the evaluation board. + +Software prerequisites +------------------------------------------------------------------------------- + +Normally, for basic functionalities regarding visualizing the data received +from the FPGA, we use the following: + +#. :ref:`iio-oscilloscope` + +.. note:: + + :adi:`ADI <>` does not offer FPGA carrier platforms for sale or loan; getting + one yourself is the normal part of development or evaluation. diff --git a/docs/solutions/reference-designs/eval-adrv9032/quickstart/index.rst b/docs/solutions/reference-designs/eval-adrv9032/quickstart/index.rst new file mode 100644 index 00000000000..2e3d09c5304 --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv9032/quickstart/index.rst @@ -0,0 +1,75 @@ +.. _adrv9032 quickstart: + +Quick start +=============================================================================== + +The Quick start guides provide simple step by step instructions on how to do +an initial system setup for the :adi:`EVAL-ADRV903x ` +boards on various FPGA development boards. In these guides, we will discuss how +to program the bitstream, run a no-OS program or boot a Linux distribution. + +.. toctree:: + + On ZCU102 + +.. _adrv9032 carriers: + +Supported carriers +------------------------------------------------------------------------------- + +The :adi:`EVAL-ADRV903x `, is, by definition a "FPGA +mezzanine card" (FMC); that means it needs a carrier to plug into. + +The carriers we support are listed below, as well as the FMC port where to +connect the evaluation board: + +.. list-table:: + :header-rows: 1 + + - - FPGA board + - EVAL-ADRV9032 + - EVAL-ADRV9032R + - - :xilinx:`ZCU102` + - FMC HPC1 + - FMC HPC1 + +Supported Environments +------------------------------------------------------------------------------- + +The supported OS are: + +.. list-table:: + :header-rows: 1 + + - - FPGA board + - HDL + - Linux software + - No-OS software + - - :xilinx:`ZCU102` + - Yes + - Yes + - Yes + +Hardware Setup +------------------------------------------------------------------------------- + +On most carriers, the :adi:`EVAL-ADRV903x ` boards +connects to the HPC1 connector (unless otherwise noted). The carrier setup +requires power, UART (115200), Ethernet (Linux), HDMI (if available) and/or +JTAG (no-OS) connections. A few typical setups are shown below. + +ZCU102 + EVAL-ADRV9032 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The EVAL-ADRV9032 evaluation board connects to the FMC HPC1 connector on the +ZCU102. Typical hardware setup includes: + +- Power supply for ZCU102 +- FMC connection between EVAL-ADRV9032 and ZCU102 HPC1 +- UART connection (115200 baud) +- Ethernet connection for Linux networking +- HDMI connection to monitor (optional) +- SD card with boot files and Linux distribution + +For detailed connection information and setup photos, please refer to the +:adi:`ADRV903x System Development User Guide `. diff --git a/docs/solutions/reference-designs/eval-adrv9032/quickstart/zcu102.rst b/docs/solutions/reference-designs/eval-adrv9032/quickstart/zcu102.rst new file mode 100644 index 00000000000..bb001a6179f --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv9032/quickstart/zcu102.rst @@ -0,0 +1,149 @@ +.. _adrv9032 quickstart zcu102: + +ZCU102 Quick start +=============================================================================== + +.. image:: ../../images/zcu102.jpg + :width: 900 + +.. esd-warning:: + +.. include-template:: ../../common/zcu102-zynqmp-setup.rst + + label: adrv9032 + eval_board: EVAL-ADRV903x + eval_board_link: en/resources/evaluation-hardware-and-software/evaluation-boards-kits/eval-adrv903x.html + fmc_port: HPC1 + +Boot messages +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following is what is printed in the serial console, after you have +connected to the proper ttyUSB or COM port: + +.. collapsible:: Complete boot log + + :: + + Zynq MP First Stage Boot Loader + Release 2025.1 Dec 9 2025 - 14:14:37 + NOTICE: BL31: Non secure code at 0x8000000 + NOTICE: BL31: v2.12.0(release):xilinx-v2025.1 + NOTICE: BL31: Built : 11:08:56, Aug 12 2025 + PMUFW: v1.1 + + + U-Boot 2018.01-21442-gf06dec3cab (Feb 13 2025 - 17:12:07 +0200) Xilinx ZynqMP ZCU102 revA + + I2C: ready + DRAM: 4 GiB + EL Level: EL2 + Chip ID: zu9eg + MMC: sdhci@ff170000: 0 (SD) + *** Warning - bad CRC, using default environment + + In: serial@ff000000 + Out: serial@ff000000 + Err: serial@ff000000 + Bootmode: LVL_SHFT_SD_MODE1 + Net: ZYNQ GEM: ff0e0000, phyaddr 15, interface rgmii-id + + Warning: ethernet@ff0e0000 using MAC address from ROM + eth0: ethernet@ff0e0000 + Hit any key to stop autoboot: 0 + switch to partitions #0, OK + mmc0 is current device + ... + reading Image + 44519936 bytes read in 2980 ms (14.2 MiB/s) + ## Flattened Device Tree blob at 04000000 + Booting using the fdt blob at 0x4000000 + Loading Device Tree to 000000000fff0000, end 000000000ffff0f4 ... OK + + Starting kernel ... + + [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] + [ 0.000000] Linux version 6.12.0-27064-g9495a3d76542 (spopa@HYB-JRXo5UEs61B) #16 SMP Tue Feb 17 17:01:10 EET 2026 + [ 0.000000] Machine model: ZynqMP ZCU102 Rev1.0 + [ 0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (options '115200n8') + ... + [ 1.098167] jesd204: created con: id=6, topo=0, link=0, /fpga-axi@0/axi-jesd204-tx@84a90000 <-> /fpga-axi@0/axi-adrv903x-tx-hpc@84a04000 + [ 1.110365] jesd204: created con: id=7, topo=0, link=2, /fpga-axi@0/axi-jesd204-rx@84aa0000 <-> /axi/spi@ff040000/adrv903x-phy@0 + [ 1.121867] jesd204: created con: id=8, topo=0, link=3, /fpga-axi@0/axi-jesd204-rx-os@85aa0000 <-> /axi/spi@ff040000/adrv903x-phy@0 + [ 1.133633] jesd204: created con: id=9, topo=0, link=0, /fpga-axi@0/axi-adrv903x-tx-hpc@84a04000 <-> /axi/spi@ff040000/adrv903x-phy@0 + [ 1.145578] jesd204: /axi/spi@ff040000/adrv903x-phy@0: JESD204[0:0] transition uninitialized -> initialized + [ 1.155254] jesd204: /axi/spi@ff040000/adrv903x-phy@0: JESD204[0:2] transition uninitialized -> initialized + [ 1.164941] jesd204: /axi/spi@ff040000/adrv903x-phy@0: JESD204[0:3] transition uninitialized -> initialized + [ 1.174630] jesd204: found 9 devices and 1 topologies + ... + [ 1.940648] axi_sysid 85000000.axi-sysid-0: [adrv903x] [JESD_MODE=64B66B ORX_ENABLE=1 RX:RATE=16.22 M=4 L=2 S=1 NP=16 TPL_WIDTH= LINKS=1 TX:RATE=16.22 M=4 L=2 S=1 NP=16 TPL_WIDTH= LINKS=1 ORX:RATE=16.22 M=4 L=2 S=1 NP=16 TPL_WIDTH= LINKS=1] on [zcu102] + ... + [ 29.767179] systemd[1]: Failed to look up module alias 'autofs4': Function not implemented + [ 29.800681] systemd[1]: systemd 247.3-7+rpi1+deb11u2 running in system mode. + + Welcome to Kuiper GNU/Linux 11.2 (bullseye)! + + ... + My IP address is 192.168.100.2 169.254.173.46 + + Raspbian GNU/Linux 11 analog ttyPS0 + + analog login: + +Default login credentials: + +- Username: ``analog`` +- Password: ``analog`` + +Verifying the setup +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +After logging in, you can verify that the ADRV9032 device is properly detected +by the Linux kernel: + +.. shell:: + + $iio_info | grep iio:device + iio:device0: xilinx-ams + iio:device1: adrv903x-phy + iio:device2: axi-adrv903x-rx-hpc (buffer capable) + iio:device3: axi-adrv903x-tx-hpc (buffer capable) + +.. include:: ../../common/using-iio-osc.rst + +Using no-OS as software +------------------------------------------------------------------------------- + +Necessary files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following files are needed for the system to boot: + +- HDL boot file: ``system_top.xsa`` +- no-OS project: :git-no-os:`projects/adrv903x` + +Instructions on how to build the boot files from source can be found here: + +- :git-no-os:`projects/adrv903x`. More no-OS build + details at :external+no-OS:doc:`build_guide`. +- :git-hdl:`projects/adrv9032`. More HDL build details at + :external+hdl:ref:`build_hdl`. + +Required Software +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- AMD Xilinx Vivado and Vitis (downloading Vitis from + `here `_ + will include Vivado as well) +- An UART terminal (Putty/Tera Term/Minicom, etc.), Baud rate 115200 (8N1) + +Required Hardware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- AMD Xilinx :xilinx:`ZCU102` Rev 1.0 FPGA board and its power supply +- :adi:`EVAL-ADRV903x ` FMC evaluation board +- 2x Micro-USB cables, one for UART and one for JTAG +- (Optional) USB keyboard & mouse and a HDMI-compatible monitor + +More details as to why you need these, can be found at +:ref:`adrv9032 prerequisites`. diff --git a/docs/solutions/reference-designs/eval-adrv9032/user-guide.rst b/docs/solutions/reference-designs/eval-adrv9032/user-guide.rst new file mode 100644 index 00000000000..cfdfb786bde --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv9032/user-guide.rst @@ -0,0 +1,40 @@ +.. _adrv9032 user-guide: + +User guide +=============================================================================== + +The complete user guide of the evaluation board can be found at +:adi:`ADRV903x System Development User Guide (UG-2278) `. + +Hardware guide +------------------------------------------------------------------------------- + +Power supply +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The power supply comes from the FMC connector, given by the FPGA. + +The VADJ values can be checked out in the README.md file of each combination +with an FPGA, at: :git-hdl:`projects/adrv9032`. + +Schematic, PCB Layout, Bill of Materials +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Design files for the EVAL-ADRV9032 evaluation board include: + +- Schematics +- PCB Layout +- Bill of Materials +- Design package + +Please refer to the :adi:`ADRV9032R product page ` for +downloadable design files. + +Software guide +------------------------------------------------------------------------------- + +The evaluation board is supported with the Libiio library. This library is +cross-platform (Windows, Linux, Mac) with language bindings for C, C#, Python, +MATLAB, and others. One easy to example that can be used with it is: + +- :ref:`iio-oscilloscope` diff --git a/docs/solutions/reference-designs/eval-adrv904x/index.rst b/docs/solutions/reference-designs/eval-adrv904x/index.rst new file mode 100644 index 00000000000..4cec5c1c23a --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv904x/index.rst @@ -0,0 +1,202 @@ +.. _adrv904x: + +EVAL-ADRV904x +=============================================================================== + +Integrated 8T8R RF Transceiver with Digital Pre-Distortion and Crest Factor Reduction. + +.. image:: ../images/adrv904x-evaluation-board.png + :align: left + :width: 150 + +Overview +------------------------------------------------------------------------------- + +The :adi:`EVAL-ADRV904x `, +is an FMC radio card designed to showcase the :adi:`ADRV9040` and +:adi:`ADRV9044`, highly integrated, radio frequency (RF) agile transceivers +offering 8 independently controlled transmitters, 2 observation receiver inputs +for monitoring transmitter channels, 8 independently controlled receivers, +integrated local oscillator (LO) and clock synthesizers, digital front-end +(DFE) with crest factor reduction (CFR) and digital pre-distortion (DPD), and +digital signal processing functions providing a complete transceiver solution. + +The device provides the high radio performance and low-power consumption +demanded by cellular infrastructure applications and massive MIMO base stations, +offering advanced DFE capabilities on an integrated ARM Cortex-A55 quad-core +processor. + +Features: + +- Both chips feature: + + - 8 differential transmitters & 8 differential receivers + - 2 differential observation receivers + - Support for TDD and FDD applications + - LO tunable range: 450 MHz to 7100 MHz + - RF frequency bands: + + - Low Band (LB): 600 MHz to 2800 MHz + - Mid Band (MB): 1.8 GHz to 4.8 GHz + - High Band (HB): 4.5 GHz to 6 GHz + + - Integrated Digital Front-End (DFE) with CFR and digital pre-distortion + - ARM Cortex-A55 quad-core processor for DFE algorithms (DPD, CLGC, VSWR) + - JESD204B and JESD204C digital interface with fixed and floating-point + data format support + - Zero-IF (ZIF) architecture + +- Complete ADRV9040/ADRV9044 radio cards for evaluation + + - FMC connector for FPGA integration + - Fully integrated fractional-N RF synthesizer + - Fully integrated clock synthesizer + +Applications: + +- 3G/4G/5G TDD and FDD massive MIMO +- Macro and small cell base stations +- Software defined radios +- Wireless infrastructure + +.. toctree:: + :hidden: + + user-guide + prerequisites + quickstart/index + +Recommendations +------------------------------------------------------------------------------- + +People who follow the flow that is outlined, have a much better experience with +things. However, like many things, documentation is never as complete as it +should be. If you have any questions, feel free to ask on our +:ref:`EngineerZone forums `, but before that, please make +sure you read our documentation thoroughly. + +To better understand the :adi:`ADRV9040` / :adi:`ADRV9044`, we recommend to +use the :adi:`EVAL-ADRV904x ` +evaluation board. + +Table of contents +------------------------------------------------------------------------------- + +#. Using the evaluation board/full stack reference design that we offer: + + #. :ref:`Prerequisites ` - what you need to get started + #. :ref:`Quick start guides `: + + #. Using the :ref:`ZCU102/Zynq UltraScale+ MP SoC ` + + #. Configure an SD Card with :external+kuiper:doc:`Kuiper ` + + #. Linux Applications + + #. :ref:`iio-oscilloscope` + +#. Design with the ADRV9040/ADRV9044 + + - :ref:`adrv904x block-diagram` + + - :adi:`ADRV9040 product page ` + - :adi:`ADRV9044 product page ` + - :adi:`Full data sheet and chip design package ` + + - Hardware in the Loop / How to design your own custom BaseBand + + - :dokuwiki:`GNU Radio ` + - :dokuwiki:`Transceiver Toolbox ` + + - Resources for designing a custom ADRV9040/ADRV9044-based platform software + + #. For Linux software: + + #. About the device driver: + + - :dokuwiki:`JESD204B Transmit Linux driver ` + - :dokuwiki:`JESD204B Receive Linux driver ` + - :dokuwiki:`JESD204B/C AXI_ADXCVR High-speed transceivers Linux driver ` + - :dokuwiki:`AXI ADC HDL Linux driver ` + - :dokuwiki:`AXI DAC HDL Linux driver ` + - :dokuwiki:`AD9528 Low Jitter Clock Generator Linux driver ` + - :dokuwiki:`AXI-DMAC DMA Controller Linux driver ` + - :dokuwiki:`ADRV904x Linux device driver ` + (not yet mainlined; source at + :git-linux:`staging/koror_support:drivers/iio/adc/koror/adrv904x.c`) + and :dokuwiki:`how to customize it ` + + #. About the device tree: + + - :dokuwiki:`Customizing the device tree on the target ` + + #. About the JESD204 utilities: + + - :dokuwiki:`JESD204 (FSM) interface Linux Kernel framework ` + - :dokuwiki:`JESD204 status utility ` + - :dokuwiki:`JESD204 Eye Scan ` + - :external+hdl:ref:`jesd204` + + #. :dokuwiki:`Changing the VCXO frequency and updating the default RF Transceiver Profile ` + #. :git-hdl:`HDL reference design ` which you must use in your FPGA. + +#. :dokuwiki:`Additional documentation about SDR Signal Chains - The math behind the RF ` +#. :ref:`Help and Support ` + +.. _adrv904x block-diagram: + +Block diagram +------------------------------------------------------------------------------- + +The ADRV9040/ADRV9044 features a zero-IF (ZIF) architecture that provides +wide bandwidth with dynamic range suitable for contiguous and non-contiguous +multicarrier applications. The transceiver includes: + +- 8 transmitter channels with integrated DACs and DPD/CFR +- 8 receiver channels with integrated ADCs +- 2 observation receiver channels for transmitter monitoring +- Integrated RF and clock synthesizers +- Integrated ARM Cortex-A55 quad-core processor for DFE +- JESD204B/C digital interface +- SPI control interface +- General purpose I/O and interrupts + +.. image:: ../images/adrv904x_block_diagram.png + :align: center + :width: 800 + +Videos +------------------------------------------------------------------------------- + +Software Defined Radio using the Linux IIO Framework +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. video:: http://ftp.fau.de/fosdem/2015/devroom-software_defined_radio/iiosdr.mp4 + +ADI articles +------------------------------------------------------------------------------- + +Four Quick Steps to Production: Using Model-Based Design for Software-Defined +Radio: + +#. :adi:`Part 1 - The Analog Devices/Xilinx SDR Rapid Prototyping Platform: Its Capabilities, Benefits, and Tools ` +#. :adi:`Part 2 - Mode S Detection and Decoding Using MATLAB and Simulink ` +#. :adi:`Part 3 - Mode S Signals Decoding Algorithm Validation Using Hardware in the Loop ` +#. :adi:`Part 4 - Rapid Prototyping Using the Zynq SDR Kit and Simulink Code Generation Workflow ` + +About JESD standard: + +#. :adi:`JESD204B Survival Guide ` +#. :adi:`JESD204C Primer: What's New and in It for You—Part 1 ` +#. :adi:`JESD204C Primer: What's New and in It for You—Part 2 ` + +MathWorks webinars +------------------------------------------------------------------------------- + +#. :mw:`Modelling and Simulating Analog Devices' RF Transceivers with MATLAB and SimRF ` +#. :mw:`Getting Started with Software-Defined Radio using MATLAB and Simulink ` + +Warning +------------------------------------------------------------------------------- + +.. esd-warning:: diff --git a/docs/solutions/reference-designs/eval-adrv904x/prerequisites.rst b/docs/solutions/reference-designs/eval-adrv904x/prerequisites.rst new file mode 100644 index 00000000000..8b28bc77e0b --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv904x/prerequisites.rst @@ -0,0 +1,53 @@ +.. _adrv904x prerequisites: + +Prerequisites +=============================================================================== + +What you need, depends on what you are trying to do. As a minimum, you need to +start out with: + +Hardware prerequisites +------------------------------------------------------------------------------- + +#. The ADRV9040/ADRV9044-based evaluation board: + :adi:`EVAL-ADRV904x ` +#. An FPGA carrier platform. Our recommended ones can be found + :ref:`here `. + + - There are a few more boards, which do work, but are currently not + supported by us. The experience with the fabric-only solutions is very + close to the ARM/FPGA SoC based solutions, but the GUI runs on a host PC + (Windows or Linux). + +#. Some way to interact with the FPGA platform: + + #. for the ARM/FPGA SoC platforms, this normally includes: + + - HDMI or DisplayPort monitor + - USB Keyboard + - USB Mouse + + #. for the FPGA only solutions, this includes: + + - LAN cable (Ethernet) + - Host PC (Windows or Linux) + +#. Internet connection (without proxies makes things much easier) to update the + scripts/binaries on the SD card that came with the ADI FMC Card (firewalls + are OK, proxies make things a pain). +#. RF Test equipment +#. An SD card with at least 16GB of memory (in case you're using Linux). You + should have received one when purchasing the evaluation board. + +Software prerequisites +------------------------------------------------------------------------------- + +Normally, for basic functionalities regarding visualizing the data received +from the FPGA, we use the following: + +#. :dokuwiki:`IIO Oscilloscope ` + +.. note:: + + :adi:`ADI <>` does not offer FPGA carrier platforms for sale or loan; getting + one yourself is the normal part of development or evaluation. diff --git a/docs/solutions/reference-designs/eval-adrv904x/quickstart/index.rst b/docs/solutions/reference-designs/eval-adrv904x/quickstart/index.rst new file mode 100644 index 00000000000..8dc4c578f4c --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv904x/quickstart/index.rst @@ -0,0 +1,75 @@ +.. _adrv904x quickstart: + +Quick start +=============================================================================== + +The Quick start guides provide simple step by step instructions on how to do +an initial system setup for the :adi:`EVAL-ADRV904x ` +boards on various FPGA development boards. In these guides, we will discuss how +to program the bitstream, run a no-OS program or boot a Linux distribution. + +.. toctree:: + + On ZCU102 + +.. _adrv904x carriers: + +Supported carriers +------------------------------------------------------------------------------- + +The :adi:`EVAL-ADRV904x `, is, by definition a "FPGA +mezzanine card" (FMC); that means it needs a carrier to plug into. + +The carriers we support are listed below, as well as the FMC port where to +connect the evaluation board: + +.. list-table:: + :header-rows: 1 + + - - FPGA board + - EVAL-ADRV9040 + - EVAL-ADRV9044 + - - :xilinx:`ZCU102` + - FMC HPC1 + - FMC HPC1 + +Supported Environments +------------------------------------------------------------------------------- + +The supported OS are: + +.. list-table:: + :header-rows: 1 + + - - FPGA board + - HDL + - Linux software + - No-OS software + - - :xilinx:`ZCU102` + - Yes + - Yes + - Yes + +Hardware Setup +------------------------------------------------------------------------------- + +On most carriers, the :adi:`EVAL-ADRV904x ` boards +connects to the HPC1 connector (unless otherwise noted). The carrier setup +requires power, UART (115200), Ethernet (Linux), HDMI (if available) and/or +JTAG (no-OS) connections. A few typical setups are shown below. + +ZCU102 + EVAL-ADRV904x +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The EVAL-ADRV904x evaluation board connects to the FMC HPC1 connector on the +ZCU102. Typical hardware setup includes: + +- Power supply for ZCU102 +- FMC connection between EVAL-ADRV904x and ZCU102 HPC1 +- UART connection (115200 baud) +- Ethernet connection for Linux networking +- HDMI connection to monitor (optional) +- SD card with boot files and Linux distribution + +For detailed connection information and setup photos, please refer to the +:adi:`ADRV904x Evaluation System User Guide `. diff --git a/docs/solutions/reference-designs/eval-adrv904x/quickstart/zcu102.rst b/docs/solutions/reference-designs/eval-adrv904x/quickstart/zcu102.rst new file mode 100644 index 00000000000..9be1314d5e5 --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv904x/quickstart/zcu102.rst @@ -0,0 +1,272 @@ +.. _adrv904x quickstart zcu102: + +ZCU102 Quick start +=============================================================================== + +.. image:: ../../images/zcu102.jpg + :width: 900 + +.. esd-warning:: + +.. include-template:: ../../common/zcu102-zynqmp-setup.rst + + label: adrv904x + eval_board: EVAL-ADRV904x + eval_board_link: en/resources/evaluation-hardware-and-software/evaluation-boards-kits/eval-adrv904x.html + fmc_port: HPC1 + hdl_ref: adrv904x + +Boot messages +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following is what is printed in the serial console, after you have +connected to the proper ttyUSB or COM port: + +.. collapsible:: Complete boot log + + :: + + Zynq MP First Stage Boot Loader + Release 2025.1 Dec 9 2025 - 14:14:37 + NOTICE: BL31: Non secure code at 0x8000000 + NOTICE: BL31: v2.12.0(release):xilinx-v2025.1 + NOTICE: BL31: Built : 11:08:56, Aug 12 2025 + PMUFW: v1.1 + + + U-Boot 2018.01-21442-gf06dec3cab (Feb 13 2025 - 17:12:07 +0200) Xilinx ZynqMP ZCU102 revA + + I2C: ready + DRAM: 4 GiB + EL Level: EL2 + Chip ID: zu9eg + MMC: sdhci@ff170000: 0 (SD) + *** Warning - bad CRC, using default environment + + In: serial@ff000000 + Out: serial@ff000000 + Err: serial@ff000000 + Bootmode: LVL_SHFT_SD_MODE1 + Net: ZYNQ GEM: ff0e0000, phyaddr 15, interface rgmii-id + + Warning: ethernet@ff0e0000 using MAC address from ROM + eth0: ethernet@ff0e0000 + Hit any key to stop autoboot: 0 + switch to partitions #0, OK + mmc0 is current device + ... + reading Image + 44519936 bytes read in 2980 ms (14.2 MiB/s) + ## Flattened Device Tree blob at 04000000 + Booting using the fdt blob at 0x4000000 + Loading Device Tree to 000000000fff0000, end 000000000ffff0f4 ... OK + + Starting kernel ... + + [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] + [ 0.000000] Linux version 6.12.0-27064-g9495a3d76542 (spopa@HYB-JRXo5UEs61B) #16 SMP Tue Feb 17 17:01:10 EET 2026 + [ 0.000000] Machine model: ZynqMP ZCU102 Rev1.0 + [ 0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (options '115200n8') + ... + [ 1.017619] jesd204: created con: id=0, topo=0, link=0, /axi/spi@ff040000/ad9528-1@1 <-> /fpga-axi@0/axi-adxcvr-tx@84a80000 + [ 1.028155] jesd204: created con: id=1, topo=0, link=2, /axi/spi@ff040000/ad9528-1@1 <-> /fpga-axi@0/axi-adxcvr-rx@84a60000 + [ 1.039223] jesd204: created con: id=2, topo=0, link=0, /fpga-axi@0/axi-adxcvr-tx@84a80000 <-> /fpga-axi@0/axi-jesd204-tx@84a90000 + [ 1.050895] jesd204: created con: id=3, topo=0, link=2, /fpga-axi@0/axi-adxcvr-rx@84a60000 <-> /fpga-axi@0/axi-jesd204-rx@84aa0000 + [ 1.062597] jesd204: created con: id=4, topo=0, link=0, /fpga-axi@0/axi-jesd204-tx@84a90000 <-> /fpga-axi@0/axi-adrv904x-tx-hpc@84a04000 + [ 1.074788] jesd204: created con: id=5, topo=0, link=2, /fpga-axi@0/axi-jesd204-rx@84aa0000 <-> /axi/spi@ff040000/adrv904x-phy@0 + [ 1.086273] jesd204: created con: id=6, topo=0, link=0, /fpga-axi@0/axi-adrv904x-tx-hpc@84a04000 <-> /axi/spi@ff040000/adrv904x-phy@0 + [ 1.098218] jesd204: /axi/spi@ff040000/adrv904x-phy@0: JESD204[0:0] transition uninitialized -> initialized + [ 1.107895] jesd204: /axi/spi@ff040000/adrv904x-phy@0: JESD204[0:2] transition uninitialized -> initialized + [ 1.117583] jesd204: found 7 devices and 1 topologies + ... + [ 1.940648] axi_sysid 85000000.axi-sysid-0: [adrv904x] [JESD_MODE=64B66B RX:RATE=24.33 M=8 L=4 S=1 NP=16 TPL_WIDTH= LINKS=1 TX:RATE=24.33 M=8 L=4 S=1 NP=16 TPL_WIDTH= LINKS=1] on [zcu102] + ... + [ 29.767179] systemd[1]: Failed to look up module alias 'autofs4': Function not implemented + [ 29.800681] systemd[1]: systemd 247.3-7+rpi1+deb11u2 running in system mode. + + Welcome to Kuiper GNU/Linux 11.2 (bullseye)! + + ... + My IP address is 192.168.100.2 169.254.173.46 + + Raspbian GNU/Linux 11 analog ttyPS0 + + analog login: + +Default login credentials: + +- Username: ``analog`` +- Password: ``analog`` + +Verifying the setup +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +After logging in, you can verify that the ADRV904x device is properly detected +by the Linux kernel: + +.. shell:: + + $iio_info | grep iio:device + iio:device0: xilinx-ams + iio:device1: adrv904x-phy + iio:device2: axi-adrv904x-rx-hpc (buffer capable) + iio:device3: axi-adrv904x-tx-hpc (buffer capable) + +.. include:: ../../common/using-iio-osc.rst + +About the IIO devices +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Main receivers RX1 through RX8 are handled by the ``axi-adrv904x-rx-hpc`` IIO +device. + +Channels: + +- IIO device channel: ``axi-adrv904x-rx-hpc`` +- Receiver inputs: + + - {``voltage0_i``, ``voltage0_q``}: RX1 + - {``voltage1_i``, ``voltage1_q``}: RX2 + - {``voltage2_i``, ``voltage2_q``}: RX3 + - {``voltage3_i``, ``voltage3_q``}: RX4 + - {``voltage4_i``, ``voltage4_q``}: RX5 + - {``voltage5_i``, ``voltage5_q``}: RX6 + - {``voltage6_i``, ``voltage6_q``}: RX7 + - {``voltage7_i``, ``voltage7_q``}: RX8 + +Transmitters TX1 through TX8 are handled by the ``axi-adrv904x-tx-hpc`` IIO +device. + +Channels: + +- IIO device channel: ``axi-adrv904x-tx-hpc`` +- Transmitter outputs: + + - {``voltage0_i``, ``voltage0_q``}: TX1 + - {``voltage1_i``, ``voltage1_q``}: TX2 + - {``voltage2_i``, ``voltage2_q``}: TX3 + - {``voltage3_i``, ``voltage3_q``}: TX4 + - {``voltage4_i``, ``voltage4_q``}: TX5 + - {``voltage5_i``, ``voltage5_q``}: TX6 + - {``voltage6_i``, ``voltage6_q``}: TX7 + - {``voltage7_i``, ``voltage7_q``}: TX8 + +NLS profile (with observation receiver) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +When using the NLS device tree (``zynqmp-zcu102-rev10-adrv904x-nls.dts``), +the observation receiver path is enabled. The observation receiver IIO device +appears as an additional device: + +.. shell:: + + $iio_info | grep iio:device + iio:device0: xilinx-ams + iio:device1: adrv904x-phy + iio:device2: axi-adrv904x-rx-hpc (buffer capable) + iio:device3: axi-adrv904x-tx-hpc (buffer capable) + iio:device4: axi-adrv904x-obs-hpc (buffer capable) + +To use the NLS profile, copy ``system.dtb`` built from +``zynqmp-zcu102-rev10-adrv904x-nls.dts`` and ``DeviceProfileTest_NLS.bin`` +renamed to ``DeviceProfileTest.bin`` to the SD card boot partition. + +Using no-OS as software +------------------------------------------------------------------------------- + +Necessary files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following files are needed for the system to boot: + +- HDL boot file: ``system_top.xsa`` +- no-OS project: :git-no-os:`projects/adrv904x` + +Instructions on how to build the boot files from source can be found here: + +- :external+no-OS:doc:`projects/rf-transceiver/adrv904x`. More no-OS build + details at :external+no-OS:doc:`build_guide`. +- :external+hdl:ref:`adrv904x`. More HDL build details at + :external+hdl:ref:`build_hdl`. + +Required Software +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- AMD Xilinx Vivado and Vitis (downloading Vitis from + `here `_ + will include Vivado as well) +- An UART terminal (Putty/Tera Term/Minicom, etc.), Baud rate 115200 (8N1) + +Required Hardware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- AMD Xilinx :xilinx:`ZCU102` Rev 1.0 FPGA board and its power supply +- :adi:`EVAL-ADRV904x ` FMC evaluation board +- 2x Micro-USB cables, one for UART and one for JTAG +- (Optional) USB keyboard & mouse and a HDMI-compatible monitor + +More details as to why you need these, can be found at +:ref:`adrv904x prerequisites`. + +.. note:: + + In Vitis IDE, set the HEAP size to ``0x800000`` and add the math library + (``-lm``) to the GCC linker flags. The evaluation board connects to the + **FMC HPC1** connector on the ZCU102. + +Demo applications +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Three demo applications are available in the no-OS project, selected via +Makefile variables: + +- **Basic example**: Initializes all components and enables the JESD204 link. + The transmitter outputs a DDS waveform with default parameters. +- **DMA example**: Transmits sinewave patterns via DMA from lookup tables and + captures receive data to memory for analysis (exportable as CSV). +- **IIO example**: Launches an IIOD server on the board, allowing connection + via an IIO client such as :ref:`iio-oscilloscope` to configure the + transceiver and capture data. The IIOD server runs at 921600 baud. + +Only one example can be active at a time. + +Switching between use cases +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Since no-OS runs bare-metal without a file system, all profile and firmware +data is compiled into the binary as C headers in +:git-no-os:`projects/adrv904x/src/common/firmware `. + +The entire device configuration for a given use case is contained in the +profile binary (``DeviceProfileTest.bin``), which is generated using the ADI +evaluation software (see the *ADRV904x Evaluation System User Guide*). The +stream image (``stream_image.bin``) is also specific to a configuration. +The firmware files (``ADRV9040_FW.bin``, ``ADRV9040_DFE_CALS_FW.bin``) are +typically static and supplied by ADI. + +Radio control and JESD204 parameters (LO frequencies, channel masks, lane +rates) are set directly in +:git-no-os:`projects/adrv904x/src/common/initdata.c ` +as C structs (``deviceInitStruct``, ``utilityInit``). + +To switch to a different use case: + +#. Generate the new ``DeviceProfileTest.bin`` and ``stream_image.bin`` using + the ADI evaluation software. + +#. Convert each binary to a C header using ``xxd``: + + .. code-block:: bash + + xxd -i DeviceProfileTest.bin > DeviceProfileTest.h + xxd -i stream_image.bin > stream_image.h + +#. Copy the generated headers into + :git-no-os:`projects/adrv904x/src/common/firmware `, + replacing the existing files. + +#. If radio control or JESD204 parameters also changed, update the + corresponding fields in ``initdata.c`` (``deviceInitStruct`` and + ``utilityInit``). + +#. Rebuild the project. diff --git a/docs/solutions/reference-designs/eval-adrv904x/user-guide.rst b/docs/solutions/reference-designs/eval-adrv904x/user-guide.rst new file mode 100644 index 00000000000..8d9497a5934 --- /dev/null +++ b/docs/solutions/reference-designs/eval-adrv904x/user-guide.rst @@ -0,0 +1,358 @@ +.. _adrv904x user-guide: + +User guide +=============================================================================== + +The complete user guide of the evaluation board can be found at +:adi:`ADRV904x Evaluation System User Guide (UG-2229) `. + +Hardware guide +------------------------------------------------------------------------------- + +Power supply +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The power supply comes from the FMC connector, given by the FPGA. + +The VADJ values can be checked out in the README.md file of each combination +with an FPGA, at: :git-hdl:`projects/adrv904x`. + +Schematic, PCB Layout, Bill of Materials +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Design files for the EVAL-ADRV904x evaluation board include: + +- Schematics +- PCB Layout +- Bill of Materials +- Design package + +Please refer to the :adi:`ADRV9040 product page ` for +downloadable design files. + +Software guide +------------------------------------------------------------------------------- + +The evaluation board is supported with the Libiio library. This library is +cross-platform (Windows, Linux, Mac) with language bindings for C, C#, Python, +MATLAB, and others. One easy to example that can be used with it is: + +- :dokuwiki:`IIO Oscilloscope ` + +For details on how to customize the driver for a specific use case, see the +:dokuwiki:`ADRV904x driver customization guide `. + +Kernel configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To enable the ADRV904x driver when building the Linux kernel from source: + +.. code-block:: text + + Device Drivers ---> + Industrial I/O support ---> + [*] Enable ring buffer support within IIO + [*] Industrial I/O lock free software ring + [*] Enable triggered sampling support + + Analog to digital converters ---> + <*> Analog Devices ADRV904X/ADRV9040 RF Transceiver driver + + Frequency Synthesizers DDS/PLL ---> + Direct Digital Synthesis ---> + <*> Analog Devices CoreFPGA AXI DDS driver + + <*> JESD204 High-Speed Serial Interface Support + +Required firmware files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ADRV904x Linux driver requires the following firmware files to be present +in ``/lib/firmware/`` on the target system: + +.. list-table:: + :header-rows: 1 + + - - File + - Device tree property + - Description + - - ``ADRV9040_FW.bin`` + - ``adi,arm-firmware-name`` + - ARM processor firmware for calibrations and device configuration + - - ``ADRV9040_DFE_CALS_FW.bin`` + - ``adi,arm-dfe-firmware-name`` + - ARM Cortex-A55 firmware for DFE features (DPD, CLGC, VSWR) + - - ``stream_image.bin`` + - ``stream-firmware-name`` + - Stream processor image (user-generated via ADI evaluation software) + - - ``ADRV9040_RxGainTable.csv`` + - ``adi,rx-gaintable-names`` + - Receiver gain table (default or custom) + - - ``DeviceProfileTest.bin`` + - ``adi,device-config-name`` + - Device profile (user-generated configuration file) + +These files are included in the Kuiper Linux SD card image. + +.. note:: + + The ``stream_image.bin`` must be regenerated when updating firmware + versions, as it is version-specific. The ``DeviceProfileTest.bin`` is + use-case specific and contains filter coefficients, clock rates, and DFE + resource settings. + +Device variants +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Two device tree configurations are provided: + +- **Default profile** (``zynqmp-zcu102-rev10-adrv904x.dts``): Standard TX/RX + configuration without observation receiver path activation. +- **NLS profile** (``zynqmp-zcu102-rev10-adrv904x-nls.dts``): Enables the + observation receiver (ORx) path for transmitter monitoring and DPD + calibration. + +To select the device tree, copy the corresponding ``system.dtb`` to the SD +card boot partition before powering up the board. + +IIO attributes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``adrv904x-phy`` IIO device exposes sysfs attributes under +``/sys/bus/iio/devices/iio:deviceN/``. For a full attribute reference, see the +:dokuwiki:`ADRV904x Linux device driver ` +wiki page. + +Channel naming +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. list-table:: + :header-rows: 1 + + - - IIO prefix + - Signal + - - ``in_voltage0`` – ``in_voltage7`` + - Main receivers RX1–RX8 + - - ``in_voltage8`` + - Observation receiver ORx1 + - - ``in_voltage9`` + - Observation receiver ORx2 + - - ``out_voltage0`` – ``out_voltage7`` + - Transmitters TX1–TX8 + - - ``out_altvoltage0`` + - TRX LO1 + - - ``out_altvoltage1`` + - TRX LO2 + - - ``out_altvoltage2`` + - TRX AUX LO + +Local oscillator control +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The two RF PLLs are tunable from 450 MHz to 7100 MHz. It is recommended to +re-run the initial calibrations when crossing a divide-by-2 boundary. + +.. shell:: + + $cat /sys/bus/iio/devices/iio:device1/out_altvoltage0_LO1_frequency + 3765000000 + $echo 3764000000 > /sys/bus/iio/devices/iio:device1/out_altvoltage0_LO1_frequency + +RX channel attributes +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. list-table:: + :header-rows: 1 + + - - Attribute + - Access + - Description + - - ``in_voltageN_en`` + - Read/Write + - Enable (1) or disable (0) receiver channel N + - - ``in_voltageN_hardwaregain`` + - Read/Write + - Receiver hardware gain in dB (0 to 32 dB range, 256 gain settings) + - - ``in_voltageN_rf_bandwidth`` + - Read/Write + - Receiver RF bandwidth in Hz + - - ``in_voltageN_quadrature_tracking_en`` + - Read/Write + - Enable quadrature error correction tracking (0 or 1) + - - ``in_voltageN_bb_dc_offset_tracking_en`` + - Read/Write + - Enable baseband DC offset tracking calibration (0 or 1) + +.. shell:: + + $cat /sys/bus/iio/devices/iio:device1/in_voltage0_en + 1 + $echo 0 > /sys/bus/iio/devices/iio:device1/in_voltage0_en + +TX channel attributes +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. list-table:: + :header-rows: 1 + + - - Attribute + - Access + - Description + - - ``out_voltageN_en`` + - Read/Write + - Enable (1) or disable (0) transmitter channel N + - - ``out_voltageN_hardwaregain`` + - Read/Write + - Transmitter attenuation in dB (range 0 to −32 dB, higher resolution + via digital gain) + - - ``out_voltageN_rf_bandwidth`` + - Read/Write + - Transmitter RF bandwidth in Hz (baseband filter tunable 300–840 MHz) + - - ``out_voltageN_quadrature_tracking_en`` + - Read/Write + - Enable quadrature error correction tracking (0 or 1) + - - ``out_voltageN_lo_leakage_tracking_en`` + - Read/Write + - Enable LO leakage tracking calibration (0 or 1) + +.. shell:: + + $cat /sys/bus/iio/devices/iio:device1/out_voltage0_hardwaregain + -6.000000 dB + $echo -12 > /sys/bus/iio/devices/iio:device1/out_voltage0_hardwaregain + $cat /sys/bus/iio/devices/iio:device1/out_voltage0_rf_bandwidth + 400000000 + +Temperature sensor +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The device internal temperature is available via the ``in_temp0_input`` +attribute (value in milli-degrees Celsius): + +.. shell:: + + $cat /sys/bus/iio/devices/iio:device1/in_temp0_input + 72000 + +Debug facilities +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Debug attributes are accessible via debugfs at +``/sys/kernel/debug/iio/iio:deviceN/``. + +PRBS injection +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +``bist_framer_0_prbs`` injects a data source into Framer 0 for JESD204 link +verification. Write the data source index to select it: + +.. list-table:: + :header-rows: 1 + + - - Value + - Data source + - - ``0`` + - ADC data + - - ``1`` + - Checkerboard + - - ``2`` + - Toggle 0/1 + - - ``3`` + - PRBS31 + - - ``4`` + - PRBS23 + - - ``5`` + - PRBS15 + - - ``6`` + - PRBS9 + - - ``7`` + - PRBS7 + - - ``8`` + - Ramp + - - ``14`` + - 16-bit programmed pattern (repeat) + - - ``15`` + - 16-bit programmed pattern (execute once) + +.. shell:: + + $echo 8 > /sys/kernel/debug/iio/iio:device1/bist_framer_0_prbs + +Digital loopback +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +``bist_framer_loopback`` routes the digital framer output directly to the +digital deframer input, bypassing the RF path: + +.. list-table:: + :header-rows: 1 + + - - Value + - Mode + - - ``0`` + - Disable loopback + - - ``1`` + - Digital framer → digital deframer + +.. shell:: + + $echo 1 > /sys/kernel/debug/iio/iio:device1/bist_framer_loopback + +Tone injection +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +``bist_tone`` injects a configurable NCO tone into the TX path. Syntax: + +.. code-block:: text + + echo > bist_tone + +- **enable**: ``0`` = disable TX NCO, ``1`` = enable on all transmitters +- **frequency_Hz**: tone frequency in Hz +- **gain_index**: + +.. list-table:: + :header-rows: 1 + + - - Index + - NCO gain + - - ``0`` + - 0 dB + - - ``1`` + - 6 dB + - - ``2`` + - 12 dB + - - ``3`` + - 18 dB + - - ``4`` + - 24 dB + - - ``5`` + - 30 dB + - - ``6`` + - 36 dB + - - ``7`` + - 42 dB + - - ``8`` + - 48 dB + +.. shell:: + + $echo 1 30000000 2 > /sys/kernel/debug/iio/iio:device1/bist_tone + +Direct register access +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +``direct_reg_access`` allows reading and writing individual device registers. +To access HDL core registers, set bit 31 of the address. + +.. shell:: + + $echo 0x7 > /sys/kernel/debug/iio/iio:device1/direct_reg_access + $cat /sys/kernel/debug/iio/iio:device1/direct_reg_access + 0x40 + $echo 0x7 0x50 > /sys/kernel/debug/iio/iio:device1/direct_reg_access + $cat /sys/kernel/debug/iio/iio:device1/direct_reg_access + 0x50 + $echo 0x80000000 > /sys/kernel/debug/iio/iio:device1/direct_reg_access + $cat /sys/kernel/debug/iio/iio:device1/direct_reg_access + 0x80062 diff --git a/docs/solutions/reference-designs/eval-cn0359-ebz/ADuCM360_demo_cn0359.bin b/docs/solutions/reference-designs/eval-cn0359-ebz/aducm360_demo_cn0359.bin similarity index 100% rename from docs/solutions/reference-designs/eval-cn0359-ebz/ADuCM360_demo_cn0359.bin rename to docs/solutions/reference-designs/eval-cn0359-ebz/aducm360_demo_cn0359.bin diff --git a/docs/solutions/reference-designs/eval-cn0359-ebz/ADuCM360_demo_cn0359_reva.bin b/docs/solutions/reference-designs/eval-cn0359-ebz/aducm360_demo_cn0359_reva.bin similarity index 100% rename from docs/solutions/reference-designs/eval-cn0359-ebz/ADuCM360_demo_cn0359_reva.bin rename to docs/solutions/reference-designs/eval-cn0359-ebz/aducm360_demo_cn0359_reva.bin diff --git a/docs/solutions/reference-designs/eval-cn0359-ebz/cn0359-DesignSupport.zip b/docs/solutions/reference-designs/eval-cn0359-ebz/cn0359-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/eval-cn0359-ebz/cn0359-DesignSupport.zip rename to docs/solutions/reference-designs/eval-cn0359-ebz/cn0359-designsupport.zip diff --git a/docs/solutions/reference-designs/eval-cn0359-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0359-ebz/index.rst index 02a450f2a26..6a7d665aaea 100644 --- a/docs/solutions/reference-designs/eval-cn0359-ebz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0359-ebz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0359-EBZ =============== -Fully Automatic High Performance Conductivity Measurement System -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Fully Automatic High Performance Conductivity Measurement System. Overview -------- @@ -1028,7 +1027,7 @@ Downloading the Firmware to the CN0359 Download the latest release of ADuCM360_demo_cn0359 from :adi:`EVAL-ADICUP360`. Currently, Release 1.0 is available: - :download:`EVAL-ADICUP360 ` + :download:`EVAL-ADICUP360 ` 3. Connect the J-Link debug probe to the USB port of your computer and to **J4** on the CN0359 evaluation board (using a 20-pin/10-pin JTAG/SWD @@ -1173,7 +1172,7 @@ Rev A Source Code ~~~~~~~~~~~~~~~~~ The source code for the CN0359 software can be downloaded from: -:download:`EVAL-ADICUP360 `. +:download:`EVAL-ADICUP360 `. ADuCM360_demo_cn0359_reva is a CrossCore project. Import the project in ADI CrossCore Embedded Studio to build and debug the code. @@ -1185,7 +1184,7 @@ Rev B Source Code ~~~~~~~~~~~~~~~~~ The source code for the CN0359 software can be downloaded from: -:download:`EVAL-ADICUP360 `. +:download:`EVAL-ADICUP360 `. ADuCM360_demo_cn0359 is a CrossCore project. Import the project in ADI CrossCore Embedded Studio to build and debug the code. @@ -1454,7 +1453,7 @@ Schematic, PCB Layout, Bill of Materials .. admonition:: Download - :download:`EVAL-CN0359-EBZ Design and Integration File ` + :download:`EVAL-CN0359-EBZ Design and Integration File ` - Schematic - PCB Layout @@ -1467,12 +1466,12 @@ Software Source Code EVAL-CN0359-EB1Z Rev B Files - :git-EVAL-ADICUP360:`Software Source Code ` -- :download:`Software Binary Release 1.0 ` +- :download:`Software Binary Release 1.0 ` EVAL-CN0359-EB1Z Rev A Files - :git-EVAL-ADICUP360:`Software Source Code ` -- :download:`Software Binary Release 1.0 ` +- :download:`Software Binary Release 1.0 ` -------------- diff --git a/docs/solutions/reference-designs/eval-cn0417-ebz/10-31-2018_10-51-55_am.png b/docs/solutions/reference-designs/eval-cn0417-ebz/10-31-2018_10-51-55_am.png new file mode 100644 index 00000000000..132f072e718 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0417-ebz/10-31-2018_10-51-55_am.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d7cc61426aed46861e2cc32f6674d586afeb9429d5b5af7773e77c1c7e36e3b +size 12374 diff --git a/docs/solutions/reference-designs/eval-cn0417-ebz/block_diagram3.png b/docs/solutions/reference-designs/eval-cn0417-ebz/block_diagram3.png new file mode 100644 index 00000000000..1e50b0b407d --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0417-ebz/block_diagram3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0b656d397b55b3a9008f891f41ce4b6f276c9b071ba49058a5c6eb7db97d4d5 +size 13879 diff --git a/docs/solutions/reference-designs/eval-cn0417-ebz/cn0417-design-support.zip b/docs/solutions/reference-designs/eval-cn0417-ebz/cn0417-design-support.zip new file mode 100644 index 00000000000..e1e186d7d59 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0417-ebz/cn0417-design-support.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7096a7ef05945745cff2da98f433d4df562905067507d1dc6e3a431dec4f1c14 +size 3743604 diff --git a/docs/solutions/reference-designs/eval-cn0417-ebz/cn0417.png b/docs/solutions/reference-designs/eval-cn0417-ebz/cn0417.png new file mode 100644 index 00000000000..089b8e28dd7 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0417-ebz/cn0417.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d0157c88f880ba9179bca471fb84b3200d887c3d60614ccb1c815494ab04d37 +size 973622 diff --git a/docs/solutions/reference-designs/eval-cn0417-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0417-ebz/index.rst new file mode 100644 index 00000000000..2577f4d2ff4 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0417-ebz/index.rst @@ -0,0 +1,126 @@ +EVAL-CN0417-EBZ +=============== + +USB Powered 2.4 GHz RF Power Amplifier. + +Overview +-------- + +The :adi:`CN0417` is a small USB-powered RF power amplifier optimized for +2400 MHz operation. The amplifier typically provides 20 dB of gain through its +RF band of operation, boosting signals for various communication protocols such +as ISM, MC-GSM, W-CDMA, TD-SCDMA, and LTE. It requires a 5V USB supply for +normal operation. The input and output, both populated with edge-mounted SMA +connectors, are DC blocked and matched to 50Ω for ease of use. More information +on this board can be found at +:dokuwiki:`PlutoSDR Amplifier `. + +The :adi:`ADL5606` is a broadband, two-stage, 1W RF driver amplifier +that operates over a frequency range of 1800 MHz to 2700 MHz. The device can be +used in a wide variety of wired and wireless communication protocols, including +ISM, MC-GSM, W-CDMA, TD-SCDMA, and LTE. + +The :adi:`LTM8045` is an integrated switching DC/DC converter that +contains a current mode controller, power switching element, power coupled +inductor, power Schottky diode, and a modest amount of input and output +capacitance. It can be configured as a SEPIC or inverting converter by simply +grounding the appropriate output rail. + +The EVAL-CN0417-EBZ board connects through SMA and is powered by the bus +voltage from the USB port. + +.. figure:: block_diagram3.png + +General Setup +------------- + +Required Equipment +~~~~~~~~~~~~~~~~~~ + +- :adi:`EVAL-CN0417-EBZ Board ` +- RF Signal Source (like the :ref:`PlutoSDR `) +- Micro-USB power adaptor or Micro-USB to USB cable + +Block Assignments +~~~~~~~~~~~~~~~~~ + +.. figure:: revb_blockd.jpg + +- Terminal block **J1** is the SMA female connector for RF input, and would + normally be connected to an SDR. +- Terminal block **J2** is the SMA male connector for RF output, and would + normally be connected to an antenna +- Terminal block **P1** is the micro USB port to provide power to the board + +Test setup +~~~~~~~~~~ + +.. figure:: 10-31-2018_10-51-55_am.png + +#. Plug in the micro-USB end of the micro-USB cable or power adapter to P1 of + the :adi:`EVAL-CN0417-EBZ Board ` +#. Plug the other end of the cable into a power outlet or a PC USB port + providing at least 500 mA. +#. An LED light will turn on indicating the board is on and is in operation. +#. Connect the RF output of the RF signal source to J1 of + the :adi:`EVAL-CN0417-EBZ Board ` +#. Connect J2 of the :adi:`EVAL-CN0417-EBZ Board ` to desired DUT or + equipment needing the amplifier signal. + +Running the System +~~~~~~~~~~~~~~~~~~ + +- After completing the setup, the :adi:`EVAL-CN0417-EBZ Board ` + will automatically turn on and output the amplified version of the input. + +Normal Operation +~~~~~~~~~~~~~~~~ + +.. figure:: cn0417.png + +For normal operation, connect: + +#. Connect P1 (micro USB) connector of the :adi:`EVAL-CN0417-EBZ Board ` + into a PC USB port or 5V USB charger. +#. An LED light will turn on indicating the board is on and is in operation. +#. Connect the RF output of the :ref:`PlutoSDR ` to J1 of the + :adi:`EVAL-CN0417-EBZ Board `. +#. Connect J2 of the :adi:`EVAL-CN0417-EBZ Board ` to an antenna + (ensure the antenna can dissipate 1W). + +.. warning:: + + Connecting the :adi:`EVAL-CN0417-EBZ Board ` directly to + the Pluto SDR input (Rx) may exceed the absolute maximum ratings for the RF + Input (which is +2.5 dBm). Doing this may permanently damage the PlutoSDR input. + Never do this for any reason. + + .. figure:: pluto_setup_1.jpg + + We test the :adi:`EVAL-CN0417-EBZ Board ` in this configuration, by + ensuring the Tx attenuator is set to an attenuation of 30 dB or more. This + ensures the gain of +20 dB from the :adi:`EVAL-CN0417-EBZ Board ` will + not exceed the maximum ratings for the RF Input. + + Never do this in normal operation. + +Additional Resources +--------------------- + +- :adi:`CN0417 Circuit Note Page ` +- :adi:`CN0417 Design Support Package ` +- :dokuwiki:`Test Results ` +- :adi:`ADL5606 Product Page ` +- :adi:`LTM8045 Product Page ` + +Schematic, PCB Layout, Bill of Materials +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. admonition:: Download + + :download:`EVAL-CN0417-EBZ Design & Integration Files ` + + - Schematics + - PCB Layout + - Bill of Materials + - PADS project diff --git a/docs/solutions/reference-designs/eval-cn0417-ebz/pluto_setup_1.jpg b/docs/solutions/reference-designs/eval-cn0417-ebz/pluto_setup_1.jpg new file mode 100644 index 00000000000..2360d8c1916 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0417-ebz/pluto_setup_1.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e6a9b56ee2197b3f674690109a5906e1dfdb3ac5935f1a0dbb387e81237d541 +size 45379 diff --git a/docs/solutions/reference-designs/eval-cn0417-ebz/revb_blockd.jpg b/docs/solutions/reference-designs/eval-cn0417-ebz/revb_blockd.jpg new file mode 100644 index 00000000000..0a1b97bdffe --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0417-ebz/revb_blockd.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e57380121c3d3f2151e9ed807dfb1a63ac44d2adf6738e8115c0f5bc4f47a918 +size 47189 diff --git a/docs/solutions/reference-designs/eval-cn0419-ebz/block_assign.png b/docs/solutions/reference-designs/eval-cn0419-ebz/block_assign.png new file mode 100644 index 00000000000..671a367f25d --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0419-ebz/block_assign.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59c1404ff4008f385bfe8ae0c2ba9c1dcca4616d8ef39c025d3b4e2dce3397df +size 436808 diff --git a/docs/solutions/reference-designs/eval-cn0419-ebz/figure_7.png b/docs/solutions/reference-designs/eval-cn0419-ebz/figure_7.png new file mode 100644 index 00000000000..1ca58dcd82f --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0419-ebz/figure_7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d858e031ddd017c8faf632f8dbb57c9d877f6344d9a76e2fc70162739cdfbc93 +size 222945 diff --git a/docs/solutions/reference-designs/eval-cn0419-ebz/fs_mode.png b/docs/solutions/reference-designs/eval-cn0419-ebz/fs_mode.png new file mode 100644 index 00000000000..d3ffc392a4f --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0419-ebz/fs_mode.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95cc9b3b5c46e48448df4a2bc3f64961eae15d32cbc081244fc8386007cf6021 +size 178554 diff --git a/docs/solutions/reference-designs/eval-cn0419-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0419-ebz/index.rst new file mode 100644 index 00000000000..7fa6dd8096d --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0419-ebz/index.rst @@ -0,0 +1,132 @@ +.. _eval-cn0419-ebz: + +EVAL-CN0419-EBZ +=============== + +Universal Serial Bus (USB) Peripheral Isolator Circuit. + +Overview +-------- + +The :adi:`CN0419` is a circuit that isolates a peripheral device that +already implements a USB interface by using the :adi:`ADuM4160`, a USB port isolator +based on Analog Devices iCoupler® technology. It is bus-powered by pairing it +with a small isolated DC-to-DC converter such as the :adi:`ADuM5020`. The application +circuit shown is typical of many medical and industrial applications. + +The :adi:`ADuM4160` is a USB port isolator, based on Analog Devices, +Inc., iCoupler® technology. Combining high speed CMOS and monolithic air core +transformer technology, these isolation components provide outstanding +performance characteristics and are easily integrated with low and full speed +USB-compatible peripheral devices. + +The :adi:`ADuM5020` is an isoPower®, integrated, isolated DC-to-DC +converter. Based on the Analog Devices, Inc., iCoupler® technology, this +DC-to-DC converter provides regulated, isolated power that is below CISPR22 +Class B limits at full load on a 2-layer printed circuit board (PCB) with +ferrites. + +The :adi:`EVAL-CN0419-EBZ ` board connects through a USB Type A Plug +and is powered by the bus voltage from the USB port. + +.. figure:: figure_7.png + + CN0419 circuit block diagram + +General Setup +------------- + +Block assignments +~~~~~~~~~~~~~~~~~ + +.. figure:: block_assign.png + +- Terminal block **P1** is the USB Male plug to be inserted to USB port +- Terminal block **P2** is the USB Female receptacle for the peripheral +- Terminal block **S1** is the switch for selection of speed operation + (Full speed or Low speed) + +Speed selection +~~~~~~~~~~~~~~~~ + +Peripheral devices run at one of three speeds, low (1.5 Mbps), full (12 Mbps), +and high (480 Mbps). The :adi:`EVAL-CN0419-EBZ Evaluation Board ` can +accommodate the low and full speed operations. Listed below are some examples +of peripheral devices for each speed. + +#. Low speed devices + + - Examples: keyboards, mice, and game peripherals + - Bus rate: 1.5 Mb/s + +#. Full speed devices + + - Examples: phones, audio devices, and compressed video + - Bus rate: 12 Mb/s + +The isolator is hardwired for the desired speed setting, either full speed or +low speed. A switch at the upstream side allows the user to select between these +speeds. To switch between the two modes, flip the actuator of S1 switch to FS +mode as indicated in silkscreen for full speed operation and LS mode otherwise. + +.. grid:: + :widths: 50 50 + + .. figure:: ls_mode.png + + Low speed operation + + .. figure:: fs_mode.png + + Full speed operation + +Required Equipment +~~~~~~~~~~~~~~~~~~ + +- :adi:`EVAL-CN0419-EBZ Evaluation Board ` +- PC with the following *minimum requirements*: + + - PC, Mac, Linux computer, or other host that supports USB + - Peripheral Device (USB Flash drive, keyboard, evaluation board, etc.) + - USB Extender (Optional) + +Test Setup +~~~~~~~~~~ + +.. figure:: setup_diagram2.png + +#. Set the switch S1 to full speed or low speed operation depending on the + peripheral specifications. +#. Connect the peripheral to P2 of the :adi:`EVAL-CN0419-EBZ ` board. +#. Plug P1 of the :adi:`EVAL-CN0419-EBZ ` board into the USB port of the + PC/host + +Running the System +~~~~~~~~~~~~~~~~~~ + +#. Make sure the setting for S1 is correct based on the peripheral device. +#. Plug P1 of the board into the PC/host, the :adi:`EVAL-CN0419-EBZ ` is + automatically turned on and providing isolation. DS1 will light up as an indication + that the board is delivering power to the peripheral device. +#. The PC/host must recognize the peripheral connected to make sure the setup is working. +#. Upon successful connection, you can now provide your peripheral the isolated power. + +More Information and Useful Links +--------------------------------- + +- :adi:`CN0419 Circuit Note Page ` +- :adi:`CN0419 Design Support Package ` +- :adi:`ADuM4160 Product Page ` +- :adi:`ADuM5020 Product Page ` + +Schematic, PCB Layout, Bill of Materials +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. admonition:: Download + + :adi:`EVAL-CN0419-EBZ Design & Integration Files ` + + - Schematics + - PCB Layout + - Bill of Materials + - Allegro Project diff --git a/docs/solutions/reference-designs/eval-cn0419-ebz/ls_mode.png b/docs/solutions/reference-designs/eval-cn0419-ebz/ls_mode.png new file mode 100644 index 00000000000..5b22c1fe848 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0419-ebz/ls_mode.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1730d3239fe50903f2ab219e99a5620d4a6d5ab246f036cc18bc1bef4db01dc5 +size 172185 diff --git a/docs/solutions/reference-designs/eval-cn0419-ebz/setup_diagram2.png b/docs/solutions/reference-designs/eval-cn0419-ebz/setup_diagram2.png new file mode 100644 index 00000000000..056f778bf76 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0419-ebz/setup_diagram2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:125d9495e8993c52456b90499c7b2af925ea1796f832e17aadd483331a04b923 +size 67377 diff --git a/docs/solutions/reference-designs/eval-cn0503-ardz/CN0503-DesignSupport.zip b/docs/solutions/reference-designs/eval-cn0503-ardz/cn0503-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/eval-cn0503-ardz/CN0503-DesignSupport.zip rename to docs/solutions/reference-designs/eval-cn0503-ardz/cn0503-designsupport.zip diff --git a/docs/solutions/reference-designs/eval-cn0503-ardz/cn0503-software/index.rst b/docs/solutions/reference-designs/eval-cn0503-ardz/cn0503-software/index.rst index 5effc818016..52d107f2e8b 100644 --- a/docs/solutions/reference-designs/eval-cn0503-ardz/cn0503-software/index.rst +++ b/docs/solutions/reference-designs/eval-cn0503-ardz/cn0503-software/index.rst @@ -209,7 +209,7 @@ The software for the **ADuCM3029_demo_cn0503** can be found here: .. admonition:: Download Prebuilt CN0503 Hex File : - :git-EVAL-ADICUP3029:`AduCM3029_demo_cn0503.hex ` + :git-EVAL-ADICUP3029:`AduCM3029_demo_cn0503.hex ` Complete CN0503 Source Files : :git-EVAL-ADICUP3029:`AduCM3029_demo_cn0503 Source Code ` diff --git a/docs/solutions/reference-designs/eval-cn0503-ardz/fluorescence-measurement/ADuCM3029_demo_cn0503.hex b/docs/solutions/reference-designs/eval-cn0503-ardz/fluorescence-measurement/ADuCM3029_demo_cn0503.hex deleted file mode 100644 index 7f2bf7eab58..00000000000 --- a/docs/solutions/reference-designs/eval-cn0503-ardz/fluorescence-measurement/ADuCM3029_demo_cn0503.hex +++ /dev/null @@ -1,6919 +0,0 @@ -:1000000000400020492C0000452C0000452C000039 -:10001000452C0000452C0000452C0000000000008D -:10002000000000000000000000000000452C00005F -:10003000452C000000000000452C0000452C00006D -:1000400025150000A12B0000C12B0000E12B0000B2 -:10005000012C0000452C000079110000491100001E -:10006000BD130000F9090000010A00008D22000004 -:1000700095220000A5060000892800001920000034 -:1000800031200000452C0000C10D0000D902000005 -:10009000A5200000B5200000452C0000452C0000E4 -:1000A0003D2000004D200000712000008120000054 -:1000B000752A0000852A0000452C0000452C000010 -:1000C000452C0000452C0000452C00006D07000069 -:1000D000452C0000452C0000452C0000452C00005C -:1000E0009D220000F910000025200000B51000003E -:1000F000452C0000452C0000452C000000000000AD -:1001000000000000000000000000000000000000EF -:1001100000000000000000000000000000000000DF -:10012000452C0000452C0000452C0000452C00000B -:10013000452C0000452C0000452C0000452C0000FB -:10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:1001900003329CA77F000000FFFFFFFFFFFFFFFF70 -:1001A00010B5054C237833B9044B13B10448AFF3B1 -:1001B00000800123237010BD000C0420000000000B -:1001C00034A5010008B5034B1BB103490348AFF345 -:1001D000008008BD00000000040C042034A50100CC -:1001E000154B002B08BF134B9D46A3F5803A002109 -:1001F0008B460F461348144A121A0FF083FC0F4B1C -:10020000002B00D098470E4B002B00D098470020C1 -:10021000002104000D000D48002802D00C4812F007 -:1002200095FD0FF0EBF82000290002F081FD0FF0A2 -:10023000D5F800BF000008000040002000000000CA -:1002400000000000000C0420C81504204D2D010002 -:10025000B13C0100EFF3108172B60E4A1378ABB9CE -:1002600001200D4B10705A680C4842F001025A6090 -:1002700098604FF400200A4A10606FF078421A62CA -:10028000DA625A63DA639A64DA641A6581F3108871 -:10029000704700BF1C0C0420000001400010042027 -:1002A00000E100E0012310B40A4C834004EBC000DD -:1002B000C0E90112D4F8DC2029B11343C4F8DC30C2 -:1002C000002010BC704722EA0303C4F8DC30002091 -:1002D00010BC70471C0C0420184B2DE9F047DFF8C8 -:1002E0006090D3F84C809D6C1F6DD9F8DC3045EAE6 -:1002F00007041C401AD0B4FA84F30126C3F11F038B -:1003000009EBC302D2F804A006FA03F324EA0304BB -:10031000BAF1000F06D01D42906814BF01210221DE -:100320000022D047B4FA84F3202BE7D1034B9D641D -:100330001F65C3F84C80BDE8F08700BF0000014096 -:100340001C0C0420012910B5044612D002290DD03E -:100350000923037704F12C0000F08CFFA3685BB144 -:10036000217FE0680022BDE810401847072303778B -:10037000F0E706230377EDE710BD00BF0146F0B5B7 -:100380000268136813F00103FBD101243C258B6143 -:100390000B774C7750682A4E20F0070050601560AC -:1003A0001662156B087C25F0030515631362C8B946 -:1003B0008B6AABB1042553680C6A43F007035360A2 -:1003C0004B6AD46008340C621C680833146153F81B -:1003D000044C54618C6A4B62083C8C629560F0BDA1 -:1003E0000E20F0BD886A0028FAD04D681548AD7916 -:1003F000DFF858E0AC40C0F81448C0F81C488462EC -:10040000446244638F6A2C013D1F4F6ADEF800008E -:100410002F440D6A0751204402F114044460D56052 -:10042000896A094C8908013944EA01118160166220 -:10043000116B184641F0030111631362F0BD00BF58 -:1004400065756C6700000140014000CA545301000B -:10045000164B10B4DA68904204BF0022DA6042689A -:1004600092F90430002B0DDB012203F01F04104928 -:100470005B09A240203341F82320BFF34F8FBFF325 -:100480006F8F426892F90530002B0CDB012203F0DC -:100490001F0007495B098240203341F82320BFF346 -:1004A0004F8FBFF36F8F002010BC704700000420F7 -:1004B00000E100E02DE9F8430C460546DFF8D48062 -:1004C000070108EB07060846F460002199460FF083 -:1004D00019FB00212B4805EB4505ED00431958F8A1 -:1004E000072050F805E0DD682748E162D3E901C73D -:1004F000C4E900261062B360D3E90403C2F804E043 -:10050000C2F834C09763D56310645364136B23F04F -:10051000030313631162C9F80040FFF79BFE636891 -:10052000224698791949FFF7BDFE20BB626892F90F -:100530000430002B11DA92F90530002B0ADB01227E -:1005400003F01F0012495B09824041F8232000207C -:10055000BDE8F8830020BDE8F883012203F01F0006 -:100560000B495B09824041F82320626892F905300B -:10057000002BE4DAEEE72046FFF76AFF0820BDE82B -:10058000F88300BF1000042065756C674503000008 -:1005900000E100E0000004202DE9F04F914283B01B -:1005A000054601932AD80C4616464FF0040A4FF030 -:1005B0000609DFF8688000F12C074FEAC12B296893 -:1005C0000A689307FCD1C1F818B00A6812F0030258 -:1005D000FBD1C1F800A0486840F005004860C1F8B0 -:1005E00020801046C1F808900A62394600F0E6FD06 -:1005F00078B90134A6420BF5006BE0D2AB69019AE1 -:100600001360AB69002B0CBF00200A2003B0BDE8CB -:10061000F08F112003B0BDE8F08F00BF65756C67E7 -:100620002DE9F041D1E9007600258B68097B8362D2 -:10063000437F04469046C0E9087601744574D3B1FF -:10064000002204F12C011046052500F0B7FDE8B9A1 -:10065000237F5BB9A369C8F80030A369D3B9A36A43 -:10066000002B18BF04252846BDE8F081257FEDB298 -:100670002846BDE8F081FFF781FE0022054604F11F -:100680002C01104600F09AFD0028E1D011252846E3 -:10069000BDE8F0810A252846BDE8F081C90A11604D -:1006A0000020704738B52E4B2E4ADC682368196845 -:1006B00061616169196061690A40A261A26902BB56 -:1006C0006269100737D5A26A002A38D11A68D107A3 -:1006D000FCD400225968244821F0070159601862AF -:1006E000196BA56821F0030119631A62627715B1CD -:1006F0001146E068A84704F12C00BDE8384000F03E -:10070000B9BD00215A68184822F007025A601862E1 -:100710001A6BA56822F003021A6319626177002D33 -:10072000E9D0E068A2690121A84704F12C00BDE8E6 -:10073000384000F09FBD62695207CAD438BD04201A -:10074000D4E90812D9601568083121621D61516829 -:1007500008325961A16A62620839A162986038BDA5 -:1007600000000420F0AF013865756C67002238B5D1 -:100770001C4B1D49DC681D4823681D68656165695F -:100780001D6065692940A1611862196BA56821F097 -:10079000030119631A62A262627745B1A36963B962 -:1007A000237F03F0FF0243B91146E068A84704F134 -:1007B0002C00BDE8384000F05DBDA3694BB9E0688E -:1007C000A2690121A84704F12C00BDE8384000F0DF -:1007D00051BD237F03F0FF02002BE8D1217FE068A9 -:1007E000A847E4E700000420F0AF013865756C67A6 -:1007F0002DE9F0410F460024104E82B0F56805EB5C -:10080000C00556F82420092F0CBF138D938D118E2F -:10081000D5F800809BB20B40ADF806301386B8F1D6 -:10082000000F05D023B10DF1060221466868C047CC -:100830000134032CE5D102B0BDE8F081280004208A -:10084000084AD3685BB9D060C0E90033C0E902331D -:100850004FF40072044B1A604FF480621A6000205B -:10086000704700BF2800042000E100E04FF4007250 -:10087000094BC3F88020BFF34F8FBFF36F8F4FF446 -:100880008062C3F88020BFF34F8FBFF36F8F0023C8 -:10089000024A1846D360704700E100E028000420B7 -:1008A000094B53F82000EFF3108372B6092906D0E4 -:1008B0000A2900D1828583F31088002070470285C1 -:1008C00083F3108800207047280004200A4B092970 -:1008D00053F820300AD00A2903D0002300201380C7 -:1008E00070479B8D00209BB2138070471B8D0020AA -:1008F0009BB21380704700BF28000420024B53F8BE -:10090000203000209984704728000420034B53F8BE -:10091000203000209B8C0B80704700BF28000420F3 -:100920000A4B53F82030EFF3108072B63AB99A8828 -:1009300022EA0101998080F31088002070479A888C -:100940001143998080F3108800207047280004200C -:100950000A4B53F82030EFF3108072B63AB99A89F7 -:1009600022EA0101998180F31088002070479A895A -:100970001143998180F310880020704728000420DB -:100980000A4B53F82030EFF3108072B63AB99A8EC2 -:1009900022EA0101998680F31088002070479A8E20 -:1009A0001143998680F310880020704728000420A6 -:1009B000024B53F820300020198370472800042090 -:1009C000024B53F820300020998370472800042000 -:1009D00030B4EFF3108372B6064C0938E46880B285 -:1009E00004EBC00544F830106A6083F310880020DF -:1009F00030BC70472800042009210020FFF7F8BE12 -:100A00000A210120FFF7F4BE70B4456883B095F960 -:100A100000300446002B0DDB012203F01F001F49AC -:100A20005B098240203341F82320BFF34F8FBFF38F -:100A30006F8F656822681A49938809889BB2ADF860 -:100A40000430BDF804309BB29380B2F84C3003F010 -:100A5000C003994209D093899BB2ADF80630B2F831 -:100A60004C3003F0C0038B42F5D100200126AB6867 -:100A700010801D885988A2F850609E881580DD88F6 -:100A8000918419895B89A2F85060A2F85450A2F8A9 -:100A90005810A38103B070BC704700BF00E100E0B4 -:100AA000001404200023F0B4644C0268248880F809 -:100AB0002A3080F82B30938803F488639C42FAD163 -:100AC0000D688489CE7B8F886400436845618D7B87 -:100AD00004F0FE04867207838E68C48193F90030A7 -:100AE0008989002D4ED1002B05854562C6610184A0 -:100AF0003DDA138843F0210313809388018B03F0C0 -:100B00000303C3F1020389B29BB2A9B1002B00F029 -:100B10008980456902E0002B00F0848015F8011BF4 -:100B2000013B9181018B9BB2013989B20183018B19 -:100B3000456189B20029EED1018C89B2A1B19BB186 -:100B4000013B9BB2C56901332B4401E0AB420BD0A2 -:100B500015F8011B9181018CC561013989B20184AD -:100B6000018C89B20029F1D11483F0BC70470122B5 -:100B700003F01F0432495B09A24041F823200268B8 -:100B8000C489B6E7002544F00104AB420185C48165 -:100B90004662C561058408DB012203F01F04284971 -:100BA0005B09A24041F823200268138843F0110337 -:100BB0001380038DB3F5807F39D94FF4807313828E -:100BC000038DA3F580739BB20385038BC5899BB20C -:100BD00053B3138843F0200313809388018B03F0F1 -:100BE0000303C3F1020489B2A4B2A9B1A4B1C3F151 -:100BF0000104A4B2416901340C4401E0A1420BD0CC -:100C000011F8013B9381038B4161013B9BB203834C -:100C1000038B9BB2002BF1D125F00105ADB21583FA -:100C2000F0BC7047038C9FE71583F0BC7047002130 -:100C3000038D013B9BB213820185C6E7001404209B -:100C400000E100E02DE9F041154C0646A08C9846E5 -:100C500080B2B0F5217F0C4604D112490B6843F0F5 -:100C600030030B600027104DC8F8007005EB061527 -:100C700039462046EC600EF045FF0C4A6B6806EBE7 -:100C8000460602EB860665602360E7622046AE609A -:100C9000FFF7BAFE3846C8F80040BDE8F08100BF53 -:100CA00000200040340002404400042038000420AA -:100CB00010B50446FFF7A8FE002362681846D3600B -:100CC00010BD00BF38B50023037415460446FFF776 -:100CD000E9FE90F82A2052B194F82B302B601BB11A -:100CE000082084F82A0038BD94F82A0038BD104640 -:100CF00004F12C0100F062FA40B9054B21681A8812 -:100D00008B8803F488639A42FAD1E5E70D2038BD59 -:100D10000014042030B583B004460D46002001A91C -:100D200000F086F960B9114B9D4206D80199B1FBDC -:100D3000F5F149088BB2994205D0012003B030BDCE -:100D4000042003B030BD0A4B1B88002BF5D189B2BB -:100D50004B1E9BB213F47F40EFD1073989B243EAAF -:100D6000012322689BB29384E8E700BF801A060043 -:100D700000140420044A21F07F0312889A4206BF1F -:100D8000818100200B2070470014042070B50024DE -:100D900084B086890291ADF80C2084811A46694698 -:100DA00005460094ADF804408DF80E408DF80F40D4 -:100DB000FFF788FFAE8108B995F82A0004B070BD2E -:100DC000744BF0B4D8680168837A8C88A4B204812B -:100DD0001BB10023C2890A8383726F4E04F004039F -:100DE00035889D4270D104F00802954247D104F045 -:100DF000B003934204F4807503D1AA421FD1F0BC22 -:100E0000704704F0100690F82B30B24218BF43F040 -:100E1000010304F0800618BF80F82B30B24204F0C2 -:100E2000200400F0A58043F00203A24280F82B309A -:100E300003D043F0040380F82B30AA421BD00C46A9 -:100E40008B8803F488639A42FAD1436893F900309F -:100E5000002B0DDB012203F01F0450495B09A24067 -:100E6000203341F82320BFF34F8FBFF36F8F046807 -:100E70004B4B1B8823802C30F0BC00F0FBB9B1F841 -:100E80004C30C3F38113002B00F082804FF4807547 -:100E9000446A0A89013BD2B222700168446A8A8A94 -:100EA000013492B29BB244624AB9078DB7F5807F94 -:100EB0004FD90D82028DA2F5807292B20285002B6D -:100EC000E7D13288048992E7B1F84C30028BC3F342 -:100ED0000113C3F1020392B29BB29AB1002B42D02C -:100EE000476901E0002B3ED017F8012B013B8A81B6 -:100EF000028B9BB2013A92B20283028B476192B29B -:100F0000002AEFD1028B92B2DAB9028D92B2002A96 -:100F10002BD1028C92B2A2B19BB1013B9BB2C769AB -:100F200001333B4401E0BB420BD017F8012B8A810F -:100F3000028CC761013A92B20284028C92B2002AFA -:100F4000F1D1038C9BB2002B7FF44DAF04238B8037 -:100F500049E7078DBFB2002FB1D0078D013FBFB267 -:100F60000F820285ABE70023CCE7C3890B83E8E758 -:100F7000A2427FF45EAF002B7FF45FAF082395425F -:100F800080F82B307FF45BAFF0BC2C3000F072B9EE -:100F90002A462CE7440004200014042000E100E06D -:100FA00038000420F8B54CF61431022500241A4B01 -:100FB0001A481A46D9601D610460D960196929432D -:100FC000196113699B05FCD5002446F61A061F25F6 -:100FD0004CF61430124B134F196821F003011960BD -:100FE00011491C605F60DE605D610C608C604C6468 -:100FF000D060136923F00403136140220B4B1A6085 -:1010000080221A604FF400725A604FF400625A60F6 -:1010100001F036FE2046F8BD00C104400C14042047 -:1010200000C304400404100000C0044000E100E0DC -:1010300038B504460D4601F023FE7CB1012C0BD1DE -:10104000094B5B6803F03F03084A12680BB1B2FB1F -:10105000F3F22A60002038BD042038BD024B5B68E3 -:10106000C3F30523F0E700BF00C304403C14042091 -:10107000012810B519D014D3022810D16FF47F04C1 -:101080000904EFF3108372B6094842682240114305 -:10109000416083F3108801F0F3FD002010BD0420AF -:1010A00010BD09026FF47C54EBE76FF03F04E8E7F2 -:1010B00000C3044038B50D4A0D4B14689B6903F01A -:1010C00006053CB113F0040207D00A4B0022186851 -:1010D0000821A047064B9D6138BD9B07FAD5054BFB -:1010E00007211868A047024B9D6138BD0C140420ED -:1010F00000C304400814042038B5104A104B15688A -:101100009B6903F4CC4455B144B158040AD5042179 -:101110000C4B00221868A847094B9C6138BD002C75 -:10112000FAD138BD990405D49A0505D45B05F3D5E9 -:101130000621EDE70321EBE70521E9E70C14042084 -:1011400000C304400814042008B5084B5968CB07B5 -:101150000BD5074B1B681BB1064A10680022984745 -:10116000024A536843F00103536008BD00C00440C5 -:101170000C1404200814042038B50D4D0D4A2B68BA -:10118000546873B1620704D500220B481146006809 -:101190009847A30705D5084A2B681068012100224B -:1011A0009847044B04F006045A6814435C6038BD49 -:1011B0000C14042000C0044008140420294B00290A -:1011C000F0B406BF194602260026032848D8DFE8F7 -:1011D00000F0443C3F024FF0FF3C0626EFF3108343 -:1011E00072B644F65904204D204FEC60AC6824F0F0 -:1011F00003040443AC603869304300EA0C003861F2 -:10120000EFF311841A485201008980B282F31188E9 -:101210000A6852B9BFF34F8F30BF83F31088EFF3E2 -:10122000108372B60A68002AF4D00A68013A0A608C -:1012300084F311880E4A0D4910810A6922F00202D6 -:101240000A61BFF34F8F83F310880020F0BC704712 -:1012500046F004064FF0FF3CC0E76FF0060CBDE718 -:101260000620F3E70414042000C0044000ED00E071 -:10127000002C0040034660B9EFF3108372B60749B3 -:101280000A6922F002020A61BFF34F8F83F31088CC -:10129000034B1A68002001321A60704700ED00E02D -:1012A000041404202DE9F047006803891D06FCD4CE -:1012B000838D13F48053FBD1DFF8DC80DFF8DCE0B2 -:1012C000DFF8DCC0324FA8F80030AEF80030ACF8E0 -:1012D00000303B80002956D04FF001092D4ECC073D -:1012E0000DD5DCB256F8345006EBC40ABAF8044007 -:1012F000B5F800A009FA04F444EA0A042C8049086D -:1013000003F10103EBD1B8F80040BEF80030BCF89F -:1013100000503988EAB1028814430480028D1343D7 -:101320000385B0F850302B43A0F85030B0F854305B -:101330009BB2A0F85430B0F84C301943A0F84C10D0 -:1013400083881A06FCD5838D5B04FCD50020BDE89C -:10135000F087028822EA04040480028D22EA030353 -:101360000385B0F8503023EA0503A0F85030B0F8F8 -:1013700054309BB2A0F85430B0F84C3023EA01014D -:10138000A0F84C10DCE70D460B460C46C2E700BF48 -:1013900014140420540004201014042012140420F7 -:1013A0001614042010B40468238913F08003FBD1C1 -:1013B000C0E9011210BC1846704700BF564B2DE91A -:1013C000F0419C68236818889A8892B212F07E05D2 -:1013D00043D0524980B201407CD1188D9A8D80B2A1 -:1013E00092B212F00F0701D0C6065AD140F21D3654 -:1013F000B3F85000B3F8482080B292B21640D4F847 -:10140000048027D041F6FE7C10EA0C0F05D0800541 -:1014100003D5900501D541F40061B3F85000DFF821 -:1014200000C180B210EA0C0F19D1B8F1000F04D03E -:1014300019B10022A068C04723689A8815439D808F -:101440009A8D17439F85B3F848201643A3F8486048 -:10145000BDE8F081B3F85020E7E72946BDE710F476 -:10146000804F04D012F0100F18BF41F4802110F407 -:10147000005F04D012F0080F18BF41F4003110F4DF -:10148000805F04D012F0040F18BF41F48031400592 -:10149000CBD5D207C9D5B8F1000FCED041F4004169 -:1014A000C7E7060703D5160748BF41F40071460792 -:1014B00003D5560748BF41F48071860703D59607C8 -:1014C00048BF41F08001C00790D5D60748BF41F022 -:1014D00040018BE710F0040118BFC2F34001C704BC -:1014E00003D5160748BF41F0040107040ED4470492 -:1014F00003D5960648BF41F0100180047FF56DAF1B -:10150000D7067FF56AAF41F0080166E7560648BF87 -:1015100041F02001EBE700BFE400042004F8FFFFE6 -:101520001CF4FFFF594B2DE9F0415C6923681888D2 -:101530009A8892B212F07E0544D0554980B201409B -:1015400040F08380188D9A8D80B292B212F01F07FE -:1015500001D0C6065AD140F21D36B3F85000B3F898 -:10156000482080B292B21640D4F8048027D041F6C9 -:10157000FE7C10EA0C0F05D0800503D5900501D53F -:1015800041F40061B3F84C00DFF808C180B210EA02 -:101590000C0F19D1B8F1000F04D019B10022A068C6 -:1015A000C04723689A8815439D809A8D17439F856D -:1015B000B3F848201643A3F84860BDE8F081B3F8BB -:1015C0004C20E7E72946BDE710F4804F04D012F025 -:1015D000100F18BF41F4802110F4005F04D012F006 -:1015E000080F18BF41F4003110F4805F04D012F0EE -:1015F000040F18BF41F480314005CBD5D207C9D5BF -:10160000B8F1000FCED041F40041C7E7C60603D5BC -:10161000D60648BF41F48061060703D5160748BFC8 -:1016200041F40071460703D5560748BF41F4807165 -:10163000860703D5960748BF41F08001C0078AD5C9 -:10164000D60748BF41F0400185E710F0040118BFFC -:10165000C2F34001C70403D5160748BF41F0040197 -:1016600007040ED4470403D5960648BF41F0100185 -:1016700080047FF567AFD7067FF564AF41F00801BE -:1016800060E7560648BF41F02001EBE7E400042084 -:1016900004F8FFFF1CF4FFFF012903690ED00229A3 -:1016A00008D043F04003036183685BB10169002205 -:1016B000C068184743F010030361F5E743F00403E3 -:1016C0000361F1E72830FFF7D5BD00BF01291046BF -:1016D00013690ED0022908D043F080031361836898 -:1016E0005BB101690022C068184743F02003136111 -:1016F000F5E743F008031361F1E72830FFF7BABDBF -:101700000368F0B51D88ADB21D8015F0900F1A8CDE -:1017100033D0EA0603D5026942F0010202612F06C6 -:1017200003D5026942F002020261C26952B9012284 -:10173000198A8E0706D5AC0704D41988890701D405 -:10174000002A66D001249A8A416822F4185291F93D -:101750000C101204120C00299A8280F8224049DAF7 -:101760001A88846892B21A80002C57D001692346E7 -:10177000BDE8F0400022C068184792B202F00F06A0 -:10178000C6F10806B6B21C46C2F30322AEB1838B83 -:10179000B3B190F820C041699E1BB6B26144CCF150 -:1017A000000E01E061445BB1013B11F80E709BB289 -:1017B000B342278183834161F4D190F824304BBB3D -:1017C000A2B1C38B93B1816901E07BB10468A388A6 -:1017D000013A0B70C38B816990F82140013B9BB2A9 -:1017E000214492B2C3838161002AEED1C26982B9D9 -:1017F00003689DE74B090C4A01F01F01203304FAEE -:1018000001F142F82310BFF34F8FBFF36F8F0368CE -:10181000A6E7F0BD838B002BE8D1D1E72830BDE8E7 -:10182000F040FFF727BD00BF00E100E0F8B50C462F -:10183000054600271E46002120460EF063F9AA0047 -:101840001349531901EB8301124B61601A4433F8B9 -:10185000250053888A680C612260A76210829381F8 -:10186000118A346041F001031382FEF7F3FC6368D0 -:10187000224698780849FEF715FD38B96368224674 -:1018800098790649FEF70EFD00B9F8BD0E20F8BDA7 -:10189000FC00042058530100CD16000099160000EA -:1018A000426892F90C30002B12DB012210B40A4975 -:1018B00003F01F045B09A240203341F82320BFF34B -:1018C0004F8FBFF36F8F42680020106110BC7047CC -:1018D00000201061704700BF00E100E00268138A39 -:1018E00031B923F400631B041B0C138200207047E2 -:1018F00043F4006313820020704700BF10B4EFF37D -:10190000108472B6026889B91183138A23F0020326 -:101910001B041B0C1382138A43F4207343F001034E -:10192000138284F31088002010BC7047138A43F0A0 -:101930000203138284F31088002010BC704700BF9C -:1019400030B583B005460C46002001A9FFF770FBB7 -:1019500090B90199B1EB440F0BD3B1FBF4F14908F5 -:10196000013989B231F03F0309D12B68998103B065 -:1019700030BD0C2003B030BD032003B030BD0720C4 -:1019800003B030BD30B5036883B09B890D4600209D -:1019900001A99CB2FFF74CFB38B9019A631CB2FB5A -:1019A000F3F35B082B6003B030BD002301202B60F4 -:1019B00003B030BD0268138A31B923F008031B0459 -:1019C0001B0C13820020704743F008031382002091 -:1019D000704700BF80F82610002070470268138A05 -:1019E00031B923F004031B041B0C13820020704741 -:1019F00043F0040313820020704700BF2DE9F0413B -:101A0000D1E9002300260C894D89C0E90523848390 -:101A1000C5830A7B036880F820204A7B90F826E083 -:101A200080F821208F7B91F80FC080F822601A8AFD -:101A300082B022F441521204120C80F8237080F814 -:101A400024C006611A82002F59D09A8A002D40F0D6 -:101A5000D48042F400529A821A8892B2ADF80420DF -:101A6000BDF8042092B21A801A8A42F002021A8249 -:101A7000A3F830E01A8A42F440521A821A8A22F4F9 -:101A800040521204120C1A829A8B22F0070212049E -:101A9000120C9A83002C40F0FD80012645684A898B -:101AA000002A5BD0AC88B5F806C067B2002F80F280 -:101AB000238101249C4F04FA0CF4C7F81C48BC6233 -:101AC0007C627C63D40748BF01324F6848BF92B242 -:101AD000964C4FEA5208023A24681744944A4FEA57 -:101AE0000C1C08F1FF3803F1040E44F80CE042EA44 -:101AF00008126444676046F00406A2602EE0002CE1 -:101B00000CBF4FF400524FF408529C8A002D6FD145 -:101B100022439A821A8A42F040021A821A8892B2AA -:101B2000ADF80420BDF8042092B21A801A8A42F05F -:101B300002021A82A3F830E000261A8A456842F4AD -:101B400040521A821A8A22F440521204120C1A824B -:101B50009A8B22F007021204120C9A83002290F84A -:101B60002440B0F81EC09A84828B002C79D09F8CC0 -:101B7000541E27F0F0073F043F0C9F849F8C47EAD8 -:101B8000840444F00104A4B29C841C8A44F40064DC -:101B90001C82A3F818C090F82340002C4AD1416958 -:101BA00071B1A2F10807BFB2541E4AB10E78A2B2B9 -:101BB0001E8190F82040BA42214482834161F3D1D2 -:101BC0001A8A520658BF9B8895F90C30002B07DB08 -:101BD000012203F01F0457495B09A24041F823206A -:101BE00090F82530002B49D1002002B0BDE8F081EB -:101BF00044F4806422439A8290E722F40052120453 -:101C0000120C9A821A8892B2ADF80420BDF8042012 -:101C100092B21A801A8A42F002021A82A3F830E0C5 -:101C2000BCF1000F3FF426AF012D7FF423AF80F805 -:101C3000236081E79A8B098916439E830029BFD0D0 -:101C4000642201E0002ABBD0198C013A89B2ADF8B8 -:101C50000610BDF8061092B201F00F010829F1D06C -:101C6000AEE7BCF1000F40D11C8A44F480541C82C2 -:101C7000944538BF9446A3F818C08CE7002200F1C1 -:101C800028011046FFF79AFA0028ADD00D2002B0C7 -:101C9000BDE8F08145682E88B5F802C072B2002A0E -:101CA00036DA0122204E02FA0CF2C6F81428B2628B -:101CB00072627263E60744BF0134A4B21B4A0F6824 -:101CC000A4F102086408126804F1FF3E1A4C4FEABE -:101CD0000C1C474442F80C7044EA0E14624403F1B1 -:101CE0000807576003269460D9E6002AC0D11C8AF1 -:101CF00044F400541C82BBE701230E4D04F01F0482 -:101D00007F0903FA04F445F82740D0E90035D0E60E -:101D10000123084D06F01F06520903FA06F645F89E -:101D20002260D0E90035BCE70000014054530100B7 -:101D30000100004D00E100E0010000C5012310B5E5 -:101D400080F825300446FFF759FE002384F825303B -:101D500018B92369002B18BF0F2010BD2DE9F043DF -:101D600000260368D1F800C01A8A4F6842F4405236 -:101D70001A821C8A0A8924F440542404240C1C82EC -:101D80009C8B4D8924F007042404240C9C83C0E917 -:101D900005C780F822608283C5830C7B83B080F8FE -:101DA00020404C7B80F821401C8A8F7B24F46154B6 -:101DB00091F80FC02404240C80F8237080F824C00C -:101DC00006611C821AB91C8A44F400541C82002D3E -:101DD00031D11C8A44F480541C82002F00F0A08072 -:101DE0001A83002A31D1998A466821F400510904E6 -:101DF000090C9982998B42F001020A439A831A8A4C -:101E0000520603D49B889BB2ADF8063096F90C308D -:101E1000002B07DB012203F01F0472495B09A2407B -:101E200041F8232090F82530002B40F0AC800020B2 -:101E300003B0BDE8F083AA42144638BF2C461C8389 -:101E4000002F72D0002A00F0C78046683588B6F8A7 -:101E500002906CB2002C80F2AF800124624D04FA33 -:101E600009F4C5F81448AC626C626C63D50748BFCE -:101E70000132DFF880C10D6848BF92B2DCF8008003 -:101E80004FEA520E594F023A2A444FEA09144D893B -:101E90000EF1FF3E48F8042047EA0E1703F108024E -:101EA00008EB040ECEF80420CEF808700622002DB0 -:101EB00000F08E80B788B6F806807CB2002C6FDA0E -:101EC0000124494F04FA08F4C7F81C48BC627C623C -:101ED0007C63EC0744BF0135ADB24F68DCF800C04D -:101EE0004FEA550E424C4FEA08110EF1FF3E023DFB -:101EF0003D4444EA0E141F1D0CEB010E4CF801701A -:101F000090F82370CEF80450CEF80840998A21F456 -:101F100000510904090C9982002F7FF46BAF0BE08C -:101F2000198A41F0400119821A839A8A466822F47C -:101F300000521204120C9A82198A828B21F40061D9 -:101F40000904C48B090C002A19820CBF00214FF42C -:101F50000071ACB99C8AA2F1080521439982ADB207 -:101F6000541E002A3FF44BAF4169A2B20C78AA423A -:101F70001C8190F82040828321444161F0D13EE7EA -:101F800041F48061E6E7002200F128011046FFF7E6 -:101F900015F900283FF44BAF092003B0BDE8F083EA -:101FA0000123104E07F01F07640903FA07F746F8EC -:101FB0002470D0E9003683E701230A4E05F01F059F -:101FC000640903FA05F546F82450D0E9003644E7E1 -:101FD00090F82370022299E704224668DFF814C0C3 -:101FE00068E700BF00E100E000000140010000C51B -:101FF0000100004D54530100012310B580F8253035 -:102000000446FFF7ABFE002384F8253018B9236996 -:10201000002B18BF0F2010BD014B1869FFF770BBD4 -:10202000FC000420014B586AFFF76ABBFC00042047 -:10203000014B986BFFF764BBFC0004200022024BAD -:102040001B699A83704700BFFC0004200021074BE6 -:102050001B691A68D983938B23F007031B041B0C9D -:102060009383938A43F4005393827047FC000420C7 -:102070000022024B5B6A9A83704700BFFC00042079 -:102080000021074B5B6A1A68D983938B23F00703FF -:102090001B041B0C9383938A43F400539382704771 -:1020A000FC0004200022024B9B6B9A83704700BF08 -:1020B000FC0004200021074B9B6B1A68D983938B8B -:1020C00023F007031B041B0C9383938A43F40053F0 -:1020D00093827047FC000420F8B50F4B0F4F53F864 -:1020E000206057F82030B58B9BB1ADB2EA070446AB -:1020F00005D50B49002251F8200001219847AB0774 -:1021000007D5074A57F8243052F82400022100224C -:1021100098470323B381F8BD8853010018140420A5 -:102120002414042070B41E4D1E4C45F820101E4986 -:1021300044F820200A561BB3002A07DB012302F0D3 -:102140001F041A495209A34041F82230184B194E76 -:10215000194D1A4C1A491B4A53F8203036F81060B2 -:1021600035F8105034F8104031F8101032F81020C3 -:102170001E8100201D809C82198470BC9A84704747 -:10218000002AE3DB012302F01F0408495209A3409F -:10219000203241F82230BFF34F8FBFF36F8FD5E766 -:1021A00018140420241404208453010000E100E0EA -:1021B00088530100645301006C5301006C5301000B -:1021C000745301007C530100184A30B452F82000C7 -:1021D0008C88CA884FF47A730480828200E013B33B -:1021E000828B013B12F0400F9BB2F8D10389CD786E -:1021F0008A784C7803F4C04342EA451213430CB189 -:1022000043F008030A780AB143F004030A7A0AB1DA -:1022100043F080034A7A1AB930BC0381002070472A -:1022200043F40043F8E7062030BC704788530100B0 -:10223000104A10B44FF47A7352F8204000E0B3B162 -:10224000A28B013B12F040029BB2F8D1238923F00C -:1022500010031B041B0C238131B12389104643F06A -:102260001003238110BC7047084610BC704706203D -:1022700010BC704788530100034B53F820300020F6 -:102280009B880B80704700BF885301000020FFF738 -:1022900023BF00BF0120FFF71FBF00BF0220FFF7D1 -:1022A0001BBF00BF2DE9F0410C460546002011463A -:1022B000E36AAA6818731B690129EE68E3629388D0 -:1022C0003AD023F0200395F82D001B041B0C9380BB -:1022D000B0B11EB194F83430022B1DD0236B1B69B2 -:1022E0001B68002B3DD004F13C00FEF7C3FFE16A00 -:1022F0000B7B002B3ED0A36B2846BDE8F04118476E -:10230000938823F001031B041B0C9380002EE5D05F -:1023100094F83430022BE1D10027236BAA691869A5 -:10232000D3F800C0AF611F6003682063FBB1286968 -:10233000D2B10421B047D6E723F012031B041B0CD3 -:1023400093801EB194F83430022BE5D0938A5B065B -:10235000FCD5138F9BB2002BC0D0938A5B06F5D5BA -:10236000F7E784F83430BEE76246B047BBE784F84D -:102370003430DCE7BDE8F08138B50B46416A012B0B -:10238000CA6A044610691CD0022B0CBF4FF480654A -:102390004FF4805503680BB1437B43B9A3692046D2 -:1023A0002B43A3610022BDE83840FFF77BBF00222A -:1023B000A3692B43A36102732046FFF773FF616A91 -:1023C000ECE74FF48075E5E738B50B46016A012B61 -:1023D000CA6A044612691DD0022B0CBF4FF4006577 -:1023E0004FF4005513680BB1537B43B9A3692046E2 -:1023F0002B43A3610122BDE83840FFF753BF002003 -:10240000A3692B43A361107301222046FFF74AFF03 -:10241000216AEBE74FF40075E4E700BF436A70B54B -:10242000DC6A054626684EB3237BBBB1D4E90103C1 -:102430004A1ED2B269B90EE0A968013A0988D2B23F -:10244000C9B2F154A368FF2A03F10103A3606068D5 -:1024500001D08342F0D3834214D070BDC368002BF7 -:10246000FBD000220221286998472368002BF4D171 -:10247000237B002BF1D1AB681B8870BDC368002B98 -:10248000EFD1F5E7696A2846BDE870400022FFF702 -:1024900009BF00BF4A7B836822B99A8842F00202D2 -:1024A0009A80704701224068F0B400780D4C0E4DC0 -:1024B0008240C4F814282F68A2620C4D62626263E5 -:1024C000D1E900640201611E0E44BC1845EA011105 -:1024D000BE506360A1609A88F0BC42F010029A80FE -:1024E000704700BF0000014054530100010000C0CC -:1024F0004A7B836822B99A8842F001029A80704729 -:1025000001224068F0B440780D4C0E4D8240C4F872 -:102510001C282F68A2620C4D62626263D1E90064DC -:102520000201611E0E44BC1845EA0111BB506660F1 -:10253000A1609A88F0BC42F020029A80704700BFE8 -:1025400000000140545301000100000C70B5164614 -:1025500000220C4605463C311046FEF72FFE40B9DE -:10256000226B136910601A68236352B1A86910B90D -:1025700070BD012070BD0023AA690D203260AB61DF -:1025800070BDA86984F834200028F1D0F3E700BFBB -:1025900010B4D0E90131002493F903208C80A242C9 -:1025A0000DDB012302F01F0419495209A340203218 -:1025B00041F82230BFF34F8FBFF36F8F436893F919 -:1025C0000220002A0DDB012302F01F0410495209EA -:1025D000A340203241F82230BFF34F8FBFF36F8FFB -:1025E000436893F90420002A0DDB012302F01F0445 -:1025F00007495209A340203241F82230BFF34F8FE0 -:10260000BFF36F8F43680020D86010BC704700BFD5 -:1026100000E100E02DE9F84F144606464FF0000AAD -:102620008B461546DDF82880DFF86C911A46514636 -:102630002046C8F800A037010DF064FA09EB070343 -:102640009A68C4E9013205F830BBFDF703FEBBF11F -:10265000010F04F144036FD10022606847496562AD -:10266000407885F83420EA63A963AD62C5E90B556B -:102670002B616D6222464249FDF714FE002876D197 -:102680000421404BC6EBC60676009A19985BA368F6 -:102690005588988190881D859884D588108952899D -:1026A0009D8518849A879980198C1B8C364AC3F3B0 -:1026B0008113D25C636884F82E2093F904204F4480 -:1026C00001F00101002A84F82D10C8F80040FC60D8 -:1026D0000EDB012153099B0003F1604302F01F024E -:1026E00003F5614301FA02F2C3F880211A606368BE -:1026F00093F90220002A11DA93F90330002B0ADB48 -:10270000012203F01F0021495B09824041F8232088 -:102710000020BDE8F88F0020BDE8F88F012302F00B -:102720001F001A495209834041F82230636893F927 -:102730000330002BE4DAEEE715496268A1661078F1 -:10274000256284F864A0A565C4E91755C4F86CA097 -:102750002364656522460F49FDF7A4FD38B9BBF136 -:10276000000F8DD004F1700504F1840374E7204656 -:10277000FFF70EFF0F20BDE8F88F00BFF124000027 -:102780007923000094530100A453010000E100E00C -:1027900095240000C923000038010420F8B54FF04B -:1027A000000C0127056AAC6A95F8346063732369ED -:1027B000C4E90012C4F808C02773AB622EB9022224 -:1027C000AB6B85F83420E96A98470020F8BD00BF5C -:1027D000F8B54FF0000C0127456AAC6A95F83460F3 -:1027E00063732369C4E90012C4F808C02773AB629D -:1027F0002EB90222AB6B85F83420E96A9847002095 -:10280000F8BD00BFF8B501274FF0000C0646056A79 -:10281000AC6A85F834702160216962602773637344 -:10282000C4F808C0069CA962AB6BE96A98472246C7 -:10283000316A3046BDE8F840FFF788BE0346002005 -:10284000C3E90312704700BF10B484680A43A0892B -:10285000134320F00F000004000C1843A081002057 -:1028600010BC70476FEA43436FEA534310B49DF8BE -:10287000044043EAC2238268A4B29BB211850020BF -:102880009384948510BC7047794BF0B5DD6883B0B4 -:10289000AB681C8904F00E040C2C1DD8DFE804F092 -:1028A000251C3C1C511C581C1C1C1C1C1E0002F02E -:1028B000040102F00203120759D4002940F08D8070 -:1028C00053B140212B7D3BB9AB6904221943A96167 -:1028D0002846696AFFF7E6FC03B0F0BD998E2846EA -:1028E000C9B2FFF79BFD03B0F0BDB3F84460B3F885 -:1028F0004020B6B2370792B202D012F0010742D19F -:102900000021B3F8402022F007021204120CA3F8B1 -:102910004020297503B0F0BD296ACA6A10680028F2 -:10292000DAD0147B002CD7D0D2E90174065D601C8C -:10293000B8421E809060CFD328460122FFF7B2FC38 -:10294000CAE795F82E102846FFF768FD03B0F0BDE2 -:102950009A8A92B2D406AAD550071B8802F00203C5 -:102960000CD5A021002BADD041F04001AAE70029F1 -:1029700035D1002B14BF50211021A3E7002B14BF29 -:10298000C02180219EE701A90020FEF751FB08B17C -:1029900000230193A96816F0010CB1F84820B1F8A2 -:1029A00044301FFA82FE9AB20B461AD013090198DE -:1029B0008A8C43EA0E33C0001604B0FBF3F02ED429 -:1029C000A862EB684BB395F82C2032B3AA6A0321B6 -:1029D00028699847AB681A8892E72021C2E730211E -:1029E000C0E716F0020F14BF4FF400720022EC682B -:1029F000700748BF42F48072310748BF42F48062DA -:102A00004CB1696A91F83410022904D10521286972 -:102A1000A047AB68DFE7EA61DDE70B46DBE73F2B6A -:102A20000BD85B02DB08A3F5006343F408439BB2B9 -:102A30000F858B848C85A862C3E77F2B05D81B028A -:102A4000DB08A3F500636446EFE7FF2B05D8DB0145 -:102A5000DB08A3F500630224E7E71A0A94B2E40056 -:102A60009B01B3FBF4F397B20324A3F50063DCE707 -:102A700038010420024B0122D868016AFFF712BC1A -:102A800038010420024B0022D868416AFFF70ABCD3 -:102A90003801042038B5064C23680BB1002038BD3E -:102AA00005460A4619460DF02DF82560002038BD70 -:102AB000301404200023024A18461360704700BFF8 -:102AC000301404200F228300052830B402FA03F4E6 -:102AD0001CD041F008010130994040B2EFF310835F -:102AE00072B60D4D2A6822EA04021143296083F36D -:102AF0001088002807DB012300F01F01074A400966 -:102B00008B4042F82030002030BC7047490541F42A -:102B100080110420E2E700BF80C0044000E100E033 -:102B2000052810B423D0421CD2B253B2002B0DDBC7 -:102B3000012102F01F025B0901FA02F20D49203364 -:102B400041F82320BFF34F8FBFF36F8FEFF3108354 -:102B500072B60F21084C8000226801FA00F022EAC8 -:102B60000000206083F31088002010BC7047102202 -:102B70000023E3E700E100E080C0044030B4EFF35D -:102B8000108372B6054C246804EBC00544F830107D -:102B90006A6083F31088002030BC70473014042032 -:102BA0000121054B054A116119680B681BB1002210 -:102BB00048681146184770473014042080C004400C -:102BC0000221054A054B11611A6893681BB1D06850 -:102BD000012100221847704780C0044030140420AF -:102BE0000421054A054B11611A6813691BB150692C -:102BF000022100221847704780C00440301404208E -:102C00000E4B0F495A6810B412F02002096809D01F -:102C100020228C6A1A6174B1C86A234600220521F9 -:102C200010BC184708208C69186124B1C869234674 -:102C3000032110BC184710BC704700BF80C004407F -:102C400030140420FEE700BF08B50A4A0A4B93423D -:102C50000CD2181D0332121A22F003020749024453 -:102C600051F8040B43F8040B9342F9D100F042F8F9 -:102C7000FDF7B6FA2C0B04200000042040A501004B -:102C8000174A136803F00303022B0ED0032B05D061 -:102C9000144A154B1360154A13607047144B114AC0 -:102CA0001B681360114A13607047136810B4D3682F -:102CB000D168D4680C48C4F30044A04003F01F035B -:102CC00003FB00F3C1F3C321B3FBF1F3D268054961 -:102CD000C2F30022D340054A0B60136010BC70475A -:102CE00000C304403C14042080BA8C013414042036 -:102CF0003814042044F659020A4BDA605A6942F04B -:102D000003025A61EFF3108372B64FF4E021064AD2 -:102D1000064890605162BFF36F8FBFF34F8F83F30C -:102D20001088704700C0044000ED00E00000000083 -:102D300000B59BB008F0ACFE03A801AB059306F00C -:102D400043FE03A902A806F0BFFE20B14FF0FF30FA -:102D50001BB05DF804FB029804F022FE0028F5D1B8 -:102D6000029806F04DFB0028F0D1029806F048FBCF -:102D70000028F5D0EAE700BF2DE9F0470779804643 -:102D80000C4691461E468FB3012F2AD1FF2B28D81F -:102D9000394602200CF0DEFA214682464FF4FE400E -:102DA00008F062FE60F07F008AF8000051460023C0 -:102DB0000222D8F800008AF8014007F0AFFE55461D -:102DC000044640B93B46F2B24946D8F8000007F045 -:102DD000E1FE044648B350460CF06EFB2046BDE8C9 -:102DE000F0874FF0FF342046BDE8F0879F1C01219B -:102DF00038460CF0AFFA214605464FF4FF4008F084 -:102E000033FE640028706C70BAB2D8F8000029460E -:102E100008F006FA044678B93EB12B189A78431C9C -:102E200009F80020D8B2B042F7D3002428460CF0AD -:102E300043FB2046BDE8F08728460CF03DFBD2E777 -:102E4000002330B583B002AC24F8043D15460223BC -:102E50002246FFF791FF30B99DF804209DF8053018 -:102E600043EA02232B8003B030BD00BF0023F0B53E -:102E7000047983B00646174601930D460CB3012C26 -:102E800003D06FF0150003B0F0BD4FF4FE4008F022 -:102E9000EBFD394660F07F034FF47F408DF804303E -:102EA0008DF8055008F0E0FD04228DF80600234659 -:102EB00030680DEB02018DF8077007F02FFE03B0AC -:102EC000F0BD4FF4FF4008F0CFFD6D008DF8040019 -:102ED000394645F001054FF47F408DF8055008F064 -:102EE000C3FD04228DF806000DEB020130688DF859 -:102EF000077008F095F903B0F0BD00BF2DE9F0416F -:102F000082B015460DF10602984606460F46FFF7B9 -:102F100097FFD8B9BDF806200FFA88F422EA040218 -:102F20004046ADF8062008F08FFDBDF8062005FAF2 -:102F300000F3234013439BB2394630461A46ADF89E -:102F40000630FFF793FF02B0BDE8F0814FF0FF308D -:102F5000F9E700BF10B54FF4004382B001220F2102 -:102F60000446FFF7CBFF08B102B010BD0DF1060219 -:102F70000F212046FFF764FF0028F5D1BDF8063089 -:102F8000C3F30123637102B010BD00BF0A460123E1 -:102F90001021FFF7B3BF00BF0A464FF47063102142 -:102FA000FFF7ACBF70B5437982B013F0FD0F054653 -:102FB0000E460AD08469B4FBF6F40D21A2B228466D -:102FC000FFF754FF88B102B070BD0DF106020F216A -:102FD000FFF736FF0028F6D1BDF80630074C13F096 -:102FE000020F08BF4FF40044E5E7C4F30642284649 -:102FF0000E21FFF73BFF02B070BD00BF40420F0043 -:10300000F0B583B00C46174610210DF106020646B6 -:10301000FFF716FF68BBBDF80630C3F30323A342D6 -:10302000C0F2A68004F108056D010DF106022946E3 -:103030003046FFF705FFE0B93B78BDF80620D3B96D -:1030400022F4804292B2ADF8062029463046FFF7BE -:103050000DFF70B97A78BB78920093409BB26401FF -:103060001A4604F581713046ADF80630FFF7FEFED2 -:1030700030B103B0F0BD42F48042ADF80620E4E781 -:103080004FF4E043FA7804F203113046FFF736FFBD -:103090000028EED17A7939799201BB7942EA01228E -:1030A000F979134343EAC1031A4604F582713046A5 -:1030B000ADF80630FFF7DAFE0028DAD17A7A3B7AEB -:1030C00004F20D1143EA02131A463046ADF80630F9 -:1030D000FFF7CCFE0028CCD1BB7A04F5887103F051 -:1030E00007031A463046ADF80630FFF7BFFE00284A -:1030F000BFD1FB7A04F589711B0103F4FE631A4604 -:103100003046ADF80630FFF7B1FE0028B1D13A7B6A -:103110007B7B04F2051143EA02231A463046ADF8E0 -:103120000630FFF7A3FE0028A3D1BA7BFB7B04F592 -:10313000837143EA02231A463046ADF80630FFF7A2 -:1031400095FE002895D13A7C12B901231A463B74AA -:103150007B7C13B901210B46797443EA02231A469A -:1031600004F207113046ADF80630FFF77FFE80E726 -:103170006FF015007DE700BF10B50C460021224618 -:10318000FFF75EFE18B92388C3F30A03238010BD3E -:103190002DE9F04F042B83B003FB02F57FD8ADB2CD -:1031A000B5F5007F7BD8002979D08A4606460121F3 -:1031B0002846019391460CF0CDF80746002871D0BF -:1031C00015B34FF0000B01E05D451DD93379A5EB38 -:1031D0000B04012B07EB0B024FF02F013046A4B27A -:1031E00002D1FF2C28BFFF242346FFF7C5FD5C4416 -:1031F00080461FFA84FB0028E6D038460CF05CF9C4 -:10320000404603B0BDE8F08FB9F1000F1ED0002298 -:103210001346019901F1FF38B8F1030F12D8DFE826 -:1032200008F01833021E591C981CC9B2FC5C795C6A -:10323000C0B2385C41EA042141EA004103334AF854 -:103240002210DBB20132D2B24A45E5D34FF000087A -:10325000D3E7F95C01334AF82210DBB2F2E7591CDC -:10326000981CC0B2C9B2FD5C3C5C795CD81CC0B291 -:10327000385C41EA052141EA046141EA0041043336 -:103280004AF82210DBB2DDE7591CC9B2F85C795C60 -:10329000023341EA00214AF82210DBB2D2E74FF0B4 -:1032A000FF38ADE76FF00B08AAE700BF2DE9F04F3C -:1032B00085B0894603AA10210646FFF7C1FD0346E3 -:1032C00018BB4FF00108BDF80C500746C5F30325A5 -:1032D0000446824645440BE0BDF80C2008FA0AF388 -:1032E00012F4804F1CBF1F43BFB2AC42A24610DA9B -:1032F0000AF10801490189B203AA3046FFF7A0FD8F -:103300000134034664B20028E6D0184605B0BDE893 -:10331000F08F002401212846ADF80E400CF01AF879 -:10332000804648B941E09DF80E2002F0070208F8F7 -:1033300004204CB2AC4215DA610101F5887189B202 -:103340000DF10E023046FFF77BFD611C034600289D -:10335000E9D0404601930CF0AFF8019B184605B048 -:10336000BDE8F08F82468346044608E0BBF1000FBB -:1033700017D14FF0010BAC420AF1010AE9DA1FFA4A -:103380008AF109EB810118F8043001223046FFF779 -:10339000FFFE47FA04F20346611C0028D9D1D20788 -:1033A000E4D44CB24FF0000BE5E76FF00B03ACE751 -:1033B000F0B5074683B00D4601201C210BF0CAFF73 -:1033C000002854D02B7C6A6B044603718261294625 -:1033D000B3B907F055FE064666B905F1140104F1CC -:1033E000080007F055FA064688B1237920685BB9D2 -:1033F00007F0F0FE20460CF05FF8304603B0F0BD59 -:1034000007F022FB0646E7E707F06AFBF2E705F163 -:103410001C0104F10C0007F03BFA064618BB05F14D -:10342000240104F1100007F033FA0646C0B905F193 -:103430002C0104F1140007F02BFA064668B9204667 -:10344000FFF788FD064628B90121A06807F078FA41 -:10345000064678B1606907F043FA206907F040FA40 -:10346000E06807F03DFAA06807F03AFABDE76FF0B0 -:103470000B06C2E70422B5212046FFF7F7FC0646FB -:103480000028E7D10246B5212046FFF7EFFC0646AB -:103490000028DFD10221A06807F07EFA0646002846 -:1034A000D8D10DF1060208212046FFF7C9FC0646D7 -:1034B0000028CFD19DF80630C22BCBD16A7C4FF4C7 -:1034C000407362710F212046FFF718FD30B9637910 -:1034D00013F0FD0F04D03C6000268EE70646B9E7E6 -:1034E0000DF106020F212046FFF7AAFC0646002830 -:1034F000B0D1BDF806300F2143F006031A4620462E -:10350000ADF80630FFF7B2FC06460028A2D1E2E78C -:1035100038B5054608460C460CF084FF00B938BDA6 -:10352000024621462868BDE8384008F075B900BF5A -:1035300038B505460C46012014210BF00BFF28601E -:1035400008B3214608F0C6F9B8B904460F4B03F199 -:10355000500203F8014F9342FBD12A680C490D4BEE -:1035600010680C7001220C491C7008F091F900B928 -:1035700038BD2B68186808F04FFA28680BF09CFFDC -:103580004FF0FF3038BD4FF0FF3038BD4F150420ED -:1035900042140420941404204114042038B550B17E -:1035A0000446006808F038FA054610B920460BF0CA -:1035B00083FF284638BD4FF0FF35FAE710B41E4AA6 -:1035C00013780D291ED8DFE801F0081D1D1D1D1DF3 -:1035D0001D1D07150D1D1D0D2BBB0020174CE054A4 -:1035E00010BC704701210020154A144C1170E054A2 -:1035F00010BC704701210020124A104C1170E05499 -:1036000010BC7047581CC0B20C4C5028E15408BF85 -:103610004F23107018BF03464FF0000008BF13700F -:10362000E05410BC70470020013BDBB2034C137028 -:10363000E05410BC704700BF431404205015042010 -:103640004214042094140420012900D0704770B55E -:1036500005460C46054E3178FFF7B0FF224631464D -:103660002868BDE8704008F013B900BF4114042079 -:103670002DE9F0470C780E4607469046A4B18946DE -:1036800000250BF003FF234620444278013502F069 -:103690000302012A08BF2033EDB289F80030745DBF -:1036A00006EB0509002CECD1D7F80C90D9F80050A6 -:1036B000C5B10024D7F808A0214623463F6904E09D -:1036C00059F824502346A10065B1FA5C5AF801105C -:1036D00030460CF0D5FE0134E4B20028F0D10FB131 -:1036E000C8F80050BDE8F087F8B50F461149064606 -:1036F000FFF70EFF104D04462B7853B124B9306804 -:1037000001220E4908F088F800220D4B20461A705D -:10371000F8BD0C493046FFF7FBFE39463046FFF74F -:10372000F7FE04493046FFF7F3FE2B7801332B7088 -:10373000E4E700BF8061010040140420E45301006D -:1037400043140420A853010000232DE9F041364C16 -:1037500082B022780646012A019309D0DFF8E8807A -:1037600098F80030012B2DD0002002B0BDE8F08188 -:103770002E4D2F48D9B26A5C01334254002AF9D148 -:1037800001AA2A493046FFF773FF019B002B32D074 -:1037900028493046FFF7BCFE202124480CF092FC5B -:1037A000019B411C706898470023304619462370DE -:1037B000FFF79AFF0028D8D1DFF88C8098F8003006 -:1037C000012BD1D11C493046FFF7A2FE0023174D33 -:1037D0001748DFB2C45D0133EC55002CF9D13046F7 -:1037E0001249FFF795FE2046144B88F800401F70E1 -:1037F00002B0BDE8F081052211490C480CF040FEF2 -:1038000008B97060D0E72B78002BCDD0094930463D -:10381000FFF77EFE0B493046FFF77AFE054930463A -:10382000FFF776FEC0E700BF4214042050150420C5 -:103830004414042080610100045401004314042056 -:10384000E8530100F053010094140420C160704754 -:1038500081607047016170474160704710B44FF05C -:10386000FF34C2EBC202920002F5807292B202F201 -:10387000371300EB830300F59F6000EB82001A1FF3 -:1038800042F8044F8242FBD118460A1D243112F837 -:10389000044C2306ACB1036012F8034C43EA044322 -:1038A0007CB1036012F8024C43EA04234CB103607C -:1038B00012F8014C043223431CB18A4240F8043B05 -:1038C000E5D110BC704700BFC36913B1012283F872 -:1038D0002E20704710B5044608490068FFF718FE0F -:1038E00094F8CA24064B206853F82210FFF710FE04 -:1038F00020680449FFF70CFE002010BD70990100FC -:103900000C5501008061010010B5044608490068AB -:10391000FFF7FEFD94F8D114064A074B20680029F2 -:1039200014BF11461946FFF7F3FD002010BD00BF7C -:103930000C97010004970100089701004FF0FF3138 -:1039400008B500F6D84200F59B6343F8041F934284 -:10395000FBD103490068FFF7DBFD002008BD00BF75 -:10396000105B010030B50D4683B0044610220846B6 -:1039700001A90DF095FE019BAB4214D084F8200004 -:103980000A492068FFF7C4FD09492068FFF7C0FD18 -:1039900029462068FFF7BCFD20680649FFF7B8FDFF -:1039A000002003B030BD012003B030BD549A0100A7 -:1039B0005497010080610100F0B583B005460DF118 -:1039C000060240681021FFF73BFA002846D1012685 -:1039D000BDF80630044603F470631A0A3244074601 -:1039E000ADF8063085F8D42029E0B5F9D620BDF829 -:1039F0000610686811F4804F43EA020118BFA5F869 -:103A0000D6104FEA441108BF22EA030301F588717A -:103A10000DF1060208BFA5F8D63089B2FFF710FAFB -:103A20000134EA1964B2C0B99DF80630274603F0A4 -:103A3000070382F8DA3095F8D4309C420EDA07F1A9 -:103A40000801490189B20DF106026868FFF7F8F92B -:103A500006FA07F31BB20028C7D0012003B0F0BD5F -:103A600070B5102286B004460E46084600210DF0BF -:103A700017FE0DF1020281B26068FFF7E1F918B19B -:103A80000125284606B070BD102201A90546BDF8E3 -:103A900002000BF0F5FC18492068FFF739FD3146AC -:103AA0002068FFF735FD15492068FFF731FDBDF8A7 -:103AB0000230B3F5805F0AD3206801A9FFF728FD23 -:103AC00020680F49FFF724FD284606B070BD0D4958 -:103AD0002068FFF71DFDBDF802302068FF2BECD8F1 -:103AE0000849FFF715FDBDF8023020680F2BE4D818 -:103AF0000449FFF70DFDDFE7649A0100EC56010071 -:103B000080610100709A01002DE9F0410E460746E0 -:103B1000202130460CF0D6FAB0B1002504462946E3 -:103B200004F8015B102230460DF0BAFD29468046AC -:103B3000102220460DF0B4FD1FFA88F182B2786899 -:103B4000FFF794F9054618B101252846BDE8F08134 -:103B50000B493868FFF7DCFC31463868FFF7D8FCC2 -:103B600008493868FFF7D4FC21463868FFF7D0FCD5 -:103B700038680549FFF7CCFC2846BDE8F08100BF56 -:103B8000749A010054970100806101002DE9F04111 -:103B90000C780E460746ACB1884600250BF076FC43 -:103BA000234620444278013502F00302022A08BF6E -:103BB000A4F120036DB288F80030745D06EB0508AF -:103BC000002CEBD100241449144D04E05CB255F8EC -:103BD00024100B7833B1052230460CF051FC631CE5 -:103BE0000028F3D1042C02DD0120BDE8F08187F824 -:103BF000CA440B493868FFF78BFC084B97F8CA2476 -:103C0000386853F82210FFF783FC38680549FFF73E -:103C10007FFC0020BDE8F081809901000C55010077 -:103C200088990100806101002DE9F04F0C68814600 -:103C3000207885B02B280E46924600F0188101238B -:103C40002D22924D904203F1010100F0B2804BB25F -:103C5000EA5C002AF6D1042B00F0AF80631E3360CB -:103C600014F8010C01932B2847D001232D22874DF6 -:103C7000904203F1010103D04BB2EA5C002AF7D174 -:103C8000032B3ADD4FF0000BA51E5F468049DFF89D -:103C90001482356006E04FFA83FB58F82B105F461C -:103CA0000B786BB1022228460CF0EAFB0BF1010302 -:103CB0000028F0D13A3759F827000AF061FF039045 -:103CC000BBF1170F22DD14F8023C232B00F0D28049 -:103CD000073C6B1E336015F8012C232A00F0B380DB -:103CE000A3421D46F5D1D9F800006A49FFF710FC40 -:103CF0000124204605B0BDE8F08F03AA31464846AE -:103D0000FFF792FF002840F0B98035686B1E3360E2 -:103D100015F8010C01932B2800F0878001232D2238 -:103D20005A4C904203F1010103D04BB2E25C002AED -:103D3000F7D1032B79DD0024A5F1020B2746544966 -:103D4000DFF86081C6F800B005E05CB258F82410D6 -:103D500027460B7863B1022258460CF091FB631C96 -:103D60000028F2D13A3759F827000AF009FF0290EB -:103D7000172C17DD15F8022C232A7DD0073D0BF1F7 -:103D8000FF3333601BF8012C232A03D0AB429B4640 -:103D9000F5D1A8E758460A2200210DF081FC0AF06F -:103DA000F3FE0290009B032B57D8DFE803F0332883 -:103DB0001D0E042B00937FF451AF002400222046F7 -:103DC000CAF8002005B0BDE8F08F039D0021284609 -:103DD0000BF0C2F804460028EFD1294602980AF0F9 -:103DE000DBFFCAF8000084E7039902980AF020FF7D -:103DF0000024CAF80000204605B0BDE8F08F039902 -:103E000002980AF00BFE0024CAF80000204605B014 -:103E1000BDE8F08F039902980AF002FE0024CAF868 -:103E20000000204605B0BDE8F08F314602AA4846A2 -:103E3000FFF7FAFE0028B5D0D9F800001649FFF7C1 -:103E400067FB012455E728460A2200210DF028FCD3 -:103E50000AF09AFE3568039058E70124D9F800006B -:103E60000E49FFF755FB204605B0BDE8F08F002353 -:103E70000093F3E60198E7E701988CE7D9F8000092 -:103E80000749FFF745FB012433E700BF2455010034 -:103E90002C550100545501003C55010048550100C6 -:103EA00030550100A854010030B5044683B009B173 -:103EB0000B78D3B994F8D154012D3FD00023C4F826 -:103EC000CC34A4F8D03423492068FFF721FB94F8C0 -:103ED000D114214A214B2068002914BF11461946EC -:103EE000FFF716FB002003B030BD302BE2D0312BA2 -:103EF00002D0012003B030BD00214068FFF746F832 -:103F00000028F6D101460DF106026068FEF798FF21 -:103F10000028EED1BDF80630014643F400431A46AE -:103F20006068ADF80630FEF7A1FF0028E1D14FF43C -:103F30008073C4F8CC04A4F8D034C4E72046FFF75B -:103F40003BFD0028D5D129466068FFF71FF80028FF -:103F5000B4D0CEE71C970100049701000897010038 -:103F600010B5044686B0806E0AF0B4F902460B46DE -:103F700001A80B490CF036F820680A49FFF7C8FA87 -:103F800020680949FFF7C4FA01A92068FFF7C0FAC1 -:103F900020680649FFF7BCFA002006B010BD00BF3C -:103FA000949901009C990100A89901008061010089 -:103FB00010B5044686B090F820200B4901A80CF0FB -:103FC00011F820680949FFF7A3FA20680849FFF7AC -:103FD0009FFA01A92068FFF79BFA20680549FFF7BF -:103FE00097FA002006B010BD509A0100549A0100C3 -:103FF000A8990100806101002DE9F04FD0F8DC2480 -:104000000446501C9FB017D0024E04F2DC4504F663 -:10401000DC0703E0D8590100BD420DD093B2314610 -:10402000120C04A80BF0DEFF04A92068FFF770FA59 -:1040300055F8042F511CEFD14FF48B794FF0000845 -:10404000DFF8D4B3DFF8C8A304F6F80555F81C3C34 -:1040500003F07F43B3F17F4F4AD04246594611A83F -:104060000BF0C0FF11A92068FFF752FAA5F1200656 -:1040700056F8043F20681A0E03F07F43B3F17F4FD8 -:1040800037D08DF80B20006801220DF10B0107F0ED -:10409000C3FB33681A0C03F47F03B3F57F0F27D0FB -:1040A00023688DF80B20186801220DF10B0107F031 -:1040B000B3FB33681A0A03F47F43B3F57F4F17D07D -:1040C00023688DF80B20186801220DF10B0107F011 -:1040D000A3FB3368DAB2FF2A0AD022688DF80B30CE -:1040E00010680DF10B01012207F096FBB542BFD11C -:1040F00020685146FFF70CFA6B685A1C0ED0184620 -:1041000003930AF0E7F84246CDE90001B54911A84A -:104110000BF068FF11A92068FFF7FAF9A868471C9F -:104120001BD00AF0D7F84246CDE90001AE4911A8EC -:104130000BF058FF11A92068FFF7EAF9EB68184661 -:1041400003930AF0C7F802460B4611A8A7490BF0E3 -:1041500049FF11A92068FFF7DBF92B695E1C0ED01F -:10416000184603930AF0B6F84246CDE90001A0498B -:1041700011A80BF037FF11A92068FFF7C9F96B6987 -:10418000581C08D09B4911A842460BF02BFF11A9DF -:104190002068FFF7BDF96B6A591C77D01846039366 -:1041A0000AF098F811AECDE9000142469249304636 -:1041B0000BF018FF31462068FFF7AAF9AB6AA9F1A6 -:1041C00005075A1CBFB221D0184603930AF082F8A3 -:1041D0000B460246894930460BF004FF3146206801 -:1041E000FFF796F9EB6A581C50D0184603930AF073 -:1041F00071F802460B46304680490BF0F3FE31461B -:104200002068FFF785F9A9F10307BFB204EB870324 -:10421000D3F8DC34591C39D0184603930AF05AF805 -:1042200002460B46304675490BF0DCFE31462068ED -:10423000FFF76EF97B1C9BB204EB8303D3F8DC34ED -:104240005A1C23D0184603930AF044F802370B4651 -:1042500002466A493046BFB20BF0C4FE04EB870742 -:1042600031462068FFF754F9D7F8DC34581C0DD0DC -:10427000184603930AF02EF802460B463046604972 -:104280000BF0B0FE31462068FFF742F95146206836 -:10429000FFF73EF9EB6B591C75D0184603930AF0F3 -:1042A00019F811AECDE900014246564930460BF0EF -:1042B00099FE31462068FFF72BF92B6C09F10107B5 -:1042C0005A1CBFB221D0184603930AF003F80B46DC -:1042D00002464A4930460BF085FE31462068FFF71A -:1042E00017F96B6C5F1C4ED01846039309F0F2FF70 -:1042F00002460B46304641490BF074FE31462068B9 -:10430000FFF706F909F10307BFB204EB8703D3F8FF -:10431000DC34581C37D01846039309F0DBFF0B46FA -:104320000246364930460BF05DFE31462068FFF705 -:10433000EFF87B1C9BB204EB8303D3F8DC34591CED -:1043400021D01846039309F0C5FF023702460B46F9 -:1043500030462A49BFB20BF045FE04EB87073146D1 -:104360002068FFF7D5F8D7F8DC04421C0BD009F021 -:10437000B1FF02460B46304621490BF033FE314671 -:104380002068FFF7C5F85146206808F10108FFF7DB -:10439000BFF809F11C09B8F1080F05F170051FFA03 -:1043A00089F97FF453AED4F8D03C01330FD01649CD -:1043B0002068FFF7ADF8154BD4F8D02C206853F8DF -:1043C0002210FFF7A5F812492068FFF7A1F8D4F8EA -:1043D000D82C531C24D00F4904A80BF003FE04A9C9 -:1043E00020681BE00C5A01002C5A01004C5A0100B5 -:1043F000505A0100705A0100905A0100B05A010051 -:10440000B85A0100C05A0100E05A01000C550100E1 -:1044100080610100F45A0100F0590100FFF778F8BB -:1044200000201FB0BDE8F08F2DE9F04190F8CA449C -:10443000C0B01CB1002040B0BDE8F08106461A496A -:1044400000682546FFF764F8DFF86880174F11E031 -:10445000D1F8EC30684639460BF0C4FD023464B242 -:1044600069463068FFF754F8013596F8D4306DB2DC -:104470009D4210DAB6F8D63006EB84012B41DB07FB -:10448000E4B2D1F8E820E3D44146684601340BF0A9 -:10449000A9FD64B2E4E730680549FFF739F8002068 -:1044A00040B0BDE8F08100BF909A0100989A0100E9 -:1044B000806101009C9A01002DE9F0430C4687B011 -:1044C0008146694620460CF0F9FF009BA34238D094 -:1044D0000AF050FA014607461C480AF05DFC0AF053 -:1044E00093FD0446DFF8648020460AF049FB01464C -:1044F00040460AF051FC394606460AF055FD0134A3 -:1045000005460028F0D1C9F86860304609F0E2FE9F -:1045100002460B4601A80E490BF064FD0D49D9F87F -:104520000000FEF7F5FF01A9D9F80000FEF7F0FF43 -:10453000D9F800000849FEF7EBFF284607B0BDE8B0 -:10454000F083012007B0BDE8F08300BF0000A04069 -:1045500094990100AC9901008061010038B50C46C6 -:10456000054608460AF0F2FE5CB123784BB170B103 -:10457000194B984219D028681849BDE83840FEF711 -:10458000C7BF28681649BDE83840FEF7C1BF4FF4E1 -:10459000007305F2DC42D5F8E01CA86806F046F985 -:1045A000044698B10124204638BD4FF4007305F24B -:1045B000DC42D5F8DC1CA86806F038F9044600286F -:1045C000F0D128680749FEF7A3FFECE72868064901 -:1045D000FEF79EFFE7E700BF1A49E60070580100AA -:1045E0002C580100545801004058010030B50C46C9 -:1045F000ADF6040D054608460AF0A8FEC4B12378BE -:10460000B3B14FF0FF31ADF104030DF2FC7243F88A -:10461000041F9342FBD1A0B11C4B984220D02868C4 -:104620001B49FEF775FF044620460DF6040D30BD0C -:1046300028681849FEF76CFF044620460DF6040D65 -:1046400030BD4FF400736A46D5F8E01CA86806F048 -:10465000EDF80446A0B1012420460DF6040D30BD4E -:104660004FF400736A46D5F8DC1CA86806F0DEF843 -:1046700004460028EFD128680749FEF749FFDCE728 -:1046800028680649FEF744FFD7E700BF1A49E6004D -:10469000705801002C58010010580100FC5701000F -:1046A0002DE9F04F90F8D174BFB0012F0B9103D0DA -:1046B00000203FB0BDE8F08F0546002900F00282DF -:1046C0000C789CB1002637460AF0E0FE204443787F -:1046D000013603F00303022B0B9B08BF203CDC5583 -:1046E0000B99F6B28C5D3746002CEDD1324B084663 -:1046F00093F8078010A9A8F131085FFA88F88DF8BF -:1047000037800CF0DBFE0B9B064610980F46984254 -:1047100000F0BB810BA90CF0D1FE109A0B9B9A42C2 -:1047200041D00AF027F90190394630460AF022F9C3 -:104730000F234FEA880803FA08F800245B4600902C -:10474000CB4627461FFA88FA994603E00834602CC6 -:1047500000F085814FEA84081FFA88F808F5817116 -:1047600089B20EAA6868FEF76BFBBDF838301AEA0A -:10477000030FEBD09DF8373013F0FD0316D0012B5B -:1047800004D108F5837B1FFA8BFBD94608F2071189 -:104790000DF13A0289B26868FEF752FB80B1012040 -:1047A0003FB0BDE8F08F054B0193BDE708F2051B54 -:1047B0001FFA8BFBD946E9E7501504200000A943F6 -:1047C00008F5897189B20DF13A026868BDF83A605E -:1047D000FEF736FB0028E2D108F20F1189B20DF185 -:1047E0003A026868BDF83A70FEF72AFB0028D6D175 -:1047F0002846BDF83A80FFF7DFF80028CFD10FAA8E -:1048000059466868FEF71CFB0028C8D1BDF83C304B -:10481000594623F07F0343F001031A466868ADF858 -:104820003C30FEF723FB0028B9D10DF13E0249468A -:104830006868FEF705FB0028B1D1BDF83E30494657 -:1048400023F4FE4343F480731A466868ADF83E30A3 -:10485000FEF70CFB0028A2D195F8D420002A00F026 -:104860003781B5F8D6C0039005F1D901069211F849 -:10487000013F039A4CFA00FE1EF0010F02EB430EBB -:1048800009BF039A1FFA8EF39B189BB20393069BF2 -:1048900001309842EBD101216868FEF777FB0028D0 -:1048A0007FF47DAF0122CDF818A09246029B5FFAFB -:1048B00088F80493330AF6B203FB06F6C7F306172B -:1048C0004FEAC8230993BB18089373030A930DF1A9 -:1048D00094080DF13A016868FEF74EFC00287FF459 -:1048E0005EAFBDF83A30039A9342F2D3414668680E -:1048F000FEF7DCFC00287FF452AF08EB0403586895 -:1049000054F80830984238BF18460AF039F906467C -:1049100008980AF035F9014630460AF03DFA064695 -:1049200009980AF031F9014630460AF077F8064650 -:104930000A980AF029F9014630460AF02DFAA249F0 -:104940000AF076F96B6801460290009807930AF026 -:104950000DFB002840F0F780019809F0BBFC0646EB -:1049600050460F460AF00CF909F0B4FC94A3D3E9C1 -:10497000002309F007FD02460B4609F04DFB3246C5 -:104980003B4609F08FFF002840F0DD800299009837 -:104990000AF0E2FA002840F09D80BDF83E000AF0DF -:1049A000EFF809F097FC86A3D3E9002309F0EAFCAD -:1049B000CDE90401BDF83C000AF0E2F809F08AFCF8 -:1049C0007FA3D3E9002309F0DDFC02460B46DDE9B5 -:1049D000040109F021FB02460B463046394609F036 -:1049E00039FF002876D10AF1010307980FAA59462A -:1049F0001FFA83FAFEF724FA00287FF4D0AEBDF840 -:104A00003C300AF07F0223F07F0313431A465946D5 -:104A10006868ADF83C30FEF729FA00287FF4BFAE95 -:104A20000DF13E0249466868FEF70AFA00287FF455 -:104A3000B6AEBDF83E304FEA0A2202F4FE4223F43D -:104A4000FE4313431A4649466868ADF83E30FEF708 -:104A50000DFA029B049300283FF43BAF9FE65B49AD -:104A60002868FEF755FD9DF837302A683EA9313396 -:104A700001F8C13D1068012206F0CEFE5FB928683A -:104A80005349FEF745FD384613E628685149FEF7BD -:104A90003FFD01200DE650492868FEF739FD0B99CE -:104AA0002868FEF735FD029809F014FC02460B4613 -:104AB00025A84A490BF096FA25A92868FEF728FD93 -:104AC0000020F6E500684349FEF722FD3846F0E590 -:104AD0000392E0E6DDF818A000216868FEF756FAB8 -:104AE000064600287FF45BAEBDF83C305A463C4990 -:104AF00011A80BF077FA11A92868FEF709FDBDF897 -:104B00003E304A46364911A80BF06CFA11A92868C4 -:104B1000FEF7FEFC31460DF13A026868FEF790F9A7 -:104B2000014600287FF43BAEBDF83A30686843F494 -:104B300000431A46ADF83A30FEF798F900287FF4A2 -:104B40002EAE012702E653460FAA5E1E079859466D -:104B5000DDF818A0B6B2FEF773F900287FF41FAE97 -:104B6000BDF83C3006F07F0223F07F0313431A4662 -:104B700059466868ADF83C30FEF778F900287FF4B4 -:104B80000EAE0DF13E0249466868FEF759F900285D -:104B90007FF405AEBDF83E30320202F4FE4223F44B -:104BA000FE4313431A4649466868ADF83E30FEF7A7 -:104BB0005DF900287FF4F3AD049B02938CE700BFFE -:104BC0008716D9CEF753F53F0000C8424C99010033 -:104BD0006499010014990100549701005C99010047 -:104BE0003099010010B50446006908B10AF064FC70 -:104BF000606908B10AF060FCA06918B1BDE8104016 -:104C00000AF05ABC10BD00BF2DE9F041C769002F62 -:104C100043D00546386808B106F084FC0021686876 -:104C2000FEF7B4F997F82230D7F81C80002B36D164 -:104C3000B86918B180680AF03FFCB8690AF03CFC1A -:104C4000B8F1000F12D097F82040013C64B2002C5C -:104C50000CDB08EBC406F28838F834106868013CB5 -:104C6000FEF704F92306A6F10806F4D53221686898 -:104C7000FEF798F997F821106868FEF78DF9786AC1 -:104C80000AF01AFCB86A0AF017FC40460AF014FC55 -:104C900038460AF011FC0023EB61BDE8F0810022E8 -:104CA0000621E86806F046F9B8690028C2D1C5E7D0 -:104CB0002DE9F04F064697B008460AF047FB04215D -:104CC00000F1FF394FF400700AF044FB002800F0B7 -:104CD000E6808046D6F8E43C5FFA89F909EB890959 -:104CE000A3EBC92902464FF400734946B06805F0AA -:104CF000C1FDD8F800305A1C00F0C680DBB2694A0A -:104D0000402106A80BF028F906A93068FEF700FC40 -:104D100098F80130644A402106A80BF01DF906A955 -:104D20003068FEF7F5FB98F90270604A3B46402177 -:104D300006A80BF011F906A93068FEF7E9FB98F810 -:104D400003205B4B402153F8223006A8594A0BF050 -:104D500003F906A93068FEF7DBFBD8F804301846E3 -:104D60001D46039309F0B6FA534ACDE900014021EC -:104D700006A80BF0F1F806A93068FEF7C9FBD8F8D1 -:104D8000083018461C46049309F0A4FA4B4ACDE9B2 -:104D90000001402106A80BF0DFF806A93068FEF7F5 -:104DA000B7FB384609F0F0FE0146284609F036FE0A -:104DB0000AF02AF980B209F0E7FE214609F0ECFF7B -:104DC0004FF07E5109F02CFE0AF01EF980B2002847 -:104DD0004BD0002703240138DFF8FCB01FFA80FA1B -:104DE00058F82430651C1846059309F073FA5A46A2 -:104DF000CDE90001402106A80BF0AEF8304ABBB265 -:104E0000A2FB0312D20802EB8202A3EB42039BB285 -:104E1000ADB203B330681FB12A49FEF779FB3068A1 -:104E200006A9FEF775FB57451FD0B5F5007F07F1C2 -:104E3000010701D22C46D3E76FF4FF73A9F500698F -:104E4000E51849464FF400734246B068ADB205F02C -:104E500011FD2C46C4E71C493068FEF759FB306849 -:104E600006A9FEF755FB5745DFD118493068FEF714 -:104E70004FFB17493068FEF74BFB40460AF01CFB1E -:104E8000002017B0BDE8F08F12493068FEF740FBF4 -:104E900040460AF011FB002017B0BDE8F08F6FF01C -:104EA0000B00EEE71860010034600100546001005F -:104EB0005C0104207460010090600100B06001009A -:104EC000CDCCCCCC54970100F4600100806101008E -:104ED000D4600100E45F0100EC6001002DE9F047BF -:104EE000C569D0F8E46C95F83530D0B003EB830396 -:104EF00081462868A6EBC326AF6A06F03DFBEB7936 -:104F00002A7B95F90E4029791B06688943EA02231A -:104F1000220402F47F020B43D5F8108013430138BA -:104F2000109309F031FE414609F082FE8246204688 -:104F300009F02AFE0146504609F072FDCDF848807E -:104F40006B89119063B300240323A046A446D9F8CB -:104F5000080050AA57F8241002EB8302A2F58072D1 -:104F6000116001346A89A4B20133A2429BB20CEBF6 -:104F7000060118D9402BECD110AA05F057FC08F116 -:104F80004008034630BBB8F5007F08BF9846D9F803 -:104F9000080006BFA6F50066C4464FEA880CD8E7AD -:104FA0003146D9F8080010AA402305F03FFC2868D4 -:104FB00006F048FB2B680D4A9B68402168460AF0C2 -:104FC000CBFF6946D9F80000FEF7A2FA2868002155 -:104FD00006F066FB4846FFF717FED9F800000449C3 -:104FE000FEF796FA50B0BDE8F08700BFAC9C010018 -:104FF000D49C010010B5034904460068FEF788FA06 -:1050000010B110BD0C610100A7492068FEF780FABD -:105010000028F6D1A5492068FEF77AFA0028F0D1D9 -:10502000A3492068FEF774FA0028EAD1A149206854 -:10503000FEF76EFA0028E4D19F492068FEF768FA6F -:105040000028DED19B492068FEF762FA0028D8D1FB -:105050009A492068FEF75CFA0028D2D19849206866 -:10506000FEF756FA0028CCD196492068FEF750FA90 -:105070000028C6D194492068FEF74AFA0028C0D11A -:1050800092492068FEF744FA0028BAD19049206876 -:10509000FEF73EFA0028B4D18E492068FEF738FAB0 -:1050A0000028AED18C492068FEF732FA0028A8D13A -:1050B0008A492068FEF72CFA0028A2D1814920688D -:1050C000FEF726FA00289CD17F492068FEF720FAD7 -:1050D000002896D17D492068FEF71AFA002890D161 -:1050E0007F492068FEF714FA00288AD179492068A0 -:1050F000FEF70EFA002884D17A492068FEF708FAF4 -:1051000000287FF47EAF78492068FEF701FA002876 -:105110007FF477AF75492068FEF7FAF900287FF42D -:1051200070AF73492068FEF7F3F900287FF469AF88 -:1051300070492068FEF7ECF900287FF462AF6E49F1 -:105140002068FEF7E5F900287FF45BAF6B49206823 -:10515000FEF7DEF900287FF454AF69492068FEF7B6 -:10516000D7F900287FF44DAF66492068FEF7D0F9E3 -:1051700000287FF446AF64492068FEF7C9F900288B -:105180007FF43FAF61492068FEF7C2F900287FF441 -:1051900038AF5F492068FEF7BBF900287FF431AFD4 -:1051A0005C492068FEF7B4F900287FF42AAF5A4919 -:1051B0002068FEF7ADF900287FF423AF5749206837 -:1051C000FEF7A6F900287FF41CAF55492068FEF7CA -:1051D0009FF900287FF415AF52492068FEF798F92F -:1051E00000287FF40EAF50492068FEF791F900289F -:1051F0007FF407AF4D492068FEF78AF900287FF455 -:1052000000AF4B492068FEF783F900287FF4F9AE20 -:1052100048492068FEF77CF900287FF4F2AE464941 -:105220002068FEF775F900287FF4EBAE434920684B -:10523000FEF76EF900287FF4E4AE41492068FEF7DE -:1052400067F900287FF4DDAE3E492068FEF760F97B -:1052500000287FF4D6AE3C492068FEF759F90028B3 -:105260007FF4CFAE39492068FEF752F900287FF469 -:10527000C8AE37492068FEF74BF900287FF4C1AE6D -:1052800034492068FEF744F900287FF4BAAE324969 -:105290002068FEF73DF900287FF4B3AE2F4920685F -:1052A000FEF736F95CE000BF246101006C6101008B -:1052B00084610100C06101000C62010048620100CC -:1052C00098620100F462010038630100806301000C -:1052D000C86301002464010080640100C06401000F -:1052E000306501008C650100E46501006466010021 -:1052F000A46601003067010078670100D4670100EF -:105300003468010094680100D46801003469010028 -:10531000A46901000C6A01008C6A0100F46A0100B2 -:10532000586B0100E86B0100786C0100C06C010053 -:10533000546D0100CC6D0100946E0100FC6E010003 -:10534000886F0100F46F010064700100F8700100C3 -:10535000787101000C7201008C720100CC720100A6 -:1053600000287FF44EAE1F492068FEF7D1F80028D0 -:105370007FF447AE1C492068FEF7CAF800287FF486 -:1053800040AE1A492068FEF7C3F800287FF439AE12 -:1053900017492068FEF7BCF800287FF432AE1549A3 -:1053A0002068FEF7B5F800287FF42BAE124920687C -:1053B000FEF7AEF800287FF424AE10492068FEF70F -:1053C000A7F800287FF41DAE0A492068FEF7A0F870 -:1053D00000287FF416AE0A492068FEF799F888B1D4 -:1053E000012010BD2473010078730100F4730100E3 -:1053F000707401001C750100B8750100FC75010096 -:105400003C760100AF492068FEF782F80028E7D11A -:10541000AD492068FEF77CF80028E1D1AB4920684F -:10542000FEF776F80028DBD1A9492068FEF770F86E -:105430000028D5D1A7492068FEF76AF800287FF434 -:10544000E0ADA5492068FEF763F800287FF4D9ADE8 -:10545000A2492068FEF75CF800287FF4D2ADA0498D -:105460002068FEF755F800287FF4CBAD9D492068F1 -:10547000FEF74EF800287FF4C4AD9B492068FEF784 -:1054800047F800287FF4BDAD98492068FEF740F842 -:1054900000287FF4B6AD96492068FEF739F8002859 -:1054A0007FF4AFAD93492068FEF732F800287FF40F -:1054B000A8AD91492068FEF72BF800287FF4A1AD34 -:1054C0008E492068FEF724F800287FF49AAD8C49B5 -:1054D0002068FEF71DF800287FF493AD8949206805 -:1054E000FEF716F800287FF48CAD87492068FEF798 -:1054F0000FF800287FF485AD84492068FEF708F88E -:1055000000287FF47EAD82492068FEF701F800286C -:105510007FF477AD7F492068FDF7FAFF00287FF41C -:1055200070AD7D492068FDF7F3FF00287FF469AD79 -:105530007A492068FDF7ECFF00287FF462AD7849D6 -:105540002068FDF7E5FF00287FF45BAD7549206812 -:10555000FDF7DEFF00287FF454AD73492068FDF7A6 -:10556000D7FF00287FF44DAD70492068FDF7D0FFCC -:1055700000287FF446AD6E492068FDF7C9FF00287A -:105580007FF43FAD6B492068FDF7C2FF00287FF430 -:1055900038AD69492068FDF7BBFF00287FF431ADC5 -:1055A00066492068FDF7B4FF00287FF42AAD6449FE -:1055B0002068FDF7ADFF00287FF423AD6149206826 -:1055C000FDF7A6FF00287FF41CAD5F492068FDF7BA -:1055D0009FFF00287FF415AD5C492068FDF798FF18 -:1055E00000287FF40EAD5A492068FDF791FF00288E -:1055F0007FF407AD57492068FDF78AFF00287FF444 -:1056000000AD55492068FDF783FF00287FF4F9AC11 -:1056100052492068FDF77CFF00287FF4F2AC504926 -:105620002068FDF775FF00287FF4EBAC4D4920683A -:10563000FDF76EFF00287FF4E4AC4B492068FDF7CE -:1056400067FF00287FF4DDAC48492068FDF760FF64 -:1056500000287FF4D6AC46492068FDF759FF0028A2 -:105660007FF4CFAC43492068FDF752FF00287FF458 -:10567000C8AC41492068FDF74BFF00287FF4C1AC5E -:1056800039492068FDF744FF00287FF4BAAC374958 -:105690002068FDF73DFF00287FF4B3AC3749206850 -:1056A000FDF736FF00287FF4ACAC35492068FDF7E4 -:1056B0002FFF00287FF4A5AC32492068FDF728FFB2 -:1056C00062E000BF8C7601003C7701007C7701002E -:1056D000C87701003878010098780100E07801006F -:1056E0003C79010074790100B0790100E87901008A -:1056F000847A01003C7B0100A87B0100D47B01007F -:10570000387C0100807C0100D87C0100287D0100EC -:10571000A87D0100007E01004C7E0100B07E0100EA -:105720000C7F0100507F0100887F0100D47F0100C1 -:1057300038800100B0800100188101008C810100D7 -:10574000F081010084820100008301009083010048 -:10575000E88301002C84010084840100FC840100A2 -:105760006C850100F08501007C860100CC8601007B -:105770000C87010068870100BC870100EC870100ED -:1057800058880100C488010000287FF43AAC2D49F4 -:105790002068FDF7BDFE00287FF433AC2A4920685D -:1057A000FDF7B6FE00287FF42CAC28492068FDF7F1 -:1057B000AFFE00287FF425AC25492068FDF7A8FE40 -:1057C00000287FF41EAC23492068FDF7A1FE0028C5 -:1057D0007FF417AC20492068FDF79AFE00287FF47B -:1057E00010AC1E492068FDF793FE00287FF409AC39 -:1057F0001B492068FDF78CFE00287FF402AC194994 -:105800002068FDF785FE00287FF4FBAB1649206871 -:10581000FDF77EFE00287FF4F4AB14492068FDF705 -:1058200077FE00287FF4EDAB11492068FDF770FE8C -:1058300000287FF4E6AB20680E49BDE81040FDF774 -:1058400067BE00BF1C890100A4890100108A010005 -:105850007C860100CC860100A48A0100048B010033 -:10586000748B0100D88B01007C8C0100B48C01008A -:105870000C8D0100908D010010B557490446006859 -:10588000FDF746FE00B110BD54492068FDF740FE0B -:105890000028F8D152492068FDF73AFE0028F2D1DD -:1058A00050492068FDF734FE0028ECD14E492068AD -:1058B000FDF72EFE0028E6D14C492068FDF728FEB2 -:1058C0000028E0D14A492068FDF722FE0028DAD1FD -:1058D00048492068FDF71CFE0028D4D146492068BD -:1058E000FDF716FE0028CED144492068FDF710FED2 -:1058F0000028C8D142492068FDF70AFE0028C2D11D -:1059000040492068FDF704FE0028BCD13E492068CC -:10591000FDF7FEFD0028B6D13C492068FDF7F8FDF3 -:105920000028B0D13A492068FDF7F2FD0028AAD13D -:1059300038492068FDF7ECFD0028A4D136492068DD -:10594000FDF7E6FD00289ED134492068FDF7E0FD13 -:10595000002898D132492068FDF7DAFD002892D15D -:1059600026492068FDF7D4FD00288CD12449206801 -:10597000FDF7CEFD002886D12A492068FDF7C8FD35 -:10598000002880D128492068FDF7C2FD00287FF457 -:105990007AAF26492068FDF7BBFD00287FF473AF7E -:1059A0001B492068FDF7B4FD00287FF46CAF204947 -:1059B0002068FDF7ADFD00287FF465AF1D49206824 -:1059C000FDF7A6FD00287FF45EAF20681A49BDE808 -:1059D0001040FDF79DBD00BF048E0100348E010014 -:1059E0008C8E0100F48E0100508F0100BC8F0100ED -:1059F000F48F01005C900100C4900100249101002B -:105A000080910100E491010050920100A0920100F8 -:105A10000493010070930100DC93010000940100E5 -:105A200064940100C8940100309501008495010040 -:105A3000E095010030960100B096010001292DE9A2 -:105A4000F041044601D00B786BB90022012384F8A1 -:105A5000D024C4F8CC342046FDF7AEFF80B1012637 -:105A60003046BDE8F081302BEFD00123084684F8A2 -:105A7000D03409F06BFCC4F8CC040028EBD1EEE77D -:105A800001216068FDF782FA06460028E7D194F804 -:105A9000CA5484F8D10420492068FDF739FD25BB9C -:105AA00035461E491E4FDFF87C8007E0013594F82B -:105AB000D4306DB29D42D3DA58F835102068FDF726 -:105AC00027FD39462068FDF723FDB4F8D6302B4179 -:105AD000DA07EBD508EBC50359682068FDF718FD18 -:105AE00039462068FDF714FDE0E73546DFF83880D9 -:105AF0000B4F02E00135082DB2D094F820302B4135 -:105B0000DB07F7D558F825102068FDF701FD394669 -:105B10002068FDF7FDFCEDE7A49A01002C5501007B -:105B200054970100A85401002C9A01001C4B5A798B -:105B30003F2A01D0002070479A79002AFAD19B7839 -:105B4000303BDBB2072BF5D810B50446034493F87D -:105B5000AC2086B002F00103920744BF43F0020379 -:105B60005BB2184601A90A2209F08AFC0D49206897 -:105B7000FDF7CEFC2368012218680B4905F04CFEA6 -:105B80000A492068FDF7C4FC01A92068FDF7C0FCA4 -:105B900020680749FDF7BCFC002006B010BD00BF1F -:105BA000501504209C54010054150420A8990100AC -:105BB000806101002DE9F0470C7890B00E46074651 -:105BC000ACB18846002509F061FC234620444278A8 -:105BD000013502F00302022A08BFA4F120036DB2CE -:105BE00088F80030745D06EB0508002CEBD1032229 -:105BF000844930460AF044FC002800F086800322E5 -:105C0000814930460AF03CFC80B306227F49304689 -:105C10000AF036FC0446002800F0BA8005227C49D0 -:105C200030460AF02DFC0446002800F0C3803046C0 -:105C3000092278490AF024FC0446002840F0A1809B -:105C4000754901A8D7F8D82C0AF0CCF973493868FF -:105C5000FDF75EFC386801A9FDF75AFC3868704909 -:105C6000FDF756FC204610B0BDE8F087F47806F149 -:105C70000308002C00F0AA800546C14609F006FC86 -:105C800020444378013503F00303022B08BF203C76 -:105C9000EDB289F8004018F8054008EB0509002C22 -:105CA000ECD1F578D7F800A0303DEDB2072D00F229 -:105CB0008F805C49DFF8A491063604E0DCB259F825 -:105CC00024100B7833B1042230460AF0D9FB631C50 -:105CD0000028F3D1072C7BD053495046FDF718FC20 -:105CE0003B6841461868012205F096FD4F49386827 -:105CF000FDF70EFC062C69D8DFE814F0D701C601C9 -:105D0000A10190012A01B2006F0005363046102231 -:105D100069460BF0C5FC009B04469E422AD04449CC -:105D20003868FDF7F5FB31463868FDF7F1FB41496E -:105D30003868FDF7EDFB4FF6FF75A1B207F59B63E1 -:105D400007F6D80403E0AA422DD09C422BD053F88A -:105D5000040F020C8A42F6D101A9102280B209F088 -:105D60008FFB01A93868FDF7D3FB2D493868FDF793 -:105D7000CFFB18B138683049FDF7CAFB10B0BDE859 -:105D8000F08738682D49FDF7C3FB10B0BDE8F087F8 -:105D90002B493868FDF7BCFB2A4BD7F8D02C386864 -:105DA00053F8221058E728493868FDF7B1FB00285E -:105DB000E4D0DFE7D7F8D40C08F08CFA02460B46A3 -:105DC00001A822490AF00EF9214940E7D7F800A0BE -:105DD00050462049FDF79CFBD0E7C5EBC5039B006F -:105DE00003F586739BB207EB8303D3F8DC241A49CF -:105DF00001A80AF0F7F801A93868FDF789FB00202F -:105E0000BCE700BF88580100DC5801006059010060 -:105E100080590100A4590100509A0100B0590100B5 -:105E20008061010080580100E05801005497010092 -:105E30008C580100EC560100A8580100C05901001F -:105E4000685901000C550100A05801008859010053 -:105E5000905901004C59010020590100CC57010014 -:105E6000C5EBC504A400A4B204F58B739BB207EB89 -:105E70008303D3F8DC0408F02DFA02460B4601A890 -:105E8000B4490AF0AFF801A93868FDF741FB04F204 -:105E900017139BB207EB8303D3F8DC0408F01AFA5C -:105EA00002460B4601A8AC490AF09CF801A93868E3 -:105EB000FDF72EFB04F58C739BB207EB8303D3F83D -:105EC000DC0408F007FA02460B4601A8A2490AF0D2 -:105ED00089F801A93868FDF71BFB04F219139BB27E -:105EE00007EB8303D3F8DC0408F0F4F902460B4611 -:105EF00001A899490AF076F801A93868FDF708FB6E -:105F000004F58D739BB207EB8303D3F8DC0408F030 -:105F1000E1F90B460246904901A80AF063F801A98D -:105F20003868FDF7F5FA04F21B139BB207EB830305 -:105F3000D3F8DC0408F0CEF90B468849024601A8E4 -:105F40000AF050F801A93868FDF7E2FA002015E7D9 -:105F5000C5EBC504A400A4B204F588739BB207EB9B -:105F60008303D3F8DC0408F0B5F902460B4601A818 -:105F70007B490AF037F801A93868FDF7C9FA04F23D -:105F800011139BB207EB8303D3F8DC0408F0A2F9EA -:105F900002460B4601A870490AF024F801A93868A6 -:105FA000FDF7B6FA04F589739BB207EB8303D3F8C8 -:105FB000DC0408F08FF902460B4601A866490AF096 -:105FC00011F801A93868FDF7A3FA04F213139BB284 -:105FD00007EB8303D3F8DC0408F07CF902460B4698 -:105FE00001A85D4909F0FEFF01A93868FDF790FAA4 -:105FF00004F58A739BB207EB8303D3F8DC0408F043 -:1060000069F90B460246544901A809F0EBFF01A9C2 -:106010003868FDF77DFA04F2151386E7C5EBC50372 -:106020009B0003F20B139BB207EB8303D3F8DC0452 -:1060300008F050F902460B4601A84A4980E7C5EB33 -:10604000C504A400A4B204F209139BB207EB8303B6 -:10605000D3F8DC0408F03EF902460B4601A8424999 -:1060600009F0C0FF01A93868FDF752FA04F58573FD -:106070009BB207EB8303D3F8DC0408F02BF902464C -:106080000B4601A839495BE7C5EBC5039B0003F547 -:1060900084739BB207EB8303D3F8DC0408F01AF98E -:1060A00002460B4601A832494AE732493868FDF7F3 -:1060B0002FFAC5EBC5039B0003F580739BB207EB7A -:1060C000830507F59F6405F59B6504EB830455F88C -:1060D000043F38681A0E03F07F43B3F17F4F33D08B -:1060E0008DF804200068012201A905F095FB2B68BA -:1060F0001A0C03F47F03B3F57F0F24D03B688DF8AF -:1061000004201868012201A905F086FB2B681A0AF1 -:1061100003F47F43B3F57F4F15D03B688DF804201F -:106120001868012201A905F077FB2B68DAB2FF2A73 -:1061300009D03A688DF80430106801A9012205F0F1 -:106140006BFBA542C3D138680B49FDF7E1F900208C -:1061500014E600BF40590100B05A0100385901004F -:106160002C59010014590100085901004C5A010032 -:10617000FC580100F4580100806101002DE9F04F46 -:1061800011F8029CB44BAFB0A9F1310603F1100431 -:1061900005ADF6B2884607460FCB032E85E80F0003 -:1061A00094E80F0009AC84E80F0000F2C38098F86F -:1061B0000040A4B1C246002509F068F920444378A4 -:1061C000013503F00303022B08BF203CEDB28AF82F -:1061D000004018F8054008EB050A002CECD10599A1 -:1061E00091F90050002D00F0AE800024254609E012 -:1061F000DCB22EAB03EB840353F8A41C254691F9C3 -:10620000003033B1042240460AF03AF9631C0028FA -:10621000EED1022C00F28580002C00F09480A9F1D0 -:106220003209B9F1010F40F2118100230DF1340858 -:10623000BA1982F8D23489493246404609F0D2FE72 -:1062400041463868FDF764F900224FF07E51844BD7 -:106250004FEA860907EB090ACAF8B4104046CDE9AF -:1062600000238049324609F0BDFE41463868FDF7FB -:106270004FF97D4B022C049340F0C3801221DAF8D1 -:10628000240009F095FC0390002800F0B4802EABA8 -:10629000334413F9A8BC0DF168095B465A467349AB -:1062A000484609F09FFE039BCE469C46CAF8243020 -:1062B000BEE80F00ACE80F00DEF800206C49ACF837 -:1062C00000205B464846CDF800B0324609F08AFE11 -:1062D00049463868FDF71CF9F2074FEA461354BFE8 -:1062E00003F2051603F5837604AA31467868FCF7B5 -:1062F000A7FDA0B9BDF810305E4A012C02EA0302E6 -:1063000006BF42F4E04242F0700242F030023146F1 -:106310007868ADF81020FCF7A9FD002873D001249F -:1063200004E038685449FDF7F3F8012420462FB003 -:10633000BDE8F08F012438685049FDF7E9F82046A0 -:106340002FB0BDE8F08F01230DF13408BA1982F89F -:10635000D23442493246404609F044FE414638684C -:10636000FDF7D6F84FF0000A4FF07E520024DFF818 -:10637000F0B007EB8603CDE900AB3A49C3F8B4208F -:106380004046324609F02EFE41463868FDF7C0F817 -:10639000354B4FEA8609049307EB0903586A12212B -:1063A000039309F005FC834628B32EAB334413F95D -:1063B000A8AC0DF16809534652464846304909F0E9 -:1063C00011FEDC46CE46039BC3F824B0BEE80F00A6 -:1063D000ACE80F00DEF800205346ACF80020484639 -:1063E000CDF800A03246274909F0FCFD494638683F -:1063F000FDF78EF870E738682349FDF789F8012426 -:1064000094E70124C8E73246BDF810301F494846DA -:1064100009F0E8FD49463868FDF77AF80446002897 -:106420007FF47DAF1A493868FDF772F82EAB194A30 -:1064300003EB850555F8943C52791749404609F01D -:10644000D1FD41463868FDF763F86FE738681349B6 -:10645000FDF75EF8012469E708540100D4550100F6 -:106460000000F03FEC550100414243441856010042 -:106470002C5601008080FFFF8C55010074550100EF -:10648000545601006856010008560100905601005C -:10649000AC56010050150420B45601009C55010073 -:1064A0002DE9F84F074600F59B6500F6D80407E094 -:1064B0007868FCF7DBFC002840F0FB80A54207D0A1 -:1064C00055F8043F13F0704F9AB24FEA1341EFD0E2 -:1064D00007F2D24807F1240507F1440920460021BC -:1064E000261D50F8043F5FFA81FC03F07F4E0CF14B -:1064F0000402BEF17F4F03F47F0A03F47F4BD2B254 -:10650000DBB200F0D980BAF57F0F51B200F0D8802D -:10651000BBF57F4F00F0D880FF2B00F0D980202AF8 -:10652000DFD11146286809F043FB002800F0C18044 -:106530006368286003F07F42B2F17F4F3CD01B0EAE -:106540000370616801F47F03B3F57F0F34D000203E -:10655000B446034620E02A6802449170DCF800103B -:1065600006EB0E0CCAB2FF2A26D02A680244D1706C -:1065700056F823204FEA126A02F07F42B2F17F4FB1 -:106580001AD02968704601F823A056F8231001F4A8 -:106590007F02B2F57F0F0FD02A68090C02445170B8 -:1065A000DCF800200133110A02F47F425BB2B2F53D -:1065B0007F4F4FEA830ECED1636A5E1C00D02B6200 -:1065C000A36A0435581C18BF6B64E36A08F101081C -:1065D000591C18BF6B66236B70345A1C18BFC5F862 -:1065E0008C3054F83C3C5E1C18BF48F8013C54F811 -:1065F0002C3C581C18BFC5F8203354F8283C591CB3 -:1066000018BFC5F8403354F8243C5A1C18BFC5F8CD -:10661000603354F8203C5E1C18BFC5F8803354F832 -:106620001C3C581C18BFC5F8A03354F8183C591C22 -:1066300018BFC5F8C03354F8143C5A1C18BFC5F82D -:10664000E03354F8103C5E1C18BFC5F8003454F811 -:106650000C3C581C18BFC5F8203454F8083C591C91 -:1066600018BFC5F8403454F8043C5A1C18BFC5F88C -:10667000603423685E1C18BFC5F880344D457FF434 -:106680002DAFD7F8D43C581C18BFBB66D7F8D03C08 -:106690003868591C18BF87F8CA34D7F8D83C0E4957 -:1066A0005A1C18BF87F82030FCF732FF0020BDE8E5 -:1066B000F88F0120BDE8F88F00293FF47DAF31E766 -:1066C0000CF1010149B22DE70CF1020149B229E7B1 -:1066D0000CF1030149B225E7EC570100000000006E -:1066E0002DE9F04F0C78EFB00F4605469CB1884677 -:1066F000002608F0CBFE20444378013603F0030364 -:10670000022B08BF203C76B288F80040BC5D07EB46 -:106710000608002CEDD13846202109F0D3FC3B4679 -:10672000DFF8D882013047460026AB4C12909846DD -:1067300004E05EB254F826703B783BB10422414637 -:10674000384609F09DFE731C0028F2D1072E00F098 -:106750008781A24BDA78A2F13004E4B2072C10D87A -:106760003B462EA89E4909F03DFC062E00F24682CB -:10677000DFE816F01001A60048018D005B0029003B -:106780000F0028689749FCF7C3FE01206FB0BDE8F1 -:10679000F08F129808F0DAFD08F0F6F900210646AD -:1067A00008F0DAFB002800F0C181304608F02CFC2C -:1067B000C0B202462C4415AE84F8D2048A49304651 -:1067C00009F010FC7EE100274FF00008DDF848904A -:1067D00005EB840413AE484631460AF06FFED6F846 -:1067E0000090129B994500F09B8108F0C3F8824607 -:1067F000484612A90AF062FEDDF8489033684B451E -:1068000000F08C8108F0B6F87BB2002F00F0E28136 -:10681000012B00F0E981FBB2022BC4F888A4C4F874 -:10682000A80400F025810137D5E700274FF00008C4 -:10683000DDF8489005EB840413AE484631460AF073 -:106840003DFED6F80090129B994500F06D8108F04E -:1068500091F88246484612A90AF030FEDDF84890C9 -:1068600033684B4500F05E8108F084F87BB2002F5E -:1068700000F0B581012B00F0BC81FBB2022BC4F803 -:10688000C8A3C4F8E80300F029810137D5E714A9AB -:1068900012980AF013FE149A129B9A4200F04F814C -:1068A00008F068F805EB8404C4F8B40007F012FDA2 -:1068B00015AE02460B4630464C4909F093FB01E108 -:1068C00014A912980AF0FAFD149A129B9A4200F049 -:1068D000C78008F04FF80D9007F0FCFC3CA3D3E90B -:1068E000002307F04FFD0022414BCDE9100107F0D6 -:1068F00073FE00239A460A9305F0B4F9CDE90E0120 -:1069000008F038F8D046CDE90B45DDE90E45834661 -:106910000127DFF8EC9006E0304608F01DFB002868 -:1069200000F02481B046384607F0B2FC02460B4620 -:106930000020304907F050FE08F01CF829460646B2 -:10694000204608F017F8594608F026FA0146304666 -:1069500008F06EF94946064608F008FB5146002843 -:10696000DAD14046013708F0F7FA002800F0278115 -:10697000384607F08DFCDDE9102307F003FD002207 -:106980001B4B07F029FE0A9605F06CF946460446B3 -:106990000D46C7E7129809F045FD013046B205EBF8 -:1069A00084043146606A09F003F91490002800F06D -:1069B000C08032461299606215AE09F02DF8626A05 -:1069C00030460D4909F00EFB7CE000BFAFF30080BC -:1069D000182D4454FB210940CC57010050150420C8 -:1069E00018570100005701003060010028570100CE -:1069F000000014400000F03FBC5601008058010028 -:106A00007D3F353F13AE314612980AF057FD07F02F -:106A1000B1FF129A3368934200F0A18005EB840421 -:106A2000E06614A918460AF049FD07F0A3FF149A7E -:106A3000336807469A4200F0888007F04BFC804696 -:106A40008946E06EC4F88C7007F044FC15AE02462F -:106A50000B46CDE900893046694909F0C3FA31E0B7 -:106A600028686849FCF754FD01206FB0BDE8F08F3D -:106A70008346D4F8080407F02DFC80465846894622 -:106A800007F028FCCDE90801504607F023FCCDE9CA -:106A90000601D4F8680407F01DFCCDE90401D4F820 -:106AA000480407F017FCCDE90201D4F8280407F0E8 -:106AB00011FC15AECDE9000142464B463046524925 -:106AC00009F090FA31462EA809F0DCFA2EA92868C0 -:106AD000FCF71EFD00206FB0BDE8F08F8346D4F8B0 -:106AE000480307F0F7FB80465846894607F0F2FB5B -:106AF000CDE90801504607F0EDFBCDE90601D4F8D9 -:106B0000A80307F0E7FBCDE90401D4F8880307F0F8 -:106B1000E1FBCDE90201D4F86803C8E7404673E61B -:106B2000C24665E64046A1E6C24693E6012210460B -:106B300040E628683549FCF7EBFC012026E628688A -:106B40003349FCF7E5FC012020E632492868FCF7D0 -:106B5000DFFC4FF00008DFF8D0902F4F71E72F498E -:106B60002868FCF7D5FC33682D4857E7DDE90B456D -:106B70002C490A9807F052FF31468046294807F011 -:106B80004DFF0146404608F00FFA90B904F1A20308 -:106B900045F823700D9B05EB8404F9B2636489000A -:106BA000D4F8A80209F004F808B1C4F8A802606C8F -:106BB0007CE6013704F1A20345F82370EAE719499E -:106BC0004046DDE90B4508F0C7F90028DED10A96FA -:106BD0004646CDE7C4F808A4C4F8280423E6C4F860 -:106BE00048A3C4F8680350E6C4F848A4C4F868048D -:106BF00019E6C4F888A3C4F8A80346E60120C5E551 -:106C00008857010014990100AC5701000856010093 -:106C1000905701005C57010000007041305701009F -:106C20000000C8417D3F353F00002E402DE9F04374 -:106C30008B4FCBB03B793F2B04D0FFF751FD4BB0CE -:106C4000BDE8F0830C7880460E46ACB1894600253D -:106C500008F01CFC234620444278013502F0030270 -:106C6000022A08BFA4F120036DB289F80030745DD8 -:106C700006EB0509002CEBD100247A487A4D04E09C -:106C80005CB255F8240003782BB1314609F08EFA36 -:106C9000631C0028F4D1072C03D101204BB0BDE8C0 -:106CA000F0837249D8F80000FCF732FCD8F80030C5 -:106CB000012218686E4904F0AFFD6E49D8F8000053 -:106CC000FCF726FCFB78303B5DB2062CE5D8DFE80C -:106CD00004F0BDB4957D551D040008EB050393F841 -:106CE000D2040AA90A2208F0CBFB6349D8F80000B5 -:106CF000FCF70EFC0AA9D8F80000FCF709FCD8F84C -:106D000000005E49FCF704FC002098E708EB8505CD -:106D10005B49D8F80000FCF7FBFBD5F8080407F046 -:106D2000D9FA0646D5F8A8040F4607F0D3FACDE9FC -:106D30000801D5F8880407F0CDFACDE90601D5F8A9 -:106D4000680407F0C7FACDE90401D5F8480407F054 -:106D5000C1FACDE90201D5F8280407F0BBFA3246A2 -:106D6000CDE900013B4647490AA809F03BF90AA9C9 -:106D7000D8F80000FCF7CCFB002060E708EB8505A5 -:106D80004149D8F80000FCF7C3FBD5F8480307F0E9 -:106D9000A1FA0646D5F8E8030F4607F09BFACDE9BD -:106DA0000801D5F8C80307F095FACDE90601D5F832 -:106DB000A80307F08FFACDE90401D5F8880307F09E -:106DC00089FACDE90201D5F86803C6E72F49D8F85A -:106DD0000000FCF79DFB08EB8503D3F8B40007F037 -:106DE00079FA02460B460AA8294909F0FBF80AA9D4 -:106DF000D8F80000FCF78CFB002020E708EB8505A5 -:106E00002449D8F80000FCF783FBE86E07F062FA2B -:106E10000646D5F88C000F4607F05CFA3246CDE9FD -:106E200000013B461C490AA809F0DCF80AA9D8F879 -:106E30000000FCF76DFB002001E71849D8F80000BE -:106E4000FCF766FB08EB8503586CC8E71449D8F8D3 -:106E50000000FCF75DFB08EB8503596A4BE700BFB8 -:106E60005015042080580100CC570100C056010085 -:106E700053150420CC560100F85601008061010032 -:106E8000F0560100AC570100E8560100E056010041 -:106E900028570100D856010088570100D05601003C -:106EA000F458010038B50C460546084608F04EFA7D -:106EB00034B1237823B110F0FF0016D0012805D09B -:106EC00028681149BDE83840FCF722BB4FF4007335 -:106ED00005F2DC42D5F8DC1CA86803F0CBFC28687E -:106EE0000A49FCF715FB002038BD4FF4007305F28A -:106EF000DC42D5F8E01CA86803F0BCFC2868044913 -:106F0000FCF706FB002038BD2C580100385B01005F -:106F1000245B01002DE9F04F0C78ADF5137D0E4692 -:106F20000746ACB18846002508F0B0FA2346204455 -:106F30004278013502F00302022A08BFA4F12003BF -:106F40006DB288F80030745D06EB0508002CEBD1BB -:106F5000C04B52AD0FCB85E80F000322BE4930462F -:106F600009F08EFA002800F095800322BB493046D4 -:106F700009F086FA002836D00522B949304609F0D2 -:106F80007FFA002800F0ED800422B649304609F06F -:106F900077FA002800F01F81B34C082221463046C2 -:106FA00009F06EFA002840F0D78008360DF1E408A9 -:106FB0003046414610220AF073FBD8F800309E425A -:106FC00000F08281C6B20DF11C0A3246A749504634 -:106FD00009F008F894E80700434603C3C7F8D86CE3 -:106FE0001A703E6895E096F80390F31CA9F13009F9 -:106FF0005FFA89F9B9F1070F059300F2A58096F8B9 -:10700000058005360596B8F1000F18D00446824673 -:1070100008F03CFA434640444278013402F003024F -:10702000022A059A08BFA8F1200302F80A30059E3B -:1070300064B216F80480A246B8F1000FE8D100242B -:107040008B49DFF8308204E05CB258F824100B78EA -:1070500033B10422304609F013FA631C0028F3D13F -:10706000072C71D0834B0DF11C0A53F82430504685 -:107070004A46814908F0B6FF059805300590062C70 -:1070800062D8DFE814F0A50384033C031B0351021C -:10709000570126010446301D20AE306007F59B6283 -:1070A00003E00134B4F5807F46D052F8043F03F08A -:1070B0007F43B3F17F4FF4D10DF1E4084146102234 -:1070C0000AF0EEFA33688146D8F80000984233D0CF -:1070D000102231460AF0E4FA3368D8F800209A42C8 -:1070E0002AD086B20DF11C0A3346644950461FFA75 -:1070F00089F208F077FF46EA0946614B07EB840402 -:10710000C4F8DC643E6893E80300C8F800008DF81A -:10711000E810284609F086F94146284408F084FF23 -:10712000514609F021F929463046FCF7F1F90020D3 -:107130000DF5137DBDE8F08F38685249FCF7E8F98A -:107140000DF5137DBDE8F08F38684F49FCF7E0F985 -:107150000DF5137DBDE8F08F38684C49FCF7D8F980 -:10716000EEE796F805800536B8F1000F17D0044613 -:10717000B14608F08BF9434640444278013402F0AE -:107180000302022A08BFA8F1200364B289F8003084 -:1071900016F8048006EB0409B8F1000FE9D10024C9 -:1071A000DFF8F880DFF8F89005E05CB259F8248049 -:1071B00098F800303BB105224146304609F060F9AD -:1071C000631C0028F1D1042C3E686BDD3046304949 -:1071D000FCF79EF9B4E704360DF1E4083046414669 -:1071E0000AF06CF9D8F800309E4200F0FF8207F0F8 -:1071F000C1FB01468146274807F0CEFD07F004FF9A -:10720000DFF890A0C4B2204607F0BEFC014650460D -:1072100007F0C2FD0134064601464846E4B207F0D5 -:10722000A5FE0028EFD1304607F054F80DF11C0AF6 -:107230000B4602461849504608F0D4FE094BC7F8E1 -:10724000D46C93E803003E68C8F800008DF8E8109D -:107250005FE700BF4C5B010088580100DC5801006B -:10726000C85B0100F45B0100205C0100509A010042 -:1072700080580100CC5701006C5B01005C5B010091 -:10728000645B0100A8580100A45B0100C059010023 -:10729000D05B01000000A0408859010080990100E6 -:1072A0000C5501000DF11C0A4146504609F05CF8EE -:1072B000964B0DF1E40893E80300C7F8D04CC8F8EA -:1072C0000000ADF8E81024E738689149FCF720F990 -:1072D00036E70A2206A90AF0E3F9DDE905329A4207 -:1072E0003FF432AF07F050FC064607F08DFEC9EBC5 -:1072F000C904A40004F58674A4B204F59B7407EBDA -:1073000084046060304607F059FE20AE42B28149E5 -:10731000304608F067FE0DF1E4083146504608F0AB -:10732000B1FE7D4B3E6893E80300C8F800008DF87D -:10733000E810EEE6C9EBC904A4000DF11809A4B2E7 -:1073400004F58B7349461FFA83FB0AF0B7F8D9F8A6 -:107350000020059B9A4200F0708207F00BFB8046EC -:1073600006F0B8FF02460B4620AE6C49304608F0E6 -:1073700039FE07EB8B03C3F8DC8405A9D9F80000BC -:107380000AF09CF8D9F80020059B04F2171B9A42DA -:107390001FFA8BFB00F04E8207F0ECFA0246034620 -:1073A0000DF1E40831464046CDE9022308F0DCFF48 -:1073B000029A07EB8B0B104606F08CFF4246CDE994 -:1073C00000015749304608F00DFE039B4946CBF8B3 -:1073D000DC3405980AF072F8D9F80020059B04F512 -:1073E0008C7B9A421FFA8BFB00F0218207F0C2FAD5 -:1073F0000246034631464046CDE9023208F0B4FF6A -:10740000039A07EB8B0B104606F064FF4246CDE96A -:1074100000014349304608F0E5FD029B05A9CBF881 -:10742000DC34D9F800000AF049F8D9F80020059BAF -:1074300004F2191B9A421FFA8BFB00F0F58107F04A -:1074400099FA0246034631464046CDE9022308F048 -:107450008BFF029A07EB8B0B104606F03BFF424670 -:10746000CDE900012E49304608F0BCFD039B49469A -:10747000CBF8DC3405980AF021F8D9F80020059BF8 -:1074800004F58D7B9A421FFA8BFB00F0BC8107F05C -:1074900071FA0246034631464046CDE9022308F020 -:1074A00063FF029A07EB8B0B104606F013FF424670 -:1074B000CDE900011A49304608F094FD039B04F21F -:1074C0001B14CBF8DC3405A9D9F8000009F0F6FF4D -:1074D000D9F80020059BA4B29A4200F08C8107F0F5 -:1074E00049FA814683463146404608F03DFF48460A -:1074F00006F0F0FE07EB8404CDE90001424609499D -:10750000304608F06FFDC4F8DCB406E7C85B010044 -:107510002C5C0100306001009C5B0100B85A010046 -:10752000885B0100905B0100C9EBC904A4000DF168 -:107530001809A4B204F5887349461FFA83FB09F0C1 -:10754000BDFFD9F80020059B9A4200F0628107F048 -:1075500011FA804606F0BEFE02460B4620AEC24936 -:10756000304608F03FFD07EB8B03C3F8DC8405A928 -:10757000D9F8000009F0A2FFD9F80020059B04F219 -:10758000111B9A421FFA8BFB00F0408107F0F2F9C1 -:10759000024603460DF1E40831464046CDE9022398 -:1075A00008F0E2FE029A07EB8B0B104606F092FE03 -:1075B0004246CDE90001AD49304608F013FD039B7A -:1075C0004946CBF8DC34059809F078FFD9F800205B -:1075D000059B04F5897B9A421FFA8BFB00F0218101 -:1075E00007F0C8F90246034631464046CDE902237A -:1075F00008F0BAFE029A07EB8B0B104606F06AFE03 -:107600004246CDE900019949304608F0EBFC039B66 -:1076100005A9CBF8DC34D9F8000009F04FFFD9F800 -:107620000020059B04F2131B9A421FFA8BFB00F00B -:10763000F58007F09FF90246034631464046CDE902 -:10764000022308F091FE029A07EB8B0B104606F01E -:1076500041FE4246CDE900018449304608F0C2FCB3 -:10766000039B4946CBF8DC34059809F027FFD9F88D -:107670000020059B04F58A7B9A421FFA8BFB00F0E1 -:10768000BF8007F077F90246034631464046CDE910 -:10769000022308F069FE029A07EB8B0B104606F0F6 -:1076A00019FE4246CDE900017049304608F09AFCC7 -:1076B000039B04F21514CBF8DC3404E706A909F0A7 -:1076C000FDFEDDE905329A423FF43EAD07F052F986 -:1076D000044606F0FFFD20AE0B46024664493046E4 -:1076E00008F080FCC9EBC9039B0003F20B139BB2AB -:1076F00007EB8303C3F8DC440DF1E4080DE6C9EBA6 -:10770000C9040DF11809494609F0D8FE07F032F90D -:10771000A400D9F80020059BA4B204F209169A42ED -:10772000B6B2804600F0968006F0D4FD02460B46C5 -:1077300007EB860120AEC1F8DC8430464D4908F0E5 -:1077400051FC05A9D9F8000009F0B8FE07F012F9BC -:10775000D9F80020059B04F585749A42A4B28346AB -:1077600070D003460DF1E40807EB8404C4F8DC3460 -:107770003146404608F0F8FD584606F0ABFD42465B -:10778000CDE900013C49304608F02CFCC5E506A9CE -:1077900009F094FEDDE905329A423FF4D5AC07F0DA -:1077A000E9F8044606F096FD20AE0B460246334942 -:1077B000304608F017FCC9EBC9039B0003F584733E -:1077C0009BB207EB8303C3F8DC440DF1E408A4E5A6 -:1077D00001464A46384620AEFCF740F8059A304646 -:1077E000274908F0FFFB0DF1E40896E538682549C4 -:1077F000FBF78EFEA4E44FF0000B4FF0000972E699 -:107800000023002241E70023002244E60023002257 -:10781000C0E64FF00008002200239FE6002300226C -:107820000BE700230022DFE6002300220BE6002303 -:107830000022DFE500230022B2E54FF0000800221D -:10784000002391E510493868FBF762FEDFF83CB091 -:107850000E4B87E70E493868FBF75AFEDFF8388091 -:1078600000220C4B64E700BFB85A0100885B01009E -:10787000285701007C5B0100805B0100745B010004 -:10788000BC560100FC5B01005C5701000000704128 -:1078900030570100000039400000C8412DE9F04F89 -:1078A000064683B04068FBF755FB20B101273846F8 -:1078B00003B0BDE8F08F04224FF4807307464FF009 -:1078C000FF3186F8CA24A6F8D034C6F8CC0406F5F1 -:1078D0009B6306F6D84243F8041F9342FBD106F19E -:1078E000AC0906F1B40306F1200401964FF0010B38 -:1078F0004E464FF07C5A4FF07E58002599460121A4 -:1079000054F8040F08F054F90021062200B1206059 -:10791000214BC4F820A0A364204BA36606F8011BEA -:107920004E45C4F89080C4F82453C4F84483C4F886 -:107930006453C4F88453C4F8A453C4F8C453C4F8BB -:10794000E453C4F80484C4F82454C4F84454C4F878 -:107950006454C4F88454C4F8642286F825B4CED1A3 -:10796000019E0F2386F8D9100021C6F8688086F89A -:10797000203006F52A7006F5327650F8042B131FD6 -:10798000143243F8041F9342FBD18642F5D13846A6 -:1079900003B0BDE8F08F00BF0000C8410000704197 -:1079A00010B586B004460DF1020240680821FBF7CD -:1079B00047FA10B1012006B010BD9DF8023001A9B0 -:1079C00018461022ADF8023007F05AFD01A92068D0 -:1079D000FBF78AFE06B010BDF8B5C2690446D1793E -:1079E000406829B3567D137D958D03EB461392F8BD -:1079F0000DC0167B03FB05F3164F92F90E5066443B -:107A00007A5CA9199BB20A4402EB531292B203F0BA -:107A10001F0343EA421292B240F20B11FBF726FA1F -:107A2000054620B12046FDF7EFF82846F8BD60680E -:107A30004FF4004301220021FBF760FA05460028BD -:107A4000F0D101216068FBF7A1FA05460028E9D1D1 -:107A50002846F8BDC89B01002DE9F04FC46995B0D8 -:107A6000002C46D0054600214068FBF78FFA0646F9 -:107A700030B12846FDF7C8F8304615B0BDE8F08FA4 -:107A8000E37B6279616A6868FBF782FB064600283F -:107A9000EFD1A28D6379039283B3D4E90938074605 -:107AA000A3F1040908EB820B0CE0D8F8000006F003 -:107AB000B7FFC8F8000001376379BFB2BB4208F1D5 -:107AC00004081BD959F8040F07F05AF88246A07928 -:107AD00007F05AF80146504607F05EF9E37901468F -:107AE000002BE2D0DBF8000006F09AFFCBF8000094 -:107AF000E1E70126304615B0BDE8F08F039B03F1A6 -:107B0000010A23891FFA8AFA5345A4F82CA068D8E1 -:107B1000206803F097FD2368344A9B68402104A83D -:107B200008F01AFA04A92868FBF7F2FC0021206883 -:107B300003F0B6FD206906F0CDFB2D4ACDE900012A -:107B4000402104A808F008FA04A92868FBF7E0FC23 -:107B50006389002B36D04FF0000ADFF8A880254F4C -:107B6000DFF8A4900DE02868BAF1000F25D104A930 -:107B7000FBF7CEFC0AF1010A63891FFA8AFA534522 -:107B800020D9A36A53F82A0006F0A4FB4246CDE9A7 -:107B90000001402104A808F0DFF9A7FB0A23DB0855 -:107BA00003EB8303AAEB43039BB2002BDBD1124907 -:107BB0002868FBF7ADFC2868D9E74946FBF7A8FC25 -:107BC0002868D4E70D492868FBF7A2FC0C4928680F -:107BD000FBF79EFC236B2846002B3FF44BAF9847E6 -:107BE00047E72846FFF7F8FE064645E7CC9B01002D -:107BF000F89B0100CDCCCCCC209C01008061010021 -:107C0000389C0100EC60010054970100022B2DE923 -:107C1000F0410E46144645D0062B36D003F0FB0249 -:107C2000032A38D0042B30D10C780746ACB18846F3 -:107C3000002507F02BFC234620444278013502F052 -:107C40000302022A08BFA4F12003EDB288F8003035 -:107C5000745D06EB0508002CEBD10023144DFB717D -:107C6000296891F90030A3B1012406E0FC7155F8B0 -:107C70002410DCB291F900305BB10322304608F0E9 -:107C8000FFFB631C0028F1D103E0304607F05EFBE8 -:107C90002070BDE8F0810846002109F021FC206039 -:107CA000BDE8F081084607F051FB2080BDE8F08177 -:107CB0005C0104202DE9F04F83B00F460E9C9DF827 -:107CC0003410924681469DF8302001910CB100217C -:107CD000217072B3002402F1FF385FFA88F81E4663 -:107CE000A34608F1010811E080F800B03378042BB6 -:107CF00033D039465AF824204846FFF787FF01342D -:107D0000444505F1010706F1010612D0202138464D -:107D100008F0D8F905460028E6D1317804292AD19F -:107D2000384608F0F7FB022807D8012003B0BDE869 -:107D3000F08F002003B0BDE8F08F33785AF824208C -:107D400039464846FFF762FF019B581E8442ACBF8C -:107D50000020012003B0BDE8F08F1946384608F036 -:107D6000D9FB0228E1D9394633785AF8242048460D -:107D7000FFF74CFFC3E70B465AF824203946484624 -:107D8000FFF744FFE0E700BF2DE9F04FC4695C4B0B -:107D9000E67985B0054693E80700022E04AB03E9B7 -:107DA000070051D82379032B52D840F29E7367897C -:107DB0009F4200F29C8094F80C9094F90E20C9F137 -:107DC00000039A42B8BFA37304AB03EB860353F8D6 -:107DD0000C8C25694146284607F0C8F810B1454685 -:107DE000C4F81080284607F00FF95FFA80F84FF0CA -:107DF000844184F81580284606F01AFF06F06AFAD6 -:107E000003F0E2FE06F096FD022E00F01F00207542 -:107E100094F80FA024D000234046237506F0B0FE4E -:107E200005462061E6B90AFB07F3B3F5007F04DDE0 -:107E30004FF4007797FBFAF767810020A379677109 -:107E4000238105B0BDE8F08F012005B0BDE8F08FBB -:107E500028682C49FBF75CFB012005B0BDE8F08FDA -:107E6000A6790AFB06F3B3F5007F05DD4FF4007633 -:107E700096FBFAF6F6B2A671384606F085FE29465C -:107E800006F0D6FE94F80D808246404606F07CFE51 -:107E90000146504606F0C4FD8246484606F074FE90 -:107EA0000146504606F0BCFD94F90EA083465046AC -:107EB00006F06AFE0146584606F0B2FD124907F088 -:107EC00073F870B1C8F1FF00A0EB0900A0EB0A0045 -:107ED00006F05AFE294606F05FFF07F095F887B2D4 -:107EE000678100206671278105B0BDE8F08F2868A2 -:107EF0000649FBF70DFB012005B0BDE8F08F00BF80 -:107F000028540100509C010000007F437C9C01002C -:107F10002DE9F04FC66985B0002E00F0608190F821 -:107F2000D4300446082186F82130182007F012FAD0 -:107F3000002800F06781F06100216068FBF726F8F7 -:107F4000054618B1284605B0BDE8F08F2046FBF77E -:107F500033FD05460028F5D101466068FBF71CF8A3 -:107F600005460028EED14FF4FA616068FBF71AF875 -:107F700005460028E6D101AB99464FF6FF77C54A82 -:107F8000804607CA83E8070039F802AB31790DF162 -:107F900002020AEB411189B26068FAF751FF054607 -:107FA0000028CFD1F369BDF8022023F808A043448C -:107FB00008F10808B8F1300F9F805A80E4D10146DB -:107FC0004FF4004301226068FAF798FF0546002845 -:107FD000B8D14FF0230E4FF0030C4FF0150A1F25B8 -:107FE000222102224FF400494FF007084FF0060B00 -:107FF00040F2FF30F369A3F830A0A3F838E0A3F80B -:108000003AC09D879F86A3F84010A3F84220A3F8AA -:108010003290A3F84480A3F848B07179F27BA3F8BA -:108020004C0002FB01F2013AA3F84A200C21012086 -:1080300007F090F908210546B061012007F08AF9A0 -:108040004FF0010A03466268934990686C60AB6028 -:108050002960186083F804A002F058FC0546002847 -:108060007FF470AFB2695946E06802F063FF0546DD -:1080700000287FF467AF5946E06802F0E9FD054645 -:1080800000287FF45FAF40F2011E4FF0E60C40F293 -:10809000091040F20F1B40F2FF124FF48871F36990 -:1080A00086F822A0A3F858E0A3F850B0A3F85250E5 -:1080B000A3F85490A3F85AC0A3F86000A3F85C207A -:1080C00096F80CC0707BA3F8647040EA0C2EA3F8FD -:1080D00062E0A3F86810F17BA3F86C70A3F86A1053 -:1080E00040F21111A3F87250A3F87480A3F8701035 -:1080F000F579022D00F0CB804FF478414FF4857E66 -:10810000A3F87A10A3F878E0A3F87C10002D7CD1B6 -:1081100040F207114FF4807B4FF4405A4FF4E0498E -:1081200040F21318A3F8881040F20B1E7189A3F8CF -:1081300080B0090241F00101A3F88A10A3F882A0DF -:10814000A3F88490A3F88C70A3F8908041F6FF7593 -:1081500000EB0C0196F90E00A3F8942014220731CD -:108160000144A3F89210A3F898E0717DA3F89C5005 -:108170004901A3F89A10571EFFB201374FF00008CB -:10818000FF0020E0F569606805EB08039988B3F803 -:1081900002C0DA8822EA010201EA0C010A4335F83A -:1081A00008105A80FAF762FE08F108080546002810 -:1081B0007FF4C8AE96F82030474503F1010386F8F6 -:1081C000203011D0F36903EB0802063233F80810AF -:1081D0006068FAF735FE05460028D3D0B2E60125DF -:1081E000284605B0BDE8F08F0421707907F0B2F899 -:1081F000706238B10421708907F0ACF8B0620028D1 -:108200007FF4A0AE6FF00B059CE610204FF4807257 -:1082100000214FF4E04940F207184FF6FF7740F293 -:10822000011E40F20B1C23F8302003EBC0025180EA -:10823000A2F80490421C23F8328003EBC20297801C -:10824000A2F802E0821C03EBC207022D23F832C021 -:1082500000F103027980B9808DD14FF485784FF613 -:108260001F014FF2080E40F20D1C01270F2523F8C5 -:10827000328003EBC2029180011DA2F802E023F8D4 -:1082800031C003EBC101421D4F808D8073E70F2089 -:10829000BCE700BF34540100C9380000F0B5064601 -:1082A000A3B00F460120442107F054F8002800F045 -:1082B000878004460025444B07A90893ADF81C505D -:1082C000CDE9095503F0C0F8206803F055F93421D1 -:1082D0002823022007224FF0050C6173A3713B494C -:1082E0003B4BE0732163F46193E8030000920B0CB5 -:1082F0000590221D04F10C0002958DF81A3004AD92 -:1083000004F110030B920C90E21DA01DADF81810A3 -:108310000D950E9304F10E050F921090CDF804C048 -:10832000394605AB0BAA20461195FFF7C3FC05465D -:10833000E8B90027049D3946284606F017FEE0B943 -:108340002169284606F028FD05F0C4FF03F0B4FBC0 -:108350000022204B05F060FE06F0ECFA23796081E4 -:10836000013B23713046FFF70FFD054640B1304613 -:10837000FCF74AFC284623B0F0BD3D460497DFE7F2 -:108380003046FFF7C5FD05460028F0D1206803F010 -:1083900059F92368104A9B68402112A807F0DCFDB8 -:1083A00012A93068FBF7B4F82946206803F078F981 -:1083B000206803F0E1F83046FFF70EFB0546D9E7E9 -:1083C0006FF00B05D6E700BF40420F00094C0000DC -:1083D000405401000000F03F289701002DE9F047CC -:1083E00081469CB00E460120442106F0B3FF0028D0 -:1083F00000F02F8107460025974B08A90993ADF897 -:108400002050CDE90A5503F01FF8386803F0B4F89E -:1084100002233C2143F23242FB73904BB971C9F8FD -:108420001C70BA813B632021304607F04BFE80462A -:1084300098B3831B082B40F3998005703478A4B15E -:10844000B24607F023F8234620444278013502F073 -:108450000302022A08BFA4F12003EDB28AF800301B -:10846000745D06EB050A002CEBD17D4D296891F96E -:108470000030002B00F0AA80002405E0DCB255F8A3 -:10848000241091F9003033B10D22304607F0F8FF87 -:10849000631C0028F2D1032C07D901244846FCF7BD -:1084A000B3FB20461CB0BDE8F087002C00F08E80A6 -:1084B000012C00F0C480022C00F0C68040F219228A -:1084C0004FF07453FA803B61002204200324654D71 -:1084D0001CAB2D6CBA7343F8585D009007F1350062 -:1084E000CDE901420C903C1D05A80CAD0D940E90F9 -:1084F000BC1D08F101012A4638460F94FFF7DAFB4C -:1085000004460028CAD10026059C3146204606F0C4 -:108510002DFD002857D13969204606F03DFC05F0B5 -:10852000D9FE03F0C9FA00224F4B05F075FD06F0A5 -:1085300001FA3B797881013B3B714846FFF724FC07 -:1085400004460028AAD197F83530013BDBB2012B55 -:1085500069D83A7987F83530002A3DD0032A3BD0D4 -:108560004249D9F80000FAF7D3FF97E74FF0060C1D -:1085700008243F4A06AB92E803000295CDF804C0F8 -:1085800083E8030007F1350000940C903C1D07F1CF -:108590000C000D940E9005AC07F110000F94109094 -:1085A000FC1D07EB0C000CAD1194129007F10E04AA -:1085B00031462A4638461394FFF77CFB04460028D0 -:1085C0007FF46CAF9FE734460596A4E700224FF096 -:1085D0008043FA713B6177E740F6FD137A899A424E -:1085E00027D84846FFF794FC044600287FF456AF8E -:1085F000386803F027F83B681E4A9B6840212846EC -:1086000007F0AAFC2946D9F80000FAF781FF2146B5 -:10861000386803F045F8386802F0AEFF4846FFF7C7 -:10862000DBF904463DE71449D9F80000FAF770FF7A -:1086300034E71249D9F80000FAF76AFF2EE74FF045 -:108640007E53FC713B613FE74FF07A53FC713B6115 -:108650003AE76FF00B0424E740420F00DD4E0000C4 -:1086600048010420085401000000F03F945C010020 -:108670004C540100F45C0100545C0100D85C010022 -:108680002DE9F04F07469FB00E460120442106F029 -:1086900061FE00286ED005460024B34B0AA90B9357 -:1086A000ADF82840CDE90C4402F0CEFE286802F077 -:1086B00063FF022334212822EB73AC4B6973FD6105 -:1086C000AA712B632021304607F0FCFC804600286D -:1086D00000F0F380831B062B59DD047096F80090A0 -:1086E000B9F1000F16D0B24606F0D0FE4B46484412 -:1086F0004278013402F00302022A08BFA9F12003E4 -:10870000E4B28AF8003016F8049006EB040AB9F1D6 -:10871000000FE9D107229649304607F0B1FE002844 -:1087200000F09480DFF870920024D9F8001091F9DD -:10873000003033B9DAE0DCB259F8241091F9003096 -:1087400033B10D22304607F09BFE631C0028F2D1A6 -:10875000032C75D8002C00F0C980012C00F0678133 -:10876000022C00F0558140F219224FF07453EA8038 -:108770002B61C0E07F493868FAF7CAFE6FF00B063C -:108780003846FCF741FA30461FB0BDE8F08F0424AC -:108790000622794B019493E803000DF1130406902F -:1087A00005F1350002940E902C1D05A80F94109031 -:1087B00005F11004A81D0DF118090DF1380AADF8E6 -:1087C0001C1000923146119412904B46524605F10E -:1087D0000E0428461394FFF76DFA0646002867D169 -:1087E000059CD5F810B04FF000082046414606F031 -:1087F000BDFB10B14446CDF814805946204606F022 -:10880000CBFA05F067FD03F057F95C4B002205F049 -:1088100003FC06F08FF82B7995F83440013B688112 -:108820002B71002C4FD195F83530013BDBB2012B79 -:1088300040F2B480524938682646FAF769FE9FE74D -:1088400050493868FAF764FE012699E701220724A7 -:1088500005264D4B85F8342093E803000690080C5C -:1088600000948DF81E002C1D05F10C000E940F9045 -:1088700005AC05F110000DF1130210941190EC1DE0 -:10888000A81D0DF118090DF1380AADF81C1001965C -:1088900002921294139008F101014B46524605F1E1 -:1088A0000E0428461494FFF705FA0646002897D0D0 -:1088B00036493868FAF72CFE62E734493868FAF727 -:1088C00027FE01265CE73846FFF75EFA06460028D9 -:1088D0007FF456AF2B79002B00F09F80032B00F024 -:1088E0009C802B493868FAF713FE49E700224FF0C5 -:1088F0008043EA712B61002003240422254BA873D6 -:108900001B6C0DF178090DF1130049F8603D0290E0 -:1089100005F13500CDE900240E902C1D05A80DF1C0 -:10892000380A0F94109008F101014B465246AC1DD5 -:1089300028461194FFF7BEF906460028B8D1059CD9 -:10894000D5F810B02046594606F026FA05F0C2FCCC -:1089500003F0B2F80022094B05F05EFB05F0EAFFD8 -:10896000012668813FE700BF40420F00618B000095 -:10897000685D0100145D0100545401000000F03FE7 -:10898000545C0100705D0100405401003C5D010039 -:10899000585F01000854010048010420D7F8E40C96 -:1089A00003EB8301A0EBC12185F835304A4604234F -:1089B000B86801F05FFFDDE90634089AC3F30721C8 -:1089C0005FFA83FC43F307401B0E85F836C085F839 -:1089D0003710297385F8380085F83930C5E90F421A -:1089E0006EB1013261D02A7962450BD1EA799A429F -:1089F0003CD031493868FAF78BFD0026C0E6A873F1 -:108A0000EB71EEE72D493868FAF782FD0026B7E6EC -:108A10004FF07A53EC712B616DE73846FFF778FA27 -:108A2000064648B126493868FAF772FDA8E64FF0C5 -:108A30007E53EC712B615EE7286802F003FE2B6821 -:108A4000204A9B684021504607F086FA5146386814 -:108A5000FAF75EFD3146286802F022FE286802F02F -:108A60008BFD3846FEF7B8FF06468CE695F90E609A -:108A7000B04214DC6889013806F086F8296906F0EE -:108A8000D7F88046304606F07FF80146404605F0AC -:108A9000C7FF214606F088FA00283FF414AF0A49C0 -:108AA0003868FAF735FD00266AE608493868FAF7AB -:108AB0002FFD002664E600BF585E0100E85D01005E -:108AC000A85F0100C45F0100D85E01009C5D010049 -:108AD0002DE9F0470446D0F80C8047680E46404622 -:108AE0002168914606F0A4F8A1680546384606F0CC -:108AF0009FF80146284605F091FF0021824606F0C6 -:108B00002BFA38BB31680546404606F091F871688B -:108B10008046384606F08CF80146404605F07EFF58 -:108B2000514606F039F9C9F800007168206806F06E -:108B30007FF831680746A06806F07AF801463846A3 -:108B400005F06CFF514606F027F9C9F804002846E5 -:108B5000BDE8F08701252846BDE8F0870000000049 -:108B60002DE9F04FD0F81CB0B1B00B909BF90E007E -:108B700006F00AF800260023DBF828200490DBF832 -:108B80000000059218931C93CDE919331B93CDE98E -:108B90001D331F93109611961296139614961596E0 -:108BA0001696179602F0E8FC9BF83470002F00F040 -:108BB0009582BBF80A300C930C9B199D012B40F257 -:108BC0008F80DDF81480DBF81030CDF834B04FF032 -:108BD00001090024C3460293189BDDF844A00693C4 -:108BE0001B9B0893109B0993DBF80010DBF8040033 -:108BF00005F016FF4FF07C5106F01AF8029E314640 -:108C000006F016F80146204605F00AFF04464846DD -:108C100005F0BAFF014680463046029606F008F895 -:108C20000A9005F057FB02460B4605F0ABFB0646E3 -:108C300006980F4605F04EFB02460B463046394675 -:108C400005F0EAF905F096FE0346069021460A98DB -:108C5000189305F0EDFF0146284605F0E1FE0546B4 -:108C60002046199505F036FB02460B4605F08AFBB7 -:108C7000064608980F4605F02DFB02460B46304687 -:108C8000394605F0C9F905F075FE059E1B9031685F -:108C900008905BF8040F05F0C1FE414605F0C8FFDF -:108CA000029905F0C5FF0146099805F0B9FE10903C -:108CB00031680990DBF8000005F0B0FE214605F0B0 -:108CC000B7FF0146504605F0ABFE09F101090C9AC9 -:108CD0001FFA89F393428246119085D3DDF834B0B0 -:108CE00012AA18A810A91A95FFF7F2FE139FBBF855 -:108CF0000A3007F1004208970692002B00F03083FB -:108D00004FF0000A504605F03FFFDBF8101005F069 -:108D10008FFF049905F084FE01460646384605F0AB -:108D200087FF05F0D7FA02460B4680468946C0A168 -:108D3000D1E9000102F0DEFF04460D461D9805F062 -:108D4000C9FA22462B4605F067F905F013FE3946AD -:108D50001D90384605F064FE314605F069FF05F0C8 -:108D6000B9FA02460B46B2A1D1E9000102F0C2FFF6 -:108D700004460D461F9805F0ADFA22462B4605F035 -:108D80004BF905F0F7FD059C1F9054F82A10149834 -:108D900005F046FE149054F82A0005F09BFA42466E -:108DA0004B46CDE90201A2A1D1E9000102F0A2FFE8 -:108DB00080461598894605F08DFA424604460D46D0 -:108DC000DDE902014B4605F0DDFA0B460246294675 -:108DD000204605F021F905F0CDFD0AF1010ABBF8A6 -:108DE0000A301FFA8AFA534515908BD8184605F0B9 -:108DF000C7FE01461D9B16AA1C911CA814A91E9310 -:108E0000FFF766FE06994FF07E5005F0C5FF179CF0 -:108E1000BBF80A300A90DDF858A00994002B00F046 -:108E2000A182504605F056FACDE90201204605F030 -:108E300051FA0024CDF830A0CDE906010025DDF877 -:108E400014A02CE05AF8240005F044FA32463B46C0 -:108E50008046894676A1D1E9000102F04BFFDDE9A9 -:108E6000062305F08FFADDE9022305F0D5F8024666 -:108E70000B464046494605F0CDF807460E462846C3 -:108E800005F028FA3A46334605F0C6F805F072FDBB -:108E900001340546BBF80A00A4B2A04250D95AF8E2 -:108EA000240005F017FA80462046894605F06CFE3E -:108EB000DBF8101005F0BCFE049905F0B1FD08992F -:108EC00005F0B6FE05F006FA02460B4606460F46CA -:108ED00057A1D1E9000102F00DFFDDE9062305F0FD -:108EE00051FADDE9022305F097F802460B464046A9 -:108EF000494605F08FF80022002305F0B5FC002854 -:108F0000A0D05AF8240005F0E5F932463B468046E9 -:108F1000894647A1D1E9000102F0ECFEDDE9062314 -:108F200005F030FADDE9022305F076F802460B463B -:108F30004046494605F06EF8074601F100469EE7B7 -:108F400005F022FE0146DDF830A0284605F024FF9A -:108F50000446DBF8000002F075FBDBF80030364A0F -:108F60009B68402120A806F0F7FF0B9D20A92868E8 -:108F7000FAF7CEFA0021DBF8000002F091FB04982A -:108F800005F0A8F92D4ACDE90001402120A806F0FE -:108F9000E3FF20A92868FAF7BBFA29492868FAF7FD -:108FA000B7FA504605F096F9264ACDE9000140216E -:108FB00020A806F0D1FF20A92868FAF7A9FA099895 -:108FC00005F088F9204ACDE90001402120A806F0EB -:108FD000C3FF20A92868FAF79BFA0A9805F07AF9E6 -:108FE0001A4ACDE90001402120A806F0B5FF20A9CA -:108FF0002868FAF78DFA204605F06CF9144ACDE995 -:109000000001402120A806F0A7FF20A928680B95A1 -:10901000FAF77EFABBF80A30002B50D000270D4D2E -:109020000D4C0E4EDDF81490DDF82C8024E000BFCE -:109030006957148B0ABF0540B09A0100D89A010005 -:10904000F89A0100389B01004C9B0100609B0100D5 -:10905000789B0100EC600100CDCCCCCC5497010092 -:10906000D8F800002FBB20A9FAF752FA0137BBF855 -:109070000A30BFB2BB4222D959F8270005F02AF9BD -:109080002A46CDE90001402120A806F065FFA4FB97 -:109090000723DB0803EB8303A7EB43039BB2002BFF -:1090A000DED1B249D8F80000FAF732FAD8F8000059 -:1090B000D9E73146FAF72CFAD8F80000D3E70B9C31 -:1090C000AB492068FAF724FAAA492068FAF720FA8F -:1090D0002046FBF799FD31B0BDE8F08F0B9B9BF864 -:1090E0003520D3F8E43C02EB8202A3EBC2239BF9C8 -:1090F0003800089305F048FDDBF84040054601467E -:10910000049805F08BFC214605F046FE05F07CFF37 -:1091100083B2184699460A93069705F035FD214615 -:1091200005F086FD294605F07BFC4B468046B94696 -:10913000DD1CBBF80A400C96ADB20997BDF818A02B -:10914000A24503D3631E994580F20881B5F5007FDF -:1091500013D3099AA5F500730899C3F34623013286 -:109160001A44A1F50061C3EB435301EBC3230893F9 -:1091700002F0FF030993C5F30805089B0B9809F15A -:10918000010703EB85010FAA01238068BFB201F03C -:1091900071FBBA4540F2D980384605F0F5FCDBF8A2 -:1091A000101005F045FD049905F03AFC054601460E -:1091B000404605F0E5FE002840F0C78009F10209AD -:1091C0001FFA89F307F180440293059B013C03EBEE -:1091D000840400260FE005F0D7FCDBF8101005F042 -:1091E00027FD049905F01CFC05464046294605F07C -:1091F000C7FE00BB4F46DBF840904046494605F0AD -:109200000DFC0146284605F009FC0F9905F010FDFC -:10921000494605F0C1FD014654F8040F05F0FEFB78 -:109220007B1C1FFA83F9029BCA45206003EB0600F2 -:1092300006F10106CFD8BBF80A40544500F08B80F8 -:10924000BDF81850284605F09FFCDBF8101005F01B -:10925000EFFC049905F0E4FB01460646404605F0A4 -:10926000DDFB0C99814605F081FE002844D148467B -:109270004FF0725105F07AFE4FF00102002843D002 -:10928000059BD2B253F825900F9B002A3ED0194679 -:10929000484605F0C3FBD146059B43F825009BF9E2 -:1092A000380005F071FC631E9D420746DBF84080E4 -:1092B00046D0DBF81010304605F0B2FB394605F019 -:1092C000ADFB414605F068FD05F09EFE83B20A93B2 -:1092D000099B0A985D02C5F10305054405F054FC9D -:1092E000414605F0A5FC394605F09AFB069BADB258 -:1092F00001338046069321E748461F4905F054FE96 -:109300004FF001020028BBD10246B9E7DBF840A0CC -:1093100041465046029305F083FB314605F07EFB43 -:10932000029B194605F084FC514605F035FD0146C7 -:10933000484605F073FB059BB94643F82500AEE7A8 -:109340000A9B01339BB20A93C2E7BBF80A404F461F -:1093500054457FF475AFCDF830A02DE40C942BE488 -:10936000002147E500210D46EFE500BFA09B01006D -:1093700080610100B49B0100000080BCF0B590F852 -:10938000CA34C1B0013B032B32D8DFE803F02E2BE7 -:10939000280200F54A77054616490068FAF7B8F83A -:1093A0000024154E95F820302341DB070DD557F8E2 -:1093B000240004F08FFF02460B466846314606F053 -:1093C00011FE69462868FAF7A3F80134082CE9D1A0 -:1093D00028680A49FAF79CF8002041B0F0BD00F572 -:1093E0004277D8E700F53A77D5E700F53277D2E74C -:1093F0000120F2E7809A0100889A01008061010053 -:109400002DE9F04FC3698DB073B193F82E201AB9CE -:1094100000200DB0BDE8F08F002283F82E20FEF76B -:109420001BFB0DB0BDE8F08F83460068FAF78CF99E -:10943000002862D19BF8D144002CE9D10BA9DBF8BC -:109440000400F9F799FE00285ED19BF8D400D8B14A -:1094500023462246BBF8D6500BEB020191F8DA10F6 -:1094600045FA02F212F0010F03F1010304EB41028D -:109470005BB20ABF6418D4B2E4B283421A46EBDB93 -:10948000BDF82C30A342C3D30BF1E801DBF8040094 -:10949000F9F70CFFC0BB04469BF8D98000260BF1FE -:1094A00024050BF1440705E04BF82360AF4204F1BB -:1094B000010435D055F8049B04EB840399F800208F -:1094C00008EB43035233002AEED0484606F0AAFFC9 -:1094D00004EB840208EB42020138523209EB00032C -:1094E0000BEB82020BA958460B93FAF79DFB002861 -:1094F00040F0E7809BF8D980D8E7DBF80000C2494C -:10950000FAF706F8012084E7C049DBF80000F9F714 -:10951000FFFFDBF80000BE49F9F7FAFF012078E70A -:1095200008F10103DBB2092B8BF8D93040F28A80B5 -:109530000BF52A730BF522790BF5A474CDF800B066 -:109540009B4659F8048B5FFA88F0411EC9B24BB2B2 -:10955000002BD9F81C5011DD9B002A1F861E1A44CF -:10956000F6B22B44A2EB860253F8046C43F804696C -:109570009A42F9D1C0F10100084443B200224FEAF7 -:10958000830A45F8232005EB0A0704F1280654F85E -:10959000041B104605F044FAA64202463860F6D194 -:1095A0009C4905F0F9FB45F80A00B8F1000F47D0D7 -:1095B0000026002733463846013655F8231076B288 -:1095C00005F02EFAB0453346F6D80746404605F07A -:1095D000D7FA0146384605F0DFFBCB45C9F83C0019 -:1095E000AFD10023DDF800B000270BF1B4048BF8F5 -:1095F000D9300BF2D2450BF1D4084FF07E5908E078 -:10960000ABB905F0C9FBC4F83002A04505F101056E -:109610005DD054F8046B3946304605F09DFC0028B7 -:10962000F3D12B783146012BD4F81002E8D105F0A4 -:10963000B3FB0146484605F0F1F9C4F83002E4E70F -:109640000027C3E70024DBF8CC34002B3FF4E0AE66 -:109650005846DBF86850FAF7E7FE58BB9BF8D02471 -:10966000DBF8CC342AB19BF8CA2412B9013BCBF801 -:10967000CC34002B3FF4CCAE002C3FF4C9AE2946CD -:10968000654805F089FB05F0BFFCDBF864308342D8 -:10969000FFF4BEAE5846FFF771FE58B99BF8D034C0 -:1096A00023B1DBF8CC34013BCBF8CC340023CBF82E -:1096B0006430AEE6DBF800005849F9F729FF0120D5 -:1096C000A7E65749DBF80000F9F722FF21E70BF581 -:1096D00042730BF53A7ACDF820B09B4656465AF8BD -:1096E000047B384604F0F6FD04460D463846D6F8AD -:1096F000801005F09DFA316E05F092F904F0EAFD54 -:109700000646DAF89C000F4604F0E4FD2246804647 -:1097100089462B462046294604F034FE02460B4675 -:109720004046494604F02EFE02460B463046394676 -:1097300004F072FCCDE90601DAF8BC0004F0CAFDC1 -:109740000022384BCDE900012046294602F0D2FA2A -:109750000446DAF8DC000D4604F0BCFDCDE9020158 -:109760005AF8040C04F0B6FD00222F4B02F0C2FAA6 -:109770000646DAF8FC000F4604F0ACFDCDE9040122 -:109780005AF8040C04F0A6FD0022284B02F0B2FAAD -:1097900022462B4680468946DDE9000104F0F2FDB1 -:1097A000DDE9062304F038FC324604460D46DDE9C7 -:1097B00002013B4604F0E6FD02460B4620462946E0 -:1097C00004F02AFC424604460D46DDE904014B46FE -:1097D00004F0D8FD02460B462046294604F01CFC46 -:1097E00005F0C8F8D345CAF81C007FF477AFDDF860 -:1097F00020B00BF18C020BF1AC030BF16C0ACDE93C -:10980000082B9B462CE000BFB8990100CC990100C1 -:10981000049A0100000020410000A040189A0100B5 -:10982000E8990100000008400000104000001440CA -:1098300044F001048BF80040DAF80010284605F0E7 -:10984000B3FB0AF1040A44F00203002800F0A180EF -:109850008BF80030089B0BF1010B534500F0A08002 -:10986000DAF89C62CDF800A0304604F033FD0446DF -:109870000D463046DAF8BC1305F0DAF9DAF89C1335 -:1098800005F0CEF804F026FD0646DAF8DC030F46B4 -:1098900004F020FD2246804689462B462046294674 -:1098A00004F070FD02460B464046494604F06AFD4E -:1098B00002460B463046394604F0AEFBCDE90601C0 -:1098C000DAF8FC0304F006FD00223C4BCDE9000170 -:1098D0002046294602F00EFA0446DAF81C040D462A -:1098E00004F0F8FCCDE90201DAF89C0204F0F2FC85 -:1098F0000022334B02F0FEF98046DAF83C04894638 -:1099000004F0E8FC0646DAF89C020F4604F0E2FC9C -:1099100000222C4B02F0EEF922462B46CDE9040141 -:10992000DDE9000104F02EFDDDE9062304F074FBFF -:10993000424604460D46DDE902014B4604F022FD95 -:1099400002460B462046294604F066FBDDE9042367 -:1099500004460D463046394604F014FD02460B46D7 -:109960002046294604F058FB05F004F8DAF82010E8 -:10997000CAF8BC02054605F0F9FA9BF80040002839 -:109980007FF456AFE20744BF04F0FE048BF80040BA -:1099900052E7A30744BF24F002048BF8004059E7C4 -:1099A000DDF824B09BF8CA44002C3FF44CAE0124EF -:1099B000DBF864302344CBF8643044E60000084010 -:1099C000000010400000144000232DE9F04F4FF03C -:1099D000030B4FF0240A4FF001094FF00F084FF02E -:1099E0000D0E4FF0090C21274FF4E1364FF4783576 -:1099F0004FF47A344FF4763182681370537082F8E2 -:109A000002B04361437703644362C3624363C36349 -:109A1000037080F84430C0E912330A4B80F810A07C -:109A2000C36080F81C9080F8208080F828E080F8DF -:109A300030C080F838704660C0E914548165BDE8D4 -:109A4000F08F00BF801A060030B583B004460DF1D8 -:109A5000060240680A21F9F7F3F9A0B9BDF806300B -:109A60006FEA43436FEA5343ADF8063003E0BDF9B4 -:109A70000630002B0BDA0DF106020A216068F9F7B7 -:109A8000DFF90028F3D00125284603B030BD0DF1E1 -:109A900006020B216068F9F7D3F905460028F2D1D8 -:109AA000BDF806300B2123F480639BB21A46606830 -:109AB000ADF80630F9F7DAF920680249F9F728FD20 -:109AC000E2E700BF605501002DE9F04FADB0029014 -:109AD000894601F0C1FA20B1012420462DB0BDE82D -:109AE000F08F044640F6E841012005F033FC0646BD -:109AF0000028F1D004234FF480754FF0FF3186F831 -:109B0000CA34D9F85830D9F85420D9F85000C6F8DA -:109B1000E43C06F2DC43C6F8E02C0393C6F8CC44E0 -:109B2000A6F8D054C6F8DC0C06F59B6306F6D842BE -:109B300043F8041F9342FBD106F1AC0806F144033D -:109B400006F1240400964FF0010B46464FF07C5A74 -:109B50004FF07E57002598460121084605F0FAFB94 -:109B6000002106229F4B44F8040B63649E4BC4F80B -:109B70001CA06366A04506F8011BC4F88C70C4F8ED -:109B80002053C4F84073C4F86053C4F88053C4F839 -:109B9000A053C4F8C053C4F8E053C4F80074C4F828 -:109BA0002054C4F84054C4F86054C4F88054C4F835 -:109BB000602286F825B4CFD10F22009E1F2086F8A0 -:109BC000D910B76686F82020042105F0C3FB0446AF -:109BD0003061002800F0DB808449854A854B0160B4 -:109BE000426083608449854A854BC160026143615C -:109BF0008449854A854B8161C26103628449854AF3 -:109C0000854B41628262C3628449854A854B016308 -:109C1000426383638449854A854BC163026443641C -:109C20008449854A854B8164C26403658449854AB9 -:109C3000854B41658265C3658449854A854B0166CC -:109C4000426683668449854A854BC1660267042162 -:109C50001F20636705F07EFB05467061002800F059 -:109C60009D808049804A814B0160426083608049C9 -:109C7000804A814BC160026143618049804A814BC7 -:109C80008161C26103628049804A814B4162826284 -:109C9000C3628049804A814B016342638363804988 -:109CA000804A814BC163026443648049804A814B8E -:109CB0008164C26403658049804A814B4165826545 -:109CC000C3658049804A814B01664266836680494C -:109CD000804A814BC166026701211F206B6705F036 -:109CE00039FBB061002856D040F60A727B4B828364 -:109CF00003607B4A03F17F43A3F57E4342608360A8 -:109D000002F11062774B02F20322C2600361764ACD -:109D100003F1FD1303F57C434261836149463046FC -:109D2000F9F706FC00282FD131693068F9F78EFD6C -:109D300071693068F9F78CFDB1693068F9F78AFD0F -:109D400031463068F9F788FD09F1480106F10C0049 -:109D500000F04CFF002814DB3368644C196807AA34 -:109D60000991F06804210893079401F0E3F80028B2 -:109D700004DBF06800F0B2FF002813DAF06801F0AD -:109D8000ABF83068F9F70AFC3046FAF72BFF30469B -:109D900005F092FBA0E6284605F08EFB204605F074 -:109DA0008BFBF4E70421F06800F052FF0028E5DBAC -:109DB00009F10C01301DF9F7FBFA20B14C4930686C -:109DC000F9F7A6FBDAE706F5996208217068F9F75A -:109DD00037F8002800F0908046493068F9F798FB82 -:109DE000CCE700BF0000C84100007041613A0000AC -:109DF000093B0000D53800008D3B00003D5A0000B3 -:109E000009390000A93E00002D6C0000F54F00004C -:109E10002D5B0000613F0000B9440000B13F00002D -:109E2000653900009D7800003D390000A56E0000F6 -:109E30005D450000ED450000A1640000156F0000C5 -:109E4000B55B000079580000A14600007D6100006C -:109E5000F93F00009D820000DD8300008186000044 -:109E6000B14C000050970100589701006097010025 -:109E700068970100709701007897010080970100B2 -:109E8000889701008C970100949701009C9701002E -:109E9000A4970100AC970100B8970100C497010096 -:109EA000CC970100D8970100E4970100F0970100DA -:109EB000FC97010008980100149801002098010007 -:109EC000289801003098010038980100409801005E -:109ED00048980100549801006098010005040605A7 -:109EE00006060503080B090909080807493600009A -:109EF000709801009098010032217068F9F752F8CB -:109F000000287FF43BAF03217068F9F745F800287B -:109F10007FF434AF05238DF86A308DF87C308DF8EE -:109F20008E308DF8A03047F27003032101244BF2EC -:109F300080024FF0040C4FF00F0E4FF0020B1D93F8 -:109F40004FF4405380460F4640F20915A2468DF863 -:109F50007B408DF86900ADF88600ADF8AA008DF859 -:109F60009F1086F8D4C0A6F8D6E0ADF888308DF8FA -:109F70008DB02692ADF8AC201AAC0A230222202024 -:109F80004FF00501E271E170607484F800A0277160 -:109F9000677184F806A0A772E77284F810A02246C1 -:109FA000637223725FFA88F17068F9F729F8A5F1F6 -:109FB000060B1FFA8BFB08F10108123400287FF40E -:109FC000DDAE0DF1160259467068F8F739FF00282A -:109FD0007FF4D4AEBDF81630594623F0C30343F0E6 -:109FE00082031A467068ADF81630F8F73FFFA5F106 -:109FF000050B1FFA8BFB00287FF4C0AE0DF1160293 -:10A0000059467068F8F71CFF00287FF4B7AEBDF81A -:10A010001630594643F420531A467068ADF816308E -:10A02000F8F724FF05F1020B1FFA8BFB00287FF4E1 -:10A03000A5AE0DF1160259467068F8F701FF002829 -:10A040007FF49CAE4FF47F7359461A467068ADF8A2 -:10A050001630F8F70BFF00287FF490AE0DF11602D2 -:10A0600029467068F8F7ECFE00287FF487AE4FF4BD -:10A07000087329461A467068ADF81630F8F7F6FEF0 -:10A080002035ADB200287FF479AEB8F1040F7FF42B -:10A0900074AFAD493068F9F73BFA40F2C223B6F825 -:10A0A000C8240DF1480A9A424BD0524622217068CA -:10A0B000F8F7C6FE00287FF461AEBDF848302221D3 -:10A0C00043F001031A467068ADF84830F8F7CEFE49 -:10A0D00000287FF453AE524626217068F8F7B0FE90 -:10A0E00000287FF44BAEBDF8482026217068F8F7B1 -:10A0F000BDFE034600287FF441AE0F2251460AA858 -:10A1000013938DF8482000F0C3FB014600287FF42C -:10A1100035AE0A9800F014FC834600287FF42EAE7A -:10A12000012000F0E3FA5C460DF11A020C21706880 -:10A130000A9DF8F785FEC0B184493068F9F7E8F95F -:10A140001CE652460B217068F8F77AFE00287FF46F -:10A1500015AEBDF848300B2143F480631A46706891 -:10A16000ADF84830F8F782FE9FE7BDF81A300C21B1 -:10A1700043F400431A467068ADF81A30F8F776FEDB -:10A180000028D9D10121284600F006FC0746002806 -:10A19000D2D1012000F0AAFA3946284600F0FCFB93 -:10A1A0000028C9D10DF11A020C217068F8F748FE99 -:10A1B0000028C1D1BDF81A300C2143F400431A46DF -:10A1C0007068ADF81A30F8F751FE0028B4D10A20B3 -:10A1D00000F08CFA0121284600F0DEFB074600283B -:10A1E000AAD1012000F082FA3946284600F0D4FBBB -:10A1F0000028A1D10DF11A020C217068F8F720FE99 -:10A20000002899D1BDF91A30002B95DB0DF11A0207 -:10A2100012217068F8F714FE00288DD1BDF81A508D -:10A220000DF11A02112170682D04F8F709FE0028BB -:10A2300082D1BDF81AB04BEA050B5C4501D9044642 -:10A2400072E706AA0B217068ABEB0404F8F7F8FD7F -:10A2500038BB204604F01CF837A3D3E90023BDF82F -:10A260001850CDE90001C5F3090440F2FF3704F0AE -:10A27000FBFAD8B10134BC4224D0C4F3090405F47C -:10A280007C4323431A460B217068ADF81830F8F769 -:10A29000EDFD00283FF447AF2D493068F9F738F954 -:10A2A0006CE52C493068F9F733F967E5DDE9000121 -:10A2B00023A3D3E9002304F0F5FA70B1013CA4B262 -:10A2C000002CDAD10A9800F00BFB00283FF456ADC1 -:10A2D00021493068F9F71CF950E50A9800F000FBB5 -:10A2E0000028F5D13046FFF7AFFB00287FF446ADDC -:10A2F000054606F5227757F8040B042105F02AF8E5 -:10A300006CB2F861013550B1082DF4D109F1440166 -:10A3100006F1080000F05CFA0546F8B1082406F5DD -:10A320002A7505EB8404A5423FF428AD55F8040BCB -:10A3300005F0C2F8F7E700BF00000000006FC3405F -:10A340000000000000A1C340A4980100C4980100CF -:10A35000E8980100D4980100FC9801005746B34CDE -:10A360000DF1280C0FCCACE80F0094E80F0010346E -:10A370008CE80F000FCC0FC794E80F0087E80F00A0 -:10A38000D6F8DC1C0123039AB06800F073FAD6F803 -:10A39000DC34013B033340F21A814FF083724FF0FB -:10A3A000A3734FF4782748204FF46021C6F80025A6 -:10A3B000C6F818359E4A9F4BC6F8E024C6F8E83424 -:10A3C0009D4A9E4BC6F8EC24C6F8F4349C4A9D4B3B -:10A3D000C6F8F824C6F8FC349B4A9C4BC6F8042502 -:10A3E000C6F808359A4A9B4BC6F80C25C6F81035B6 -:10A3F00002F5FC12984B8032C6F81425C6F81C35BD -:10A40000964A03F58623B033C6F82025C6F82435CE -:10A41000934A944BC6F82825C6F82C3502F58002DD -:10A4200003F580032C467025C6F83025C6F8343570 -:10A430008D4A8E4BC6F83825C6F83C3502F58002A9 -:10A4400003F58003C6F84025C6F84435884A894B91 -:10A45000C6F84825C6F84C3502F5800203F580039E -:10A46000C6F85025C6F85435834A844BC6F858259B -:10A47000C6F8DC7402F58002C6F8E404C6F8F014ED -:10A48000C6F85C3503F58003C6F86025C6F8643568 -:10A490007B4A7C4BC6F86825C6F86C3502F580020D -:10A4A00003F58003C6F87025C6F87435A2F5771257 -:10A4B000A3F57713A2F57C52A3F57C53C6F8782553 -:10A4C000C6F87C3502F5800203F58003C6F88025C6 -:10A4D000C6F884356C4A6D4BC6F88825C6F88C35AD -:10A4E00002F5800203F58003C6F89025C6F894357E -:10A4F000674A684BC6F89825C6F89C3502F5800275 -:10A5000003F58003C6F8A025C6F8A435A2F5781295 -:10A51000A3F57813A2F25232A3F25233C6F8A8255B -:10A52000C6F8AC3502F5800203F58003C6F8B02505 -:10A53000C6F8B435584A594BC6F8B825C6F8BC35E4 -:10A5400002F5800203F58003C6F8C025C6F8C435BD -:10A55000534A544BC6F8C825C6F8CC3502F58002DC -:10A5600003F58003C6F8D025C6F8D4350AABE2B2AD -:10A5700053F824103046F9F771F905FB04635AF8D3 -:10A5800024200134082CC3F80C29EFD14FF07E525F -:10A59000012300200F254449C6F8D42CC6F8D03C2E -:10A5A000424A434BC6F83409C6F81C19C6F820299C -:10A5B000C6F83839C6F8D85C4FF40073039AD6F859 -:10A5C000DC1CB06800F032F900287FF4A8AE3949ED -:10A5D0003046FCF767FC014600287FF49FAE30460A -:10A5E000FBF75EFF00287FF499AE33493046FCF755 -:10A5F00059FC014600287FF491AE3046FBF750FF2E -:10A60000044600287FF48AAE4FF0FF31039B06F624 -:10A61000DC4243F8041B9A42FBD128493068F8F722 -:10A6200077FF029B1E60FFF758BA00BF5C54010021 -:10A6300006000F000F000100204E0D000003100067 -:10A640000500020170700501500022010000250183 -:10A650003000260100054201005062010000650142 -:10A66000DA400101DA4021010040000100402001F0 -:10A670000010030100102301922A0401922A2401F0 -:10A68000200107012001270103000A0103002A011C -:10A69000FC030B01FC032B0100800F0100802F0144 -:10A6A00004001001040030014260E5BC9A29FC441A -:10A6B000E3369A3F10990100709A0100105B010087 -:10A6C00030B5044683B00D46002100F0E9FF204676 -:10A6D00000F052FF01A9204600F0DCFF019BAB42D5 -:10A6E000F8D3204600F0AEFF03B030BD30B50C4CBF -:10A6F00085B0236805462BB129461846FFF7E0FFD1 -:10A7000005B030BD4FF47A7269462046ADF800308E -:10A71000CDE9012300F098FE0028F1D12368EBE792 -:10A720009814042011F0070F47D113F0010F44D102 -:10A730002DE9F041C1F30A0C4FEA83080CEB080441 -:10A74000B4F5006FADF6180D32D806AD2C4621F4E5 -:10A75000FF6E2EF0070EAEEB0506A75944F8047BFA -:10A760000DF61807BC42F8D163B14FEA9C04131FE1 -:10A7700005EB8404221F984453F8044F434542F8E4 -:10A78000044FF9D101224FF4006304468DF81420E0 -:10A7900000686A46CDF808E003950493F5F77EFF5C -:10A7A00030B9009A01AB11462068F5F7F5FE30B1DB -:10A7B00001200DF6180DBDE8F0810120704701AAB7 -:10A7C00002A92068F5F72CFF003018BF0120F0E740 -:10A7D000F8B507460D460120082104F0BBFD18B36B -:10A7E0002E78044606700821012004F0B3FD0546CA -:10A7F000A8B160603021012004F0ACFD686058B160 -:10A8000001462B4630463022F5F754FE08B93C602D -:10A81000F8BD686804F050FE284604F04DFE20465E -:10A8200004F04AFE0120F8BD0120F8BD2DE9F047F3 -:10A83000984682460D4691461F46002601E0B045E7 -:10A8400015D9C5F30A04C4F50064A408BC4228BFA6 -:10A850003C4609EB860229462346DAF80400FFF756 -:10A8600061FF264425443F1B0028E8D00120BDE8B5 -:10A87000F08700BF53B1002010B4891A545801303A -:10A88000834242F8044BF9D110BC7047704700BFB7 -:10A8900090B189B170B504460D460120082104F03D -:10A8A00059FD206070B10C4E2B78357803705DB186 -:10A8B00001350020357070BD01207047206804F01C -:10A8C000FBFD2560012070BD10210448F5F7B8FF9D -:10A8D0000028F3D13578EBE7AC1404209C14042055 -:10A8E00068B138B5084D2C780CB9012038BD013C51 -:10A8F000E4B204F0E1FD2C701CB1002038BD012051 -:10A900007047F5F7B3FF38BDAC14042098B108B513 -:10A910000A4B1B780BB9012008BD012100780A46BB -:10A9200000F00F03994089B20009F6F711F80030E2 -:10A9300018BF012008BD0120704700BFAC140420DF -:10A9400010B1144B1B780BB90120704770B501256D -:10A95000044600780E4600F00F0105FA01F12A4680 -:10A96000000989B2F5F7DCFF78B92078012E00F0F4 -:10A970000F0105FA01F5A9B24FEA101007D0F6F75A -:10A980001FF8003018BF012070BD012070BDF6F720 -:10A990000FF8F6E7AC140420E0B138B5154B1B787E -:10A9A000B3B101250B460446007800F00F0105FA0B -:10A9B00001F1000989B27BB1022B05D0F5F7F8FF50 -:10A9C000003018BF012038BD0022F5F7A9FF30B1D3 -:10A9D000012038BD01207047F5F7F2FFF0E723783A -:10A9E000024603F00F0105FA01F189B21809F5F7E3 -:10A9F000AFFFE5E7AC14042070B5104C0368226883 -:10AA00000E4693420ED10E4C317823788B4207D0FC -:10AA10000C4B1868F6F7AEF970B93378237070BD37 -:10AA2000002070BD074A054619461068F6F772F90E -:10AA300010B92B682360E6E7012070BDE8140420FC -:10AA4000E4140420E0140420D0B1C9B12DE9F84386 -:10AA500004460D4601200C2104F07CFC03462060D6 -:10AA6000A0B11C4F3E68A6B1002108462A680136F5 -:10AA70001A602A793E601A7123689960BDE8F883EC -:10AA800001207047206804F017FD26600120BDE812 -:10AA9000F883DFF84880302243460F493046F6F706 -:10AAA000D1F881460028EDD101223021F5F768FF69 -:10AAB00010B923683E68D7E7206804F0FDFCC4F8AD -:10AAC0000090D8F80000F6F7F3F8C8F800900120DD -:10AAD000D4E700BFEC140420B0140420E0140420D8 -:10AAE000A8B10C4B70B51D680446013D1D6025B131 -:10AAF000204604F0E1FC002070BD074E3068F6F7F8 -:10AB0000D7F82046356004F0D7FC002070BD012046 -:10AB1000704700BFEC140420E0140420F0B12DE9CC -:10AB2000F0410E4686B0011D044698461746FFF7D1 -:10AB300063FF054670B9164A2379106883B93A460F -:10AB4000314601ABF6F722F9003018BF012006B0FC -:10AB5000BDE8F081012006B0BDE8F081012070471A -:10AB600018F1FF3318BF012301AA02A98DF817308D -:10AB70000295ADF80C500496ADF814708DF816508F -:10AB8000F6F7A0F8003018BF012006B0BDE8F0814C -:10AB9000E014042030B3F0B50E4687B0011D1C460A -:10ABA0001746FFF729FF014610B1012007B0F0BD9D -:10ABB00014F1FF3318BF012301240B4A0291ADF8B1 -:10ABC0000C10106802A901AA8DF817300496ADF890 -:10ABD00014708DF81640F6F775F8003018BF012094 -:10ABE00007B0F0BD01207047E014042040B139B136 -:10ABF0002DE9F843154F3C6824B10120BDE8F883E6 -:10AC00000120704705460E460120082104F0A2FBF2 -:10AC1000804628600028F0D05C21012004F09AFBD7 -:10AC2000814660B1336828303021C8F80030C8F858 -:10AC30000490F7F72FFF012320463B60DEE74046F4 -:10AC400004F03AFCC5F80090D7E700BFF0140420E8 -:10AC500018B338B54568F5B11D4B1B68DBB1072942 -:10AC600019D86B1893F82030ABB103290C461BD9C7 -:10AC7000042914D005291FD0062914BF4FF480627F -:10AC80004FF40072134B1A600121AB6DA1400B43CE -:10AC9000AB65002038BD012038BD012070474FF45E -:10ACA00080420C4B1A60EFE70B4B15F8211013F89C -:10ACB0002400F7F707FFE7E76B69002BE4D0D3E93F -:10ACC0000021D36801221868F6F7ECFADCE700BF30 -:10ACD000F014042000E100E0989E0100D8B138B5DE -:10ACE0004568B5B1234B1B689BB1AB6DDC073BD40A -:10ACF000990734D45A072DD41C0726D40446D80605 -:10AD00001DD4990615D45A060DD413F0800004D131 -:10AD100038BD012038BD0120704720460721FFF7CC -:10AD200097FF002038BD06212046FFF791FFAB6D4D -:10AD3000EBE705212046FFF78BFFAB6DE3E704212E -:10AD40002046FFF785FFAB6DDBE710220A4B1A6048 -:10AD5000AB6DD3E70822084B1A60AB6DCCE7042239 -:10AD6000054B1A60AB6DC5E70222034B1A60AB6D51 -:10AD7000BEE700BFF014042000E100E028B338B5BE -:10AD8000456805B31F4B1B68EBB107291BD8032986 -:10AD90000C461CD904292BD005291ED0062914BF26 -:10ADA0004FF480624FF40072174BC3F88020BFF35A -:10ADB0004F8FBFF36F8F0121AB6DA14023EA0103D9 -:10ADC000AB65002038BD012038BD012070470F4B16 -:10ADD00013F82100F7F7A4FEEDE76B69002BEAD02A -:10ADE000D3E90021D36800221868F6F75BFAE2E79E -:10ADF0004FF48042044BC3F88020BFF34F8FBFF362 -:10AE00006F8FD8E7F014042000E100E0989E010065 -:10AE100090B1F8B546686EB12D4B1B6853B1072948 -:10AE200008D80B1F04460D46032B27D8DFE803F094 -:10AE30001F062E2E0120F8BD01207047736943B113 -:10AE40001B68002BF6D00022DB6811461868F6F765 -:10AE5000A9FA0023721946F82530204606F8253055 -:10AE6000294682F82030BDE8F840FFF787BF3369F4 -:10AE7000002BEED00022C3E90222EAE70022154BA4 -:10AE8000114613F82500F7F779FEE2E756F821306E -:10AE900006290CBF09270A27002BDAD01B68002BD4 -:10AEA000C8D00022FFB211463846F5F791FD0022C6 -:10AEB00039461046F5F7F4FC394600220120F5F733 -:10AEC000EFFC394600220220F5F7EAFCC1E700BF9B -:10AED000F0140420989E010038B338B5436813B3CA -:10AEE000134D2B68FBB104460020F7F719FE012033 -:10AEF000F7F716FE0220F7F713FE0320F7F710FE10 -:10AF0000F7F7D8FD04212046FFF782FF05212046F0 -:10AF1000FFF77EFF606804F0CFFA204604F0CCFA19 -:10AF20000020286038BD012038BD0120704700BFD7 -:10AF3000F0140420C8B12DE9F043456883B085B111 -:10AF4000434B1B686BB107290C460AD81346002AED -:10AF50007AD00A1F9968032A21D8DFE802F018087E -:10AF60002A2A012003B0BDE8F083012070470A6857 -:10AF70006961002AF5D0D1685A6808681968F6F73F -:10AF800011FA01232919002081F82030EAE729610C -:10AF90000029E6D0D3E90023C1E90223F1E72D4AD5 -:10AFA00005F8241012F82400D3E90012F7F7E6FDA3 -:10AFB000E7E7D1F80080062C45F8241014BF0A27D3 -:10AFC0000927B8F1000FCCD01968FFB219B15A683F -:10AFD0003846F5F7FDFC4FF0010998F800600DF1D7 -:10AFE0000602360939463046F5F770FC98F800300D -:10AFF000BDF8062003F00F0309FA03F313439BB2D5 -:10B000001A4639463046ADF80630F5F749FC0DF1E1 -:10B0100006013046F5F77AFC98F8002055F8241020 -:10B02000BDF8063002F00F02097909FA02F923EAA5 -:10B03000090301FA02F213439BB230461946ADF8F8 -:10B040000630F5F75BFC9CE7FFF7E2FE8AE700BFFE -:10B05000F0140420989E010008B5F5F7A3FF0346FD -:10B0600008B1184608BD01210846F6F701F8034665 -:10B070000028F6D10121F5F7FBFF0346184608BD6D -:10B0800078B171B12DE9F84FCF683FB13B78022B11 -:10B0900004D891F80480B8F1030F04D90120BDE869 -:10B0A000F88F0120704706460C460120102104F05D -:10B0B00051F981460028F1D00C21012004F04AF911 -:10B0C0008246002875D00125386805FA08F8CAF8C4 -:10B0D0000000397989F8048097F800B0DFF8F08033 -:10B0E0002268637958F82B408AF80410C9F80CA03C -:10B0F000C9F8002089F8053044B1236B00200133E2 -:10B100002363CAF80840C6F80090C8E73C212846E7 -:10B1100004F020F90446002853D0584604F12C03CB -:10B120002C222146F6F782FB002847D1D9F80010DF -:10B13000E06AD9F80C50F6F703FC00283ED104F180 -:10B140003401E06AF6F71EFC002837D1636B99F8EA -:10B150000410C9F80030E06AF6F73CFC99F80430B6 -:10B1600099F8051084F8383001F00101E06AF6F72B -:10B1700035FC99F80510E06AC1F34001F6F71AFCB6 -:10B18000697899F80530003118BF012184F8393009 -:10B19000E06AF6F7B3FB6B78A978E06A84F83A3096 -:10B1A000F6F79CFB3B78AA7848F8234084F83B20CC -:10B1B000A3E7484604F080F9012070E7204604F038 -:10B1C0007BF9484604F078F9504604F075F965E7D4 -:10B1D000F4140420B8B170B5C56895B1AB6883B1FB -:10B1E0001A6B0446012A07D0284604F065F9204668 -:10B1F00004F062F9002070BDD86AF6F751FB0646EC -:10B2000018B1012070BD01207047A86804F054F9FE -:10B21000024B2A7843F82260E6E700BFF4140420CA -:10B2200000287DD02DE9F041C56884B0AE68804625 -:10B23000002E71D00F46736B01681446994204D0FA -:10B24000F06AF6F77DFB002866D198F8041096F8AE -:10B2500038308B4206D0F06AF6F7BCFB98F8043021 -:10B2600086F8383098F8051096F839308B420FD0B0 -:10B2700001F00101F06AF6F7B1FB98F80510F06AE9 -:10B28000C1F34001F6F796FB98F8053086F839309F -:10B29000697896F83A308B4208D0003118BF012106 -:10B2A000F06AF6F72BFB6B7886F83A30A97896F8B7 -:10B2B0003B308B4205D0F06AF6F710FBAB7886F88E -:10B2C0003B304CB340F20113ADF80C302B79EA78E7 -:10B2D0008DF80E308DF80F2007E0F6F78DFED8B907 -:10B2E000A41BA4B23744ECB12B79264623B1B4F5A4 -:10B2F000006F38BF4FF400666B78AA68012BADF879 -:10B3000008600097ADF80A600197D06A6946E4D1F9 -:10B31000F6F714FD0028E3D0012004B0BDE8F08169 -:10B32000012070472046F8E706494DF804BDD1E9F1 -:10B3300000BC1BF101024CF10003C1E900235DF8E0 -:10B3400004BB7047001504202DE9F043D0F80C80B1 -:10B3500083B098F808300BB30D464168364BB1F511 -:10B360007A7F0446D3E900671ED8D8E90023B61ACD -:10B3700067EB0307B946A6FB016701FB09774FF4AA -:10B380007A7200233046394603F05EFE2860A368D7 -:10B3900018442860002003B0BDE8F08383680020D3 -:10B3A0000B6003B0BDE8F083244B0DF10601187863 -:10B3B000F6F762FFD8E900014FEA471C7201921BC1 -:10B3C0004CEAD66363EB07034FEA830C4FEA820E25 -:10B3D0004CEA927C1EEB06024CEB0703DF00D60022 -:10B3E00047EA527732463B460027BDF80660DFF851 -:10B3F00054C0C6F5CB461036ACFB06C6F608B6B24E -:10B4000012EB060843EB0709894508BF804503D2C4 -:10B4100018F57A7849F100096668B8EB000269EB23 -:10B420000103A2FB0601064A06FB0311002303F0F9 -:10B430000BFE2860ABE700BF0015042010150420A8 -:10B4400040420F004FECC44E58B151B12DE9F04FBE -:10B450002F4B4E6885B09E4205D9012005B0BDE84E -:10B46000F08F0120704705460C460120102103F0A3 -:10B4700071FF834628600028EFD01021012003F0DF -:10B4800069FF814600283CD0DFF890A0DAF8007010 -:10B4900087B1DFF88C80CBF80C902B68A268D8F8C5 -:10B4A00000100137ABF800100020CAF80070C3E9A3 -:10B4B0000162D3E72688DFF8688001233A46F0B2BC -:10B4C0001449C8F80060F6F72DFE0123124A8DF8E2 -:10B4D00004708DF806708DF805308DF807308DF802 -:10B4E0000C308DF80D30029201A998F80000F6F7A3 -:10B4F0006BFE0628F8D0DAF80070D5F800B0666860 -:10B50000C9E7584603F0D8FFC5F80090A5E700BF8B -:10B5100040420F0029B30000906590650C1504208F -:10B5200010150420F0B138B50446C06803F0C4FF1C -:10B53000204603F0C1FF0C4A1368013B13607BB93E -:10B540000A4C00212078F6F773FE0628F9D0002473 -:10B5500000250020064A074BC2E90045186038BDA7 -:10B56000002038BD012070470C1504201015042060 -:10B57000001504200815042010B32DE9F04BC56810 -:10B5800082B02B7AC3B92B4E04463368D3B1002264 -:10B590006368ADF80620B3F57A7F1BD8264BD3E954 -:10B5A000002301203168287201440020C5E90023EE -:10B5B000316002B0BDE8F08B012002B0BDE8F08B35 -:10B5C000012070471D4F01213878F6F731FE06281B -:10B5D000F9D0DCE7194B0DF106011878F6F74CFEAF -:10B5E000154BBDF80610D3E900894FEA49104FEA20 -:10B5F0004812B2EB080240EAD8634FEA820463EBD8 -:10B600000903980014EB08031F4640EA927040EBD0 -:10B610000904E00040EA57708046C1F5CB41084874 -:10B620001031A0FB0131FC00C908621848F1000389 -:10B63000B7E700BF081504200015042010150420EA -:10B640004FECC44EB8B170B5C56882B02A7A0446D2 -:10B6500012B9012002B070BD0C4E01A9FFF774FEB3 -:10B660003368019A012BA26007D00020013B3360B0 -:10B67000287202B070BD01207047054C002120786F -:10B68000F6F7D6FD0628F9D03368EEE70815042052 -:10B690001015042010B109B1FFF756BE0120704704 -:10B6A000D8B12DE9F04BC56882B095B1002243684E -:10B6B0000446B3F57A7F0E46ADF806200FD81E4B30 -:10B6C000D3E900230020C5E90023A66002B0BDE84D -:10B6D000F08B012002B0BDE8F08B01207047174BC2 -:10B6E0000DF106011878F6F7C7FD134BBDF80610EB -:10B6F000D3E900894FEA49104FEA4812B2EB080239 -:10B7000040EAD86363EB09039800970040EA92701F -:10B7100017EB080240EB0903D80040EA527081465B -:10B72000C1F5CB4106481031A0FB0131D700C90853 -:10B730007A1849F10003C5E700150420101504200C -:10B740004FECC44E70B50469E1B101290BD1A26977 -:10B75000002A37D183682274002B32D0BDE87040B4 -:10B76000C0681146184713460021A58821772B434E -:10B770008568A380217425B32B46BDE87040C0685E -:10B7800002211847626A3AB983682277CBB1BDE8D3 -:10B790007040C06801211847B2F5806F154628BF78 -:10B7A0004FF48065042AA2EB050363622A4694BF26 -:10B7B00000230123216A2068F7F70AF8236A2B4443 -:10B7C000236270BDB2F5806F154628BF4FF48065C7 -:10B7D000042AA2EB0503A3612A4694BF0023012398 -:10B7E00061692068F6F7DAFF63692B44636170BD15 -:10B7F00038B504690546D4E90203C01A03F05CFEBB -:10B8000000232869C4E9023303F056FE2846BDE848 -:10B81000384003F051BE00BF68B32DE9F0430F4636 -:10B8200085B021B3144612B3D0F8108098F8106098 -:10B83000002EFDD10DF10C09B4F5806F254628BF0F -:10B840004FF48065042CD8F8000007EB06012A4667 -:10B85000CDF8009094BF00230123F6F7D3FF2E44C8 -:10B8600058B9641BE8D1204605B0BDE8F08301203B -:10B8700005B0BDE8F083012070470120B8F804202E -:10B88000039B1343A8F8043005B0BDE8F08300BF64 -:10B8900040B170B50D4619B112B10069047F1CB1F9 -:10B8A000012070BD01207047B2F5806F134628BF9C -:10B8B0004FF4806201261544042B0562A3EB0205B8 -:10B8C0004562067794BF002301230068F6F780FFE6 -:10B8D000204670BD70B169B18B685BB10B784BB914 -:10B8E0002DE9F043484B87B01F682FB1012007B006 -:10B8F000BDE8F08301207047012506460C46284626 -:10B9000014211D6003F026FD8146002867D0282100 -:10B91000284603F01FFD8046002863D0C9F81000B8 -:10B92000B321284603F016FD0346C8F80800002896 -:10B930005FD0C6F80090C21C616822F00302207834 -:10B94000D31AC8E90223C9F8041089F80000B0230B -:10B95000CDF800800221A568F6F75CFEC0B9AB788F -:10B960006A782978D8F80000F6F76EFF80B9274D7D -:10B970004FF416532A46616801E052F80C3F8B429F -:10B980000DD001370A2FF8D105A90020F5F750FB9B -:10B990003068FFF72DFF002301203360A7E705A9DA -:10B9A0000020F5F745FB1A4B059A9A42F0D107EBB8 -:10B9B000470705EB8705AC7AD8F80000AB88009400 -:10B9C000AA792989F6F74EFF04460028E0D13268AB -:10B9D000D8F800000F49F6F731FF204687E73060BE -:10B9E000284684E7484603F067FDC6F800802846ED -:10B9F0007DE70390404603F05FFD484603F05CFDA1 -:10BA0000039B2846336072E714150420B89E01009A -:10BA100080BA8C0145B7000090B138B503696BB1AD -:10BA2000044600250178074A186842F82150F6F7C5 -:10BA3000AFFD2046FFF7DCFE284638BD012038BDAB -:10BA40000120704714150420034648B110F001008E -:10BA500002D007E0DA0706D45B0800F10100F9D153 -:10BA60002020704700207047034608405BB113F068 -:10BA7000010202D008E0D90707D45B0802F10102F5 -:10BA8000F9D10020704718467047D040704700BF7A -:10BA900000F000B84FF4801203490448044B0860DA -:10BAA00000201A60704700BF0000024015055000DA -:10BAB0004000024000000000C1F30A522DE9F843A3 -:10BAC000A2F2FF36132E0B460D4604468846074663 -:10BAD00021DC002E4CDB3A4A42FA06F901EA09025F -:10BAE00002431DD034A3D3E9002302F095FA0022CB -:10BAF000002302F0D7FE48B1002D04DD4FF480137F -:10BB000043FA06F6B044002728EA09053C462946D0 -:10BB10002046BDE8F883332E06DDB6F5806F3AD0B7 -:10BB200019462046BDE8F8834FF0FF39A2F21342D0 -:10BB300029FA02F919EA000FF2D01FA3D3E9002372 -:10BB400002F06AFA0022002302F0ACFE0028DDD0E9 -:10BB5000002D09DD142E25D00123C6F1340603FA89 -:10BB600006F6371928BF984427EA09074546CDE766 -:10BB700011A3D3E9002302F04FFA0022002302F0C0 -:10BB800091FE0028C2D0002D0FDB55EA040707D034 -:10BB900000270C4DBAE7024602F03EFA0446C0E721 -:10BBA0003D46B3E705F10108DEE700274FF0004509 -:10BBB000ACE700BFAFF300809C7500883CE4377EA3 -:10BBC000FFFF0F000000F03FF8B5C1F30A57A7F2DE -:10BBD000FF35132D0A460B46044611DC002D2ADBE7 -:10BBE0008C461F4929410A422BD04FF400230026DE -:10BBF0002B41634423EA0103344619462046F8BD2D -:10BC0000332D05DDB5F5806F1ED011462046F8BDF9 -:10BC10004FF0FF31A7F2134721FA07F73842F4D06B -:10BC20000122C5F1330502FA05F5461928BF9B1814 -:10BC300026EA0706E0E7013501F0004309D00026B7 -:10BC4000DAE70028D1D1E0E7024602F0E5F9044640 -:10BC5000DCE743F07F5343F440130026CCE700BFFA -:10BC6000FFFF0F0030B5214A21F00043934287B017 -:10BC70001BDD1F4A934205DD02460B4602F0CAF95E -:10BC800007B030BD02AA00F043FF00F00300012816 -:10BC900013D002281FD0DDE90423A8B1DDE9020199 -:10BCA00001F016FA01F10041EAE700240022002326 -:10BCB000009401F059FF07B030BDDDE90423DDE950 -:10BCC000020101F005FADBE70124DDE9020100943D -:10BCD00001F04AFFD4E70124DDE90423DDE9020194 -:10BCE000009401F041FF01F10041C9E7FB21E93F68 -:10BCF000FFFFEF7F2DE9F04F8DB006460F4614464B -:10BD00001D4600F091F9DFF81493CDE9000199F98F -:10BD10000080B8F1FF3F36D022462B462046294608 -:10BD200002F0CAFD834670BB32463B463046394678 -:10BD300002F0C2FD8246002840F0AD803046394610 -:10BD40000022002302F086FD10B3002200232046CB -:10BD5000294602F07FFD8346002869D00122002099 -:10BD60000021A94BCDF828A0CDE90467CDE906450F -:10BD7000CDE90801CDE90223B8F1000F42D000233C -:10BD8000A24CCDE90034DDE900010DB0BDE8F08F33 -:10BD9000DDE9000101F0A2FF8046002800F0988054 -:10BDA000DDE900014FF0000A4FF0000B52465B4600 -:10BDB00002F050FD0028E6D03046394601F08EFFF3 -:10BDC0000028E0D02046294601F088FF0028DAD07C -:10BDD0000420002199F900308B4A022BCDE9046739 -:10BDE000CDE90645CDE908AB02900A91039204D053 -:10BDF00002A801F0FDFF002842D103F0E9FA222356 -:10BE000003603DE002A801F0F3FF002800F0B380DA -:10BE10000A9B002B3AD003F0DBFADDE90834CDE9C8 -:10BE200000340A9B0360DDE900010DB0BDE8F08F2E -:10BE30002046294601F052FF0028A4D0002200230A -:10BE40002046294602F010FD00289CD001216E4AB0 -:10BE500099F90030CDF828B0CDE90467CDE9064561 -:10BE6000CDE90212002B00F08B8000206849022BE4 -:10BE7000CDE9080140F0888003F0AAFA212303608D -:10BE80000A9B1BB103F0A4FA0A9B0360DDE90834A6 -:10BE9000CDE9003477E7002200232046294602F04E -:10BEA000D9FC00283FF46FAF01200022574B5649C0 -:10BEB000B8F1020FCDF828B0CDE90467CDE9064509 -:10BEC0000290CDE9082303919CD1CDE900235AE7E4 -:10BED0003046394601F002FF00283FF461AF2046AA -:10BEE000294601F0FBFE00283FF45AAFDDE90023AC -:10BEF0001046194602F0E0FC99F900A0002868D12C -:10BF00000323DFF804C10A90294620460293002249 -:10BF1000404BCDE90645CDE90467CDF80CC002F0F1 -:10BF200031FA04460D46BAF1000F34D14FF0604AA1 -:10BF3000DFF8ECB00022002330463946CDE908ABEB -:10BF400002F092FC00283FF453AF2046294601F04E -:10BF500057FF22462B4602F07DFC002836D14FF0D9 -:10BF600060422D4B99F900A0CDE90823BAF1020FE8 -:10BF70003FF443AF3CE703F02BFA2123036047E78C -:10BF800000230024CDE9083402A801F031FF002885 -:10BF90007FF476AF70E74FF0000BDFF888C0002227 -:10BFA000002330463946CDE908BC02F05DFC00288C -:10BFB000DCD02046294601F023FF22462B4602F022 -:10BFC00049FC18B90022124BCDE9082399F900A0C9 -:10BFD000CCE701220C4BCDF82880CDE90467CDE9F0 -:10BFE0000645CDE90223BAF1000FC9D00022002393 -:10BFF0001046194602F0F0FABAF1020FCDE9080135 -:10C000003FF43AAFC0E700BF309F01000000F03FAF -:10C010000000F0FF0000E03FFFFFEFC76C010420CD -:10C02000FFFFEF470000F07F2DE9F04F23F00045C0 -:10C0300055EA020493B00DD0794E21F00044B44289 -:10C040000F4682460FDD04F1404404F5801454EAA3 -:10C050000A035BD10023734CCDE90034DDE9000114 -:10C0600013B0BDE8F08F984694464ED0B542EADC56 -:10C070006B4EB54266D0002F8B468146CDE9022338 -:10C0800064DB0026BCF1000F0ED1654B9D4246D00B -:10C09000644B9D4200F09780B8F1804F00F0B28071 -:10C0A000614B984500F0D2834846594601F012FE94 -:10C0B000CDE90001BAF1000F06D1002C60D0594B38 -:10C0C00027F040429A425BD0FF0F013F56EA070338 -:10C0D00000F08280554B9D4240F3B08003F1047321 -:10C0E0009D4240F34E84524B9C4240F38280B8F113 -:10C0F000000F40F3828048A3D3E90023104619467D -:10C1000002F040F9CDE90001A8E728B1494813B091 -:10C11000BDE8F04F01F06EBEA542F7DCA8E704F1E0 -:10C12000404303F5801353EA0A0393D0404B9C42EB -:10C1300040F39683B8F1000F5FDBDDE90234CDE90F -:10C1400000348BE7BCF1000F95D07CE73A4B9D4261 -:10C1500037DCA3F154739D4293DD2B15A3F2FF331B -:10C16000142B40F3ED83C3F134032CFA03F202FAEB -:10C1700003F3634585D102F00102C2F1020681E7B3 -:10C18000B8F1000F07DADDE900230020254902F0AD -:10C1900023FACDE90001002FBFF660AF04F140445F -:10C1A00004F5801454EA060300F04984012E7FF45C -:10C1B00055AFDDE90045224605F10043CDE90023F6 -:10C1C0004CE702265EE7B8F1000FC0F255834846FF -:10C1D0005946CDE9000141E74A4648465B46594683 -:10C1E00001F018FF02460B4602F0F6F9CDE9000116 -:10C1F00034E7B8F1000FFFF67EAF00230024CDE94D -:10C2000000342BE74A4648465B46594602F0BAF8E6 -:10C21000CDE9000122E700BF9C7500883CE4377E31 -:10C220000000F07F0000F03F0000E03F0000E04130 -:10C23000FFFFEF3FEC810100FFFF3F43B4F5801F9C -:10C2400080F29C83DDE900010022D14B02F09AF8D4 -:10C250006FF0340C0C46CDE900012315CD4AC4F330 -:10C260001304A3F2FF3344F07F5503EB0C01944217 -:10C270000D9145F4401540F37383C74B9C4240F346 -:10C280000084002300240022CDE90A34CDE91034D3 -:10C290000024C24B0131CDE906230D91A5F580158F -:10C2A000DDE906ABDDE9000152465B4629468046E2 -:10C2B00001F0B0FE5246CDE908015B4640462946F2 -:10C2C000CDE906AB01F0A8FE02460B460020B349BB -:10C2D00002F082F90A4601461346CDE90E120246E3 -:10C2E000DDE9080102F04EF80A4683469446002331 -:10C2F00001460020CDE900BC00936B1043F00053D1 -:10C3000003F50023CDE90412DDE900AB1919A946B4 -:10C3100004460D4602460B465046594602F032F896 -:10C3200002460B46DDE9080101F074FEDDE9062353 -:10C33000CDE908012046294601F06CFE02460B4675 -:10C340004046494601F066FE52465B4602F01AF846 -:10C3500002460B46DDE9080101F05CFEDDE90E2333 -:10C3600002F010F8DDE90445CDE9060122462B462E -:10C370002046294602F006F873A3D3E900230446B9 -:10C380000D4601F0FFFF72A3D3E9002301F044FE44 -:10C3900022462B4601F0F6FF6FA3D3E9002301F0FC -:10C3A0003BFE22462B4601F0EDFF6DA3D3E90023AF -:10C3B00001F032FE22462B4601F0E4FF6AA3D3E9E6 -:10C3C000002301F029FE22462B4601F0DBFF68A383 -:10C3D000D3E9002301F020FE2246804689462B4601 -:10C3E0002046294601F0CEFF02460B46404649460C -:10C3F00001F0C8FF04460D46DDE9040152465B46E4 -:10C4000001F00AFEDDE9062301F0BCFF22462B46BF -:10C4100001F002FE5246804689465B465046594628 -:10C4200001F0B0FF00225E4BCDE9080101F0F4FD00 -:10C4300042464B4601F0F0FD00980D4604462B465F -:10C4400022465046594601F09DFF002282468B4607 -:10C45000534B2046294601F0DDFDDDE9082301F0BC -:10C46000D9FD02460B464046494601F0D3FDDDE9C1 -:10C47000042301F087FF224680468946DDE9060154 -:10C480002B4601F07FFF02460B464046494601F02D -:10C49000C3FD8046894602460B465046594601F088 -:10C4A000BBFD35A3D3E9002300980D46044601F0F7 -:10C4B00069FF5246CDE904015B462046294601F05A -:10C4C000A9FD02460B464046494601F0A3FD2CA3B8 -:10C4D000D3E9002301F056FF2BA3D3E900238046C4 -:10C4E00089462046294601F04DFF02460B4640464C -:10C4F000494601F091FDDDE9102301F08DFD8046F4 -:10C500000D98894601F0D4FE82468B46DDE9040190 -:10C5100042464B4601F080FDDDE90A2301F07CFD37 -:10C5200052465B4601F078FD009852465B46044651 -:10C530000D4601F06FFDDDE90A2301F06BFDDDE939 -:10C5400004232FE0AFF30080EF4E454A287ECA3F18 -:10C5500065DBC9934A86CD3F01411DA96074D13F77 -:10C560004D268F515555D53FFFAB6FDBB66DDB3F89 -:10C57000033333333333E33F000000E009C7EE3FBA -:10C58000FD033ADC09C7EE3FF5015B14E02F3EBE28 -:10C59000000040438E98030079B60B000000F03F86 -:10C5A0000000084001F036FD0B4602464946404671 -:10C5B00001F030FD0022013E56EA070314BFDA4BBA -:10C5C000DA4B8B46CDE90423DDE9021200230E4647 -:10C5D0001746CDE900670093DDE9006782463B46D8 -:10C5E00008461146324601F015FD22462B4601F061 -:10C5F000C9FEDDE90223804689465046594601F0CE -:10C60000C1FE02460B464046494601F005FD804604 -:10C61000894632463B4620462946CDE9028901F04B -:10C62000B1FE0B46024606460F464046494601F01B -:10C63000F3FCBF4B044699420D468A4640F32681DF -:10C6400001F13F4303F5E003034340F0FE81A2A361 -:10C65000D3E90023DDE9020101F0DEFC3246804629 -:10C6600089463B462046294601F0D4FC02460B464B -:10C670004046494602F016F9002840F0E681A846F7 -:10C680004FF4801300204FEA2852A2F2FE321341E9 -:10C690005344C3F30A52A74DA2F2FF321541C3F32C -:10C6A000130423EA0501C2F1140B44F48014BAF117 -:10C6B000000F02460B4644FA0BFB30463946B8BF22 -:10C6C000CBF1000B01F0A6FC06460F46DDE90201A6 -:10C6D00032463B4601F0A0FC0D464FEA0B5A0024BF -:10C6E0007FA3D3E900232046294601F04BFE3246C2 -:10C6F000804689463B462046294601F08BFC02468F -:10C700000B46DDE9020101F085FC77A3D3E90023A4 -:10C7100001F038FE76A3D3E9002306460F462046F3 -:10C72000294601F02FFE02460B463046394601F0FD -:10C7300073FC06460F4602460B464046494601F04A -:10C740006BFC42464B4604460D4601F063FC024634 -:10C750000B463046394601F05DFC2246804689464C -:10C760002B462046294601F00DFE63A3D3E90023A2 -:10C7700006460F4601F006FE61A3D3E9002301F04F -:10C7800049FC32463B4601F0FDFD5FA3D3E900239F -:10C7900001F042FC32463B4601F0F4FD5CA3D3E9D4 -:10C7A000002301F037FC32463B4601F0EBFD5AA373 -:10C7B000D3E9002301F030FC32463B4601F0E2FDB4 -:10C7C00002460B462046294601F024FC06460F4649 -:10C7D00002460B462046294601F0D4FD0022CDE951 -:10C7E00000014FF080433046394601F013FC024609 -:10C7F0000B46DDE9000101F0EFFE424606460F461A -:10C800004B462046294601F0BDFD42464B4601F00D -:10C8100003FC02460B463046394601F0FBFB22463C -:10C820002B4601F0F7FB02460B4600203E4901F083 -:10C83000F1FB8A44BAF5801FC0F235815146DDE92B -:10C84000042301F09FFDCDE9000107E4002FFFF66E -:10C850002BAC4846594613B0BDE8F04F00F076BB0C -:10C86000B8F1000FBFF6C9ACDDE90234009304F162 -:10C8700000430193FFF7F2BB4A465B4600202A497A -:10C8800001F0AAFECDE90001FFF7E8BB2A4B21F039 -:10C890000048984540F3E980284B0B4403430AD1F4 -:10C8A00032463B4601F0B6FBDDE9022301F0F0FF22 -:10C8B00000283FF4E5AE1AA3D3E90023DDE9040123 -:10C8C00001F060FD16A3D3E9002301F05BFDCDE983 -:10C8D0000001FFF7C3BB00BFFE822B654715973CE5 -:10C8E00000000000432EE63FEF39FAFE422EE63FFD -:10C8F000396CA80C615C20BED0A4BE726937663E5C -:10C90000F16BD2C541BDBB3E2CDE25AF6A56113F4F -:10C9100093BDBE166CC1663F3E5555555555C53F36 -:10C9200059F3F8C21F6EA5010000F03F0000F0BFF0 -:10C93000FFFF8F40FFFF0F00FFCB904000346F3FA1 -:10C94000BCF1000F40F09A80C3F1140345FA03F2E2 -:10C9500002FA03F3AB4200F0AA806646FFF798BBE9 -:10C96000002300241A462346CDE90A23CDE91023EB -:10C970000022614B0024CDE9062391E44FF0000C26 -:10C980006BE45E4B9C427FF734AC5B4B9C423FF7C1 -:10C99000AEABDDE900010022574B01F03BFB48A3A1 -:10C9A000D3E9002304460D4601F0ECFC46A3D3E98D -:10C9B000002382468B462046294601F0E3FC0022F4 -:10C9C000CDE900014E4B2046294601F0DBFC024632 -:10C9D0000B463FA1D1E9000101F01CFB22462B468A -:10C9E00001F0D0FC02460B460020464901F012FB44 -:10C9F0002246804689462B462046294601F0C2FC45 -:10CA000002460B464046494601F0BCFC32A3D3E93E -:10CA1000002301F0B7FC02460B46DDE9000101F0FE -:10CA2000F9FA02460B46804689465046594601F0BF -:10CA3000F3FA00200D46044652465B46B2E5DDE9B6 -:10CA4000002310461946FFF7CBBB25A3D3E90023EB -:10CA5000DDE9040101F096FC21A3D3E9002301F0F4 -:10CA600091FCCDE90001FFF7F9BA264B98453FF755 -:10CA700007AEDDE900239246934630E60026FFF735 -:10CA800013BB19A3D3E90023CDE90A2318A3D3E9E3 -:10CA90000023CDE9102300221B4B4FF48024CDE965 -:10CAA0000623FFF7FDBB5A4601F036FAC7E602F04F -:10CAB0000102C2F10206FFF7EBBA00BFAFF300803C -:10CAC000000000604715F73F44DF5DF80BAE543EB1 -:10CAD000555555555555D53FFE822B654715F73FA2 -:10CAE0009C7500883CE4377E0000004003B8E23FBC -:10CAF00006D0CF43EBFD4C3E0000F03FFEFFEF3F82 -:10CB00000000D03F0000E03F0000F83F00000000C0 -:10CB10002DE9F04FC84C21F00045A5428FB040F3FD -:10CB20008A801446C54A0E46954226DCB8A3D3E94E -:10CB30000023002940F38A8001F06CFAC04B0646BE -:10CB40009D420F4600F04681B3A3D3E9002301F0D4 -:10CB500061FA02460B463046C4E90023394601F02B -:10CB600059FAADA3D3E9002301F054FA0127C4E92F -:10CB7000020138460FB0BDE8F08FB24A954240F34B -:10CB80008480B14A954200F31B812F15A7F2164706 -:10CB9000A5EB07518B46824601F0A4FE01F088FB0D -:10CBA0008046894642464B4650465946CDE908895B -:10CBB00001F030FA0022A54B01F0E4FB8B468246DF -:10CBC00001F090FE01F074FB8046894642464B46D8 -:10CBD00050465946CDE90A8901F01CFA00229B4BC8 -:10CBE00001F0D0FB00220023CDE90C0101F032FE60 -:10CBF000002800F05F81002340464946002201F0F2 -:10CC000029FE002814BF01230223022090493A463E -:10CC1000CDE90001214608A800F07EFB002E074662 -:10CC200010DA6268E36802F1004203F10043474210 -:10CC30006260E36006E0002400250027C2E90245A7 -:10CC4000C2E9000138460FB0BDE8F08F01F0E4F909 -:10CC50007B4B06469D420F4600F00E816EA3D3E942 -:10CC6000002301F0D9F902460B4630463946C4E9A3 -:10CC7000002301F0CFF968A3D3E9002301F0CCF938 -:10CC80004FF0FF37C4E90201DCE701F023F864A3A9 -:10CC9000D3E900238046894601F074FB00226D4BE6 -:10CCA00001F0BAF901F01EFE074601F001FB58A39E -:10CCB000D3E9002382468B46CDE904AB01F062FB49 -:10CCC00002460B464046494601F0A4F952A3D3E977 -:10CCD0000023CDE902015046594601F053FB1F2FB6 -:10CCE0008046894602460B46DDE9020140F3B480E6 -:10CCF00001F090F983468A462D15CAF30A53EB1AC0 -:10CD0000102B40F3B48048A3D3E90023DDE90401EC -:10CD100001F038FB8046894602460B46DDE90201F8 -:10CD200001F078F982468B4602460B46DDE90201A6 -:10CD300001F070F942464B4601F06CF93CA3D3E98F -:10CD4000002380468946DDE9040101F01BFB4246D1 -:10CD50004B4601F05FF90B46024680468946504635 -:10CD60005946CDE906AB01F055F9C1F30A53ED1A66 -:10CD7000312D83468A4600F39F8002460B46DDE94B -:10CD80000601C4E90023CDE90201DDE902015A46AA -:10CD9000534601F03FF942464B4601F03BF902464B -:10CDA0000B46002EC4E90223BFF64CAF0AF1004344 -:10CDB00001F10041C4E900B3C4E902017F4241E747 -:10CDC00002460B4601F026F90027C4E90201C4E936 -:10CDD000000137E714A3D3E9002301F01BF914A3E2 -:10CDE000D3E900230F46064601F014F902460B462C -:10CDF00030463946C4E9002301F00CF90CA3D3E90D -:10CE0000002301F007F90127C4E902011AE700BF76 -:10CE100000004054FB21F93F3163621A61B4D03DF8 -:10CE200083C8C96D305FE43F0000601A61B4D03D33 -:10CE30007370032E8A19A33BFB21E93F7BD9024083 -:10CE4000FB21F93FFB213941FFFFEF7F00007041DB -:10CE5000B49F01000000E03F01F0DCF83A4B7A1E7D -:10CE600053F822308346AB428A463FF445AF5A46D8 -:10CE70005346C4E9002388E72BA3D3E9002301F03C -:10CE8000CBF82BA3D3E900230F46064601F0C4F8E4 -:10CE900002460B4630463946C4E9002301F0BAF891 -:10CEA00023A3D3E9002301F0B7F84FF0FF37C4E91B -:10CEB0000201C7E60323A8E61FA3D3E90023DDE9A7 -:10CEC000040101F05FFA8046894602460B46DDE91F -:10CED000060101F09FF882468B4602460B46DDE9CB -:10CEE0000601CDE902AB01F095F842464B4601F050 -:10CEF00091F813A3D3E9002380468946DDE90401B4 -:10CF000001F040FA42464B4601F084F802460B46D7 -:10CF1000804689465046594601F07CF883468A4649 -:10CF2000A5E700BFAFF300800000601A61B4D03DF8 -:10CF30007370032E8A19A33B0000002E8A19A33BAD -:10CF4000C14920259A837B39349F01005F4A2DE92E -:10CF5000F0418A430D46074600F0948000290B46B5 -:10CF60000446064654DD0F1500F0A780C3F31303F3 -:10CF7000A7F2FF3743F48013F20FF80702EB4303E5 -:10CF80004FEA460503D5ED0F05EB4303B500002638 -:10CF90001622B4464FF400117F100CEB01009842AA -:10CFA0004FEAD5744FEA450503DC1B1A00EB010C70 -:10CFB0000E44013A04EB43034FEA5101EDD1104610 -:10CFC000964620244FF0004209E052D05B00013C1D -:10CFD00003EBD5734FEA52024FEA450537D063455C -:10CFE00002EB0E01F1DD002901EB020E0ADBE04647 -:10CFF000A3EB0C03A94288BF03F1FF33C4466D1AAB -:10D000001044E3E7BEF1000FF1DB0CF10108EFE79C -:10D0100021F00042024329D0002945D10146CA0A25 -:10D02000153B4905002AFAD012F4801001D048E0DF -:10D0300030465200D40200F10106F9D5C6F12004B1 -:10D0400001FA06F6E1401F1A41EA02038EE72B437C -:10D0500024D14408731003F17F53F20703F5001342 -:10D0600048BF44F0004403EB075127463846BDE86B -:10D07000F081A942AAD8002901EB020EC2DB984632 -:10D080000023BBE702460B4601F07CF93A462B46EB -:10D0900000F0C2FF07463846BDE8F081411C16BFCC -:10D0A000421C01365408D5E7024600F0B3FF0246A1 -:10D0B0000B4601F091FA0746D8E71A4621463B464F -:10D0C000B2E70E4620244FF0FF30BBE70000F07FB0 -:10D0D0002DE9F04F21F00046B6F1795F85B00C469E -:10D0E00092469B4605466BDA01F0FCFB002800F0F7 -:10D0F000E1802A4623462846214601F043F974A3DD -:10D10000D3E900238046894601F03CF972A3D3E9B4 -:10D11000002300F081FF42464B4601F033F970A333 -:10D12000D3E9002300F076FF42464B4601F02AF98E -:10D130006DA3D3E9002300F06FFF42464B4601F098 -:10D1400021F96BA3D3E9002300F064FF42464B466C -:10D1500001F018F968A3D3E9002300F05DFF42460F -:10D160004B4601F00FF9CDE900010022644B404627 -:10D17000494601F007F9DDE9002306460F4640461F -:10D18000494601F0FFF85246804689465B462846EC -:10D19000214601F0F7F802460B464046494600F0AA -:10D1A00039FF02460B463046394600F033FF02464F -:10D1B0000B460020534900F02DFF05B0BDE8F08F6D -:10D1C00002460B4601F0DEF841A3D3E90023804676 -:10D1D000894601F0D7F840A3D3E9002300F01CFFF3 -:10D1E00042464B4601F0CEF83DA3D3E9002300F0C0 -:10D1F00011FF42464B4601F0C5F83BA3D3E900239B -:10D2000000F00AFF42464B4601F0BCF838A3D3E9D0 -:10D21000002300F0FFFE42464B4601F0B3F836A370 -:10D22000D3E9002300F0F8FE4B46424601F0AAF88D -:10D23000354BCDE900019E4297DD344B00229E42E2 -:10D240003DDCA6F5001300202E4916461F4600F0CF -:10D25000E1FECDE902010022294B4046494601F09A -:10D2600091F832463B4600F0D5FEDDE90023064644 -:10D270000F464046494601F085F8524680468946A9 -:10D280005B462846214601F07DF802460B464046A3 -:10D29000494600F0BFFE02460B463046394600F0D4 -:10D2A000B9FE02460B46DDE9020100F0B3FE05B00F -:10D2B000BDE8F08F0020134905B0BDE8F08F144B96 -:10D2C0000026CDE90223134FC5E700BFAFF300806E -:10D2D000D43888BEE9FAA8BDC4B1B4BD9EEE213EE3 -:10D2E000AD529C804F7E923E9015CB19A001FA3E24 -:10D2F0007751C1166CC1563F4C5555555555A53FF4 -:10D300000000E03F0000F03F3233D33F0000E93F30 -:10D310000000E73F0000D23F2DE9F04F1F46ADF57A -:10D32000197DBF4C0793D31E84FB0354DB17C3EB5B -:10D33000A40323EAE375BB4CA29E6B1C54F8266041 -:10D34000A3EB83037C1E02EBC303059333190995FA -:10D350000496019407460B91A5EB04081DD44344A1 -:10D36000002400255E1C0DF18009DDF88CA209E087 -:10D370005AF8280000F09CFF08F10108B045E9E8E0 -:10D3800002010AD0B8F1000FF2DA2046294608F16E -:10D390000108B045E9E80201F4D1049B002BC0F27A -:10D3A000B783A7F108021146079B0392DB0020AA6E -:10D3B00002EB0309029301EB0308049B72AA02EB40 -:10D3C000C30B0DF5E07A019B002BC0F295814D4611 -:10D3D00000260027039C75E90223F4E9020100F00E -:10D3E000D1FF02460B463046394600F015FE444553 -:10D3F00006460F46EFD1EAE80267DA4509F1080967 -:10D40000E1D1DDE90210049B01449B468A469B0062 -:10D410000BA9A3F10802CB1808930CAB13440A9391 -:10D4200098AB03EBCB03BBF1000F53E9284529DD93 -:10D4300070AB0DF1300903EBCB0800227A4B20468C -:10D44000294600F09FFF01F04DFA00F031FF002265 -:10D45000764B06460F4600F095FF02460B462046E7 -:10D46000294600F0D7FD01F03DFA78E9022349F89A -:10D47000040B3946304600F0CFFD70AB98450446AA -:10D480000D46DAD1DDF81490204629464A4600F0D0 -:10D4900043FD00224FF07F5304460D4600F072FF1B -:10D4A00000F022FC0022624B00F06CFF02460B46AB -:10D4B0002046294600F0AEFD0D46044601F012FA62 -:10D4C000804600F0F5FE0B4602462946204600F055 -:10D4D000A1FD4B46002B06460F4640F3E1800BF1C1 -:10D4E000FF310CAA52F82150C9F1180345FA03F292 -:10D4F00002FA03F3EB1A0CA8C9F1170540F8213022 -:10D50000904443FA05F5002D2CDDBBF1000F08F126 -:10D51000010840F399820C9C002C40F0A780BBF1DD -:10D52000010F0AD001220CA951F8044F531C002C02 -:10D5300040F09E809B451A46F6D1059B002B0EDDE0 -:10D54000012B00F0B581022B09D10BF1FF320CAB9E -:10D5500053F822300CA9C3F3150341F82230022DF1 -:10D5600000F0AF80002200233046394601F072F906 -:10D57000002800F06B82049B0BF1FF394B4510DC57 -:10D5800000220BF18043013B0CA9089801EB8303B7 -:10D5900053F80419834242EA0102F9D1002A40F00B -:10D5A000B580049B0CAA013B52F82330002B40F0BD -:10D5B000A18001230A9A52F8041901330029FAD0F4 -:10D5C0005B440BF101099945069349DC099A0799D7 -:10D5D00009EB020801EB0B0508F1804802EB030B95 -:10D5E000A39B08F1FF3803EB880870AB03EBC90974 -:10D5F000A39B20A903EB8B0301EBC505029358F80D -:10D60000040F00F055FE019B05F1080B002BC5E946 -:10D61000000128DB039C00260027083D0CE000BF2A -:10D62000ABAAAA2A00A101000000703E00007041D0 -:10D630000000204075E80201F4E9022300F0A2FE98 -:10D6400002460B463046394600F0E6FC5445064695 -:10D650000F46EFD1029BE9E8026798455D46CED1BF -:10D66000DDF818B0DCE600260027F3E701230022EE -:10D67000C4F180740CA99B4541F822400EDD51F89D -:10D6800023206FF07F4001EB830301EB8B0100E06F -:10D690001A68821A43F8042B8B42F9D101244CE713 -:10D6A00006D10BF1FF330CAA52F82350ED152AE7EF -:10D6B0000022874B01F0ECF8002840F0BE810546BF -:10D6C00050E732463B460020824900F0A3FC064664 -:10D6D0000F46002C3FF446AF059A00207D4900F02C -:10D6E0001BFC02460B463046394600F093FC0646CA -:10D6F0000F4637E7012363E700260027EAE80267C1 -:10D70000DA4509F108097FF45EAE7AE6059A0CABBA -:10D7100053F82930183ACDE9068505926BB909F11D -:10D720008043013B0CA901EB830353F8041909F171 -:10D73000FF39183A0029F8D00592059A002065496A -:10D7400000F0EAFBB9F1000F04460D46C0F2E78194 -:10D750004FF0000A4FEAC90370AA02EB03080893CE -:10D760000CAB03EB8906DFF870B108F1080704364B -:10D7700056F8040D00F09CFD22462B4600F002FEF8 -:10D780005B4667E9020152462046294600F0FAFD51 -:10D790000CAB9E4204460D46EAD1C3464FF0000A48 -:10D7A00048AB03930193CDF8149009F10103DDF820 -:10D7B00010900293B9F1000FC0F23C8142A3D3E96B -:10D7C0000023DFF818815D4600260027002403E0CF -:10D7D000544510DCF8E80223F5E8020100F0D2FD20 -:10D7E00002460B463046394600F016FC0134A1458E -:10D7F00006460F46ECDA019B0AF1010AE3E80267EC -:10D800000193029BABF1080B9A45D3D1A29BDDF8A3 -:10D810001490032B45D8DFE813F0EC000600060057 -:10D82000650048AB03930024B9F1000F21460CDBDF -:10D83000039B984603EBC905083575E9022320468A -:10D8400000F0EAFBA8450446F7D1079B002B40F007 -:10D85000368126460F4622460B460B9C0399C4E9A7 -:10D860000067D1E9000100F0D5FBB9F1000F0746D0 -:10D870000E4611DD314601244E46039D3846F5E93A -:10D88000022300F0C9FB0134A6420746F6DA079BE3 -:10D890000E46002B40F025813A4633460B99C1E9EC -:10D8A0000223069B03F007000DF5197DBDE8F08FFC -:10D8B0000BF1FF320CAB53F822300CA9C3F3160363 -:10D8C00041F822304BE600BF00000040FB21F93F49 -:10D8D0000000E03F0000F03F0000703EC8A00100E3 -:10D8E00048AB0393B9F1000F40F33581039A4FEA37 -:10D8F000C9030193D318CDF808909846D3E900AB3B -:10D90000914658E9026752465B463046394600F078 -:10D9100083FB04460D4602460B463046394600F06E -:10D9200079FB52465B4600F077FBC8E9000168E9E5 -:10D930000245C145A246AB46E3D1DDF80890B9F1F6 -:10D94000010F40F30881019B039A0DF5947B13446A -:10D950009A46D3E9006701935AE9028932463B4669 -:10D960004046494600F058FB04460D4602460B4629 -:10D970004046494600F04EFB32463B4600F04CFB29 -:10D98000CAE900016AE90245D34526462F46E3D19C -:10D9900000231946019C039A083402F110051E4623 -:10D9A00074E90223304600F037FBA5420346F6D166 -:10D9B0008C46039A1146D2E90082D1E902E907991F -:10D9C000002900F091800B9C09F100402361069B27 -:10D9D00002F100420CF10041E06003F007006260D8 -:10D9E0006161C4F80080C4F808E00DF5197DBDE858 -:10D9F000F08F0023089D039F08353D442E461946AD -:10DA00001C4676E90223204600F006FBB742034697 -:10DA1000F6D10C46079A0AB104F100441846214693 -:10DA20000B9BC3E90001069B03F007000DF5197D70 -:10DA3000BDE8F08F00260027DDE6BBF1000F08F1FE -:10DA400001087EDD022566E5002476E5CDE9068540 -:10DA5000059D304639466A4200F05EFA00223F4B8F -:10DA600006460F4600F014FF00B300223C4B304640 -:10DA7000394600F087FC00F035FF044600F018FC42 -:10DA80000022364B00F07EFC0B46024639463046FB -:10DA900000F0C0FA00F026FF0BF101090CAB1835BD -:10DAA00043F82B00059543F8294046E630463946B1 -:10DAB00000F018FF0CABD94643F82B003DE60B46AF -:10DAC00001F100450B9E0399C6E90045D1E900012B -:10DAD000224600F09FFAB9F1000F07460E463FF7C5 -:10DAE000C9AE06F10046D7E61846464674461746C4 -:10DAF0004D4661460B9BC3E90401C3E90067C3E9D6 -:10DB00000245069B03F007000DF5197DBDE8F08F77 -:10DB1000A7F108030393079BDB00029371E4A29B28 -:10DB2000032B3FF6BEAE01A252F823F03DDB00000E -:10DB300023D8000023D80000E1D8000000231C46B1 -:10DB400068E732463B460020064900F063FA0225AA -:10DB500006460F4606E500239C462AE70000704172 -:10DB60000000703E0000F03F2DE9F04F21F000462C -:10DB7000B6F1795F85B00C4690469946054604DAC1 -:10DB800000F0B0FE002800F085802A462346284693 -:10DB9000214600F0F7FB06460F4602460B46284694 -:10DBA000214600F0EFFB3EA3D3E9002382468B46DB -:10DBB0003046394600F0E6FB3BA3D3E9002300F0F2 -:10DBC00029FA32463B4600F0DDFB39A3D3E90023B6 -:10DBD00000F022FA32463B4600F0D4FB36A3D3E9EC -:10DBE000002300F017FA32463B4600F0CBFB34A38B -:10DBF000D3E9002300F010FA0E9BCDE900019BB39E -:10DC00000022334B4046494600F0BCFBDDE90023CF -:10DC1000CDE902015046594600F0B4FB02460B46DE -:10DC2000DDE9020100F0F6F932463B4600F0AAFBBE -:10DC300042464B4600F0EEF923A3D3E90023064603 -:10DC40000F465046594600F09DFB02460B463046B3 -:10DC5000394600F0E1F902460B462846214600F01D -:10DC6000D9F905B0BDE8F08F02460B46304639467B -:10DC700000F088FB14A3D3E9002300F0CBF952464F -:10DC80005B4600F07FFB2A46234600F0C5F905B04D -:10DC9000BDE8F08F2846214605B0BDE8F08F00BFF3 -:10DCA0007CD5CF5A3AD9E53DEB9C2B8AE6E55A3E26 -:10DCB0007DFEB157E31DC73ED561C119A0012A3FC2 -:10DCC000A6F810111111813F495555555555C53FBD -:10DCD0000000E03F21F000431946704741F0004149 -:10DCE00001F58010C00F7047C1F30A522DE9F843C7 -:10DCF000A2F2FF36132E0B460D4604468846074611 -:10DD00001DDC002E3DDB384A42FA06F901EA090221 -:10DD1000024319D032A3D3E9002300F07DF9002299 -:10DD2000002300F0BFFDD0B3002D04DA4FF48013C0 -:10DD300043FA06F6B04428EA090500272FE0332EFF -:10DD400006DDB6F5806F2FD019462046BDE8F88372 -:10DD50004FF0FF39A2F2134229FA02F919EA000F33 -:10DD6000F2D01FA3D3E9002300F056F900220023CC -:10DD700000F098FD98B1002D24DB27EA09074546FD -:10DD80000DE017A3D3E9002300F046F90022002399 -:10DD900000F088FD18B1002D0BDB00273D463C4606 -:10DDA00029462046BDE8F883024600F035F90446CE -:10DDB000CBE725F000430D4A1F43002F18BF15463F -:10DDC0000027ECE7142E08D00123C6F1340603FA2D -:10DDD00006F6371928BF9844CFE705F10108CCE7CC -:10DDE0009C7500883CE4377EFFFF0F000000F0BF09 -:10DDF0000020704700200149704700BF0000F87FF5 -:10DE00002DE9F041C1F30A57A7F2FF35132D82B077 -:10DE100002460B460C464FEAD178064632DC002D0E -:10DE20004DDB3B49294103EA0100104325D0490855 -:10DE30000B4052EA03060BD04FF48023132D0CBF86 -:10DE40004FF00046002624EA010143FA05F40C4392 -:10DE50003049234601EBC808D8E900453246204640 -:10DE6000294600F0D9F8CDE90001DDE9000122469C -:10DE70002B4600F0CFF802460B461046194602B07A -:10DE8000BDE8F081332D07DDB5F5806FF5D100F0E9 -:10DE9000C3F802460B46F0E74FF0FF31A7F21347F5 -:10DEA000F9400842E9D049080842D1D04FF08043F8 -:10DEB00020EA010143FA07F741EA0706C8E721F023 -:10DEC00000410143D9D0C3F313031E4373423343CC -:10DED000640C1B0B640403F4002343EA04010B46A7 -:10DEE0000C4901EBC801D1E900452046294600F064 -:10DEF00093F8CDE90001DDE9000122462B4600F050 -:10DF000089F821F00041024641EAC873B5E700BF35 -:10DF1000FFFF0F0010A10100F8B5C1F30A5304463A -:10DF20000D460E4617460BBB034621F00046334311 -:10DF30001BD02F4B002200F025FA2E4B04469F42A7 -:10DF40000D4637DB0E46C1F30A53363B40F2FE72F4 -:10DF50003B4493421ADC002B11DD26F0FF4626F4E9 -:10DF6000E00646EA035520462946F8BD40F2FF7216 -:10DF70009342EBD102460B4600F04EF8F8BD13F188 -:10DF8000350F1DDA4CF250339F420CDD14A1D1E95C -:10DF9000000122462B4600F031F811A3D3E90023FB -:10DFA00000F0F0F9F8BD22460FA1D1E900012B469F -:10DFB00000F024F80CA3D3E9002300F0E3F9F8BD46 -:10DFC00026F0FF4626F4E006363346EA035520469F -:10DFD00029460022084B00F0D5F9F8BDAFF30080C8 -:10DFE0009C7500883CE4377E59F3F8C21F6EA5018A -:10DFF00000005043B03CFFFF0000903C03F00043A2 -:10E0000021F0004242EA0301704700BF81F0004165 -:10E0100002E000BF83F0004330B54FEA41044FEA0D -:10E02000430594EA050F08BF90EA020F1FBF54EAA8 -:10E03000000C55EA020C7FEA645C7FEA655C00F044 -:10E04000E2804FEA5454D4EB5555B8BF6D420CDD15 -:10E050002C4480EA020281EA030382EA000083EA98 -:10E06000010180EA020281EA0303362D88BF30BD38 -:10E0700011F0004F4FEA01314FF4801C4CEA11318E -:10E0800002D0404261EB410113F0004F4FEA0333ED -:10E090004CEA133302D0524263EB430394EA050F78 -:10E0A00000F0A780A4F10104D5F1200E0DDB02FAE7 -:10E0B0000EFC22FA05F2801841F1000103FA0EF27B -:10E0C000801843FA05F359410EE0A5F120050EF141 -:10E0D000200E012A03FA0EFC28BF4CF0020C43FA72 -:10E0E00005F3C01851EBE37101F0004507D54FF07F -:10E0F000000EDCF1000C7EEB00006EEB0101B1F5CF -:10E10000801F1BD3B1F5001F0CD349085FEA300014 -:10E110004FEA3C0C04F101044FEA445212F5800F1F -:10E1200080F09A80BCF1004F08BF5FEA500C50F1BC -:10E13000000041EB045141EA050130BD5FEA4C0C9F -:10E14000404141EB010111F4801FA4F10104E9D128 -:10E1500091F0000F04BF01460020B1FA81F308BF1F -:10E160002033A3F10B03B3F120020CDA0C3208DDEB -:10E1700002F1140CC2F10C0201FA0CF021FA02F1C6 -:10E180000CE002F11402D8BFC2F1200C01FA02F136 -:10E1900020FA0CFCDCBF41EA0C019040E41AA2BF5B -:10E1A00001EB0451294330BD6FEA04041F3C1CDA23 -:10E1B0000C340EDC04F11404C4F1200220FA04F043 -:10E1C00001FA02F340EA030021FA04F345EA0301ED -:10E1D00030BDC4F10C04C4F1200220FA02F001FAAF -:10E1E00004F340EA0300294630BD21FA04F0294631 -:10E1F00030BD94F0000F83F4801306BF81F48011CA -:10E200000134013D4EE77FEA645C18BF7FEA655C3C -:10E2100029D094EA050F08BF90EA020F05D054EA0E -:10E22000000C04BF1946104630BD91EA030F1EBF13 -:10E230000021002030BD5FEA545C05D14000494117 -:10E2400028BF41F0004130BD14F580043CBF01F50A -:10E25000801130BD01F0004545F0FE4141F47001F0 -:10E260004FF0000030BD7FEA645C1ABF19461046CB -:10E270007FEA655C1CBF0B46024650EA013406BFCC -:10E2800052EA033591EA030F41F4002130BD00BF8B -:10E2900090F0000F04BF0021704730B54FF4806448 -:10E2A00004F132044FF000054FF0000150E700BFC9 -:10E2B00090F0000F04BF0021704730B54FF4806428 -:10E2C00004F1320410F0004548BF40424FF0000115 -:10E2D0003EE700BF42004FEAE2014FEA31014FEA58 -:10E2E00002701FBF12F07F4393F07F4F81F06051A7 -:10E2F000704732F07F4208BF704793F07F4F04BFF2 -:10E3000041F40021704730B54FF4607401F00045CE -:10E3100021F000411CE700BF50EA010208BF70472E -:10E3200030B54FF000050AE050EA010208BF70471F -:10E3300030B511F0004502D5404261EB41014FF488 -:10E34000806404F132045FEA915C3FF4D8AE4FF090 -:10E3500003025FEADC0C18BF03325FEADC0C18BF73 -:10E36000033202EBDC02C2F1200300FA03FC20FAC4 -:10E3700002F001FA03FE40EA0E0021FA02F1144411 -:10E38000BDE600BF70B54FF0FF0C4CF4E06C1CEA2A -:10E3900011541DBF1CEA135594EA0C0F95EA0C0F9B -:10E3A00000F0DEF82C4481EA030621EA4C5123EA0E -:10E3B0004C5350EA013518BF52EA033541F480113D -:10E3C00043F4801338D0A0FB02CE4FF00005E1FBF0 -:10E3D00002E506F00042E0FB03E54FF00006E1FB3A -:10E3E00003569CF0000F18BF4EF0010EA4F1FF047D -:10E3F000B6F5007F64F5407404D25FEA4E0E6D41BD -:10E4000046EB060642EAC62141EA55514FEAC520CD -:10E4100040EA5E504FEACE2EB4F1FD0C88BFBCF549 -:10E42000E06F1ED8BEF1004F08BF5FEA500E50F1FA -:10E43000000041EB045170BD06F0004646EA0101C0 -:10E4400040EA020081EA0301B4EB5C04C2BFD4EBF2 -:10E450000C0541EA045170BD41F480114FF0000EEB -:10E46000013C00F3AB8014F1360FDEBF002001F059 -:10E47000004170BDC4F10004203C35DA0C341BDCD3 -:10E4800004F11404C4F1200500FA05F320FA04F0A5 -:10E4900001FA05F240EA020001F0004221F00041D9 -:10E4A00010EBD37021FA04F642EB06015EEA430E4C -:10E4B00008BF20EAD37070BDC4F10C04C4F120057C -:10E4C00000FA04F320FA05F001FA04F240EA02002F -:10E4D00001F0004110EBD37041F100015EEA430E00 -:10E4E00008BF20EAD37070BDC4F1200500FA05F220 -:10E4F0004EEA020E20FA04F301FA05F243EA02039F -:10E5000021FA04F001F0004121FA04F220EA0200AD -:10E5100000EBD3705EEA430E08BF20EAD37070BDF3 -:10E5200094F0000F0FD101F00046400041EB0101D3 -:10E5300011F4801F08BF013CF7D041EA060195F0B5 -:10E54000000F18BF704703F00046520043EB03036F -:10E5500013F4801F08BF013DF7D043EA060370475C -:10E5600094EA0C0F0CEA135518BF95EA0C0F0CD067 -:10E5700050EA410618BF52EA4306D1D181EA0301AD -:10E5800001F000414FF0000070BD50EA410606BFA7 -:10E590001046194652EA430619D094EA0C0F02D1EC -:10E5A00050EA013613D195EA0C0F05D152EA033631 -:10E5B0001CBF104619460AD181EA030101F000414F -:10E5C00041F0FE4141F470014FF0000070BD41F098 -:10E5D000FE4141F4780170BD70B54FF0FF0C4CF472 -:10E5E000E06C1CEA11541DBF1CEA135594EA0C0F91 -:10E5F00095EA0C0F00F0A7F8A4EB050481EA030EDE -:10E6000052EA03354FEA013100F088804FEA0333C4 -:10E610004FF0805545EA131343EA12634FEA022292 -:10E6200045EA111545EA10654FEA00260EF0004153 -:10E630009D4208BF964244F1FD0404F5407402D2A5 -:10E640005B084FEA3202B61A65EB03055B084FEA36 -:10E6500032024FF480104FF4002CB6EB020E75EB33 -:10E66000030E22BFB61A754640EA0C005B084FEA5B -:10E670003202B6EB020E75EB030E22BFB61A7546D8 -:10E6800040EA5C005B084FEA3202B6EB020E75EB23 -:10E69000030E22BFB61A754640EA9C005B084FEA9B -:10E6A0003202B6EB020E75EB030E22BFB61A7546A8 -:10E6B00040EADC0055EA060E18D04FEA051545EA97 -:10E6C00016754FEA06164FEAC30343EA52734FEA40 -:10E6D000C2025FEA1C1CC0D111F4801F0BD141EAB9 -:10E6E00000014FF000004FF0004CB6E711F4801F1E -:10E6F00004BF01430020B4F1FD0C88BFBCF5E06FFE -:10E700003FF6AFAEB5EB030C04BFB6EB020C5FEA0D -:10E71000500C50F1000041EB045170BD0EF0004E62 -:10E720004EEA113114EB5C04C2BFD4EB0C0541EA94 -:10E73000045170BD41F480114FF0000E013C90E691 -:10E7400045EA060E8DE60CEA135594EA0C0F08BF55 -:10E7500095EA0C0F3FF43BAF94EA0C0F0AD150EA54 -:10E7600001347FF434AF95EA0C0F7FF425AF1046E7 -:10E7700019462CE795EA0C0F06D152EA03353FF40F -:10E78000FDAE1046194622E750EA410618BF52EA8C -:10E7900043067FF4C5AE50EA41047FF40DAF52EA60 -:10E7A00043057FF4EBAE12E74FF0FF3C06E000BFFD -:10E7B0004FF0010C02E000BF4FF0010C4DF804CD0A -:10E7C0004FEA410C7FEA6C5C4FEA430C18BF7FEACA -:10E7D0006C5C1BD001B050EA410C0CBF52EA430CF8 -:10E7E00091EA030F02BF90EA020F0020704710F178 -:10E7F000000F91EA030F58BF994208BF90422CBF07 -:10E80000D8176FEAE37040F0010070474FEA410CFF -:10E810007FEA6C5C02D150EA013C07D14FEA430C1D -:10E820007FEA6C5CD6D152EA033CD3D05DF8040B8E -:10E83000704700BF8446104662468C4619466346C0 -:10E8400000E000BF01B5FFF7B7FF002848BF10F197 -:10E85000000F01BD4DF808EDFFF7F4FF0CBF0120DC -:10E8600000205DF808FB00BF4DF808EDFFF7EAFF58 -:10E8700034BF012000205DF808FB00BF4DF808ED13 -:10E88000FFF7E0FF94BF012000205DF808FB00BF08 -:10E890004DF808EDFFF7CEFF94BF012000205DF892 -:10E8A00008FB00BF4DF808EDFFF7C4FF34BF01209F -:10E8B00000205DF808FB00BF4FEA410C7FEA6C5C6A -:10E8C00002D150EA013C0AD14FEA430C7FEA6C5C6A -:10E8D00002D152EA033C02D14FF0000070474FF0E2 -:10E8E000010070474FEA410212F5001215D211D50E -:10E8F0006FF47873B3EB625212D94FEAC12343F03D -:10E90000004343EA505311F0004F23FA02F018BFBE -:10E91000404270474FF00000704750EA013005D187 -:10E9200011F0004008BF6FF0004070474FF000004A -:10E93000704700BF4A0011D212F5001211D20DD556 -:10E940006FF47873B3EB62520ED44FEAC12343F0F5 -:10E95000004343EA505323FA02F070474FF000009F -:10E96000704750EA013002D14FF0FF3070474FF04E -:10E97000000070474FEA4102B2F1E04324BFB3F513 -:10E98000001CDCF1FE5C0DD901F0004C4FEAC00226 -:10E990004CEA5070B2F1004F40EB830008BF20F00A -:10E9A0000100704711F0804F21D113F13872BCBFC4 -:10E9B00001F00040704741F480114FEA5252C2F119 -:10E9C0001802C2F1200C10FA0CF320FA02F018BF62 -:10E9D00040F001004FEAC1234FEAD32303FA0CFCB5 -:10E9E00040EA0C0023FA02F34FEA4303CCE77FEA44 -:10E9F000625307D150EA01331EBF4FF0FE4040F48E -:10EA00004000704701F0004040F0FE4040F400003C -:10EA1000704700BF80F0004002E000BF81F000417D -:10EA200042001FBF5FEA410392EA030F7FEA226CB4 -:10EA30007FEA236C6AD04FEA1262D2EB1363C1BF44 -:10EA4000D218414048404140B8BF5B42192B88BFB3 -:10EA5000704710F0004F40F4000020F07F4018BFD6 -:10EA6000404211F0004F41F4000121F07F4118BFF6 -:10EA7000494292EA030F3FD0A2F1010241FA03FC9E -:10EA800010EB0C00C3F1200301FA03F100F0004386 -:10EA900002D5494260EB4000B0F5000F13D3B0F14E -:10EAA000807F06D340084FEA310102F10102FE2ABD -:10EAB00051D2B1F1004F40EBC25008BF20F001002D -:10EAC00040EA03007047490040EB000010F4000FDB -:10EAD000A2F10102EDD1B0FA80FCACF1080CB2EB6E -:10EAE0000C0200FA0CF0AABF00EBC25052421843CD -:10EAF000BCBFD0401843704792F0000F81F4000172 -:10EB000006BF80F400000132013BB5E74FEA410344 -:10EB10007FEA226C18BF7FEA236C21D092EA030FB0 -:10EB200004D092F0000F08BF0846704790EA010F2A -:10EB30001CBF0020704712F07F4F04D1400028BF57 -:10EB400040F00040704712F100723CBF00F5000039 -:10EB5000704700F0004343F0FE4040F4000070476F -:10EB60007FEA226216BF08467FEA2363014642021B -:10EB700006BF5FEA412390EA010F40F4800070472E -:10EB80004FF0000304E000BF10F0004348BF4042D4 -:10EB90005FEA000C08BF704743F0964301464FF010 -:10EBA00000001CE050EA010208BF70474FF000036C -:10EBB0000AE000BF50EA010208BF704711F00043AD -:10EBC00002D5404261EB41015FEA010C02BF84467D -:10EBD0000146002043F0B64308BFA3F18053A3F5DC -:10EBE0000003BCFA8CF2083AA3EBC25310DB01FA23 -:10EBF00002FC634400FA02FCC2F12002BCF1004FA7 -:10EC000020FA02F243EB020008BF20F00100704737 -:10EC100002F1200201FA02FCC2F1200250EA4C008B -:10EC200021FA02F243EB020008BF20EADC707047D1 -:10EC30004FF0FF0C1CEAD0521EBF1CEAD15392EADF -:10EC40000C0F93EA0C0F6FD01A4480EA010C4002BB -:10EC500018BF5FEA41211ED04FF0006343EA501015 -:10EC600043EA5111A0FB01310CF00040B1F5000F57 -:10EC70003EBF490041EAD3715B0040EA010062F106 -:10EC80007F02FD2A1DD8B3F1004F40EBC25008BFF0 -:10EC900020F00100704790F0000F0CF0004C08BF0E -:10ECA00049024CEA502040EA51207F3AC2BFD2F1DB -:10ECB000FF0340EAC250704740F400004FF00003E9 -:10ECC000013A5DDC12F1190FDCBF00F00040704723 -:10ECD000C2F10002410021FA02F1C2F1200200FA61 -:10ECE00002FC5FEA310040F1000053EA4C0308BF28 -:10ECF00020EADC70704792F0000F00F0004C02BF79 -:10ED0000400010F4000F013AF9D040EA0C0093F0F3 -:10ED1000000F01F0004C02BF490011F4000F013B4D -:10ED2000F9D041EA0C018FE70CEAD15392EA0C0FBB -:10ED300018BF93EA0C0F0AD030F0004C18BF31F026 -:10ED4000004CD8D180EA010000F00040704790F0FC -:10ED5000000F17BF90F0004F084691F0000F91F0A0 -:10ED6000004F14D092EA0C0F01D142020FD193EA66 -:10ED70000C0F03D14B0218BF084608D180EA0100EE -:10ED800000F0004040F0FE4040F40000704740F0CA -:10ED9000FE4040F4400070474FF0FF0C1CEAD05298 -:10EDA0001EBF1CEAD15392EA0C0F93EA0C0F69D0F4 -:10EDB000A2EB030280EA010C49024FEA402037D05F -:10EDC0004FF0805343EA111143EA10130CF0004056 -:10EDD0008B4238BF5B0042F17D024FF4000C8B4246 -:10EDE00024BF5B1A40EA0C00B3EB510F24BFA3EB26 -:10EDF000510340EA5C00B3EB910F24BFA3EB9103F6 -:10EE000040EA9C00B3EBD10F24BFA3EBD10340EA4F -:10EE1000DC001B0118BF5FEA1C1CE0D1FD2A3FF695 -:10EE200050AF8B4240EBC25008BF20F0010070474A -:10EE30000CF0004C4CEA50207F32C2BFD2F1FF03ED -:10EE400040EAC250704740F400004FF00003013A1E -:10EE500037E792F0000F00F0004C02BF400010F4C2 -:10EE6000000F013AF9D040EA0C0093F0000F01F0D6 -:10EE7000004C02BF490011F4000F013BF9D041EAF8 -:10EE80000C0195E70CEAD15392EA0C0F08D142022B -:10EE90007FF47DAF93EA0C0F7FF470AF084676E7FE -:10EEA00093EA0C0F04D14B023FF44CAF08466EE7D7 -:10EEB00030F0004C18BF31F0004CCAD130F00042A5 -:10EEC0007FF45CAF31F000437FF43CAF5FE700BFFD -:10EED0004FF0FF3C06E000BF4FF0010C02E000BF26 -:10EEE0004FF0010C4DF804CD4FEA40024FEA4103C8 -:10EEF0007FEA226C18BF7FEA236C11D001B052EA7E -:10EF0000530C18BF90EA010F58BFB2EB030088BF43 -:10EF1000C81738BF6FEAE17018BF40F001007047B2 -:10EF20007FEA226C02D15FEA402C05D17FEA236C94 -:10EF3000E4D15FEA412CE1D05DF8040B704700BFDB -:10EF4000844608466146FFE70FB5FFF7C9FF002872 -:10EF500048BF10F1000F0FBD4DF808EDFFF7F4FFAB -:10EF60000CBF012000205DF808FB00BF4DF808ED44 -:10EF7000FFF7EAFF34BF012000205DF808FB00BF67 -:10EF80004DF808EDFFF7E0FF94BF012000205DF889 -:10EF900008FB00BF4DF808EDFFF7D2FF94BF01203A -:10EFA00000205DF808FB00BF4DF808EDFFF7C8FF33 -:10EFB00034BF012000205DF808FB00BF4FEA40028B -:10EFC000B2F1FE4F0FD34FF09E03B3EB12620DD997 -:10EFD0004FEA002343F0004310F0004F23FA02F001 -:10EFE00018BF404270474FF00000704712F1610FA8 -:10EFF00001D1420205D110F0004008BF6FF000407F -:10F0000070474FF00000704742000ED2B2F1FE4F41 -:10F010000BD34FF09E03B3EB126209D44FEA0023E7 -:10F0200043F0004323FA02F070474FF000007047AE -:10F0300012F1610F01D1420202D14FF0FF3070474F -:10F040004FF00000704700BF53B94AB9002908BF0C -:10F0500000281CBF4FF0FF314FF0FF3000F074B9B3 -:10F06000ADF1080C6DE904CE00F006F8DDF804E01F -:10F07000DDE9022304B070472DE9F0478C460446D1 -:10F08000089E002B4BD18A42154667D9B2FA82F20C -:10F090004AB1C2F1200701FA02F320FA07F79540BE -:10F0A00047EA030C94404FEA154EBCFBFEF71FFAEB -:10F0B00085F80EFB17C307FB08F9210C41EA03434F -:10F0C000994509D9EB1807F1FF3180F01C8199456A -:10F0D00040F21981023F2B44A3EB0903B3FBFEF07E -:10F0E0000EFB103300FB08F1A4B244EA0344A14232 -:10F0F00009D92C1900F1FF3380F00781A14240F2B9 -:10F10000048102382C4440EA07400027641A1EB1EB -:10F110000023D440C6E900433946BDE8F0878B425E -:10F1200009D9002E00F0EC800027C6E9000138461E -:10F130003946BDE8F087B3FA83F7002F48D18B42F8 -:10F1400002D3824200F2FB80841A61EB03030120A8 -:10F150009C46002EE0D0C6E9004CDDE702B9FFDE98 -:10F16000B2FA82F2002A40F08F800127491B4FEA51 -:10F1700015481FFA85F9B1FBF8FE08FB1E1109FBC3 -:10F180000EF04FEA144C4CEA0143984207D9EB18B1 -:10F190000EF1FF3102D2984200F2CD808E461B1A4A -:10F1A000B3FBF8F008FB103309FB00F9A4B244EA02 -:10F1B0000344A14507D92C1900F1FF3302D2A14520 -:10F1C00000F2B6801846A4EB090440EA0E409EE720 -:10F1D000C7F12005BB4022FA05FC4CEA030C21FADA -:10F1E00005F44FEA1C4EB4FBFEF91FFA8CF80EFB37 -:10F1F000194420FA05F3B94009FB08FA19430B0C2E -:10F2000043EA0444A24502FA07F200FA07F30BD9D5 -:10F210001CEB040409F1FF3080F08880A24540F225 -:10F220008580A9F102096444A4EB0A04B4FBFEF052 -:10F230000EFB104400FB08FA89B241EA0444A245DF -:10F2400008D91CEB040400F1FF316BD2A24569D947 -:10F250000238644440EA0940A0FB0289A4EB0A0496 -:10F260004C454146CE4654D351D0002E69D05A1A4F -:10F2700064EB0E0404FA05F522FA07F3FC401D4383 -:10F28000C6E90054002747E79540C2F1200321FA60 -:10F2900003F04FEA1548B0FBF8F71FFA85F908FBB1 -:10F2A000170024FA03F3914007FB09FC0B43190CE8 -:10F2B00041EA00418C4504FA02F407D9691807F1C4 -:10F2C000FF3031D28C452FD9023F2944A1EB0C01EC -:10F2D000B1FBF8F008FB101C00FB09FE99B241EAF3 -:10F2E0000C418E4507D9691800F1FF3318D28E45BD -:10F2F00016D902382944A1EB0E0140EA07473AE744 -:10F300003746304608E70F46E6E61846FBE6434533 -:10F31000ABD2B8EB020169EB0C0201389646A4E7C8 -:10F320001846E8E7084695E70746CFE781467BE7BA -:10F3300002382C4447E7AEF1020E2B442FE7384643 -:10F3400007E73746E8E600BF704700BF0A22002102 -:10F3500002F0A6B9024B0A460146186800F002B84E -:10F360007001042010B502FB01F100F0ADF8044675 -:10F37000E8B150F8042C22F00302043A242A1FD8E2 -:10F38000132A16D900231B2AC0E900331DD9242AC9 -:10F39000C0E9023308BFC0E904334FF0000314BFD3 -:10F3A00000F1100200F11802C2E900339360204618 -:10F3B00010BD024600232046C2E90033936010BD11 -:10F3C000002100F09FFB204610BD00F10802F1E78C -:10F3D000014B1868704700BF7001042008B5002178 -:10F3E000044603F03FFC044B1868C36B03B1984715 -:10F3F000204605F0A1FF00BF20A1010070B50D4E11 -:10F400000D4D761BB61006D00024013455F8043B90 -:10F410009847A642F9D1094E094D05F08FFF761B9A -:10F42000B61006D00024013455F8043B9847A64294 -:10F43000F9D170BD200B0420200B0420280B0420E0 -:10F44000200B0420931E222B16D80A2A10B506D0B2 -:10F450000B460C46194603F0AFFB204610BD0028B2 -:10F46000F6DA0B462D2403F8014B0C4640421946B0 -:10F4700003F0A2FB204610BD00200870704700BFBB -:10F48000FFF7E0BFD0F8EC00704700BF044B054A1F -:10F490001B685B6B002B08BF1346D3F8EC0070476A -:10F4A00070010420A0050420024B0146186800F0FA -:10F4B0000BB800BF70010420024B0146186804F02D -:10F4C00061BC00BF700104202DE9F04F01F10B0574 -:10F4D000162D83B0064623D8102900F2B68000F01E -:10F4E0005BFB102518230220CC4F3B445C68A3F142 -:10F4F0000802944200F056816368E16823F0030338 -:10F5000023445A68A56842F00102E96030468D60E4 -:10F510005A6000F047FB0834204603B0BDE8F08F86 -:10F5200035F0070500F19180A94200F28E8000F0CD -:10F5300033FBB5F5FC7FC0F064816B0A00F08C8072 -:10F54000042B00F23681AB0903F1390003F1380CCA -:10F55000C100B24F39444C680839A14206D10CE0D1 -:10F56000002A80F21B81E468A14206D0636823F080 -:10F5700003035A1B0F2AF3DD60463C69DFF8B0C273 -:10F5800064456FD0636823F003035A1B0F2A00F30E -:10F590002681002AC7E904CC80F21781B3F5007FE9 -:10F5A00080F059810122DB08991013448A40796860 -:10F5B00057F833E007EBC3080A43A8F10801C4E990 -:10F5C00002E17A6047F83340CEF80C400124831002 -:10F5D0009C4094424CD8144206D120F003006400B1 -:10F5E000144200F10400FAD007EBC009CE46804671 -:10F5F000DEF80C309E4507D107E1002A80F21C811D -:10F60000DB689E4500F00181596821F003014A1B27 -:10F610000F2AF2DD45F001083046D3E902E41D442B -:10F6200042F00106C3F80480CEF80C40C4F808E0AC -:10F63000C7E90455C5E902CC6E605A50019300F049 -:10F64000B1FA019B03F1080466E700240C2320466D -:10F65000336003B0BDE8F08F4FF4007140204FF0ED -:10F660003F0C76E701247A6883109C409442B2D91B -:10F67000BC68636823F00309A94503D3A9EB05031C -:10F680000F2B7BDC664BDFF8ACA11A68DAF8003090 -:10F6900005EB0208013300F03A8108F5805808F1C3 -:10F6A0000F0828F47F6828F00F084146304600F024 -:10F6B00041FCB0F1FF3F834600F0F68004EB090007 -:10F6C000584500F2EF80574A13684344136000F036 -:10F6D0003F81DAF8001001311BBFABEB00001B18B3 -:10F6E000CAF800B013601BF0070300F02681C3F1D5 -:10F6F0000801C3F580538B440833D844C8F30B0882 -:10F70000A3EB080841463046019200F013FC431C6D -:10F71000019A00F03881A0EB0B01414441F0010156 -:10F720001368BC424344C7F808B01360CBF8041018 -:10F7300015D0B9F10F0F40F222814FF0050E61682C -:10F74000A9F10C0020F0070001F00101014304EBD6 -:10F75000000C0F286160CCE901EE00F22C81324AE6 -:10F7600032481168BC688B42016888BF13606268C8 -:10F770008B4222F0030288BF036099E045F001024A -:10F7800043F00103254462603046BD6008346B607D -:10F7900000F008FA204603B0BDE8F08F23445A6811 -:10F7A000E168AFE6DC68A34208BF02303FF4E5AE93 -:10F7B000A2E6142B70D9542B00F2AC802B0B03F172 -:10F7C0006F0003F16E0CC100C3E623445A68304653 -:10F7D00042F001025A60083400F0E4F99CE645F07A -:10F7E000010E42F001012544C4F804E03046C7E9A7 -:10F7F0000455C5E902CC6960E25000F0D3F9083441 -:10F800008AE6E80805F108036EE608F1010818F039 -:10F81000030F0EF1080E7FF4EBAE60E00C0704203E -:10F820004815042018150420401504204415042010 -:10F8300014070420140B04201C4619444A68DB6892 -:10F8400054F8085F42F001024A603046EB609D6068 -:10F8500000F0A8F960E65A0A042A35D9142A6FD8AC -:10F8600002F15C01C9005B3207EB010E7958AEF181 -:10F87000080E8E4558D04A6822F003029A4202D9F7 -:10F8800089688E45F7D1D1F80CE07A68C4E9021E88 -:10F89000CEF80840CC6099E603F15C0003F15B0C04 -:10F8A000C10056E6BC4272D0BC68626822F0030216 -:10F8B0009542A2EB050302D80F2B3FF75FAF30460E -:10F8C00000F070F9002427E69A0902F13901C90015 -:10F8D0003832C9E7D9F80090994540F0838010F09C -:10F8E000030FA9F1080300F1FF30F3D17B6823EA8D -:10F8F00004037B6064009C423FF6BAAE1CB9B7E6D5 -:10F90000640008F104081C42FAD040466CE608F195 -:10F910001008CAE6B3F5AA7F26D8EB0B03F17800EE -:10F9200003F1770CC10014E64FF001087B689210D8 -:10F9300008FA02F21A437A60A8E74FF48053DCE633 -:10F94000542A29D81A0B02F16F01C9006E328BE7D5 -:10F95000C0F30B0100297FF4BCAE09EB0802B968C3 -:10F9600042F001024A60FAE640F2545293421CD837 -:10F97000AB0C03F17D0003F17C0CC100E9E5012330 -:10F98000CBF804309BE701214FF00008C8E6164A87 -:10F990001368434413609CE6B2F5AA7F14D8DA0BCF -:10F9A00002F17801C90077325EE74FF47E717F2063 -:10F9B0004FF07E0CCDE504F108013046019204F0D1 -:10F9C000E1F9019A1368CAE640F254518A4205D817 -:10F9D0009A0C02F17D01C9007C3245E74FF47E713B -:10F9E0007E2241E77B6885E71815042082B049B183 -:10F9F0005AB16BB113780B601278101C18BF01203C -:10FA000002B0704701A9002AF3D1104602B0704736 -:10FA10006FF00100F4E700BF844641EA000313F0F1 -:10FA2000030349D1403A23D30B6803604B6843601A -:10FA30008B688360CB68C3600B6903614B6943616A -:10FA40008B698361CB69C3610B6A03624B6A436252 -:10FA50008B6A8362CB6AC3620B6B03634B6B43633A -:10FA60008B6B8363CB6BC36340304031403ADBD256 -:10FA700030320BD30B6803604B6843608B68836044 -:10FA8000CB68C36010301031103AF3D20C3205D37A -:10FA900051F8043B40F8043B043AF9D2043208D050 -:10FAA000D2071CBF11F8013B00F8013B01D30B88C2 -:10FAB00003806046704700BF082A13D38B07B1D07C -:10FAC00010F00303AED0C3F10403D21ADB071CBF4E -:10FAD00011F8013B00F8013BA4D331F8023B20F8B8 -:10FAE000023B9FE7043AD9D3013A11F8013B00F8F1 -:10FAF000013BF9D20B7803704B7843708B7883709D -:10FB000060467047F0B4860743D0541E002A3ED0AA -:10FB1000CAB2034602E014F1FF3438D303F8012BD4 -:10FB20009D07F8D1032C2BD9CDB245EA05250F2C22 -:10FB300045EA054516D9A4F110073F0903F120064F -:10FB400006EB071603F1100242E9045542E902559B -:10FB50001032B242F8D104F00F040137032C03EB4A -:10FB600007130DD91E462246043A032A46F8045BC1 -:10FB7000FAD8221F22F003020432134404F00304D3 -:10FB80002CB1C9B21C4403F8011B9C42FBD1F0BC50 -:10FB9000704714460346C5E7014804F0C7BD00BFDF -:10FBA000B0150420014804F0C3BD00BFB015042007 -:10FBB000024B0A460146186800F002B870010420A2 -:10FBC0002DE9F04F924683B0002900F0A1800D4648 -:10FBD00080460AF10B04FFF7DFFF55F8042C162CC2 -:10FBE00022F00306A5F108073ED810242146A245BD -:10FBF0003FD88E4207EB060974DAC84B986848452F -:10FC000000F0AA80D9F8040020F001034B445B689F -:10FC1000DB0740F18380D20734D551464046FFF7D9 -:10FC200053FC8246E0B155F8043CA0F1080223F0F1 -:10FC300001033B44934200F00E81321F242A00F25C -:10FC40001481132A296800F2FB8003462A461960B2 -:10FC50005168596092689A602946404604F092F8CB -:10FC60004046FFF79FFF4FE024F00704002C214699 -:10FC7000BDDA4FF0000A0C235046C8F8003003B03C -:10FC8000BDE8F08F55F8083CA7EB030BDBF8042028 -:10FC900022F00302B3188B42BFDBDA46DBF80C100C -:10FCA0005AF8080F321F242AC1600BEB0309886041 -:10FCB00000F2BE80132A296840F2D580CBF80810E4 -:10FCC00069681B2ACBF80C10A96800F2E5800BF1DB -:10FCD00010020835116069681E465160AB685F46C6 -:10FCE000554693607A68331B0F2B02F0010222D82D -:10FCF00032437A60D9F8043043F00103C9F8043084 -:10FD00004046FFF74FFFAA46504603B0BDE8F08FCC -:10FD1000114603B0BDE8F04FFFF7D6BB20F003005B -:10FD200033188B4263DBD9E902121E46CA6007EB27 -:10FD300003099160D6E73919224343F001037A6041 -:10FD40004B60D9F80430083143F00103C9F804309E -:10FD5000404604F017F8D3E7D0F8049004F11000FF -:10FD600029F00309B144814580F28380D2073FF531 -:10FD700054AF55F8082CA7EB020BDBF8042022F057 -:10FD800003029144484585DCDA46DBF80C105AF84A -:10FD9000080F321F242AC160886000F2AB80132A4A -:10FDA000296840F2A580CBF8081069681B2ACBF8B7 -:10FDB0000C10A96800F2A5800BF110020835116043 -:10FDC00069685160A9689160A9EB04020BEB04011A -:10FDD00042F0010299604A60DBF80430404603F0CB -:10FDE00001031C43CBF80440FFF7DCFE8CE7D3078C -:10FDF0003FF513AF55F8083CA7EB030BDBF80420E5 -:10FE000022F00302104483198B42FFF643AFD9E975 -:10FE10000201DA46C16088605AF8080FDBF80C105E -:10FE2000321F242AC1600BEB030988607FF642AFC2 -:10FE3000294650461E465F4604F0C2FC554651E72F -:10FE400001606B681B2A436032D805F1080200F19B -:10FE50000803A968FBE650F8043C23F003031E44A2 -:10FE600007EB06093EE7524634E7294604F0A8FCB2 -:10FE7000F2E6A9EB0409274449F001029F607A6089 -:10FE800055F8043C404603F001031C4345F8044C7C -:10FE9000FFF788FEAA4637E7CBF81010E968242A56 -:10FEA000CBF8141029690FD00BF11802103511E7A7 -:10FEB000AB68242A8360EB68C3600FD005F11002A1 -:10FEC00000F110032969C2E6CBF8181069690BF13B -:10FED0002002CBF81C10A9691835FBE62B6905F147 -:10FEE00018020361696900F118034161A969AEE66E -:10FEF000524664E729465046019304F061FC019B99 -:10FF000062E7CBF81010E968242ACBF814102969AD -:10FF100006D00BF11802103551E700BF0C07042082 -:10FF2000CBF8181069690BF12002CBF81C10A969F5 -:10FF3000183544E738B50023064C054608462360CB -:10FF400005F0ECF9431C00D038BD2368002BFBD032 -:10FF50002B6038BDC41504200CB430B5204B0029EB -:10FF60009DB01C6836DB4FF4027302900690ADF82A -:10FF700014304FF6FF7021AD17D00139209A04914B -:10FF80000791ADF816002B4602A92046019501F015 -:10FF90009DFB421C01DA8B2323600022029B1A7016 -:10FFA0001DB0BDE8304002B070472B460491079168 -:10FFB000ADF81600209A02A92046019501F086FBB3 -:10FFC000431C04DB1DB0BDE8304002B070478B23FA -:10FFD0002360F7E78B234FF0FF302360F2E700BF89 -:10FFE000700104200EB4034630B56FF000449CB09D -:10FFF0001FA951F8042B0A480A4D02930693019158 -:020000021000EC -:100000000B46006802A90794CDE9044501F05EFBA8 -:100010000022029B1A701CB0BDE8304003B070474C -:10002000700104200802FFFF41EA00039B0708D08B -:10003000034611F8012B184603F8012B002AF8D1CA -:1000400070470B68A3F1013222EA030212F0803FED -:10005000EED110B40C1D40F8043B214654F8043B8B -:10006000A3F1013222EA030212F0803FF3D00346EB -:1000700011F8012B184603F8012B002AF8D110BC07 -:10008000704700BF830710B5044610D10268A2F183 -:10009000013323EA020313F0803F08D150F8042F04 -:1000A000A2F1013323EA020313F0803FF6D0037874 -:1000B0001BB110F8013F002BFBD100F055F9204691 -:1000C00010BD00BFC9B200F00303002943D07BB1CB -:1000D0000378002B67D099423CD0431C05E013F80D -:1000E000012B002A5DD08A4234D09A071846F6D1F7 -:1000F00070B4046841EA012646EA064686EA040529 -:10010000A5F10133A4F1013223EA050322EA040236 -:10011000134313F0803F0FD150F8044F84EA0605D3 -:10012000A5F10132A4F1013322EA050223EA040316 -:10013000134313F0803FEFD0037843B1994202D1CB -:1001400006E08B4204D010F8013F002BF9D118468D -:1001500070BC704770475BB10378002BFAD0431C2A -:1001600003E002780133002AF4D099071846F8D149 -:100170000268A2F1013323EA020313F0803F08D1A1 -:1001800050F8042FA2F1013323EA020313F0803F59 -:10019000F6D00378002BDDD010F8013F002BFBD107 -:1001A0007047104670471846704700BF80EA010C40 -:1001B0001CF0030F37D110F0030C20F0030021F0E6 -:1001C000030150F8042B08BF51F8043B0ED08CF00B -:1001D000030C6FF07F434FEACC0C23FA0CFC51F870 -:1001E000043B42EA0C0243EA0C0300BFA2F1013CCB -:1001F0009A4201BF2CEA020C1CF0803F50F8042BFD -:1002000051F8043BF2D04FEA02604FEA1222012873 -:1002100028BFB0EB036F08BF1B0AF4D003F0FF0345 -:10022000000EC01A704710F0030F0AD010F8012B0F -:1002300011F8013B012A28BF9A42F4D0A2EB030037 -:1002400070474DF8045D50F8042B01F0030521F0D0 -:10025000030151F8043B022D26D04DD822F07F45F2 -:10026000B5EB132FA2F1013C2CEA020C0DD11CF0CE -:10027000803C08BF51F8043B0AD185EA0205B5EB82 -:10028000036F0CD150F8042BE8E74FEA13235BE02F -:100290003CF07F4C54D10B784FEA126554E04FEAA2 -:1002A000126503F0FF034FE04FEA0245A2F1013C63 -:1002B0004FEA15452CEA020CB5EB134F18D11CF090 -:1002C000803C08BF51F8043B07D185EA0205B5EB35 -:1002D000034F09D150F8042BE6E75FEA0C4C2FD10D -:1002E0000B884FEA12452FE04FEA03434FEA1245CD -:1002F0004FEA134328E000BF02F0FF05B5EB136F90 -:10030000A2F1013C2CEA020C0DD11CF0803C08BF8C -:1003100051F8043B0AD185EA0205B5EB032F0AD157 -:1003200050F8042BE8E74FEA13630DE012F0FF0FDB -:1003300006D051F8043B4FEA122523F07F4303E037 -:100340004FF0000020BC704705F0FF0203F0FF00F3 -:10035000012828BF904204BF2D0A1B0AF4D0A2EB4B -:10036000000020BC704700BF80EA0102844612F002 -:10037000030F4FD111F0030F32D14DF8044D11F09E -:10038000040F51F8043B0BD0A3F101329A4312F051 -:10039000803F04BF4CF8043B51F8043B16D100BF2A -:1003A00051F8044BA3F101329A4312F0803FA4F1BB -:1003B00001320BD14CF8043BA24312F0803F04BF42 -:1003C00051F8043B4CF8044BEAD023460CF8013BAF -:1003D00013F0FF0F4FEA3323F8D15DF8044B704759 -:1003E00011F0010F06D011F8012B0CF8012B002A97 -:1003F00008BF704711F0020FBFD031F8022B12F086 -:10040000FF0F16BF2CF8022B8CF8002012F47F4F40 -:10041000B3D1704711F8012B0CF8012B002AF9D148 -:10042000704700BF20F0030110F00300C0F100008E -:1004300051F8043B00F1040C4FEACC0C6FF00002C1 -:100440001CBF22FA0CF213434FF0010C4CEA0C2CA7 -:100450004CEA0C4CA3EB0C0222EA030212EACC1287 -:1004600004BF51F8043B0430F4D0C2F1000102EAA9 -:100470000102B2FA82F2C2F11F0200EBD200704711 -:10048000002A3FD040EA010313F00303F0B425D162 -:10049000032A23D904680D68AC421FD1043A33D033 -:1004A000A4F1013525EA040414F0803F2FD1071D83 -:1004B0000D1D0DE057F8043B0E68A3F10134B34263 -:1004C00024EA03040AD1043A1ED014F0803F1BD161 -:1004D000032A2946384605F10405EBD803780C7841 -:1004E000013A9C420BD17AB114B90DE062B173B1FB -:1004F00010F8013F11F8014F013AA342F6D0181B42 -:10050000F0BC7047104670470020F0BC704718469A -:10051000F6E700BFB1B10378B3B10144431C99427F -:1005200014D010B41A785C1C32B1A142234606D014 -:100530001A785C1C002AF8D1181A10BC7047081AE7 -:1005400010BC70470846704718467047081A704735 -:100550002DE9F0410F46904604F098FC04460D4604 -:10056000B8F1000F11D0C7F30A53C3F16B03002B8E -:100570000BDD00241B0503F17F5505F540152246D0 -:100580002B46FDF7FFFE04460D4620462946BDE8F2 -:10059000F0810000000000002DE9F04F1C46002310 -:1005A000A3B0074620460E4607921E9304F0AEF80D -:1005B00005460068FFF736FF0021002283463346D8 -:1005C000CDE904121D961A4613F801ABBAF12D0FAE -:1005D00000F2F680DFE81AF05A00F400F400F400AC -:1005E000F400F400F400F400F400C600C600C600F5 -:1005F000C600C600F400F400F400F400F400F400B7 -:10060000F400F400F400F400F400F400F400F4004A -:10061000F400F400F400F400C600F400F400F40068 -:10062000F400F400F400F400F400F400F4006700B7 -:10063000F400C3005A464846FFF722FF86460028CA -:1006400040F05E831D9B724603EB0B011D9113F876 -:100650000B30302B05D101311D910B780132302B3D -:10066000F9D0A3F13101082940F2BD85652B40F096 -:100670003F8300234FF0010A1D4698460A93002A43 -:1006800040F04F81099B002B40F04B81079B0BB141 -:10069000079B1E604FF0000A4FF0000B5046594672 -:1006A00023B0BDE8F08F0023089302F10109CDF8D3 -:1006B000749092F801A0BAF1000FE7D0BAF1300FB0 -:1006C00000F0858000230993AAF13003DAB2092AE9 -:1006D0002968AFD800254846A8462C4601301D9011 -:1006E000082C90F800A008EB8802CABF05EB85052E -:1006F00003EB420803EB4505AAF13003DAB2092AFD -:1007000004F10104EAD95A46FFF7BAFE864658B307 -:1007100000225346964692460A94652B6ED0452B8E -:100720006CD00021002C40F0B9801AB9099A002A37 -:1007300000F086824FF0000A4FF0000B079A0AB1D2 -:100740001D9B1360089B002BA8D051460BF1004362 -:100750008A469B465046594623B0BDE8F08F012398 -:100760000893A2E71D932EE71D9B0A9403EB0B024F -:100770001D92024613F80B30A3F13001092900F253 -:100780003482531C8A46DDF874C0002900F0878645 -:10079000012B9E4400F08086224405E04FEA400889 -:1007A00093421C4600F08284082C04F1010308EBFC -:1007B0008800F3DD102BDCBF05EB85056D00EFE74E -:1007C0000023BAF1300F914608937FF47BAF99F87C -:1007D0000130582B00F00C82782B00F009824B4638 -:1007E00001331D9393F800A0BAF1300FF8D0994669 -:1007F000BAF1000F9ED00123099365E7002C3FF466 -:100800003EAF1D9E731C1D9373782B2B00F00F823F -:100810002D2B00F012824FF0000BA3F130010929BB -:1008200000F28180302B05D11D9901311D910B788B -:10083000302BFAD0A3F1310108293FF672AF1D9891 -:10084000A3F1300103460C9001301D905B780D91AF -:10085000A3F1300CBCF1090F0DD801301D9001EB54 -:10086000810103EB410103783039A3F1300CBCF175 -:10087000090FF2D90D910C99401A082800F3298428 -:1008800044F61F600D998142A8BF0146BBF1000FDD -:100890003FF448AF4942002C3FF447AFA1EB0E03B1 -:1008A0000C930A9B40461A46002B08BF22460A9228 -:1008B000FDF7EEFC102CA246A8BF4FF0100A092C41 -:1008C000CDE9040132DC0C9B002B27D040F3798466 -:1008D0000C98162800F39984DDE904233E4901EBC6 -:1008E000C001D1E90001FDF74DFD82468B4625E7A9 -:1008F0001DA83A4903F022FE00283FF4C7AE1D9B15 -:100900001DA8013B36491D9303F018FE10B91D9B2D -:1009100001331D930023334DCDE90435DDE904ABEC -:100920000CE700246DE71D960021FBE62A4B03EB44 -:10093000CA0353E91223FDF725FDCDE9040128463A -:10094000FDF7A6FC02460B46DDE90401FDF764FB5A -:100950000F2CCDE90401B6DD0C9BA4EB0A0A9A44E6 -:10096000BAF1000F40F300831AF00F000AD0DDE95E -:100970000423194901EBC001D1E90001FDF702FD93 -:10098000CDE904013AF00F0A0AD0BAF59A7F40F394 -:10099000D783144B0593222300223B600492BDE7CA -:1009A00000230993CDF8008023460A9A4946384629 -:1009B00003F0DAFF1190002800F0AB8100210C9ABF -:1009C00088468A42C2F10003A8BF0B460D9322EA73 -:1009D000E27312938B46C7E060A4010034A10100CA -:1009E00038A101000000F07FC91A1F29A2EB010203 -:1009F00000F3298201238B400E9300231393AE183A -:100A0000B5422B46A8BF33461444099A1444A34266 -:100A1000A8BF2346002B02DDF61AE41AED1A0D9B3F -:100A2000002B40F0A381002E00F3B9810C9B002B1A -:100A300000F3DC81002C00F3E581002D08DD414648 -:100A40002A46384604F02CF98046002800F0D78169 -:100A50004A461E99384604F099F98346002800F06A -:100A6000CE810026C3684146C660109304F072F937 -:100A7000B042C0F23C84059D00F0018441465846D6 -:100A800004F0DEFA00224FF08043CDE90E01FDF7BD -:100A9000F5FE002800F0C081109B002B00F0E081E3 -:100AA0000023B246AA4CCDE90E34A94B1393A94CAE -:100AB000A94B05EA04069E4200F0F481099B4BB362 -:100AC000B6F1D46F26D8A0A3D3E90023139C5046D7 -:100AD0002146FDF7D3FEC0B150462146FDF72AFF5F -:100AE000002800F0B383FDF7D3FB82461391109BDF -:100AF000002B40F0A683139BCDF860A003F10043C8 -:100B00001993DDE91834CDE90E340F9B03F1D66358 -:100B10009B1B0F93DDE90A01DDE90E4504F0B6F9F0 -:100B200002460B4620462946FDF72CFCDDE90A2348 -:100B3000FDF772FA0C46CDE90401099B23B9854BF8 -:100B400023409E4200F0EA811E99384603F0C0FE21 -:100B50004946384603F0BCFE4146384603F0B8FE2D -:100B60005946384603F0B4FE119C3846616803F0DC -:100B700089FE8146002800F04281DDE904562269A1 -:100B800004F10C01023292000C30CDE90A56FEF756 -:100B900043FF20A81FA9CDE900102A463346384656 -:100BA00004F0F6F91E90002800F002810121384679 -:100BB00003F076FF8046002800F021811F9B002B68 -:100BC000C0F23D810D9A129C9D180999209A5B1ADA -:100BD00013446249013B8B42C2F13602FFF604AF77 -:100BE0000023139301230E9309E74FF0010A94E5C4 -:100BF000089A1EABCDE9003202941FAB584A1DA9DA -:100C0000384603F00BFA10F0070504463FF492ADA6 -:100C1000062D40F06282079A09F10103002A3FF491 -:100C200039AD13604FF0000A4FF0000B36E54FF07E -:100C3000000BB31C1D93B378EFE54FF0010BF8E701 -:100C4000BAF1000F7FF422AD493B252B3FF61EADD4 -:100C500001A252F823F000BFF10801008D06010047 -:100C60008D0601008D0601008D060100210D010099 -:100C70008D0601008D0601008D0601008D06010024 -:100C80008D0601008D0601008D0601008D06010014 -:100C90008D0601008D0601008D0601008D06010004 -:100CA0008D0601008D0601008D0601008D060100F4 -:100CB0008D0601008D0601008D0601008D060100E4 -:100CC0008D0601008D0601008D0601008D060100D4 -:100CD0008D0601008D060100F10801008D0601005E -:100CE0008D0601008D0601008D060100210D010019 -:100CF00000214FF0010A0A910C4688460D460EE588 -:100D0000002253460A92154692469046964614464D -:100D100003E5104B119A0593222304923B60FDE5F5 -:100D20001DA8104903F00AFC00283FF4AFAC1D9B3E -:100D30001B78282B00F0848300230B4CCDE904346E -:100D4000ECE500BFAFF300800000C0FFFFFFDF4114 -:100D50000000F03F0000F07F0000E07F02FCFFFF9A -:100D600044A1010040A101000000F8FF41461A46DD -:100D7000384603F045FF8046002840D001461E9AC1 -:100D8000384603F097FE002839D010901E99384657 -:100D900003F09EFD109B002E1E937FF747AE324658 -:100DA0001E99384603F07CFF1E9000287FF43EAE6B -:100DB0005C46B34B00220593222304923B60DDE99D -:100DC00004AB0146384603F083FD4946384603F03C -:100DD0007FFD4146384603F07BFD1199384603F00C -:100DE00077FD2146384603F073FDA7E44946129A81 -:100DF000384603F005FF814600287FF41BAE5C46B1 -:100E00001E98D6E749462246384603F049FF8146F8 -:100E100000287FF412AEF2E79A4BDDE90E010022C2 -:100E2000FDF7B0FA109B82461391A3B901F100437C -:100E300014901593DDE91434CDE90E3437E6129A97 -:100E40000D9DD41AC1E601218F480E91C31A01FAF3 -:100E500003F31393D3E50246139BCDE91423E9E78B -:100E6000049B002B40F0EE80C5F31303002B4CD104 -:100E7000DDE90E010022854BFDF7F6FC002840F06D -:100E8000F581DDE90E017F4B0022FDF77BFA8246FA -:100E900001F1004313911A901B93DDE91A34CDE957 -:100EA0000E3404E6A5F154730593DDE90423DDE96E -:100EB0000E01CDE9040110461946CDE90E2303F0D9 -:100EC000E5FF02460B46DDE90401FDF75BFADDE9CB -:100ED0000E23FDF7A1F801EA04030A46CDE9040157 -:100EE000DDE90A0104460D46DFF8B4C1CDE9164537 -:100EF000634540F2D780664A914200F0AB814FF0E3 -:100F0000FF33634ACDE904321EE60023614CCDE98C -:100F10000E3400239A465D4B1393C8E5139D50464B -:100F20002946FDF7DFFCFDF7C3F90B4602462946CB -:100F30005046FDF76FF8109B05460E46002B6DD10D -:100F4000049B002B6AD1C4F31304002C66D146A382 -:100F5000D3E90023FDF788FC00283FF4F5AD5C469B -:100F6000DDE904AB1E982CE73FF41AADCAF1000589 -:100F700015F00F020AD0DDE90401474B03EBC20371 -:100F8000D3E90023FDF728FBCDE904012D113FF43F -:100F900007AD1F2D3ADC15F01003099340F0FA81DC -:100FA000002D40F3F481DDE9040100233B4EEA0704 -:100FB00004D5D6E90023FDF7E5F901236D1006F10C -:100FC0000806F4D1002B40F06C82099B002B00F046 -:100FD000DE81DDE90412C2F30A53C3F16B03002B77 -:100FE00011460ADD1F2B40F323820022342B04928A -:100FF00040F347824FF05C7305930022DDE9040162 -:101000000023FDF727FC00283FF4CCAC22234FF04F -:10101000000A3B604FF0000BFFF790BB14A3D3E92D -:10102000002328463146FDF71FFC002897D112A364 -:10103000D3E9002328463146FDF734FC00283FF46D -:1010400083AD8CE7049B012B7FF45FAF002D7FF411 -:101050005CAF5C4622231E983B604FF0000A4FF0C5 -:10106000000BAEE6AFF300809535A094FFFFCF3FB5 -:101070009535A094FFFFDF3F35E5AF350000E03F39 -:101080000000F07F0000E03FE2FBFFFF0000F03FC8 -:10109000FFFFEF7F0000F0BF60A4010070A101001E -:1010A000FFFF9F7C02F15474059446E55C1C082BFD -:1010B00040F3A580102C00F3D780002205EB8505B6 -:1010C00001EB45050CF101031D939CF80130FFF77E -:1010D00053BB44F61F61FFF7D9BB1E9A3AB13521C5 -:1010E00020A803F0D9FF38461E9903F0F1FB013D1B -:1010F000042D06D8DFE805F0180C03111800A84BE2 -:101100000593260742BF059B43F00043059305E482 -:10111000209B0493219B0593F3E74FF0FF336FF07F -:101120000047CDE90437ECE71F9ADDE9201302F20E -:10113000334223F4801343EA025304910593E0E71A -:101140004FEA2A15012D40F31281DDE90401002345 -:10115000DFF870A29B46564615F0010F0BF1010B0C -:101160004FEA650504D0D6E90023FDF70BF901230A -:10117000012D06F10806EFD1002B40F09581059B6B -:101180000AEBCB01A3F154730593DDE90423D1E904 -:101190000001FDF7F7F8824A824E01EA0203B342EA -:1011A000CDE904015DD8A2F15872934240F2D88093 -:1011B0007D4B0593002309934FF0FF330493FFF712 -:1011C000F1BB0C9B13F11602FFF6C6ABDDE904017F -:1011D000764FA7EBC307D7E90023FDF7FDF9824659 -:1011E0008B46FFF7ABBA0021DDF8749088460D46B8 -:1011F000CC4601240A91A3F1300A02F1010E08EB5A -:1012000088080AEB480800225CE70C9EC4F125031D -:10121000B342FFF6A1ABDDE90423644DC4F10F0432 -:1012200005EBC401341BD1E9000105EBC405FDF752 -:10123000A9F8D5E90023FDF7A5F882468B46FFF70C -:101240007DBA5246139BCDE918235AE4584B824687 -:1012500013934CE4DDF828A0BAF1FF3F7FF44FAEC2 -:10126000CDE50592FFF797BB00222BE70023514CF9 -:10127000CDE91A34109B9A464F4B13930DE6109903 -:101280005C46DDE90AAB4D4AC5F31303002973D070 -:10129000934200F09980139B002B73D02B4210D007 -:1012A000DDE90401109B099A002B00F0AC80FFF7E8 -:1012B0004FF902460B4650465946FCF7ADFE8246B2 -:1012C0008B46099B8BB13E4B5046179300231693D8 -:1012D0005946DDE91623FDF755F882468B4621B9BC -:1012E00018B922231E983B606BE51E9869E5109B98 -:1012F00058465C46DDE90AAB002BE2D1DDE9041279 -:101300000029DED1C2F31303002BDAD122F000430F -:101310001B0D1B05B3F1D66FD3D9436913B903690C -:10132000012BCEDD21460122384603F0B9FC4146AF -:10133000044603F00FFD0028C3DDDDE90401099B2D -:101340000A46002B00F08E8021F000431B0D1B0588 -:10135000B3F1D66F00F38680B3F15C7FB3DC79E63E -:1013600001F15473059300230993FFF71BBB4FF062 -:10137000000BDFF850A002E7002B8CD1049B002B60 -:1013800089D1DAE70E9B049A13429AD088E70023AA -:10139000099332E66A23002D09933FF704AE18E65D -:1013A0000000F07F0000A07CFFFFEF7F60A4010041 -:1013B0000000F03F0000E0BF0000E03FFFFF0F0033 -:1013C0000000503938A40100099B04996BB3384BD5 -:1013D0002B40B3F1D46F28D84FF0FF321B0DC3F16F -:1013E0006B0302FA03F399427FF455AF314B9D42F0 -:1013F0004FD02F4B2B4003F580130593002304930C -:10140000DDE904AB5DE7FFF7A3F802460B46504663 -:101410005946FCF7FFFD0022002382468B46FDF76C -:1014200019FA00287FF416AE4BE74FF0FF33DAE7E6 -:101430004FF0FF3202FA03F3049A1A400492DCE5FB -:101440001DA820AA1C4903F091F805287FF474AC6C -:10145000219B43F0FF4343F4E0030593209B049357 -:10146000FFF75CBA124B1340A3F580136FEA1353D6 -:101470006FEA035305934FF0FF330493DDE904ABA8 -:101480001FE74FF0FF32203B02FA03F30B400593B6 -:10149000B3E50131ADD1B3E42346013407E61A4682 -:1014A00010E6CDE9040190E5CDE9040167E600BF4F -:1014B0000000F07FFFFFEF7F58A10100064B30B422 -:1014C0001C68064D636B0A46002B08BF2B4601467D -:1014D000204630BCFFF760B870010420A00504204E -:1014E0002DE9F041214E224D34680A46636B0146D6 -:1014F000002B08BF2B462046FFF74EF805460C464A -:101500002A46284623462146FDF7D6F940BB214608 -:101510002846FDF72FFA20F00048074615494046B7 -:1015200003F0E6FEC8B940461249FDF729FDA0B90F -:1015300024F00044284621464FF0FF320E4BFDF7C1 -:10154000BBF938B9284621464FF0FF320A4BFDF768 -:1015500095F910B1222233681A603846BDE8F0814F -:101560000020BDE8F04103F0E5BD00BF700104209C -:10157000A0050420FFFF7F7FFFFFEF7F2DE9F84FDD -:101580000E468046174699460D4600E025462C46F5 -:101590000A9814F801BBFDF775FF5844417811F023 -:1015A0000801F3D1BBF12D0F57D0BBF12B0F04BFB6 -:1015B00095F801B0AC1CB9F1000F04D0B9F1100FCF -:1015C00050D0CC4605E0BBF1300F55D04FF00A09A2 -:1015D000CC4600290CBF6FF0004E4FF0004E0025A6 -:1015E000BEFBFCF328460CFB13EA05E029D00125DD -:1015F0000CFB002014F801BBABF13002092A05D91D -:10160000ABF14102192A0BD8ABF1370291450FDD3E -:10161000B5F1FF3FEED08342E8D24FF0FF35E9E766 -:10162000ABF16102192A03D8ABF157029145EFDC07 -:101630006B1C0BD001B140420FB14DBB3E60BDE809 -:10164000F88F9245D3DA4FF0FF35D3E72223C8F85D -:101650000030FFB17046661EF0E7AC1C95F801B093 -:101660000121A8E7BBF1300FABD1237803F0DF03F2 -:10167000582B06D0CC46ACE7237803F0DF03582B79 -:101680000AD14FF0100C94F801B0E1460234A0E703 -:101690008646DFE77046D2E74FF00809CC4698E768 -:1016A000084B70B51D68084E6C6B82B0002C08BFEB -:1016B0003446134600940A4601462846FFF75EFF6B -:1016C00002B070BD70010420A00504202DE9F04F88 -:1016D000C3B00C460C9190460F930D9003F018F890 -:1016E000036818461A93FEF79DFEA38919901D06FC -:1016F00003D52369002B00F0388700230DF1C80AB9 -:10170000D146C346CDE91633CDE92633159313935D -:10171000149318931B930A93CDF894A09BF8003070 -:10172000002B00F09780252B5C4602D11AE0252B78 -:1017300003D014F8013F002BF9D1A4EB0B0575B1D0 -:10174000DDE9263201332A44072BC9E900B5CDE98A -:10175000263277DC09F108090A9B2B440A93237887 -:10176000002B77D000234FF0FF301A468DF87730EA -:1017700019460B939846637804F1010B09901F46B4 -:101780000BF1010BA7F12003582B00F27683DFE861 -:1017900013F0D30274037403CE027403740374034E -:1017A000740374037403C102BC02740368034E0320 -:1017B00074036D03B600B600B600B600B600B600FE -:1017C000B600B600B60074037403740374037403A4 -:1017D000740374037403740374033603F70274030D -:1017E000F7027403740374037403F2027403740342 -:1017F000A500740374037403740374037500740305 -:1018000074039A02740374037403740374037403FB -:1018100074037403740374037A012C01F702F70252 -:10182000F70227012C01740374031A0174030301E6 -:10183000A700CA00C5007403DA00740377007403BC -:101840007403DB0225AADDE90C1003F077FC40B934 -:10185000D14681E7279B23B10D9825AA0C9903F067 -:101860006DFC0C9B9B8913F0400F0A9B18BF4FF037 -:10187000FF330A930A9843B0BDE8F08F48F0100890 -:1018800018F0200F00F04A850F9C073424F007035E -:1018900003F10802D3E9004501230F920026099ABB -:1018A0008DF87760013200F00B8428F080020792F7 -:1018B00054EA050240F0BD80099A002A40F0CE8625 -:1018C000002B40F0EF8418F001030E9300F06285C6 -:1018D000302342AA02F8413D1192CBE048F01008B3 -:1018E00018F0200300F00F850F9C073424F0070345 -:1018F00003F10802D3E900450F920023CEE7002050 -:10190000A7F130031BF8017B00EB800003EB4000E4 -:10191000A7F13003092BF5D90B9033E748F02008E5 -:101920009BF800302BE747F630030F9AADF878307C -:10193000131D0F93A04B1468189348F0020800255C -:1019400002237827AAE700250F9A8DF877501368AD -:10195000141D1193002B00F03286099A531C00F0DD -:10196000DA862946119802F0E5FE002800F0D087BB -:10197000119B0995C31ACDE90E34CDF81C8023EADA -:10198000E3739DF8776008931295002E00F08E8027 -:10199000089B0133089389E0002A41F0F1800F9AF7 -:1019A00018F0200F52F8043B0F9240F02C8518F0ED -:1019B000100F40F0298618F0400F00F02586BDF882 -:1019C00028201A80AAE69BF800306C2B03BF9BF8F6 -:1019D000013048F020080BF1010B48F01008CEE66A -:1019E00048F040089BF80030C9E6002A41F0C48066 -:1019F00018F0200F00F00C820F9C073424F007032E -:101A000003F108020F92D3E90045002C75F10003A1 -:101A1000C0F2CC84099B9DF87760013300F0D0843C -:101A200028F08002079254EA05024FF001033FF4C8 -:101A300043AF012B00F04983022B00F0A0835146F5 -:101A400000E01146E20842EA4572E80804F00703A4 -:101A500005461446303354EA050001F8013C01F113 -:101A6000FF32EED107981192C00700F17684AAEBFD -:101A700002030E93099B0E9A9342B8BF1346089334 -:101A80000023129381E7002301210F981E4602686C -:101A90008DF8773009931293031D0F9328AB0891AB -:101AA000CDF81C800E918DF8A0201193079B13F0A8 -:101AB0000203109302D0089B02330893079B279CD4 -:101AC00013F084083FD10B9B089A9D1A002D3ADD34 -:101AD000102D269B29DD4A462146A946DDE90C54F6 -:101AE000102606E0A9F11009B9F1100F02F1080261 -:101AF00018DD013331481031072BCDE92631C2E919 -:101B00000006EFDD25AA2946204603F017FB002832 -:101B10007FF4A7AEDDE92631A9F11009B9F1100F64 -:101B20005246E6DC4D460C4691460133234A2C448E -:101B3000072BCDE92634C9E9002500F369859DF816 -:101B4000776009F1080976B10121269B0C440B440A -:101B50000DF17702072BCDE92634C9E9002100F306 -:101B6000F88209F10809109B6BB10221269B0C44F5 -:101B700001331EAA072BCDE92634C9E9002100F361 -:101B8000F38209F10809B8F1800F00F0E681099BA2 -:101B90000E9A9D1A002D40DD102D269A40F3938554 -:101BA000DFF81C804B4640462146DDE90C94B846E0 -:101BB000102607460BE000BFBCA10100D8A1010020 -:101BC000E8A10100103D102D03F1080315DD0132DD -:101BD0001031072ACDE92621C3E90076F2DD25AAD6 -:101BE0004946204603F0AAFA00287FF43AAEDDE920 -:101BF0002621103D102D5346E9DC99463B460C4604 -:101C00004746984601322C44072ACDE92624C9E9E3 -:101C1000008500F3CB8209F10809079BDE0500F17E -:101C20004281269B0E9A013311991444072B279465 -:101C3000C9E90012269300F3818209F10809079B84 -:101C40005B0731D50B9B089A9D1A002D2CDD102DBA -:101C5000269B1FDDDDE90C87102604E0103D102DCA -:101C600009F1080916DD0133C64A1034072BCDE906 -:101C70002634C9E90026F1DD25AA4146384603F09D -:101C80005DFA00287FF4EDADDDE92634103D102D1E -:101C9000D146E8DC0133BB4A2C44072BCDE926347E -:101CA000C9E9002500F36C83DDE90A3208998A420C -:101CB000ACBF9B185B180A93002C40F09F81002357 -:101CC000D14626932AE5002A40F06A87AE4B18F0E9 -:101CD000200F189340D00F9C073424F0070303F122 -:101CE00008020F92D3E9004518F0010F00F0C380FD -:101CF00054EA050300F0BF8030238DF879708DF829 -:101D0000783048F002080223C8E59BF80030012231 -:101D10002B2134E50F9B1C68181D002C0B949BF89D -:101D200000300F90BFF62BAD60420B909BE048F067 -:101D300001089BF8003022E59BF8003000297FF471 -:101D40001EAD012220211AE5002A40F021878F4B89 -:101D500018F0200F1893BED10F9B18F0100F53F8F6 -:101D6000044B0F9340F01A8318F0400F00F01683D5 -:101D7000A4B20025B8E748F008089BF80030FEE45C -:101D8000002A40F0ED860F9C073424F00706D6E9C0 -:101D9000002323F00044159215461046149308368C -:101DA00021464FF0FF327A4B0F96FCF785FD002855 -:101DB00040F04083284621464FF0FF32744BFCF739 -:101DC0005DFD002840F03683DDE91502179B14996C -:101DD000FCF74AFD002840F02F859DF8776003212D -:101DE0000020CDE908106B4A6B4B472FD8BF1A462D -:101DF00028F0800407940E9112901192C5E5002AF4 -:101E000040F0C28648F0100818F0200F7FF4F4ADBF -:101E10000F9B18F0100F53F8044B0F9340F0C08243 -:101E200018F0400F00F0BC8224B2E517EDE59BF8F6 -:101E300000700BF101002A2F00F07D86A7F130031E -:101E4000092B834600F2608500201BF8017B00EB24 -:101E5000800003EB4000A7F13003092BF5D909906E -:101E600090E49BF8003048F0040888E448F08008CB -:101E70009BF8003083E4022310E5002A40F08C86B2 -:101E8000002F3FF4E7AC002301221E468DF8773087 -:101E90000993129328AB08928DF8A070CDF81C809E -:101EA0000E92119302E6652F40F3B180DDE9150231 -:101EB000179B1499FCF7CEFC002800F082810121C9 -:101EC000269B364A0B440C44072B27942693C9E9DA -:101ED000002100F3EE8309F108091F9B139A279C48 -:101EE000934280F24882269B199A01331A9914442E -:101EF000072BC9E90012CDE9263400F3558309F117 -:101F00000809139B5D1E002D7FF799AE102D269AB0 -:101F100040F39F85DFF888802346102644460D9FB6 -:101F2000DDF8308005E009F10809103D102D40F37F -:101F3000998301321033072ACDE92623C9E90046E7 -:101F4000F1DD25AA4146384603F0F8F800287FF471 -:101F500088ACDDE92623D146E7E70B9B089A9D1A5A -:101F6000002D7FF714AE102D269A40F3B384DFF8CE -:101F700030804B4640462146DDE90C94B846102699 -:101F8000074614E0D8A10100A8A10100BCA10100EE -:101F9000FFFFEF7F9CA1010098A10100709A010052 -:101FA000E8A10100103D102D03F1080315DD0132F9 -:101FB0001031072ACDE92621C3E90076F2DD25AAF2 -:101FC0004946204603F0BAF800287FF44AACDDE920 -:101FD0002621103D102D5346E9DC99463B460C4620 -:101FE0004746984601322C44072ACDE92624C9E900 -:101FF000008500F3438309F10809C8E525AADDE956 -:102000000C1003F09BF800283FF459AE29E4139A12 -:10201000269B012A04F1010403F1010509F10806D8 -:1020200040F387810123119A072DC9F80020CDE9DB -:102030002654C9F8043000F3F982199B01351A9A25 -:102040001C44072DCDE92654C6E9002300F3FA828B -:1020500008366F1C0E970997139FDDE91502179B31 -:102060001499013F06F10809FCF7F4FB002840F041 -:102070001F813C44119B7760099F0133072F336018 -:102080002794269700F3808206F110034E46994666 -:10209000AA1C09921B9A21AB14447260099A2794D6 -:1020A000072A269233607FF7CAADDDE90C1025AA16 -:1020B00003F044F800287FF4D4ABD146279CBEE55A -:1020C000012BCDF81C807FF4B7AC002D08BF0A2C83 -:1020D00080F07D8142AB303403F8414D11930123F0 -:1020E0000E93C7E425AADDE90C1003F027F80028B9 -:1020F0007FF4B7ABD1461F9B279C1BB9139A002ACC -:1021000000F01483269A199901321A980C44072A70 -:102110002794C9E90001269200F3068409F1080911 -:10212000002BC0F23F84139B013211991C44072AF3 -:10213000CDE92624C9E900137FF77FADDDE90C1056 -:1021400025AA02F0FBFF00287FF48BAB279CD14629 -:1021500075E525AADDE90C1002F0F0FF00287FF4F8 -:1021600080ABD146279CFEE425AADDE90C1002F0E5 -:10217000E5FF00287FF475ABD146279C03E5524666 -:10218000DDF860C0230943EA0573280904F00F0154 -:1021900005461C461CF8013002F8013D54EA0503CF -:1021A000F0D1AAEB020311920E9363E425AADDE9B4 -:1021B0000C1002F0C3FF00287FF453ABD146279CDC -:1021C0002BE51F9B002B40F36582DDE91232934221 -:1021D000A8BF1346002B1D460CDD269B119A013328 -:1021E0002C44072B2794C9E90025269300F32A8362 -:1021F00009F10809129B002DA8BF5B1B002B1D468F -:1022000000F38C811F9B139A9342C0F2EE81079AD0 -:10221000D10700F1EA81139A1298D31A151A9D4238 -:10222000A8BF1D46002D0FDD269A119901320144E9 -:102230002C44072AC9F800102794C9F804502692A4 -:1022400000F3348309F10809002DB4BF1D465D1B5E -:10225000002D7FF7F4AC102D269A40F3FA83DFF8B7 -:1022600070862346102644460D9FDDF8308005E039 -:1022700009F10809103D102D40F3F48101321033AB -:10228000072ACDE92623C9E90046F1DD25AA414602 -:10229000384602F053FF00287FF4E3AADDE9262345 -:1022A000D146E7E7099BCDF844A00E93FFF7E2BBC8 -:1022B000002F7FF7EFAE102F40F31A84DFF810865F -:1022C00033462246DDE90D4546464FF01009DDF85C -:1022D000308005E00833103F102F40F3F8810135BE -:1022E0001032072DCDE92652C3E90069F2DD25AA97 -:1022F0004146204602F022FF00287FF4B2AADDE921 -:1023000026525346E7E70F9A52F8044B0F9218F003 -:10231000100200F087800025FFF7C0BA0F9B18F06D -:10232000100F53F8044B0F9374D000250123FFF7CF -:10233000B5BA079AD2073FF575AE01221199072D5C -:10234000C9F80010CDE92654C9F8042000F39D8295 -:102350000233099309F110099CE6302B00F03F810C -:102360003023119A023902F8013CAAEB01030E93C3 -:102370001191FFF77FBB079BDD073FF5B4AD5EE42E -:1023800025AADDE90C1002F0D9FE00287FF469AA25 -:10239000279C89E4CDF844A0FFF76CBB0025A3E49B -:1023A000E517002C75F10003BFF634AB2D26099B11 -:1023B000644265EB450501338DF877607FF430ABFF -:1023C000002D08BF0A2CCDF81C80FFF483AED04648 -:1023D000204629460A220023FCF736FE303208F850 -:1023E000012D2046294600230A22FCF72DFE044633 -:1023F0000D4654EA0503EBD1AAEB0803CDF844805F -:102400000E93FFF737BB0A9A1046D117C3E90001B4 -:10241000FFF784B918F0400F18BFA4B200250123BC -:10242000FFF73CBA18F040031CBF1346A4B20025C6 -:10243000FFF734BA159C22462046149C23462146B9 -:10244000FCF73AFA002840F02E83099A27F020037F -:10245000541C089300F04282472B00F06C8148F432 -:1024600080730793DDE914361D1EB6BF03F10045E6 -:1024700000232D23662F109300F03382462F00F0A7 -:102480007482089B3246452B4FF002002B4600F029 -:102490005881099C23A9CDE90004049120A81FA913 -:1024A000CDE902100D9800F0EBFC672F119040F081 -:1024B000548318F0010F00F06981119B099A9C1850 -:1024C000169A3046179B2946FCF7C4F9002800F0FD -:1024D000D0812346119A9B1A13931F9B1293089B3A -:1024E000472B00F05C81662F40F06081129B002B2F -:1024F000099B40F3F582002B40F0E88218F0010FB1 -:1025000040F0E482129B08930E93109B002B40F046 -:102510007A8109939DF87760FFF737BA102B269AD6 -:1025200040F3EA82DFF8A8832346102644460D9F35 -:10253000DDF8308005E009F10809103D102D40F369 -:10254000DC8001321033072ACDE92623C9E9004691 -:10255000F1DD25AA4146384602F0F0FD00287FF45F -:1025600080A9DDE92623D146E7E740210D98FCF755 -:10257000ABFF0C9B18601861002800F0F582402327 -:102580000C9A5361FFF7B9B825AADDE90C1002F0E7 -:10259000D5FD00287FF465A9DDE9263401330993D0 -:1025A0000DF1D009564675E525AADDE90C1002F0BB -:1025B000C5FD00287FF455A9D146279CA1E4099BBD -:1025C000119E062B28BF062308930E93BE4B099637 -:1025D0000F94CDF81C8012961193FFF7D6B9119B7A -:1025E000AAEB03030E93FFF745BA269A1999013215 -:1025F0001A980C44072A2794C9E90001269200F38F -:102600002C8109F1080906E60A9A1A60FFF786B8D4 -:1026100025AADDE90C1002F091FD00287FF421A924 -:10262000D1469DF87760279CFFF78DBA25AADDE992 -:102630000C1002F083FD00287FF413A9DDE9265475 -:102640005646FAE425AADDE90C1002F077FD0028D1 -:102650007FF407A9DDE926545646FAE4012B7FF4FE -:10266000EBA937E5A0461C4601322C44072ACDE9E8 -:102670002624C9E900857FF7E0AA5FE525AADDE900 -:102680000C1002F05BFD00287FF4EBA8D146279CDC -:10269000FFF77DBA0120269A8C4902440444072A98 -:1026A000CDE92624C9E900103FF71CAD09F108095E -:1026B00023E525AADDE90C1002F040FD00287FF497 -:1026C000D0A8D14609E4DFF80882FFF79BBAB046EC -:1026D0001E466B1C1446099306F10802099B3C44F4 -:1026E000072B2794C6E9008726933FF74DAF0133A8 -:1026F000099302F108091646CCE4A0461C460132B3 -:102700002C44072ACDE92624C9E9008500F33F813E -:1027100009F1080976E511980995FDF783FECDF8D2 -:102720001C80CDE90E040346FFF729B9079AD007AC -:102730007FF585AAE6E4002A134608BF0123099322 -:102740008DE6099900904C1C23A920A804911FA98B -:10275000CDE9021001940D980E9400F091FB1190B8 -:10276000472F40F0E38118F0010F00F0D881119B52 -:102770000E9A462F03EB02047FF4A2AE119B1B7846 -:10278000302B00F069811F9B1C4499E61F9A239B04 -:102790001292119A9B1A1393089B472B06D1129BF6 -:1027A000DA1C02DB099A9A4234DA023F129B8DF856 -:1027B0008470013B002BB4BF2D222B221F93B8BF86 -:1027C000129B8DF88520B8BFC3F10103092B00F3DC -:1027D0000D81302213448DF887308DF8862022AB8E -:1027E00021AA9B1A139A1B93012A13440E9340F3B8 -:1027F00050810E9B199A13440E9323EAE3730893B6 -:102800000023129381E62D2600238DF8776009932B -:10281000FFF7BEB8DDE912318B42C0F2938018F0A9 -:10282000010F00F01081129B199A672713440E9331 -:1028300023EAE373089368E62D231E468DF877306C -:10284000FFF7CDBA25AADDE90C1002F077FC0028CD -:102850007FF407A8D146279CCCE425AADDE90C101B -:1028600002F06CFC00287EF4FCAFD1461F9B279C35 -:10287000D1E4239BA342BFF42DAE30215A1C2392F6 -:102880001970239B9C42F9D824E625AADDE90C1097 -:1028900002F054FC00287EF4E4AFDDE92634013375 -:1028A000564609930DF1D009FFF7F4BB25AADDE9DF -:1028B0000C1002F043FC00287EF4D3AF1F9B139A48 -:1028C000D146279CD31ABFE4D0A10100709A010021 -:1028D000E8A10100DFF8DC82FFF784BB062309933F -:1028E000BDE50320099C23A9CDE90004049120A89B -:1028F0001FA9CDE9021032462B460D9800F0C0FA10 -:102900000E941190041939E700230993FEF73ABF9A -:10291000099B0F9408930E930990CDF81C80129098 -:102920009DF87760FFF731B825AADDE90C1002F0B9 -:1029300005FC00287EF495AFDDE92624D1461F9BD7 -:10294000FFF7EEBB199A139B1344129A0E93002AB9 -:1029500006DC129B0E9AC3F101031A4413460E9231 -:1029600023EAE37308936727CFE50320099C23A993 -:10297000CDE90004049120A81FA9CDE90210324638 -:102980002B460D9800F07CFA0E941190EFE625AAE4 -:10299000DDE90C1002F0D2FB00287EF462AFD146D4 -:1029A000279C2FE45D42103380F2D180DFF804824F -:1029B000234610260D9F444604E009F10809103D06 -:1029C000102D58DD01321033072ACDE92623C9E93D -:1029D0000046F2DD25AA0C99384602F0AFFB00282C -:1029E0007EF43FAFDDE92623D146E8E70DF1930001 -:1029F00001466D4C00E01146A4FB0325ED0805EBF4 -:102A00008502A3EB42023032092D01F8012C2B463E -:102A100001F1FF32EFDC30330239DCB2884202F8D8 -:102A2000014C40F297800DF18601134601E013F846 -:102A3000014B984201F8014BF9D125AB9B1A0DF1DE -:102A400086021344CCE623EAE37208920E936727CA -:102A50005BE5DFF8608107E6169A3046179B29464A -:102A6000FBF7F8FE00287FF48EAE0E9BC3F1010346 -:102A70001F931C4424E5A0461C4601322C44072A1F -:102A8000CDE92624C9E900853CDC09F10809FFF7F6 -:102A90004ABB18F0010312937FF4ABAE0E9B23EAFE -:102AA000E373089331E5149B0321002BB8BF2D235A -:102AB0004FF00000BABF1E468DF877309DF8776062 -:102AC000CDE90810394A3A4BFFF78FB9129B199A92 -:102AD0001344099A1A4422EAE2730E92089314E509 -:102AE0006BB918F0010F0AD1012308930E930CE57E -:102AF0004A46DFF8C080F1E5DFF8B880FFE5199BB2 -:102B00000133E6E725AADDE90C1002F017FB0028E7 -:102B10007EF4A7AEDDE92624D146FFF704BB1F9A59 -:102B2000239B1292119A9B1A139338E60E9B119ACB -:102B300013441C46C4E40F9D9BF801302C68834667 -:102B400044EAE474281D09940F90FEF718BEDFF8DC -:102B5000648092E70DF1860342E6099B0E93FFE540 -:102B60008DF87710FFF70FB94FF0FF320C230A9260 -:102B70000D9A1360FEF77EBE8DF87710FEF738BF12 -:102B80008DF87710FEF70BBF8DF87710FFF73AB985 -:102B90008DF87710FFF7DBB88DF87710FFF770B975 -:102BA0008DF87710FFF792B8CDCCCCCCA4A1010062 -:102BB000A0A10100E8A10100F0B48AB06E4617465A -:102BC000DFF870C004460D46BCE80F000FC6BCE835 -:102BD0000F000FC69CE80300BB1E46F8040B222B17 -:102BE000317023D8691E0846002200E01A46B4FB63 -:102BF000F7F307FB13440AAE344414F8286C1C4660 -:102C000000F8016F531C002CF0D1EC5452B12B444E -:102C1000013411F8016F13F8017D101B84420F700D -:102C20001E70F5DB28460AB0F0BC70470020287003 -:102C3000F9E700BFF8A1010019B1FF2A03D80A7013 -:102C40000121084670478A234FF0FF310360F8E7FF -:102C5000024B13B1024800F079B870470000000041 -:102C6000B13C01002DE9F04F0F46B946344B85B019 -:102C70000390186801F05AFD324B1B68019303F56D -:102C8000A4730293019BD3F848613EB34FF001084F -:102C9000DDF808A07468651E0FD40027013406EB28 -:102CA0008404B9F1000F20D0D4F800314B451CD07A -:102CB000013D6B1CA4F10404F3D1234B73B1D6E99D -:102CC0000032002A34D1002B32D03046CAF800300E -:102CD000FCF7F2FBDAF80060002EDBD1184B186825 -:102CE00005B0BDE8F04F01F023BD73682268013BD9 -:102CF000AB420CBF75602760002AD9D0D6F8881186 -:102D000008FA05F30B42D6F804B008D1904773686F -:102D10005B45B7D1DAF80030B342C9D0B2E7D6F894 -:102D20008C01D4F88010034207D103989047EEE756 -:102D3000B2461E46002EADD1D0E708469047E6E7E2 -:102D40001C0B042020A10100B9F40000002301465F -:102D50001A46184602F06CBA2DE9F04F03690E6965 -:102D600083B0B342C0F28680013E01F1140800F145 -:102D7000140958F8263059F826700133B7FBF3F7D9 -:102D8000B300009308EB030A4B440193002F3BD0A0 -:102D90000023C6461C46CC465EF8042BDCF80050E7 -:102DA0001FFA82FB07FB0B33120C4FEA134B07FB96 -:102DB00002BB9AB2A21AABB21FFA8BF41A44C4EB4C -:102DC000154404EB224492B242EA0442F2454CF824 -:102DD000042B4FEA24444FEA1B43DDD2009B59F8F1 -:102DE00003308BB9019A131F99450CD252F8043C59 -:102DF0004BB9A2F1080302E01A68043B1AB99945DD -:102E000006F1FF36F8D30661044601F0A3FF00285F -:102E10002CDB4D460023013758F8041B28688AB282 -:102E20009A1A0B0C81B20A44C3EB104303EB224302 -:102E300092B242EA0342C24545F8042B4FEA2343CB -:102E4000EAD259F8262009EB86037AB91A1F914570 -:102E50000BD253F8042C42B9083B02E01A68043B39 -:102E60001AB9994506F1FF36F8D32661384603B002 -:102E7000BDE8F08F002003B0BDE8F08F0000000037 -:102E80002DE9F04F1F461646036C99B00446CDE974 -:102E900002674BB10122456C1946AA40C3E90152B1 -:102EA00001F016FD002323643E1EB4BF012300235E -:102EB000259AB8BF26F000461360754BB8BF03963D -:102EC000B34300F0A380DDE90289002200234046DD -:102ED0004946FBF7BFFC074678B10123249A1360EB -:102EE000269B002B00F0BF806A4B269A03F1FF3926 -:102EF0001360484619B0BDE8F08F16AA17ABCDE9AC -:102F00000032204642464B4602F042F8350D8346D9 -:102F100040F09C80DDE91685454405F23243202BC4 -:102F200040F33184C3F140039E40029B05F21240FE -:102F300023FA00F03043FBF7ABF90122013D0A927E -:102F4000A1F1F8710022544BFBF764F84AA3D3E9CE -:102F50000023FBF717FA4AA3D3E90023FBF75CF839 -:102F6000064628460F46FBF7A3F947A3D3E90023FB -:102F7000FBF708FA02460B4630463946FBF74CF899 -:102F800006460F46FBF7AEFC0022059000233046B4 -:102F90003946FBF769FC002840F07782059E162E23 -:102FA00000F26182DDE902233C4901EBC601D1E96F -:102FB0000001FBF777FC002800F0E183731E059306 -:102FC00000230D93A8EB0505B5F1010A00F1578226 -:102FD00000230693059B002BC0F248829A440C9371 -:102FE00000230B93229B092B60D8052B40F3C98348 -:102FF0000026043B2293229B023B032B00F2A18478 -:10300000DFE813F0E603C803F003FC0442F20F7399 -:10301000249A1360029B83B9C6F313066EB9269BEC -:10302000DFF87C90002B3FF464AF09F108034846B9 -:10303000269A136019B0BDE8F08F269BDFF86490E4 -:10304000002B3FF456AF09F10303F0E7C9F3130374 -:1030500043F07F514046A5F2FF350A9741F44011F5 -:10306000DDF858806EE7DFF84090484619B0BDE8BB -:10307000F08F00BFAFF3008061436F63A787D23F3B -:10308000B3C8608B288AC63FFB799F501344D33F57 -:103090000000F07F719A01000000F83F60A4010079 -:1030A00024A3010030A30100709A01004FF0FF3506 -:1030B00001260023CDE9085622932393002114957D -:1030C0006164204601F0DEFB0E2D8146206400F293 -:1030D000FE80002E00F0FB80DDE9022316461F462D -:1030E0000599CDE90E67002940F3E9839B4B01F078 -:1030F0000F020D1103EBC203D3E90012CDE9021256 -:10310000EA0640F1A084964B3946D3E908233046BD -:10311000FBF762FA0327CDE9100105F00F057DB139 -:10312000DDE902018E4EEB0704D5D6E90023FBF75B -:1031300029F901376D1006F10806F4D1CDE9020135 -:10314000DDE90223DDE91001FBF746FACDE90201D2 -:103150000D9B43B1DDE902010022824BFBF784FBAA -:10316000002840F009853846FBF7A2F8DDE9022384 -:10317000FBF708F97C4B0022FAF74EFF089B054647 -:10318000A1F15076002B00F01E84059B1593089B3F -:103190001093DDE90201FBF7A5FB109A6F4B00F1DC -:1031A000300803EBC20353E90212CDE91212FBF718 -:1031B0007FF80B460246DDE90201CDE90256FAF737 -:1031C00029FF099B5FFA88F806460F4609F10105B9 -:1031D000002B00F06384DDE9122300206349FBF734 -:1031E000FBF9DDE90223FAF715FF89F80080324682 -:1031F0003B46CDE90201FBF755FB002840F00E8568 -:1032000032463B4600205749FAF704FF02460B4678 -:10321000DDE90201FBF746FB002840F00985109A22 -:10322000012A50D04A44CDF848A0CDF840B0A0467D -:10323000DDE902ABCDF8089091460EE032463B4600 -:1032400000204849FAF7E6FE52465B46FBF70CFBC6 -:10325000002840F0E6844D452ED0504659460022C5 -:10326000434BFBF78FF80022414B82468B4630469A -:103270003946FBF787F80F460646FBF733FB044653 -:10328000FBF716F802460B4630463946FAF7C2FEFF -:103290003034E4B205F8014B52465B4606460F4611 -:1032A000FBF7E2FA0028C9D0159BDDF840B0DDF845 -:1032B00008904446059339E24446DDF848A0DDF81D -:1032C00040B0DDF80890DDE90E23CDE90223179B1D -:1032D000002BC0F2A980059A0E2A00F3A5801F4B8F -:1032E00003EBC203D3E90023CDE90623239B002B84 -:1032F000C0F2C182DDE90267DDE9062330463946C6 -:10330000FBF76AF9FBF7EEFA8046FAF7D1FFDDE941 -:103310000623FBF737F802460B4630463946FAF7E4 -:1033200079FE089E08F13005012E89F8005002460A -:103330000B4609F101054CD000220D4BFBF722F89A -:103340000022002306460F46FBF784FA002840F0CF -:10335000ED81CDF808B0DDE906AB18E060A401000E -:1033600038A401000000F03F00001C400000E03FD6 -:10337000000024400022C64BFBF704F80022002383 -:1033800006460F46FBF766FA002840F04183524696 -:103390005B4630463946FBF71FF9FBF7A3FA804638 -:1033A000FAF786FF52465B46FAF7ECFF02460B46F9 -:1033B00030463946FAF72EFE08F1300605F8016B63 -:1033C000089FA5EB0906B74202460B46D2D1DDF8AD -:1033D00008B010461946FAF71FFEDDE90623064637 -:1033E0000F46FBF75FFA60B9DDE906233046394640 -:1033F000FBF730FA002800F0998118F0010F00F077 -:10340000958115F8018C05E0994500F03A831D4639 -:1034100013F8018CB8F1390F05F1FF33F4D008F13E -:10342000010883F8008081E1099A002A3DD0229AA0 -:10343000012A40F31282089B03F1FF380B9B43459E -:10344000C0F2E982A3EB0808089B002BC0F20E83B0 -:10345000069A9A440A921A4406920121204601F0E3 -:103460001FFB064626E001230D93ABE500230C93DA -:10347000DDE90532D21A5B4206920B93B2E5C5F143 -:10348000010306934FF0000AA4E5DDF814904846C6 -:10349000FAF70EFF32463B46FBF7DCF900287FF4D3 -:1034A0007DAD09F1FF33059378E5069BDDF82C80AF -:1034B000099E0A930A9900290B460CDDBAF1000F08 -:1034C00009DD5145A8BF5346069AAAEB030AD21A52 -:1034D0000692CA1A0A920B9B7BB1099A002A00F045 -:1034E0009082A3EB0807B8F1000F40F09A8159468B -:1034F0003A46204601F084FB83460121204601F034 -:10350000CFFA0C9A0746002A40F02581229B012B16 -:1035100040F36B810120504410F01F0000F019812E -:10352000C0F12003042B40F3B483C0F11C00069BC0 -:103530008244034406930A9B03440A93069B002B90 -:1035400005DD59461A46204601F0AAFB8346BAF12A -:10355000000F05DD39465246204601F0A1FB074623 -:103560000D9B002B77D1089B002B40F30582099B14 -:10357000002B00F089800A9B002B00F367810C9BD5 -:10358000002B40F0CA81B246C846029B089A03F05D -:1035900001030A9309F1FF331A440692CDF82C90E7 -:1035A00039465846FFF7D8FB3146814609905846C0 -:1035B00001F0D0FB524602903946204601F0E6FB6E -:1035C000C268054609F130090146002A40F0CF8162 -:1035D000584601F0BFFB29460890204601F078F9D3 -:1035E000089A32B9229B23B90A9B002B00F024834E -:1035F000229A029B002BC0F2198205D1229B1BB993 -:103600000A9B002B00F01282002A08F1010500F34A -:103610002182069B88F80090434500F02C82594691 -:1036200000230A22204601F05DF9564583463146C3 -:103630004FF000034FF00A02204600F0928101F0A3 -:1036400051F95146064600230A22204601F04AF964 -:10365000A8468246A4E73946584601F07BFB00287D -:1036600081DA059D594600230A222046013D059531 -:1036700001F038F9099B8346002B40F0EE82149B41 -:10368000002B40F3F98208934D46DDF8208008E0D6 -:1036900000002440594600230A22204601F022F966 -:1036A000834639465846FFF757FB303005F8010B83 -:1036B000A5EB09029045EDDC002203460292594633 -:1036C00001222046089301F0EBFA3946834601F0C7 -:1036D00041FB002815F8012C089B11DC05D1DB0704 -:1036E0000ED402E015F8022C1D46302A05F1FF33F6 -:1036F000F8D00BE0994500F04C811D4613F8012CE1 -:10370000392A05F1FF33F5D001321A7039462046C7 -:1037100001F0DEF856B1029921B1B14202D0204643 -:1037200001F0D6F83146204601F0D2F8594620463D -:1037300001F0CEF80022059B2A70249A0133136011 -:10374000269B002B3FF4D5AB48461D6019B0BDE861 -:10375000F08F1C20EBE60146204601F051FA229B37 -:103760000746012B40F3D48000230C933B6907EB01 -:103770008303186901F044F9C0F12000CBE60D90F5 -:1037800020E4012637E4C3F12006029B03FA06F089 -:10379000FFF7D1BB00230993059B239A134414938D -:1037A0000133012B1F46B8BF012708930021172FB3 -:1037B000089D61647FF785AC012204235B0003F15F -:1037C0001400B842114602F10102F7D9616478E4AD -:1037D00000230993239B002B40F3E280149308936A -:1037E0001F46E3E701230993F4E7029B002B7FF4D4 -:1037F00091AEDDE90212C2F31303002B40F0998170 -:1038000022F000431B0D1B052BB1069B0AF1010A98 -:103810000133069301230C9A0C93002A3FF47AAEED -:10382000A4E742463146204601F0EAF95A460146ED -:103830000646204601F03EF980465946204601F0F2 -:1038400047F8C346002F3FF458AE50E631461A46BB -:10385000204601F025FA064691E60A9A002A00F071 -:103860005D81069A03F233430A921A449A440692FF -:10387000DDF82C80F1E5089B002B3FF73BAD40F0D5 -:10388000F881DDE906010022B54BFAF77BFDDDE9A1 -:103890000223FAF7FDFF089F3E46002874D131232A -:1038A000059A89F800300132059209F1010539467F -:1038B000204601F00DF8002E7FF434AF36E700F01B -:1038C0004881DDE90E01059B5D42A64B05F00F0224 -:1038D00003EBC203D3E90023FAF754FD2D11CDE920 -:1038E000020100F0CE81002302279F4EEA0705D592 -:1038F000D6E90023FAF746FD01231F446D1006F1B7 -:103900000806F3D1002B3FF423ACCDE902011FE4FC -:10391000029B002B3FF46DAF26E77168204600F054 -:10392000B1FF0546336906F10C0102339A000C30F1 -:10393000FCF772F829460122204601F0B1F98246CF -:1039400022E6002520466564294600F09BFF4FF0E3 -:10395000FF33149308930123814623952064099330 -:10396000B5E400F0BFFFA8460646824618E62046AA -:1039700000F0AEFF01223CE6229B022B7FF7F7AD61 -:10398000089B002B00F0D780239B4D46DB4305931B -:103990008DE73123059A89F8003001320592B5E6AA -:1039A000012523950895FFF789BB3846FAF780FC77 -:1039B000DDE90223FAF7E6FC00226C4BFAF72CFB58 -:1039C0000546A1F15076DDE902010022644BFAF7C9 -:1039D00021FB2A463346CDE90201FAF763FF074689 -:1039E000002858D1DDE902012A4606F10043FAF722 -:1039F0003BFF00283FF467AC3E46C5E7012309932F -:103A0000CAE659460B9A204601F0FAF8834674E557 -:103A1000DDF808B08AE60B9B0C9AA8EB03031A4466 -:103A2000CDF82C800C924FF000080DE5002A4B4693 -:103A300008F10105DDF82C9000F3C580029688F8A6 -:103A40000030564662E6DDE90E230227CDE9102359 -:103A5000FFF765BB4B46392BDDF82C9000F0C58095 -:103A60000133029688F8003056464FE6069B089AC6 -:103A70009B1A0A93F1E44B460296DDF82C905646C9 -:103A80001DE6302389F80030059B15F8018C0133C1 -:103A900005934B46C3E400273E4600E7DDE91223C9 -:103AA000DDE90201FAF76EFC109BCDE90201012B62 -:103AB00089F8008021D0109BCDF840A04B449A4655 -:103AC00000222B4B30463946FAF75CFC0F4606467F -:103AD000FAF708FF8046FAF7EBFB02460B46304642 -:103AE0003946FAF797FA08F1300805F8018B554581 -:103AF00006460F46E4D1DDF840A00022DDE90201D0 -:103B00001C4BFAF789FA32463B46FAF7ADFE00281D -:103B100071D0159B059315F8018C7BE4169B069AD2 -:103B2000C3F136030A921A449A440692DDF82C80B7 -:103B300093E400236FE639460522204600F0D2FECA -:103B400001460746584601F005F900283FF7A7AEA1 -:103B50001AE7DDE90E230227CDE90223FFF7F8BAC1 -:103B60000000144060A4010038A4010000001C40C3 -:103B7000000024400000E03F089B002B3FF415AFFD -:103B8000149B002B7FF79FABDDE902010022454B20 -:103B9000FAF7F8FB05460E46781CCDE90256FAF70F -:103BA00087FB2A463346FAF7EDFB00223E4BFAF735 -:103BB00033FA059A149B013A05461592A1F1507605 -:103BC0001093FFF7E6BA594601222046029301F00E -:103BD00067F83946834601F0BDF80028029B36DDC0 -:103BE000392B02D0099B313328E73922029688F815 -:103BF0000020564684E5DDE9022300202B49FAF730 -:103C000009FA32463B46FAF74DFE10B9FFF75BBBA7 -:103C1000154615F8013C6A1E302BF9D0159B05930B -:103C200084E54346A0461C46DDF840B0DDF8089028 -:103C3000159B0593FFF7EEBB4B46392BDDF82C9017 -:103C400008F10105D1D0029A002ACBDCF6E67FF418 -:103C5000F5AEDA077FF5F2AEC2E7314600230A225D -:103C6000204600F03FFE149B0646002B0CDD089317 -:103C700081E400273E4687E6229B022B0EDC149B44 -:103C800001E50227FFF764BA229B022B06DC149B96 -:103C9000EDE73FF453ACC0F13C0048E4149B0893BB -:103CA0006EE600BF0000244000001C400000E03F22 -:103CB00038B50A4C0A4D641BA4100AD004F18043A5 -:103CC000013B05EB8305013C55F804399847002C6E -:103CD000F9D1BDE8384001F037BB00BF2C0B042000 -:103CE000280B0420F8B50C46234F0646FBF754FF7B -:103CF000BB68C4F57E615D680F3125F0030529447A -:103D000021F47F6121F00F01A1F58054B4F5805FAB -:103D100007DB00213046FCF70DF9BB682B449842C5 -:103D200004D03046FBF73EFF0020F8BD614230462C -:103D3000FCF700F901300DD0104BBA6819682D1B43 -:103D400045F001053046091B55601960FBF72AFF55 -:103D50000120F8BD00213046FCF7ECF8BA68831A60 -:103D60000F2BDEDD064943F001030C680349001BFD -:103D700053600860D5E700BF0C0704201815042025 -:103D8000140B0420002953D0F8B50D460646FBF766 -:103D900003FF55F804CC714FA5F108012CF0010385 -:103DA000CA18B8685468904224F0030453D01CF039 -:103DB000010F546002EB04003BD155F808CC406879 -:103DC000A1EB0C018D6807F1080E7545634400F006 -:103DD000010075D0D1F80CC0C5F80CC0CCF8085063 -:103DE00060B343F001024A60CB50B3F5007F50D37B -:103DF0005A0A042A70D89A0902F13905ED0002F135 -:103E000038007C197A59083C944278D0506820F0E8 -:103E10000300984271D992689442F7D1E368C1E9EE -:103E2000024330469960E160BDE8F840FBF7BABE56 -:103E30007047406800F001000028D2D19068484DDA -:103E40002344A84243F0010462D0D268C26090606B -:103E50004C60CB50C9E71CF0010F234407D155F843 -:103E6000084C091BD1E902022344C26090603D4A1C -:103E700043F00100126848609A42B96004D83A4B96 -:103E800030461968FFF72EFF3046BDE8F840FBF7D3 -:103E900089BE0122DB087C689810134482402243CB -:103EA00007EBC30057F833400838C1E902407A6095 -:103EB000304647F83310E160BDE8F840FBF772BECA -:103EC000002845D1D2E90202234443F00104C26034 -:103ED00090604C60CB50D7E7142A08D9542A1ED8DA -:103EE0001A0B02F16F05ED0002F16E0089E702F195 -:103EF0005C05ED0002F15B0083E714468EE70123C9 -:103F00008210786803FA02F202437A60234686E759 -:103F1000C7E90411C1E902004C60CB50B4E7B2F527 -:103F2000AA7F06D8DA0B02F17805ED0002F17700DE -:103F300067E740F25450824206D89A0C02F17D05A0 -:103F4000ED0002F17C005CE74FF47E757E2058E7BF -:103F500043F001004860136096E700BF0C0704209F -:103F600014070420180B0420481504202DE9F04103 -:103F700004694B119C422EDD00F1140C11F01F015D -:103F800067460CEB84040CEB83052AD05CF82320F5 -:103F90002E1DB44222FA01F2C1F1200813D900F11A -:103FA000100E336803FA08F313434EF8043F56F833 -:103FB000042BA64222FA01F2F3D3631B053B23F044 -:103FC000030304339C44CCF8002012B30CF1040327 -:103FD000DA1B921018E00023036100234361BDE85F -:103FE000F081AC42F7D92B4600F1100253F8041BC4 -:103FF0009C4242F8041FF9D8EA43224422F003020B -:1040000004320CEB02039210BB420261E5D0BDE822 -:10401000F0816346DA1B9210F6E700BF2DE9F04FFE -:104020008DB007901898894604920A9300F06EFBB1 -:1040300003684FF0000818461C460593FCF7F2F998 -:10404000D9F8003021189A7811F8011C302A039011 -:10405000019140F0838103331C4613F8012B08F1D2 -:104060000108302AF8D0BC4EB35C002B00F0EF8082 -:104070004FF0000A55462378F35C274623B117F822 -:10408000013FF35C002BFAD1039A05993846FCF7FF -:10409000F7F9002800F092803B78002D40F09280E4 -:1040A000502B029500F09480702B00F091803D46DB -:1040B000C9F80070BAF1000F40F0B6802B1B013B2D -:1040C000072B514604DD5B10072B01F10101FADCDF -:1040D000079800F0D7FB0346AC4203F114030690A7 -:1040E000089380F0AD814FF000089B46039BC146CA -:1040F000C3F10103099312E0B8F1200F00F09D8095 -:10410000424608F1040815F8013C5546F35CA54207 -:1041100003F00F0303FA02F349EA030918D915F86B -:10412000013C019A05F1FF3A93420BF10407E3D1F8 -:10413000099B5344A342DFD31846039A05990B9376 -:10414000FCF79EF90B9B0028D6D11D46A542E6D868 -:10415000089BCBF80090FF1A069BBF101F614846D2 -:1041600000F04EFC049B7F011E683F1AB74200F32B -:10417000D480C0F208810025049B029A9B68934278 -:10418000C0F22F810498029A436893426FDD9C1A13 -:10419000A64200F3A080C268022A00F08881032AA8 -:1041A00000F08081012A00F05B81DDE9061000F05B -:1041B0008FFB0023169A502413603AE0002D00F084 -:1041C000D4803B78ED1BAA00502B02927FF46CAF99 -:1041D0007B782B2B00F09F802D2B63D000257A1C41 -:1041E000F35C591E18293FF662AF5178103B715CA1 -:1041F0000132481E18280AD812F8010F03EB830376 -:1042000001EB4303315C103B481E1828F4D905B17B -:104210005B423D4617460299C9F800701944029165 -:10422000BAF1000F3FF44AAFB8F1000F0CBF0624FB -:10423000002420460DB0BDE8F08F5B46002243F815 -:10424000089BBB4691461F464FF004085BE7039D61 -:1042500005992A462046FCF713F938B327462278F9 -:10426000502A7DD0702A7BD0C9F80070DCE7012489 -:1042700065B1049BDB68022B00F0BC80032B00F0CF -:10428000BD80012B00F0058144F01004169B2046F0 -:104290001A46069B13600A9B1A46029B13600DB0D8 -:1042A000BDE8F08F0125BB78BA1C99E7625D6719FC -:1042B000B35C002BD4D0302A3C4604D114F8013F23 -:1042C000302BFBD0F35CB3FA83FA3D464FEA5A1A1F -:1042D0004FF00108D1E6671E002D40F0B980002F95 -:1042E00040F0B880012308997A1151F8222007F094 -:1042F0001F0703FA07F717422146069818BF45F033 -:104300000205FFF733FE049B361B5B680224029311 -:10431000002DBBD0ADE70025C5E7BF1B3946069889 -:1043200000F0DEFE054678B101257A1E089953118A -:1043300051F8231002F01F0305FA03F30B4203D0D8 -:10434000AA4200F3B8800225029B39463B440698F6 -:104350000293FFF70BFE0FE734A301009C1C82E6DB -:1043600000234FF0010A029332E7039ABB5CBD18A9 -:10437000F25C2F46002A3FF425AF17F8013FF25CAC -:10438000002AFAD11EE7F71B06993A46079800F073 -:1043900087FC029B0690DB1B0293034614330893B1 -:1043A0000025E9E6069B9B689D4280F294802B469F -:1043B0004FF0010E069803EB0E02022C00EB830374 -:1043C0000261C3F814E07FD0954234DA01210698E7 -:1043D000FFF7CCFD049B029A9B6801329342029244 -:1043E0002CDADDE9061000F073FA0023169AA324F4 -:1043F00013601EE7179BC3F101031793179B002B54 -:104400003FF442AF069ADDF820C015690020AF00E6 -:1044100063460CEB070103E0994243F8040CC1D951 -:104420009E4653F8042BB2F1FF3FF5D00132022C27 -:10443000CEF8002048D016F01F0668D1212425E7C9 -:10444000069BDDF820B04FF0000903F118077FE666 -:10445000012547E73946069800F042FE054641E748 -:10446000A6427FF4A2AE012E08DD711E069800F070 -:1044700037FE00283FF499AE049B5B6801220A993D -:1044800062240B60069B08991A610A60169A1360F1 -:10449000CFE6AA077FF5F8AE089B1B681D43EB0724 -:1044A000B0D4F1E6179A002A3FF47FAEE6E7179AF8 -:1044B000002AE3D079E6B91E069800F011FE002824 -:1044C0003FF441AF03253FE7049B1B68013BB34228 -:1044D00027D02224DAE6069BDDF81C90596848466E -:1044E000013100F0CFF9804606990C300B690C3190 -:1044F00002339A00FBF790FA0699484600F0E8F973 -:10450000CDF8188008F1140CD8F8103050E7674443 -:1045100057F8040C00F074FAC6F12006B0428DDAA8 -:1045200054E7012372115CF8222006F01F06B34005 -:10453000134214BF21242224A8E600BF30B404682B -:10454000013408E014F8013BA3F14105192D98BF8F -:104550002033934207D111F8012B002AF2D10460D5 -:10456000012030BC7047002030BC70472DE9F04F6F -:104570000B6885B0591113F01F0303934FF000032C -:1045800002EB810918BF09F10409019049F8043CC4 -:104590001F469A461C46019BA9F10406D3F80080E9 -:1045A000CDF8089098F80130B4463146DFF858E16C -:1045B000B346914608F10100E3B11EF80350002D07 -:1045C00040D1202B56D854450DDD614501D2072F2F -:1045D0005ADD49454BD90023A1F1040C41F8043CB4 -:1045E000A24661461F46804698F8013008F1010056 -:1045F000002BE2D14A465E46DDF80890002C3FD001 -:10460000614501D2072F6CDD914254D9134651F810 -:10461000040B8E4243F8040BF9D2002143F8041B2B -:104620009E42FBD259F8041C21B140E056F8043DEB -:10463000002B3CD1B242F9D101230520136005B013 -:10464000BDE8F08F0137082F04F1010407DC0A6888 -:10465000120105F00F0515430D608046C4E749457A -:10466000C1D90022012741F8042C0439F1E70827B9 -:104670008046B9E7292B4A465E46DDF8089029D0E6 -:10468000042005B0BDE8F08F0D46C7F108039B007C -:104690000A68C3F120086F6807FA08F6164327FA7C -:1046A00003F22E6045F8042FAC45F4D891E70520BD -:1046B00005B0BDE8F08F039B59F8041C002BB3D064 -:1046C0004FF0FF30C3F1200320FA03F3194049F8FB -:1046D000041CA9E7019808F102030360002C8FD1A4 -:1046E000CEE70846C7F108039B000D68C3F1200E12 -:1046F000476807FA0EF42C4327FA03F5046040F8E4 -:10470000045F8445F4D87FE734A30100F03070479C -:10471000044A054B1268506B002808BF1846F03059 -:10472000704700BF70010420A0050420704700BF3F -:10473000704700BF830770B4CDB23DD0541E0AB39A -:104740000378AB421FD0431C05E014F1FF3419D3AA -:104750000278AA4217D013F0030F184603F10103A1 -:10476000F3D1032C11D84CB30378AB420BD00444E3 -:10477000431C02E00278AA4205D09C42184603F18D -:104780000103F7D1002070BC704706460A0292B2BE -:104790002A4342EA0242336830465340A3F10131D2 -:1047A00021EA030313F0803F06F10406DCD1043C48 -:1047B000032C3046EFD8D6E71446D2E72046E2E78E -:1047C0008842F0B40DD98B1883420AD9841832B1CB -:1047D000224613F8014D994202F8014DF9D1F0BC7F -:1047E00070470F2A48D940EA01039B0746D1A2F13E -:1047F00010031B0901F1200707EB031701F1100457 -:1048000000F1100554F8106C103445F8106C54F891 -:104810001C6C103545F81C6C54F8186C45F8186C75 -:1048200054F8146CBC4245F8146CEBD1013302F01F -:104830000F051B01032D1944034421D90F462C46B3 -:104840001E1F57F804CB043C032C46F804CFF8D8BD -:104850002C1F24F0030404342344214402F00302F7 -:10486000002ABCD0013B0A4411F8014B914203F8E5 -:10487000014FF9D1F0BC70470346F1E70346F1E779 -:104880002A46EDE7C36C70B505460C464BB153F8AC -:10489000240080B1026843F824200023C0E90333D8 -:1048A00070BD21220421FAF75DFD0346E86400286B -:1048B000EDD1002070BD012101FA04F6721D2846D9 -:1048C0009200FAF74FFD0028F3D0C0E90146E4E773 -:1048D00031B1C36C4A6853F82200086043F82210D3 -:1048E000704700BFF0B54FF0000C0C4605460E694E -:1048F00083B001F1140738680CF1010C81B202FB9E -:104900000133010C180C02FB01019BB203EB0143C4 -:10491000664547F8043B4FEA1143ECDC3BB1A26823 -:10492000B24207DD04EB8602013653612661204660 -:1049300003B0F0BD6168284601310193FFF7A2FF83 -:104940000746226904F10C01023292000C30FBF799 -:1049500063F8EA6C6168019B52F82100206042F81C -:1049600021403C46DEE700BF2DE9F843234C1E46BC -:10497000083384FB034CDB17C3EB6C0CBCF1010F59 -:1049800007460C469046089D35DD012300215B005B -:104990009C4501F10101FADC3846FFF773FF012362 -:1049A000B8F1090FC0E9043521DD04F109094D46CC -:1049B000444415F8013B0146303B0A223846FFF7D4 -:1049C00091FFAC42F5D109EB0804083C46450CDDEB -:1049D000A6EB0806264414F8013B0146303B0A22A8 -:1049E0003846FFF77FFFA642F5D1BDE8F8834FF0C8 -:1049F00009080A34EAE70021CEE700BF398EE33820 -:104A0000020C12040346C2B90304102013F07F4FB6 -:104A100004BF1B02083013F0704F04BF1B010430A9 -:104A200013F0404F04BF9B000230002B04DB5B00FF -:104A300001D501307047202070470020E6E700BF15 -:104A40000368014613F0070207D0DA071FD498075E -:104A50001FD55B080B600120704798B2A0B11046CB -:104A600013F0FF0F04BF1B0A08301A0704BF1B090D -:104A700004309A0704BF9B080230DA0702D45B08AF -:104A80000BD001300B6070471B0C1020E8E70020B2 -:104A900070479B080B60022070472020704700BFC2 -:104AA00010B50C460121FFF7EDFE0122C0E90424F8 -:104AB00010BD00BF2DE9F04F0D69146985B0A54206 -:104AC0000E46914604DA2A464E4625468946144645 -:104AD000B36805EB040871684345B8BF0131FFF7BF -:104AE000D1FE00F1140B0BEB880AD345019005D2DF -:104AF0005B46002243F8042B9A45FBD809F11403C6 -:104B000003EB840406F11402A34202EB850E62D289 -:104B1000A4EB0904153C24F003042344CDE902A8C6 -:104B200009F1100990469A4605E0090C2CD1CA45B6 -:104B30000BF1040B4DD059F8041F1FFA81FCBCF196 -:104B4000000FF2D047465E46002100E006463046A0 -:104B500057F8042B346893B2A5B2120C0CFB035324 -:104B6000240C0CFB02420B4402EB13419BB243EAC0 -:104B70000143BE454FEA114140F8043BE6D871605D -:104B8000D9F80010090CD2D0DBF8003040461E46A0 -:104B90005D46002200E025462C460788360C01FBC6 -:104BA00007669BB2324443EA024344F8043B50F8A0 -:104BB000043B6E681B0CB7B201FB0373864503EB25 -:104BC00012434FEA1342E6D8CA456B600BF1040B5F -:104BD000B1D1DDE902A8B8F1000F0BDD5AF8043CB1 -:104BE000AAF1040A1BB105E05AF8043D13B9B8F163 -:104BF0000108F9D10198C0F8108005B0BDE8F08F28 -:104C000012F003032DE9F041144607462ED10D465C -:104C1000A4101CD0BE6C96B3E3074FF0000806D476 -:104C2000641014D03068A8B10646E307F8D53246C0 -:104C300029463846FFF73EFFB5B16A68FB6C641041 -:104C400053F82210296043F822500546EAD128463D -:104C5000BDE8F081324631463846FFF72BFF306021 -:104C6000C0F800800646E0E70546D9E70B4A013B5D -:104C700052F823200023FFF735FE0546C8E701213F -:104C80003846FFF7FFFD40F2712101220023C0E901 -:104C900004210646B8640360BEE700BF28A50100F2 -:104CA0000B692DE9F047541104EB03088B6808F1F8 -:104CB00001059D420E4691460746496804DD5B00AA -:104CC0009D4201F10101FADC3846FFF7DBFD002CC3 -:104CD00000F114033CDD002203EB840143F8042BB4 -:104CE0008B42FBD1346906F1140319F01F0903EB61 -:104CF000840C25D0C9F120024FF0000A00E0714673 -:104D00008E461C6804FA09F444EA0A044EF8044B7F -:104D100053F8044B634524FA02FAF0D3C1F804A017 -:104D2000BAF1000F01D008F10205FB6C7268013D79 -:104D300053F822100561316043F82260BDE8F08726 -:104D4000043953F8042B9C4541F8042FF9D8ECE7BB -:104D50001946C7E730B40B6905460069C01A0FD180 -:104D60009B001435143119442B4401E09D4207D2B5 -:104D700053F8044D51F8042D9442F7D002D301208A -:104D800030BC70474FF0FF30FAE700BF2DE9F84F15 -:104D90000C6913698946E41A002C924601F1140744 -:104DA00002F1140B14D19B00FA185B4401E0BA42E3 -:104DB00062D952F8045D53F8041D8D42F7D009D230 -:104DC0003A464B465F46D14693469A46012401E057 -:104DD000F6DB0024D9F80410FFF754FD5E464FF0CF -:104DE0000008D9F810C0DAF810303D46C4600BEB6B -:104DF000830E07EB8C0700F1140455F8049B56F85A -:104E0000042B1FFA89F343441FFA82F8120CA3EB18 -:104E10000803C2EB194202EB23429BB243EA02436E -:104E2000B64544F8043B4FEA2248E6D8AF4217D9CA -:104E3000A6462E4656F8043B99B241440A1402EBAA -:104E4000134289B241EA0243B7424EF8043B4FEAAB -:104E50002248EFD8ED432F4427F0030704373C44A2 -:104E6000043C2BB954F8043D0CF1FF3C002BF9D065 -:104E7000C0F810C0BDE8F88F0021FFF703FD012244 -:104E80000023C0E90423BDE8F88F00BF0F4B0B409F -:104E9000A3F15073002B02DD0020194670475B42DE -:104EA0001B15132B0BDD143B1E2BD7BF0122012337 -:104EB000C3F11F0302FA03F30021184670474FF4B1 -:104EC0000022002042FA03F1704700BF0000F07F8B -:104ED0002DE9F041076900F1140606EB870757F842 -:104EE000048C4046FFF78CFDC0F120030A280B60BC -:104EF000A7F1040218DC96422CBF002257F8082CB8 -:104F0000C0F10B0328FA03F138BFDA4000F11503B2 -:104F100041F07F5508FA03F345F4401543EA0204D3 -:104F200020462946BDE8F0819642A0F10B031DD230 -:104F300057F8080CE3B108FA03F848F07F58C3F1BA -:104F40002001A7F1080220FA01FC48F4401896421B -:104F500000FA03F048EA0C0503D257F80C3CCB40AA -:104F60001843044620462946BDE8F08133B9184667 -:104F700048F07F5545F440150446F3E7002008FA51 -:104F800003F343F07F5545F440150446EAE700BFBC -:104F90002DE9F0411C4682B00121DDE9086590460B -:104FA000FFF770FC2346C4F30A540746C3F3130308 -:104FB0000CB143F48013B8F1000201931ED002A893 -:104FC00040F8082DFFF73CFD70BBDDE900237A6156 -:104FD000002B0CBF01210221BB613961CCB907EB69 -:104FE0008103A0F2324030601869FFF709FDC0EB81 -:104FF00041102860384602B0BDE8F08101A8FFF7F3 -:105000001FFD0122019B11462030C7E90423002C1B -:10501000E5D0A4F233430344C0F135003360286087 -:10502000384602B0BDE8F081019BC0F12002009932 -:1050300003FA02F20A43C34001937A61C8E700BF52 -:105040002DE9F04383B00F4669460646FFF740FF5F -:1050500004460D46384601A9FFF73AFF36693A691A -:105060008946DDE90013B61ACB1A03EB4613002B71 -:1050700080460BDD05EB03573D4642464B46204636 -:105080002946F9F7A9FA03B0BDE8F083C3EB03336F -:1050900009EB03518946F0E770B414694D1E02F123 -:1050A000140303EB84016D1101358B4200EB850481 -:1050B0000CD2051F53F8046B994245F8046FF9D8D8 -:1050C0008B1A153B23F0030304331844844204D99C -:1050D000002340F8043B8442FBD870BC704700BFFB -:1050E000036910B44C11A34200F114020FDA02EB71 -:1050F00083039A421CD253F8040C043B18B114E009 -:1051000053F8041D89B99A42FAD310BC704702EBD8 -:105110008403EEDD11F01F01EBD052F8244024FA95 -:1051200001F000FA01F18C42E3D0012010BC70477D -:105130000020EAE7004870470000C07F2DE9F04FEB -:10514000936883B09046002B6CD0176882460C465B -:10515000086808378D6842E0A38913F4906F2DD05A -:10516000D4E9041505EB4505A0EB010B05EBD5755E -:10517000701C6D105844A8422A4684BF05462A4632 -:105180005B0536D511465046FAF79EF900283AD00D -:105190005A4621690190FAF73FFCA289019B22F44B -:1051A000906242F08002A281A5EB0B0203EB0B00A0 -:1051B0006561B346354623612060A2605A46494680 -:1051C000FFF7FEFAD8F80830A2682068551B58444B -:1051D0009E1BA5602060C8F808601EB3083757E919 -:1051E0000296AB46002EF9D0AE42B5D23546B34654 -:1051F000E4E75046FAF7E4FC03460028D4D12169DD -:105200005046FEF7BFFD0C2300224FF0FF30CAF8D6 -:105210000030A38943F04003A381C8E9012203B011 -:10522000BDE8F08F0020C8F8040003B0BDE8F08F9F -:105230002DE9F8432B4D0646286898460F469146BF -:10524000FFF774FA284B1C68D4F84831002B3DD086 -:105250005A681F2A0DDC02F1010C16BB0232C3F89A -:1052600004C0286843F82270FFF762FA0020BDE806 -:10527000F8831E4B7BB34FF4C870FAF715F9034659 -:1052800048B30020D4F848114FF0010CC3E90010D6 -:105290000246C4F84831C3F88801C3F88C01002ED7 -:1052A000DCD0012103EB8204C4F88890D3F8880194 -:1052B00091400843022EC3F88801C4F80881CDD17B -:1052C000D3F88C010143C3F88C11C7E704F5A6732A -:1052D000C4F84831BCE72868FFF72AFA4FF0FF30DE -:1052E000C5E700BF1C0B042020A10100A9F40000A9 -:1052F0004FEA40024FEA41037FEA226C02D15FEAA3 -:10530000402C08D17FEA236C02D15FEA412C02D104 -:105310004FF0000070474FF001007047044A054904 -:105320001368002B08BF0B461844106018467047DE -:105330004C15042000000020FEE700BFF8B500BFB8 -:10534000F8BC08BC9E467047F8B500BFF8BC08BC66 -:105350009E46704700100420000005000000050074 -:105360000000050008200820082000009C8FE7238B -:105370005C0E00005E0EFB08DF0200005C0EF90808 -:10538000DF0200000B0C2800000000400004004079 -:105390000008004007001800369C030001000000D0 -:1053A000040000000104080E494E464F3A20507296 -:1053B0006F6772616D2073746172742E205665720E -:1053C00073696F6E20312E302E313A204465766934 -:1053D000636520697320636F6E6E65637465642E08 -:1053E000203078003E0000006578697400000000FD -:1053F000556E6B6E6F776E20636F6D6D616E64219D -:10540000000000000A3E00006C9D0100749D010038 -:105410007C9D0100EC810100389D0100509D010040 -:10542000609D0100EC810100000000400000803F11 -:105430000000003D0001030104010D01050106010A -:10544000000107030405060008000705080001071E -:10545000030405060800070305060000E89C010098 -:10546000FC9C0100109D0100249D0100EC810100C5 -:10547000EC810100EC810100EC81010000000000E2 -:105480000100000001000000000000000100000019 -:1054900001000000010000000100000052455350CF -:1054A0003A20414C524D00002C550100349E010021 -:1054B000389E01003C9E0100409E0100449E010078 -:1054C000489E01004C9E0100509E0100549E010028 -:1054D000589E01005C9E0100609E0100649E0100D8 -:1054E000689E01006C9E0100709E0100749E010088 -:1054F000789E01007C9E0100809E0100849E010038 -:10550000889E01008C9E0100EC81010080990100C1 -:1055100080580100909E01001C9E0100249E010005 -:10552000EC8101002B2D2A2F0000000041310000EA -:105530004552524F5220310A000000004552524F4E -:105540005220330A000000004552524F5220360AC2 -:10555000000000004552524F5220320A0000000065 -:1055600043616C6962726174696F6E20646F6E650D -:105570002E0A00004552524F523A204348414E4EA7 -:10558000454C204E554D4245520000004552524F69 -:10559000523A204F5054494F4E0000004552524F4E -:1055A000523A204348414E4E454C204E554D4245BF -:1055B0005220414E44204F5054494F4E20434F4DAE -:1055C00042494E4154494F4E20494D504F53534943 -:1055D000424C4500524553503A2044454625643FCD -:1055E00020535542453D25640A0D00005245535055 -:1055F0003A2044454625643F20524154423D252EE1 -:1056000035450A0D000000004552524F52206D658D -:105610006D6F72792E0A00002563322332303438E0 -:105620002D25633123323034382D2F00524553500D -:105630003A2044454625643F20415241543D25636C -:105640003223323034382D25633123323034382D33 -:105650002F0A0D0025633123323034382D25633273 -:1056600023323034382D2F00524553503A204445D0 -:105670004625643F20415241543D25633123323059 -:1056800034382D25633223323034382D2F0A0D0063 -:10569000524553503A20524547203078252E3458F1 -:1056A0003D3078252E34580A0D00000052455350E5 -:1056B0003A2000004348414E4E25632025730A00DE -:1056C000524553503A204445460000003F20000018 -:1056D00052464C543D000000414C524D3D000000EC -:1056E000524154423D000000494E53313D000000FC -:1056F000494E53323D000000535542453D000000E5 -:105700004552524F5220696E76616C696420726115 -:1057100074696F6E2E0A0000524553503A2044457A -:105720004625632025732000252E35660A000000DB -:105730004552524F5220696E76616C6964206869E7 -:10574000676820617267756D656E742E20446566AA -:1057500061756C74696E672E0A0000004552524FE5 -:105760005220696E76616C6964206C6F772061727B -:1057700067756D656E742E2044656661756C74691D -:105780006E672E0A0000000025662025660A0000CC -:105790004552524F5220696E76616C696420726185 -:1057A00074696F20626173652E0A0000252E3545ED -:1057B00020252E354520252E354520252E35452002 -:1057C000252E354520252E35450A0000805801003C -:1057D000049E01000C9E0100149E01001C9E01000D -:1057E000249E01002C9E0100EC8101005245535083 -:1057F0003A20464C5F4150504C590A005245535094 -:105800003A20464C5F455241534520310A00000082 -:10581000524553503A20464C5F4552415345203142 -:10582000353039313939340A00000000417267756A -:105830006D656E74206572726F722E0A0000000032 -:10584000524553503A20464C5F50524F4752414DBB -:1058500020300A00524553503A20464C5F50524F78 -:105860004752414D2031353039313939340A000041 -:105870004163636573732064656E6965642E0A0015 -:1058800041524154000000005245470052455350D8 -:105890003A20464C5F52454144205245473F200044 -:1058A0004E2F410A0000000072656720636F6D6D26 -:1058B000616E6420617267756D656E747320696EC8 -:1058C000636F7272656374206F72206E6F206D6FEC -:1058D00072652073706163652E0A000044454600BE -:1058E000524553503A20464C5F524541442044456E -:1058F00046000000415241543D00000052464C54C5 -:105900003D252E35660A0000414C524D3D2566204E -:1059100000000000524154423D252E35660A000029 -:10592000535542453D25640A00000000494E53315D -:105930003D252E3545200000252E35450A00000066 -:10594000494E53323D252E354520000064656620C2 -:10595000636F6D6D616E64206572726F722E0A00E6 -:105960004D4F44453F000000524553503A20464CAD -:105970005F52454144204D4F44453F3D00000000EB -:105980004F44523F00000000252E32660000000008 -:10599000524553503A20464C5F52454144204F44B3 -:1059A000523F3D005241544D41534B3F00000000D7 -:1059B000524553503A205241544D41534B3F3D00C4 -:1059C0004572726F722077726F6E6720636F6D6DB4 -:1059D000616E642E0A000000524553503A20464C36 -:1059E0005F44554D502025782025780A000000009E -:1059F000524553503A20464C5F44554D5020444543 -:105A00004625642041524154200000005245535025 -:105A10003A20464C5F44554D50204445462564206D -:105A200052464C5420252E32660A000052455350EF -:105A30003A20464C5F44554D50204445462564204D -:105A4000414C524D202566200000000025660A00CA -:105A5000524553503A20464C5F44554D50204445E2 -:105A6000462564205241544220252E35660A000006 -:105A7000524553503A20464C5F44554D50204445C2 -:105A800046256420535542452025640A0000000045 -:105A9000524553503A20464C5F44554D50204445A2 -:105AA00046256420494E533120252E3545200000DF -:105AB000252E354520000000252E3545000000002C -:105AC000524553503A20464C5F44554D5020444572 -:105AD00046256420494E533220252E3545200000AE -:105AE000524553503A20464C5F44554D50204D4F3F -:105AF00044452000524553503A20464C5F44554D92 -:105B000050205241544D41534B2025780A0000004B -:105B1000524553503A20464C5F434C454152425502 -:105B2000460A0000524553503A20464C5F4C4F41C4 -:105B30004420300A00000000524553503A20464CA1 -:105B40005F4C4F414420310A000000005245535041 -:105B50003A20464C5F57524954452000257820256D -:105B600078000000524547200000000025642025F1 -:105B700073200000252E32660A0000002566000012 -:105B800025732025660A0000257320252E35450043 -:105B9000257320252E35450A000000004445462087 -:105BA0000000000064656620636F6D6D616E6420A7 -:105BB000617267756D656E747320696E636F727262 -:105BC0006563742E0A0000004D4F4445200000001C -:105BD0006D6F646520636F6D6D616E6420617267C7 -:105BE000756D656E747320696E636F727265637430 -:105BF0002E0A00004F445220000000006F64722003 -:105C0000636F6D6D616E6420617267756D656E7432 -:105C10007320696E636F72726563742E0A000000F0 -:105C20005241544D41534B20000000007261746D8D -:105C300061736B20636F6D6D616E64206172677557 -:105C40006D656E747320696E636F72726563742E16 -:105C50000A000000464C554F204445434159204519 -:105C600052524F523A20496E76616C6964206361EA -:105C70006C6962726174696F6E20736C6F742E2030 -:105C80004D7573742062652031206F7220322E0AA8 -:105C9000000000004552524F523A2043616E206F7F -:105CA0006E6C7920757365206F70746963616C2008 -:105CB00070617468732031206F72203420666F72B7 -:105CC00020666C756F72657363656E6365206465CD -:105CD0006361792E0A0000004552524F523A205417 -:105CE0006F6F206D616E792073616D706C657321CB -:105CF0000A000000464C554F2043414C4942205376 -:105D0000455455502054494D452028757329202568 -:105D10006C640A00464C554F204445434159204588 -:105D200052524F523A204E6F7420656E6F756768FD -:105D3000206D656D6F72792E0A000000464C554F3C -:105D4000204445434159204552524F523A20496E12 -:105D500076616C696420617267756D656E7420731D -:105D60007472696E672E0A004E4F43414C494200DF -:105D7000464C554F204445434159204552524F52BD -:105D80003A20496E76616C6964207072657365743F -:105D900020737472696E672E0A000000464C554FDE -:105DA000204445434159204552524F523A204E6FAC -:105DB0002063616C6962726174696F6E20646174E2 -:105DC0006120666F756E642E2052756E20464C55AC -:105DD0004F5F43414C494220746F2063616C69629C -:105DE000726174652E0A0000464C554F20444543AD -:105DF0004159204552524F523A2043616C696272B8 -:105E00006174696F6E20706572666F726D65642073 -:105E1000646966666572656E74206368616E6E653E -:105E20006C207468616E206465636179206D6561C2 -:105E3000737572656D656E742E2052756E20464CBA -:105E4000554F5F43414C494220746F2063616C6938 -:105E500062726174652E0A00464C554F20444543DA -:105E60004159204552524F523A2043616C69627247 -:105E70006174696F6E20706572666F726D65642003 -:105E80007769746820646966666572656E742073EC -:105E9000616D706C696E67206D6574686F642074E5 -:105EA00068616E206465636179206D6561737572E8 -:105EB000656D656E742E2052756E20464C554F5F91 -:105EC00043414C494220746F2063616C6962726186 -:105ED00074652E0A00000000464C554F204445438F -:105EE0004159204552524F523A2043616C696272C7 -:105EF0006174696F6E20726567696F6E206F6620CE -:105F0000737570706F727420646F6573206E6F7438 -:105F100020696E636C7564652066756C6C206465C1 -:105F2000636179206163717569736974696F6E204B -:105F3000726567696F6E2E2052756E20464C554F04 -:105F40005F43414C494220746F2063616C69627207 -:105F50006174652E0A000000464C554F20444543AD -:105F60004159204552524F523A2043616E206F6E84 -:105F70006C7920757365206F70746963616C207033 -:105F8000617468732031206F72203420666F722034 -:105F9000666C756F72657363656E636520646563B7 -:105FA00061792E0A00000000464C554F20444543BD -:105FB0004159204552524F523A2053657475702E04 -:105FC0000A000000464C554F204445434159205398 -:105FD000455455502054494D452028757329202596 -:105FE0006C640A00464C554F2044554D50204341A7 -:105FF0004C4942204552524F523A204E4F20434185 -:106000004C4942524154494F4E204441544120464C -:106010004F554E440A000000464C554F2044554D04 -:10602000502043414C4942204348414E4E454C206C -:1060300025640A00464C554F2044554D502043419D -:106040004C4942204C45442057494454482025643B -:106050000A000000464C554F2044554D5020434106 -:106060004C49422053544152542054494D45202517 -:10607000640A0000464C554F2044554D5020434182 -:106080004C4942204D4554484F442025730A000096 -:10609000464C554F2044554D502043414C494220D9 -:1060A000454E442054494D452025302E35660A0082 -:1060B000464C554F2044554D502043414C494220B9 -:1060C00053414D504C4520504552494F44202530B6 -:1060D0002E356600464C554F2044554D50204341C7 -:1060E0004C494220444F4E450A00000025302E34D2 -:1060F000660000000A464C554F2044554D50204341 -:10610000414C4942204441544120000009434E3053 -:10611000353033206170706C69636174696F6E2E05 -:106120000A00000054797065206120636F6D6D6115 -:106130006E6420616E642070726573732027456EF3 -:10614000746572272E2054686520636F6D6D616ED3 -:10615000647320617265206E6F74206361736520C3 -:1061600073656E7369746976652E0A00417661699C -:106170006C61626C6520636F6D6D616E64732E0A75 -:106180000A000000205245473F2058585820202040 -:1061900020202020202020202020202020202020FF -:1061A00020202020202D205265616420616E204136 -:1061B0004450442072656769737465722E0A00004A -:1061C00020202020202020202020202020202020CF -:1061D00020202020202020202020202020202020BF -:1061E000202020585858203D2072656769737465D7 -:1061F00072206164647265737320696E20686578CB -:1062000061646563696D616C2E0A00002052454728 -:1062100020585858205959595920202020202020F2 -:10622000202020202020202020202020202D20572A -:106230007269746520616E20414450442072656724 -:1062400069737465722E0A002020202020202020EF -:10625000202020202020202020202020202020203E -:10626000202020202020202020202059595959204A -:106270003D207265676973746572206E657720765C -:10628000616C756520696E20686578616465636915 -:106290006D616C2E0A000000204D4F44453F2020C8 -:1062A00020202020202020202020202020202020EE -:1062B00020202020202020202020205265616420E2 -:1062C000746865206461746120646973706C6179BD -:1062D000206D6F64652E2052657475726E2061208A -:1062E000342063686172616374657220636F6465F2 -:1062F0003A0A0000202020202020202020202020DA -:10630000202020202020202020202020202020208D -:1063100020202020202020434F4445202D20726142 -:1063200077206461746120697320646973706C61A3 -:106330007965643B0A0000002020202020202020D6 -:10634000202020202020202020202020202020204D -:106350002020202020202020202020415241542095 -:106360002D206162736F6C75746520726174696F42 -:1063700020697320646973706C617965643B0A00FD -:10638000202020202020202020202020202020200D -:1063900020202020202020202020202020202020FD -:1063A00020202052524154202D2072656C61746966 -:1063B000766520726174696F2069732064697370F7 -:1063C0006C617965643B0A00202020202020202079 -:1063D00020202020202020202020202020202020BD -:1063E0002020202020202020202020494E53312012 -:1063F0002D20646174612070726F636573736564CE -:1064000020666F7220696E737472756D656E74208C -:106410003120697320646973706C617965643B0A2B -:1064200000000000202020202020202020202020EC -:10643000202020202020202020202020202020205C -:1064400020202020202020494E5332202D2064611E -:1064500074612070726F63657373656420666F7218 -:1064600020696E737472756D656E74203220697365 -:1064700020646973706C617965642E0A0000000005 -:10648000204D4F4445205858585820202020202087 -:1064900020202020202020202020202020202020FC -:1064A000202D205365742074686520646174612018 -:1064B000646973706C6179206D6F64652E0A0000E9 -:1064C00020202020202020202020202020202020CC -:1064D00020202020202020202020202020202020BC -:1064E00020202058585858203D203420636861727D -:1064F000616374657220636F646520746F206465E6 -:1065000073637269626520746865206461746120D8 -:10651000646973706C6179206D6F64652E205468B6 -:1065200065206F7074696F6E73206172653A0A003E -:10653000202020202020202020202020202020205B -:10654000202020202020202020202020202020204B -:10655000202020494E5331202D2064617461207029 -:10656000726F63657373656420666F7220696E7302 -:106570007472756D656E742031206973206469735F -:10658000706C617965642E0A00000000205354523B -:1065900045414D2058202020202020202020202050 -:1065A000202020202020202020202020202D2053AB -:1065B000746172742063616C63756C6174696E6779 -:1065C00020616E6420646973706C6179696E672004 -:1065D000612073747265616D206F662064617461FF -:1065E0002E0A0000202020202020202020202020F3 -:1065F000202020202020202020202020202020209B -:106600002020202020202058203D204966203020B6 -:106610006F72206E6F742070726573656E74206582 -:106620006E74657220636F6E74696E756F7573201A -:1066300073747265616D696E67206D6F64653B2070 -:106640006966204E3E302073747265616D2064610E -:10665000746120666F72204E2076616C7565732EB2 -:106660000A0000002049444C453F202020202020E3 -:10667000202020202020202020202020202020201A -:1066800020202020202D20517565726965732074AB -:1066900068652069646C6520636F6E646974696FF6 -:1066A0006E2E0A002049444C4520582020202020EE -:1066B00020202020202020202020202020202020DA -:1066C00020202020202D20496620583D30206F7248 -:1066D000206E6F74206C6973746564206F6E6C79C2 -:1066E00020746865207465726D696E616C207374C6 -:1066F0007265616D206973207465726D696E617475 -:1067000065642C2062757420746865206170706CFB -:1067100069636174696F6E20636F6E74696E75650D -:10672000732073616D706C696E672E0A0000000043 -:106730002020202020202020202020202020202059 -:106740002020202020202020202020202020202049 -:10675000202020496620583D312073746F702073CB -:10676000616D706C696E6720616C746F67657468C9 -:1067700065722E0A0000000020414C524D3F20203F -:106780002020202020202020202020202020202009 -:106790002020202020202020202D20517565727976 -:1067A00020616C61726D207374617475733B206934 -:1067B000662072657475726E65642030206E6F207D -:1067C000616C61726D2069732070726573656E749F -:1067D0003B0A0000202020202020202020202020F4 -:1067E00020202020202020202020202020202020A9 -:1067F000202020202020204966206269742030203B -:106800003D203120696E737472756D656E7420322F -:106810002076616C75652069732062656C6F7720E6 -:106820006C6F776572207468726573686F6C643B17 -:106830000A000000202020202020202020202020CE -:106840002020202020202020202020202020202048 -:1068500020202020202020496620626974203120D9 -:106860003D203120696E737472756D656E742032CF -:106870002076616C75652069732061626F76652092 -:10688000686967686572207468726573686F6C64A4 -:106890002E0A0000204445466E3F20585858582084 -:1068A00020202020202020202020202020202020E8 -:1068B00020202020202D205175657279206F706571 -:1068C000726174696F6E20706172616D657465725A -:1068D000732E0A002020202020202020202020208D -:1068E00020202020202020202020202020202020A8 -:1068F000202020202020206E203D204944206F664B -:1069000020746865207265717569726564206F70A6 -:10691000746963616C2070617468202863616E2003 -:1069200062652066726F6D203020746F2037292ECB -:106930000A000000202020202020202020202020CD -:106940002020202020202020202020202020202047 -:106950002020202020202058585858203D2074689E -:1069600065206F7065726174696F6E20706172610D -:106970006D6574657220746F206265207175657233 -:106980006965642E2054686520666F6C6C6F77694A -:106990006E67206F7074696F6E73206578697374A9 -:1069A0003A0A000020202020202020202020202023 -:1069B00020202020202020202020202020202020D7 -:1069C0002020202020202041524154203D2061627F -:1069D000736F6C75746520726174696F206578706F -:1069E00072657373696F6E20696E20726576657269 -:1069F000736520706F6C697368206E6F7461746961 -:106A00006F6E202852504E293B0A00002020202083 -:106A10002020202020202020202020202020202076 -:106A20002020202020202020202020202020205234 -:106A3000464C54203D207468652064696769746120 -:106A40006C206C6F7720706173732066696C74655D -:106A5000722062616E647769647468206170706C22 -:106A600069656420746F20746865206162736F6C5F -:106A700075746520726174696F206D6561737572DC -:106A8000656D656E74733B0A0000000020202020B5 -:106A900020202020202020202020202020202020F6 -:106AA00020202020202020202020202020202041C5 -:106AB0004C524D203D2074686520686967682061EC -:106AC0006E64206C6F7720616C61726D20746872E7 -:106AD0006573686F6C6420666F7220746865204906 -:106AE0004E5332206D6561737572656D656E74739A -:106AF0003B0A0000202020202020202020202020D1 -:106B00002020202020202020202020202020202085 -:106B10002020202020202052415442203D2062612C -:106B200073656C696E6520726174696F2075736539 -:106B30006420696E2063616C63756C6174696E6753 -:106B4000207468652072656C617469766520726175 -:106B500074696F3B0A0000002020202020202020A4 -:106B60002020202020202020202020202020202025 -:106B70002020202020202020202020494E5331207A -:106B80003D2074686520636F656666696369656E3C -:106B90007473206F66207468652066696674682067 -:106BA0006F7264657220706F6C796E6F6D69616C65 -:106BB000207573656420746F2063616C63756C610C -:106BC00074652074686520666972737420696E73D9 -:106BD0007472756D656E74206D6561737572656D27 -:106BE000656E74733B0A00002020202020202020A6 -:106BF0002020202020202020202020202020202095 -:106C00002020202020202020202020494E533220E8 -:106C10003D2074686520636F656666696369656EAB -:106C20007473206F662074686520666966746820D6 -:106C30006F7264657220706F6C796E6F6D69616CD4 -:106C4000207573656420746F2063616C63756C617B -:106C5000746520746865207365636F6E6420696E67 -:106C6000737472756D656E74206D65617375726590 -:106C70006D656E74732E0A00204445466E204152A5 -:106C800041542052504E202020202020202020201F -:106C90002020202020202020202D205365742074C7 -:106CA0006865206162736F6C7574652072617469C8 -:106CB0006F2065787072657373696F6E3B0A0000B0 -:106CC00020202020202020202020202020202020C4 -:106CD00020202020202020202020202020202020B4 -:106CE0002020204578616D706C653A20444546301F -:106CF000204152415420413241312F203D207365C3 -:106D00007420746865206F70746963616C207061B1 -:106D100074682030206162736F6C757465207261D5 -:106D200074696F20746F2062652063616C63756C99 -:106D3000617465642061732028736C6F74415F63B4 -:106D40006832202F20736C6F74415F636831293B78 -:106D50000A000000204445466E2052464C542058FC -:106D6000582E58582020202020202020202020206D -:106D700020202020202D2053657420746865206415 -:106D800069676974616C2066696C74657220626100 -:106D90006E6477696474682C20696E20487A2C20B0 -:106DA0007573656420666F72207468652061627314 -:106DB0006F6C75746520726174696F206D656173A5 -:106DC0007572656D656E743B0A00000020202020FE -:106DD00020202020202020202020202020202020B3 -:106DE000202020202020202020202020202020457E -:106DF00078616D706C653A20444546312052464CAE -:106E00005420302E35203D20736574207468652031 -:106E10006F70746963616C207061746820312064E4 -:106E200069676974616C2066696C7465722062615F -:106E30006E64776964746820746F20302E35204842 -:106E40007A2E204E6F7420616C6C2076616C7565B3 -:106E5000732061726520706F737369626C652C209A -:106E600071756572792074686520706172616D65F5 -:106E700074657220746F2067657420746865206182 -:106E8000637475616C2076616C7565207365743B05 -:106E90000A000000204445466E20414C524D2058C7 -:106EA0005858582059595959202020202020202056 -:106EB00020202020202D20536574206869676820D9 -:106EC000616E64206C6F7720616C61726D207468F4 -:106ED000726573686F6C647320666F7220696E737D -:106EE0007472756D656E742032206D656173757294 -:106EF000656D656E74733B0A000000002020202041 -:106F00002020202020202020202020202020202081 -:106F1000202020202020202020202020202020454C -:106F200078616D706C653A204445463020414C5282 -:106F30004D203235203135203D20736574206F702F -:106F4000746963616C2070617468203020686967BF -:106F50006820616C61726D207468726573686F6C13 -:106F60006420746F20323520616E64206C6F77204E -:106F7000616C61726D207468726573686F6C6420F7 -:106F8000746F2031353B0A00204445466E20524143 -:106F9000544220582E58585858582020202020203D -:106FA0002020202020202020202D205365742062C6 -:106FB0006173656C696E6520726174696F20666FBC -:106FC0007220746F2063616C63756C6174652072EC -:106FD000656C617469766520726174696F206F6693 -:106FE00020746865207369676E616C2070617468D5 -:106FF0003B0A0000202020202020202020202020CC -:107000002020202020202020202020202020202080 -:10701000202020202020204578616D706C653A206A -:1070200044454632205241544220322E33203D20E6 -:107030007365742074686520626173656C696E6540 -:1070400020726174696F20617320322E3320666F65 -:1070500072207369676E616C207061746820323BC6 -:107060000A000000204445466E20494E5331205806 -:107070002E5858452B585820592E5959452B595997 -:10708000202E2E2E202D20536574207468652066D6 -:1070900069667468206F7264657220706F6C796EB7 -:1070A0006F6D69616C20636F656666696369656EA3 -:1070B000747320666F722063616C63756C617469B0 -:1070C0006E6720696E737472756D656E7420312CF5 -:1070D000206F7264657265642066726F6D206C6FDC -:1070E0007765737420746F206869676865737420AE -:1070F000706F7765723B0A0020202020202020201E -:10710000202020202020202020202020202020207F -:1071100020202020202020202020204578616D7014 -:107120006C653A204445463020494E53312030208A -:107130003120302E353420312E3233652B3020353E -:107140002E3438652D342034342E3232203D2073D5 -:10715000657420636F656666696369656E74732024 -:10716000666F72206F70746963616C2070617468FF -:1071700020303B0A00000000204445466E20494E66 -:10718000533220582E5858452B585820592E5959AB -:10719000452B5959202E2E2E202D205365742074F6 -:1071A0006865206669667468206F72646572207015 -:1071B0006F6C796E6F6D69616C20636F656666696F -:1071C0006369656E747320666F722063616C6375AA -:1071D0006C6174696E6720696E737472756D656E2B -:1071E0007420322C206F7264657265642066726F41 -:1071F0006D206C6F7765737420746F2068696768A1 -:1072000065737420706F7765723B0A002020202020 -:10721000202020202020202020202020202020206E -:107220002020202020202020202020202020204539 -:1072300078616D706C653A204445463420494E5360 -:10724000322030203120302E353420312E3233653B -:107250002B3020352E3438652D342034342E323204 -:10726000203D2073657420636F6566666963696598 -:107270006E747320666F72206F70746963616C2026 -:107280007061746820343B0A0000000020424F4FB8 -:1072900054202020202020202020202020202020BA -:1072A000202020202020202020202020202D2050A1 -:1072B0006572666F726D206120736F66747761729C -:1072C000652072657365742E0A000000204F4452D9 -:1072D0003F2020202020202020202020202020208F -:1072E000202020202020202020202020202D205160 -:1072F0007565727920746865204F75747075742097 -:10730000446174612052617465206F662074686501 -:107310002053545245414D20636F6D6D616E642E54 -:107320000A000000204F44522058582E5858202060 -:10733000202020202020202020202020202020204D -:1073400020202020202D2053657473204F757470E9 -:1073500075742044617461205261746520666F7297 -:10736000207468652053545245414D20636F6D6D04 -:10737000616E642E0A0000002020202020202020A2 -:1073800020202020202020202020202020202020FD -:10739000202020202020202020202058582E5858FF -:1073A000203D20546865206E6577204F4452206947 -:1073B0006E20487A2E2049742063616E20686176C1 -:1073C00065206F6E6C79206365727461696E2076DA -:1073D000616C75657320616E642077696C6C2072D6 -:1073E0006F756E6420646F776E20746F20746865AB -:1073F0006D3A0A002020202020202020202020205C -:10740000202020202020202020202020202020207C -:10741000202020202020204F4452206F7074696F5C -:107420006E73206265747765656E203520487A201A -:10743000616E6420302E303120487A20616E6420E5 -:1074400063616E2062652063616C63756C61746555 -:107450006420627920352F4F4452203D20696E749C -:1074600065676572206E756D6265722E0A00000098 -:10747000205241544D41534B3F20202020202020BA -:1074800020202020202020202020202020202020FC -:10749000202D2051756572792074686520616374B0 -:1074A000697665206368616E6E656C73206D6173CB -:1074B0006B2E2052657475726E732061206865783A -:1074C00061646563696D616C203820626974206E47 -:1074D000756D626572207468617420686173203113 -:1074E00020666F72206576657279206163746976B3 -:1074F00065206368616E6E656C20616E642030206B -:10750000666F722065766572792068696464656E5D -:10751000206368616E6E656C2E0A000020202020BA -:10752000202020202020202020202020202020205B -:107530002020202020202020202020202020204526 -:1075400078616D706C653A2031202D206F6E6C79FA -:10755000206F70746963616C2070617468203020E2 -:107560006973207475726E6564206F6E3B203320E2 -:107570002D204F70746963616C2070617468732092 -:107580003020616E64203120617265207475726EE6 -:107590006564206F6E20616E64207468652072657A -:1075A0007374206172652068696464656E3B206550 -:1075B00074632E0A00000000205241544D41534B89 -:1075C000205858202020202020202020202020204B -:1075D0002020202020202020202D2053657420747E -:1075E000686520616374697665206368616E6E65A5 -:1075F0006C73206D61736B2E0A0000002020202028 -:10760000202020202020202020202020202020207A -:107610002020202020202020202020202020205832 -:1076200058203D204E6577206F70746963616C202F -:1076300070617468206D61736B2E0A0020464C5F88 -:1076400048454C5020202020202020202020202091 -:10765000202020202020202020202020202D2044F9 -:107660006973706C61792074686520746F6F6C74D5 -:10767000697020666F722074686520666C6173683B -:1076800020636F6D6D616E64732E0A00205043425B -:107690002D4C45446E2059592E59205858582E5873 -:1076A000202020202020202020202020202D2044A9 -:1076B0006F20616E206175746F6D61746963206302 -:1076C000616C6962726174696F6E206F66207468A4 -:1076D0006520737065636966696564205043422064 -:1076E0004C45442063757272656E7420736F20740C -:1076F0006861742074686520636F72726573706F5F -:107700006E64696E6720414443206368616E6E65F4 -:107710006C732072657475726E732061207065726F -:1077200063656E74616765206F6620746865207399 -:10773000617475726174696F6E2E0A0020202020BA -:107740002020202020202020202020202020202039 -:107750002020202020202020202020202020206EDB -:10776000203D204C45442049442066726F6D2074B2 -:107770006865205043422E0A00000000202020208F -:1077800020202020202020202020202020202020F9 -:1077900020202020202020202020202020202059B0 -:1077A000592E59203D2070657263656E746167655E -:1077B000206F66204144432073617475726174695F -:1077C0006F6E2E0A000000002020202020202020A4 -:1077D00020202020202020202020202020202020A9 -:1077E00020202020202020202020205858582E58AB -:1077F000203D206D6178696D756D204C4544206396 -:10780000757272656E742E204966206C65667420F0 -:107810006E6F74207370656369666965642077694B -:107820006C6C2064656661756C7420617420333300 -:1078300038206D412E0A0000204348414E4E6E20F4 -:107840005858585820202020202020202020202058 -:107850002020202020202020202D20536574206F00 -:107860006E65206F70746963616C2070617468204C -:10787000666F72206120707265646566696E65640A -:107880002074797065206F66206D6561737572650F -:107890006D656E742E0A00002020202020202020FC -:1078A00020202020202020202020202020202020D8 -:1078B00020202020202020202020206E203D206F0E -:1078C00070746963616C20706174682028312C20A9 -:1078D000322C2033206F722034293B0A0000000034 -:1078E0002020202020202020202020202020202098 -:1078F0002020202020202020202020202020202088 -:1079000020202058585858203D206D6561737572AD -:10791000656D656E74206F7074696F6E2E2054688B -:107920006520666F6C6C6F77696E67206F70746925 -:107930006F6E732065786973743A0A0020202020E6 -:107940002020202020202020202020202020202037 -:107950002020202020202020202020202020204304 -:107960004F4C4F203D20636F6C6F72696D65747270 -:10797000793B0A00202020202020202020202020C9 -:1079800020202020202020202020202020202020F7 -:1079900020202020202020464C554F203D20666C82 -:1079A000756F72657363656E63653B0A0000000066 -:1079B00020202020202020202020202020202020C7 -:1079C00020202020202020202020202020202020B7 -:1079D00020202054555242203D2074757262696403 -:1079E0006974792E0A000000202020202020202009 -:1079F0002020202020202020202020202020202087 -:107A0000202020202020202020202053657474690D -:107A10006E677320746861742061726520636861A9 -:107A20006E67656420666F722074686520636861A4 -:107A30006E6E656C206172653A204152415420653A -:107A4000787072657373696F6E2C205355424520B0 -:107A5000706172616D6574657220616E64204C4561 -:107A6000442063757272656E74207768696368205C -:107A700069732073657420746F2064656661756C2A -:107A8000742E0A00202020202020202020202020CA -:107A900020202020202020202020202020202020E6 -:107AA0002020202020202052415442207061726109 -:107AB0006D6574657220697320616C736F206465F5 -:107AC0006661756C74656420746F207A65726F2EC0 -:107AD000205468652075736572206E656564732037 -:107AE000746F20636865636B20746865206A756DC8 -:107AF00070657220706F736974696F6E73206F6E3A -:107B00002074686520626F61726420616E64206316 -:107B10006F6E73696465722072756E6E696E672030 -:107B200061205043422D4C454420636F6D6D616E62 -:107B3000642061667465722E0A00000020202020F7 -:107B40002020202020202020202020202020202035 -:107B50002020202020202020202020202020202025 -:107B600020204578616D706C653A204348414E4E47 -:107B70003120434F4C4F202D207365742063686182 -:107B80006E6E656C203120757020666F7220636F99 -:107B90006C6F72696D65747279206D656173757251 -:107BA000656D656E742E0A0020494D505245535044 -:107BB000204E2058582059592E5959205A5A2E5A79 -:107BC0005A2041414141205B42425D205B43435D7D -:107BD0000A0000002020202020202020202020201B -:107BE0002020202020202020202020202020202095 -:107BF00020202020202D204D656173757265207432 -:107C0000686520696D70756C736520726573706F3F -:107C10006E7365206F662074686520737065636994 -:107C200066696564206368616E6E656C2063686177 -:107C30006E6E656C2E0A000020202020202020205F -:107C40002020202020202020202020202020202034 -:107C500020202020202020202020204E203D206F8A -:107C600070746963616C20706174682028312C2005 -:107C7000322C20332C206F722034293B0A00000064 -:107C800020202020202020202020202020202020F4 -:107C900020202020202020202020202020202020E4 -:107CA0002020205858203D206C656E677468206F36 -:107CB0006620696E697469616C204C45442070755A -:107CC0006C73652C20696E206D6963726F736563D8 -:107CD0006F6E64733B0A00002020202020202020AB -:107CE0002020202020202020202020202020202094 -:107CF000202020202020202020202059592E595992 -:107D0000203D206163717569736974696F6E2077B6 -:107D1000696474682C20696E206D6963726F736585 -:107D2000636F6E64733B0A002020202020202020F7 -:107D30002020202020202020202020202020202043 -:107D400020202020202020202020205A5A2E5A5A3D -:107D5000203D2073616D706C6520706572696F6481 -:107D60002C20696E206D6963726F7365636F6E643A -:107D7000732E205468652073616D706C652070658A -:107D800072696F64206861732074686520666F6C27 -:107D90006F77696E67206C6F77657220626F756EA2 -:107DA00064733A0A000000002020202020202020B8 -:107DB00020202020202020202020202020202020C3 -:107DC0002020202020202020202020466F722069A3 -:107DD0006D70756C736520726573706F6E7365205E -:107DE0006D6F64652028494D50292C2032206D6923 -:107DF00063726F7365636F6E64733B0A000000000B -:107E00002020202020202020202020202020202072 -:107E10002020202020202020202020202020202062 -:107E2000202020466F72205449412F414443206D49 -:107E30006F64652028544941292C2031206D6963E5 -:107E4000726F7365636F6E643B0A00002020202010 -:107E50002020202020202020202020202020202022 -:107E600020202020202020202020202020202046EC -:107E70006F722073696E676C652D73696465642029 -:107E8000696E746567726174696F6E206D6F646589 -:107E90002028535349292C20302E303331323520BD -:107EA0006D6963726F7365636F6E64732E0A000091 -:107EB00020202020202020202020202020202020C2 -:107EC00020202020202020202020202020202020B2 -:107ED00020202041414141203D2073616D706C693B -:107EE0006E67206D6574686F642E20546865206627 -:107EF0006F6C6C6F77696E67206F7074696F6E73EB -:107F00002065786973743A0A000000002020202060 -:107F10002020202020202020202020202020202061 -:107F20002020202020202020202020202020204928 -:107F30004D50203D20696D70756C736520726573BE -:107F4000706F6E7365206D6F64653B0A0000000002 -:107F50002020202020202020202020202020202021 -:107F60002020202020202020202020202020202011 -:107F7000202020544941203D205449412F41444371 -:107F8000206D6F64653B0A002020202020202020E7 -:107F900020202020202020202020202020202020E1 -:107FA0002020202020202020202020535349203D25 -:107FB0002073696E676C652D736964656420696EF2 -:107FC000746567726174696F6E206D6F64652E0AE7 -:107FD0000000000020202020202020202020202021 -:107FE0002020202020202020202020202020202091 -:107FF000202020202020204242205B4F5054494F17 -:108000004E414C5D203D206E756D626572206F663D -:1080100020747269616C7320746F2061766572617F -:108020006765206F7665722C2064656661756C7477 -:108030002034303B0A000000202020202020202077 -:108040002020202020202020202020202020202030 -:1080500020202020202020202020204343205B4F70 -:108060005054494F4E414C5D203D20537461727411 -:10807000206F662073616D706C696E672C206D6572 -:108080006173757265642066726F6D207468652017 -:10809000737065636966696564204C454420747536 -:1080A000726E6F66662074696D652E0A00000000AE -:1080B00020202020202020202020202020202020C0 -:1080C00020202020202020202020202020202020B0 -:1080D0002020205468652064656661756C74207684 -:1080E000616C75652069732074686520656D7069C1 -:1080F000726963616C6C79206D656173757265641A -:1081000020656E64206F6620746865204C454420AD -:1081100070756C73653A0A002020202020202020F2 -:10812000202020202020202020202020202020204F -:108130002020202020202020202020466F7220494F -:108140004D50206D6F64652C2036206D6963726F11 -:108150007365636F6E64733B20466F7220544941B0 -:108160002C2030206D6963726F7365636F6E64736A -:108170003B20466F72205353492C2033206D696396 -:10818000726F7365636F6E64732E0A002020464C15 -:10819000554F5F43414C4942202020202020202081 -:1081A000202020202020202020202020202D205092 -:1081B0006572666F726D2063616C69627261746969 -:1081C0006F6E20666F722074686520666C756F72C2 -:1081D000657363656E6365206465636179206D65B1 -:1081E00061737572656D656E742E200A0000000063 -:1081F000202020202020202020202020202020207F -:10820000202020202020202020202020202020206E -:10821000202020466F72206265737420726573752A -:108220006C74732C20656D756C6174652074686561 -:10823000206578706572696D656E74616C20736518 -:10824000747570206F662073756273657175656EE5 -:1082500074206465636179206D6561737572656D05 -:10826000656E74732C2072656D6F76696E67206120 -:108270006E7920666C756F726F70686F7265732EA1 -:108280000A00000020202020202020202020202064 -:1082900020202020202020202020202020202020DE -:1082A000202020202020204461746120616E642001 -:1082B000706172616D65746572732066726F6D2096 -:1082C000746865206D6F737420726563656E7420C9 -:1082D00063616C6962726174696F6E2063616C6C5A -:1082E000206172652073746F72656420696E206608 -:1082F0006C617368206D656D6F72792E0A000000E5 -:10830000202020202020202020202020202020206D -:10831000202020202020202020202020202020205D -:1083200020202054776F2063616C696272617469E8 -:108330006F6E206375727665732063616E2062656F -:108340002073746F72656420696E20666C61736857 -:108350003A206F6E6520696E2063616C696272619C -:1083600074696F6E2022736C6F7422203120616EED -:1083700064206F6E6520696E2063616C6962726152 -:1083800074696F6E2022736C6F742220322E0A0083 -:1083900020202020202020202020202020202020DD -:1083A00020202020202020202020202020202020CD -:1083B0002020205468657265206172652074776F93 -:1083C000206F7074696F6E7320666F7220746865B9 -:1083D000206F72646572206F6620617267756D65CB -:1083E0006E74733A200A00002020464C554F5F43BC -:1083F000414C49422058585858204E204D20595938 -:108400002E5959205B5A5A5D202D205573652061E5 -:108410002070726573657420736574206F662070B8 -:108420006172616D65746572730A000020202020FE -:10843000202020202020202020202020202020203C -:1084400020202020202020202020202020202058F4 -:108450005858203D20707265736574206F70746980 -:108460006F6E2E2054686520666F6C6C6F77696E36 -:1084700067206F7074696F6E732065786973743AE2 -:108480000A00000020202020202020202020202062 -:1084900020202020202020202020202020202020DC -:1084A00020202020202020494D5050524553455433 -:1084B000203D2075736520696D70756C7365207241 -:1084C0006573706F6E7365206D6F64652C207769BE -:1084D000746820612035307573204C4544207075D8 -:1084E0006C736520616E64203275732073616D70EA -:1084F0006C6520706572696F643B0A002020202043 -:10850000202020202020202020202020202020206B -:108510002020202020202020202020202020205427 -:108520004941505245534554203D207573652054B0 -:1085300049412F414443206D6F64652C2077697455 -:108540006820612035307573204C45442070756C6F -:10855000736520616E64203175732073616D706C7A -:108560006520706572696F643B0A0000202020203E -:1085700020202020202020202020202020202020FB -:1085800020202020202020202020202020202053B8 -:108590005349505245534554203D2075736520730F -:1085A000696E676C652D736964656420696E7465B6 -:1085B00067726174696F6E206D6F64652C207769D6 -:1085C000746820612035307573204C4544207075E7 -:1085D0006C736520616E6420302E323575732073A4 -:1085E000616D706C6520706572696F643B0A000094 -:1085F000202020202020202020202020202020207B -:10860000202020202020202020202020202020206A -:108610002020204D41585245535052455345542037 -:108620003D207573652073696E676C652D73696491 -:10863000656420696E746567726174696F6E206D20 -:108640006F64652C207769746820612035307573FC -:10865000204C45442070756C736520616E64203039 -:108660002E303331323575732073616D706C652037 -:10867000706572696F642E0A0000000020202020BF -:1086800020202020202020202020202020202020EA -:108690002020202020202020202020202020204EAC -:1086A000203D2063616C6962726174696F6E207332 -:1086B0006C6F7420746F20726561642066726F6DD8 -:1086C0002C2031206F7220323B0A00002020202015 -:1086D000202020202020202020202020202020209A -:1086E0002020202020202020202020202020204D5D -:1086F000203D206F70746963616C20706174682C18 -:108700002031206F7220343B0A00000020202020FE -:108710002020202020202020202020202020202059 -:108720002020202020202020202020202020205910 -:10873000592E5959203D204C656E677468206F662C -:10874000206163717569736974696F6E2072656702 -:10875000696F6E2C20696E206D6963726F7365633B -:108760006F6E64732E0A000020202020202020201D -:1087700020202020202020202020202020202020F9 -:1087800020202020202020202020205A5A205B4F0B -:108790005054494F4E414C5D204E756D62657220BC -:1087A0006F6620747269616C7320746F20617665E6 -:1087B00072616765206F7665722E0A0020464C55FF -:1087C0004F5F43414C4942204E204D20585820597C -:1087D000592E5959205A5A2E5A5A20414141412066 -:1087E0005B42425D205B43435D0A00002020202065 -:1087F0002020202020202020202020202020202079 -:10880000202020202020202020202020202D205328 -:1088100065652074686520494D505245535020636A -:108820006F6D6D616E6420666F7220746865206480 -:108830006566696E6974696F6E206F66207468651D -:108840002073756273657175656E742061726775EA -:108850006D656E74732E0A0020464C554F5F44457B -:10886000434159202020202020202020202020208B -:108870002020202020202020202D204D6561737590 -:108880007265207468652064656361792074696D20 -:1088900065206F66206120666C756F726F70686FFF -:1088A000726520696E2074686520737065636966FF -:1088B000696564206F70746963616C2070617468AD -:1088C0002E0A0000202020202020202020202020F0 -:1088D0002020202020202020202020202020202098 -:1088E0002020202020202054686572652061726558 -:1088F000207468726565206F7074696F6E7320668E -:108900006F7220746865206F72646572206F6620D4 -:10891000617267756D656E74733A0A0020464C5536 -:108920004F5F44454341592058585858204E204DD8 -:108930002059592E5959205B5A5A5D202020202D4C -:1089400020557365206120707265736574207365AE -:1089500074206F6620706172616D65746572732E2C -:10896000205365652074686520464C554F5F434130 -:108970004C494220636F6D6D616E6420666F72209A -:1089800074686520646566696E6974696F6E206FCE -:1089900066206561636820617267756D656E742E0F -:1089A0000A00000020464C554F5F44454341592082 -:1089B0004E204D2058582E58582059592E5959207C -:1089C0005B41415D205B42425D202D204D6561731E -:1089D00075726520746865206465636179207469C7 -:1089E0006D652C207375627472616374696E6720A3 -:1089F0006F7574207468652063616C69627261745C -:108A0000696F6E20726573706F6E73652E0A000059 -:108A10002020202020202020202020202020202056 -:108A20002020202020202020202020202020202046 -:108A3000202020546865204C45442070756C736577 -:108A400020776964746820616E642073616D706C56 -:108A5000696E67206D6574686F642061726520615E -:108A600075746F6D61746963616C6C792073657482 -:108A700020746F2074686569722076616C75657307 -:108A800020696E20746865206D6F73742072656351 -:108A9000656E742063616C6962726174696F6E2EB9 -:108AA0000A0000002020202020202020202020203C -:108AB00020202020202020202020202020202020B6 -:108AC0002020202020202058582E5858203D207744 -:108AD00069647468206F66207468652061637175CD -:108AE00069736974696F6E20726567696F6E2C2097 -:108AF000696E206D6963726F7365636F6E64733B3B -:108B00000A000000202020202020202020202020DB -:108B10002020202020202020202020202020202055 -:108B20002020202020202059592E5959203D2073E3 -:108B3000616D706C6520706572696F642C20776957 -:108B40007468206C6F77657220626F756E64732035 -:108B500073706563696669656420696E2074686511 -:108B600020494D505245535020636F6D6D616E64C6 -:108B70003B0A000020202020202020202020202030 -:108B800020202020202020202020202020202020E5 -:108B9000202020202020204141205B4F5054494F6D -:108BA0004E414C5D203D206E756D626572206F6692 -:108BB00020747269616C7320746F206176657261D4 -:108BC0006765206F7665722C2064656661756C74CC -:108BD0002034303B0A0000002020202020202020CC -:108BE0002020202020202020202020202020202085 -:108BF00020202020202020202020204242205B4FC7 -:108C00005054494F4E414C5D203D20737461727445 -:108C1000206F662073616D706C696E672C206F66C3 -:108C2000667365742066726F6D204C4544207475C0 -:108C3000726E6F66662074696D652E20446566618C -:108C4000756C747320746F207468652076616C7520 -:108C500065207365742066726F6D20746865206D81 -:108C60006F737420726563656E742063616C6962F2 -:108C7000726174696F6E2E0A0000000020464C5528 -:108C80004F5F4445434159204E4F43414C49422098 -:108C90004E2058582059592E5959205A5A2E5A5A4E -:108CA0002041414141205B42425D205B43435D0ADC -:108CB0000000000020202020202020202020202034 -:108CC00020202020202020202020202020202020A4 -:108CD00020202020202D204D656173757265207441 -:108CE000686520646563617920726573706F6E7367 -:108CF000652C20736B697070696E672063616C69A5 -:108D000062726174696F6E2E0A00000020202020BC -:108D10002020202020202020202020202020202053 -:108D2000202020202020202020202020202D205303 -:108D300065652074686520494D5052455350206345 -:108D40006F6D6D616E6420666F722074686520645B -:108D50006566696E6974696F6E206F662065616310 -:108D60006820617267756D656E74206C69737465D7 -:108D70006420616674657220746865204E4F4341BB -:108D80004C4942206B6579776F72642E0A000000AF -:108D900020464C554F5F43414C49425F44554D502E -:108DA00020202020202020202020202020202020C3 -:108DB000202D2044756D702074686520706172618B -:108DC0006D657465727320616E64206461746120E6 -:108DD00066726F6D20746865206D6F7374207265A4 -:108DE00063656E742063616C6962726174696F6E31 -:108DF0002063616C6C20746F2074686520434C495B -:108E00002E0A000020666C5F636C65617262756695 -:108E1000202020202D20436C65617220746865201D -:108E2000736F667477617265206275666665722E0F -:108E30000A00000020666C5F6C6F6164203C783E25 -:108E4000202020202D204C6F6164207468652073E1 -:108E50006F667477617265206275666665722077E9 -:108E600069746820646174612066726F6D20666C3D -:108E700061736820636F6E66696775726174696F8C -:108E80006E20706167652E0A0000000020202020FF -:108E900020202020202020202020202020203C785E -:108EA0003E203D203020746F206C6F61642066721C -:108EB0006F6D205573657220557064617465207004 -:108EC0006167653B203120746F206C6F61642066A0 -:108ED000726F6D20746865204D616E756661637494 -:108EE0007572652044656661756C74207061676594 -:108EF0002E0A000020666C5F70726F6772616D20D1 -:108F00003C783E202D2050726F6772616D2074682E -:108F10006520666C61736820636F6E666967757241 -:108F20006174696F6E20706167652077697468206D -:108F3000646174612066726F6D2074686520736F60 -:108F4000667477617265206275666665722E0A00C6 -:108F50002020202020202020202020202020202011 -:108F600020203C783E203D203020746F2070726FAE -:108F70006772616D20746865205573657220557045 -:108F80006461746520706167653B206B657920744E -:108F90006F2070726F6772616D20746865204D611B -:108FA0006E75666163747572652044656661756C83 -:108FB0007420706167652E0A0000000020666C5FF7 -:108FC0006572617365203C783E2020202D2045721B -:108FD0006173652074686520666C61736820636FD7 -:108FE0006E66696775726174696F6E20706167651E -:108FF0002E0A0000202020202020202020202020B9 -:109000002020202020203C783E203D203020746FFE -:1090100020657261736520746865205573657220E0 -:1090200055706461746520706167653B206B65797C -:1090300020746F20657261736520746865204D61CE -:109040006E75666163747572652044656661756CE2 -:109050007420706167652E0A0000000020666C5F56 -:109060006170706C79202020202020202D205365F5 -:109070007474696E67732063757272656E746C794F -:1090800020696E2074686520736F667477617265FD -:109090002062756666657220617265206170706C11 -:1090A00069656420746F20746865206170706C69F4 -:1090B000636174696F6E20616E64206465766963B4 -:1090C000652E0A0020666C5F7772697465203C63C8 -:1090D0006D643E202D20536176652061207370659C -:1090E000636966696320646576696365206F7220D1 -:1090F0006170706C69636174696F6E207061726118 -:109100006D6574657220696E746F20746865207374 -:109110006F667477617265206275666665722E0A85 -:1091200000000000202020202020202020202020BF -:109130002020202020203C636D643E203D2072656D -:10914000676973746572206F72206170706C6963F7 -:109150006174696F6E20636F6D6D616E6420746FF2 -:1091600020696E707574207468652072656C657610 -:10917000616E7420706172616D657465722E0A0093 -:1091800020202020202020202020202020202020DF -:109190002020466F72207265676973746572206360 -:1091A0006F6D6D616E6473207468652062756666AC -:1091B000657220636F6E7461696E7320616E2061E9 -:1091C00072726179206F6620726567697374657267 -:1091D0002D76616C756520706169727320746861A9 -:1091E000740A000020202020202020202020202081 -:1091F00020202020202077696C6C20626520777207 -:10920000697474656E20696E206F72646572207473 -:109210006F20746865206465766963652E204361FC -:109220006C6C696E6720746869732066756E637410 -:10923000696F6E2077697468206120726567697351 -:1092400074657220636F6D6D616E640A00000000CA -:10925000202020202020202020202020202020200E -:10926000202077696C6C206164642061206E6577D2 -:109270002072656769737465722D76616C756520FF -:10928000706169722061742074686520656E642065 -:109290006F66207468652061727261792E0A000021 -:1092A00020202020202020202020202020202020BE -:1092B00020204578616D706C653A20666C5F77722E -:1092C000697465207265672031304120333335354C -:1092D000203D207772697465207468652072656727 -:1092E000697374657220307831304120746F207456 -:1092F00068652076616C7565203078333335352E9E -:109300000A000000202020202020202020202020D3 -:10931000202020202020546865206F6E6C79206109 -:1093200070706C69636174696F6E20636F6D6D61DD -:109330006E6420737570706F72746564206279203A -:109340007468697320636F6D6D616E64206973204A -:109350007468652064656620636F6D6D616E642E50 -:109360002043616C6C696E67207468650A000000B8 -:1093700020202020202020202020202020202020ED -:10938000202064656620636F6D6D616E642077696F -:109390006C6C2075706461746520746861742076EB -:1093A000616C756520696E746F2074686520736FD9 -:1093B000667477617265206275666665722E2049F3 -:1093C000742063616E206265206C61746572206137 -:1093D00070706C69656420746F0A00002020202082 -:1093E00020202020202020202020202020207468E1 -:1093F00065206170706C69636174696F6E2E0A001C -:10940000202020202020202020202020202020205C -:1094100020204578616D706C653A20666C5F7772CC -:1094200069746520646566322052464C5420302EA3 -:109430003031203D207365742066696C746572203C -:1094400062616E647769647468206F66207261740B -:10945000696F6E203220746F20302E3031487A0AC6 -:109460000000000020666C5F72656164203C636DE3 -:10947000643E20202D205265616420612073706558 -:10948000636966696320646576696365206F72202D -:109490006170706C69636174696F6E207061726174 -:1094A0006D657465722076616C75652066726F6D8E -:1094B0002074686520736F667477617265206275C9 -:1094C000666665722E0A00002020202020202020C1 -:1094D0002020202020202020202077696C6C206212 -:1094E00065207772697474656E20696E206F72648E -:1094F000657220746F2074686520646576696365A1 -:109500002E2043616C6C696E6720746869732066F5 -:10951000756E6374696F6E2077697468206120725C -:1095200065676974657220636F6D6D616E640A00B2 -:10953000202020202020202020202020202020202B -:10954000202077696C6C20646973706C6179207479 -:1095500068652076616C7565206F6620746865208B -:109560006669727374206F6363757272656E63658A -:10957000206F662074686520726567697374657210 -:109580002E0A000020202020202020202020202023 -:109590002020202020204578616D706C653A20667F -:1095A0006C5F72656164207265673F2031304120D5 -:1095B0003D2072657475726E2074686520666972EC -:1095C00073742076616C7565206F66207468652001 -:1095D00072656769737465722030783130410A00B2 -:1095E000202020202020202020202020202020207B -:1095F000202064656620636F6D6D616E64207769FD -:109600006C6C207265616420746861742076616C92 -:1096100075652066726F6D2074686520736F66745F -:1096200077617265206275666665722E0A000000B9 -:10963000202020202020202020202020202020202A -:1096400020204578616D706C653A20666C5F7265AC -:10965000616420646566323F2052464C54203D20B0 -:10966000646973706C6179207468652073657474C3 -:10967000696E67206F662074686520726174696F17 -:109680006E20322066696C7465722062616E647748 -:10969000696474682066726F6D2074686520736FEA -:1096A000667477617265206275666665722E0A005F -:1096B00020666C5F64756D702020202020202020A3 -:1096C0002D205072696E7420666C6173682062751B -:1096D0006666657220696E20636F6E666967757273 -:1096E0006174696F6E2066696C6520666F726D616A -:1096F0007420666F72206561737920736176696E7C -:10970000672E0A00310A0000300A0000524553500B -:109710003A2049444C453F3D00000000524553501B -:109720003A2049444C452000494D50554C53452062 -:10973000524553504F4E5345205345545550205495 -:10974000494D45202875732920256C640A000000C6 -:109750007265673F2000000072656720000000000E -:109760006D6F64653F0000006D6F64652000000050 -:1097700073747265616D000069646C653F00000080 -:1097800069646C65200000006465660068656C7043 -:1097900000000000616C726D3F0000006F64723F5A -:1097A000000000006F647220000000007261746DA0 -:1097B00061736B3F000000007261746D61736B2018 -:1097C00000000000626F6F7400000000666C5F6351 -:1097D0006C65617262756600666C5F6C6F616420B7 -:1097E00000000000666C5F70726F6772616D200030 -:1097F000666C5F657261736520000000666C5F6176 -:1098000070706C7900000000666C5F777269746537 -:1098100020000000666C5F7265616420000000003B -:10982000666C5F68656C70007063622D6C656400C7 -:109830006368616E6E000000666C5F64756D700039 -:10984000696D707265737000666C756F5F63616CD3 -:1098500069620000666C756F5F6465636179000022 -:10986000666C756F5F64756D705F63616C696200D3 -:109870004552524F522064657669636520696E696E -:109880007469616C697A6174696F6E2E0A000000F8 -:109890004552524F522067657420636869702049B1 -:1098A000442E0A005374617274696E6720636C6F92 -:1098B000636B2063616C6962726174696F6E2E0AFA -:1098C000000000004552524F5220747320676574A7 -:1098D0002E0A00004552524F522061646A7573741B -:1098E000206765742E0A00004552524F5220616471 -:1098F0006A757374207365742E0A00004552524FC6 -:1099000052204750494F20667265652E0A000000BC -:10991000310000004552524F5220696E76616C69E9 -:109920006420617267756D656E74732E0A000000A5 -:10993000524553503A20524547203078252E34580E -:10994000203D203078252E34580A0D0052455350C2 -:109950003A205043422D4C4544000000252E3266EB -:1099600025250A00204E4F54205553454400000041 -:10997000524553503A204D4F44453F3D00000000B2 -:10998000434F444500000000524553503A204D4F8C -:1099900044452000252E35660000000052455350F6 -:1099A0003A204F44520000003F3D000052455350C2 -:1099B0003A204F44522000004552524F5220434C0F -:1099C000492070726F636573732E0A004552524FBF -:1099D00052206461746120636F64652075706461F6 -:1099E00074652E0A000000004552524F52206461F7 -:1099F00074612041524154207570646174652E0A6F -:109A0000000000004552524F52206461746120757D -:109A100070646174652E0A004552524F5220646191 -:109A200074612073686F772E0A000000C49D0100E6 -:109A3000CC9D0100D49D0100DC9D0100E49D01004E -:109A4000EC9D0100F49D0100FC9D0100EC810100F2 -:109A500025780000524553503A205241544D41530D -:109A60004B000000524553503A205245473F2000DA -:109A700030000000524553503A2052454720000024 -:109A8000444154463A200000252E34452000000071 -:109A9000444154493A200000256C5820256C582038 -:109AA0000000000053545245414D3A200000000090 -:109AB000464C554F2044454341592050524F434551 -:109AC0005353494E472054494D452028757329204A -:109AD000256C640A00000000464C554F2044454365 -:109AE00041592053544152542054494D452025306A -:109AF0002E31660A000000000A464C554F204445AE -:109B0000434159204649542028436F6465204C53F3 -:109B1000422076732E206D6963726F7365636F6E7A -:109B20006473293A2041202B204220657870282D2B -:109B3000742F746175290A00464C554F20444543E3 -:109B4000415920412025302E35660A00464C554F9C -:109B500020444543415920422025302E35660A00D5 -:109B6000464C554F204445434159205441552025EA -:109B7000302E35660A000000464C554F20444543C0 -:109B8000415920415647205045522D53414D504C8C -:109B900045204552524F522025302E35660A00008E -:109BA0000A464C554F2044454341592044415441B5 -:109BB00020000000464C554F204445434159204465 -:109BC0004F4E450A0000000007010200494D505564 -:109BD0004C534520524553504F4E534520434F4C14 -:109BE0004C454354494F4E2054494D4520287573E8 -:109BF0002920256C640A0000494D50554C534520DE -:109C0000524553504F4E53452053414D504C4520E3 -:109C1000504552494F442025302E35660000000043 -:109C20000A494D50554C534520524553504F4E53C1 -:109C30004520444154412000494D50554C53452046 -:109C4000524553504F4E534520444F4E450A000055 -:109C50004552524F523A20496E76616C6964206FCA -:109C600070746963616C20706174682E204D757327 -:109C70007420626520312D342E0A00004552524F67 -:109C8000523A204E756D626572206F662073616D69 -:109C9000706C6573206D757374206174206D6F73C3 -:109CA0007420313935302E0A00000000464C554FE3 -:109CB0002043414C49422050524F43455353494E53 -:109CC000472054494D45202875732920256C640A86 -:109CD00000000000464C554F2043414C494220446F -:109CE0004F4E450A00000000413123323034382DF8 -:109CF000413223323034382D2F00000042312332DC -:109D00003034382D423223323034382D2F000000C9 -:109D1000433123323034382D433223323034382D1E -:109D20002F000000443223323034382D44312332A6 -:109D30003034382D2F000000434F4C4F52494D45D1 -:109D40005452592F4142534F5242414E4345000015 -:109D5000464C554F52455343454E43450000000085 -:109D6000545552424944495459000000434F4C4F06 -:109D700000000000464C554F000000005455524270 -:109D800000000000494D505052455345540000001A -:109D900054494150524553455400000053534950D3 -:109DA00052455345540000004D41585245535052BE -:109DB0004553455400000000494D500054494100AE -:109DC0005353490052415430000000005241543175 -:109DD0000000000052415432000000005241543350 -:109DE000000000005241543400000000524154353C -:109DF0000000000052415436000000005241543728 -:109E00000000000052464C5400000000414C524DEE -:109E1000000000005241544200000000494E5331FE -:109E200000000000494E53320000000053554245E7 -:109E300000000000413200004231000042320000C8 -:109E4000433100004332000044310000443200003E -:109E50004531000045320000463100004632000026 -:109E6000473100004732000048310000483200000E -:109E700049310000493200004A3100004A320000F6 -:109E80004B3100004B3200004C3100004C320000DE -:109E90005252415400000000000000000100000088 -:109EA00002000000030000000E0000000900000096 -:109EB0000A000000000000008025000036040300B6 -:109EC00018000300004B0000360403000C000300E0 -:109ED00000960000290503000800020000E10000D0 -:109EE000360403000400030000C201001B06010049 -:109EF00004000300008403001B06010002000300AD -:109F0000000807001B0601000100030000100E00FE -:109F10001B0601000100020040420F000005010085 -:109F20000100020060E31600AB0001000100020026 -:109F3000706F7700FB21F93FFB2109407CD912406B -:109F4000FB2119407A6A1F407CD92240BBFD254085 -:109F5000FB2129403A462C407A6A2F405C47314029 -:109F60007CD932409C6B3440BBFD3540DB8F3740A1 -:109F7000FB2139401BB43A403A463C405AD83D4058 -:109F80007A6A3F404C7E40405C4741406C10424002 -:109F90007CD942408CA243409C6B4440AC34454049 -:109FA000BBFD4540CBC64640DB8F4740EB584840A1 -:109FB000FB21494083F9A200444E6E00FC291500A4 -:109FC000D1572700DD34F50062DBC0003C999500D5 -:109FD000419043006351FE00BBDEAB00B761C5009A -:109FE0003A6E2400D24D42004906E00009EA2E00F4 -:109FF0001C92D100EB1DFE0029B11C00E83EA70019 -:10A00000F535820044BB2E009CE98400B426700024 -:10A01000417E5F00D6913900538339009CF43900AA -:10A020008B5F840028F9BD00F81F3B00DEFF97001E -:10A030000F980500112FEF000A5A8B006D1F6D005D -:10A04000CF7E360009CB2700464FB7009E663F0003 -:10A050002DEA5F00BA277500E5EBC7003D7BF100F4 -:10A06000F739070092528A00FB6BEA001FB15F00CC -:10A07000085D8D00300356007BFC4600F0AB6B00A2 -:10A0800020BCCF0036F49A00E3A91D005E61910068 -:10A09000081BE60085996500A0145F008D406800EC -:10A0A00080D8FF0027734D0006063100CA56150000 -:10A0B000C9A873007BE260006B8CC0000000000048 -:10A0C00000000040FB21F93F000000002D44743ED9 -:10A0D000000000809846F83C0000006051CC783BBE -:10A0E00000000080831BF0390000004020257A38F2 -:10A0F000000000802282E336000000001DF3693575 -:10A100000200000003000000040000000600000040 -:10A11000000000000000304300000000000030C3D9 -:10A120007801042043000000504F534958000000BC -:10A130002E0000006E660000696E697479000000F0 -:10A14000616E000035000000CEFBFFFFCB03000076 -:10A15000010000000000000034000000CEFBFFFF03 -:10A16000CB03000001000000000000000000000020 -:10A17000BC89D897B2D29C3C33A7A8D523F64939DD -:10A180003DA7F444FD0FA5329D978CCF08BA5B25FF -:10A19000436FAC6428066811494E4600696E66003C -:10A1A0004E414E006E616E003031323334353637F9 -:10A1B00038394142434445460000000030313233D3 -:10A1C00034353637383961626364656600000000F3 -:10A1D000286E756C6C290000202020202020202073 -:10A1E00020202020202020203030303030303030EF -:10A1F0003030303030303030303132333435363743 -:10A2000038396162636465666768696A6B6C6D6E34 -:10A210006F707172737475767778797A00000000C8 -:10A220000020202020202020202028282828282026 -:10A23000202020202020202020202020202020201E -:10A240002088101010101010101010101010101086 -:10A250001004040404040404040404101010101076 -:10A260001010414141414141010101010101010140 -:10A270000101010101010101010101011010101092 -:10A280001010424242424242020202020202020212 -:10A290000202020202020202020202021010101066 -:10A2A000200000000000000000000000000000008E -:10A2B000000000000000000000000000000000009E -:10A2C000000000000000000000000000000000008E -:10A2D000000000000000000000000000000000007E -:10A2E000000000000000000000000000000000006E -:10A2F000000000000000000000000000000000005E -:10A30000000000000000000000000000000000004D -:10A31000000000000000000000000000000000003D -:10A3200000000000496E66696E69747900000000E3 -:10A330004E614E0000000000000000000000000020 -:10A34000000000000000000000000000000000000D -:10A3500000000000000000000000000000000000FD -:10A360000000000010111213141516171819000020 -:10A3700000000000001A1B1C1D1E1F000000000032 -:10A3800000000000000000000000000000000000CD -:10A3900000000000001A1B1C1D1E1F000000000012 -:10A3A00000000000000000000000000000000000AD -:10A3B000000000000000000000000000000000009D -:10A3C000000000000000000000000000000000008D -:10A3D000000000000000000000000000000000007D -:10A3E000000000000000000000000000000000006D -:10A3F000000000000000000000000000000000005D -:10A40000000000000000000000000000000000004C -:10A41000000000000000000000000000000000003C -:10A42000000000000000000000000000000000002C -:10A4300000000000000000000080E03779C34143C5 -:10A44000176E05B5B5B89346F5F93FE9034F384D9A -:10A45000321D30F94877825A3CBF737FDD4F157546 -:10A46000000000000000F03F000000000000244059 -:10A4700000000000000059400000000000408F4034 -:10A48000000000000088C34000000000006AF8409F -:10A490000000000080842E4100000000D0126341C3 -:10A4A0000000000084D797410000000065CDCD4139 -:10A4B000000000205FA00242000000E8764837421A -:10A4C000000000A2941A6D42000040E59C30A242B8 -:10A4D0000000901EC4BCD64200003426F56B0C432D -:10A4E0000080E03779C3414300A0D88557347643D4 -:10A4F00000C84E676DC1AB43003D9160E458E14335 -:10A50000408CB5781DAF154450EFE2D6E41A4B44A9 -:10A5100092D54D06CFF08044F64AE1C7022DB544EE -:10A52000B49DD9794378EA44050000001900000081 -:08A530007D00000000000000A6 -:08A53800A85CFE7F0100000099 -:10A54000008001400D230F0000000000000000000B -:10A5500040000000505995B90400000000000000C0 -:10A560000000000002000000000002404000024025 -:10A570008000024000000000C0011F19000001001F -:10A5800000005000120000000030004000000000F9 -:10A590000000000010140420020000001014042029 -:10A5A0000B000000101404200C0000001014042004 -:10A5B0000D000000101404200E00000010140420F0 -:10A5C0000F000000121404200000000012140420E8 -:10A5D00001000000121404200200000012140420E4 -:10A5E00003000000121404200400000016140420CC -:10A5F00009000000141404200A00000014140420B0 -:10A600000C000000141404200D0000001414042099 -:10A610000E0000000000000000000000000000002C -:10A6200000000000001000400800000000000000D2 -:10A6300000140040000000000000000018000400AA -:10A6400019000500004000400F000000000000005D -:10A650001A0006001B000700004400402A0000000A -:10A66000000000001400000015000100004002403E -:10A67000100000000000000008091C1D0E00000072 -:10A680000050004000000000849D0100909D0100EA -:10A690009C9D0100A89D0100EC810100B89D010076 -:10A6A000BC9D0100C09D0100EC8101000100000083 -:10A6B0007801042000000000000000006404042071 -:10A6C000CC04042034050420000000000000000039 -:10A6D000000000000000000000000000000000007A -:10A6E000000000000000000000000000000000006A -:10A6F000000000000000000000000000000000005A -:10A700000000000000000000000000000000000049 -:10A710000000000000000000000000000000000039 -:10A720000000000000000000000000000000000029 -:10A730000000000000000000000000000000000019 -:10A740000000000000000000000000000000000009 -:10A7500000000000000000000000000000000000F9 -:10A7600001000000000000000E33CDAB34126DE696 -:10A77000ECDE05000B0000000000000000000000FF -:10A7800000000000000000000000000000000000C9 -:10A7900000000000000000000000000000000000B9 -:10A7A00000000000000000000000000000000000A9 -:10A7B0000000000000000000000000000000000099 -:10A7C0000000000000000000000000000000000089 -:10A7D0000000000000000000000000000000000079 -:10A7E0000000000000000000000000000000000069 -:10A7F0000000000000000000000000000000000059 -:10A800000000000000000000000000000000000048 -:10A810000000000000000000000000000000000038 -:10A820000000000000000000000000000000000028 -:10A830000000000000000000000000000000000018 -:10A840000000000000000000000000000000000008 -:10A8500000000000000000000000000000000000F8 -:10A8600000000000000000000000000000000000E8 -:10A8700000000000000000000000000000000000D8 -:10A8800000000000000000000000000000000000C8 -:10A8900000000000000000000000000000000000B8 -:10A8A00000000000000000000000000000000000A8 -:10A8B0000000000000000000000000000000000098 -:10A8C0000000000000000000000000000000000088 -:10A8D0000000000000000000000000000000000078 -:10A8E0000000000000000000000000000000000068 -:10A8F0000000000000000000000000000000000058 -:10A900000000000000000000000000000000000047 -:10A910000000000000000000000000000000000037 -:10A920000000000000000000000000000000000027 -:10A930000000000000000000000000000000000017 -:10A940000000000000000000000000000000000007 -:10A9500000000000000000000000000000000000F7 -:10A9600000000000000000000000000000000000E7 -:10A9700000000000000000000000000000000000D7 -:10A9800000000000000000000000000000000000C7 -:10A9900000000000000000000000000000000000B7 -:10A9A00000000000000000000000000000000000A7 -:10A9B0000000000000000000000000000000000097 -:10A9C0000000000000000000000000000000000087 -:10A9D0000000000000000000000000000000000077 -:10A9E0000000000000000000000000000000000067 -:10A9F0000000000000000000000000000000000057 -:10AA00000000000000000000000000000000000046 -:10AA10000000000000000000000000000000000036 -:10AA20000000000000000000000000000000000026 -:10AA30000000000000000000000000000000000016 -:10AA40000000000000000000000000000000000006 -:10AA500000000000000000000000000000000000F6 -:10AA600000000000000000000000000000000000E6 -:10AA700000000000000000000000000000000000D6 -:10AA800000000000000000000000000000000000C6 -:10AA900000000000000000000000000000000000B6 -:10AAA00000000000000000000000000000000000A6 -:10AAB0000000000000000000000000000000000096 -:10AAC0000000000000000000000000000000000086 -:10AAD0000000000000000000000000000000000076 -:10AAE0004300000000000000000000000000000023 -:10AAF0000000000000000000000000000000000056 -:10AB00004300000000000000000000000000000002 -:10AB10000000000000000000000000000000000035 -:10AB200043000000000000000000000000000000E2 -:10AB30000000000000000000000000000000000015 -:10AB400043000000000000000000000000000000C2 -:10AB500000000000000000000000000000000000F5 -:10AB600043000000000000000000000000000000A2 -:10AB700000000000000000000000000000000000D5 -:10AB80004300000000000000000000000000000082 -:10AB900000000000000000000000000000000000B5 -:10ABA0004300000000000000000000000000000062 -:10ABB0000000000000000000000000000000000095 -:10ABC000392C0100EDF900000000000020A2010076 -:10ABD00030A10100EC810100EC810100EC81010059 -:10ABE000EC810100EC810100EC810100EC810100AD -:10ABF000EC810100EC810100FFFFFFFFFFFFFFFF81 -:10AC0000FFFFFFFFFFFF00000100415343494900E0 -:10AC10000000000000000000000000000000000034 -:10AC200000000000000000000000415343494900BB -:10AC30000000000000000000000000000000000014 -:10AC40000000000000000000000000000000000004 -:10AC5000000000000C0704200C0704201407042047 -:10AC6000140704201C0704201C07042024070420C8 -:10AC7000240704202C0704202C0704203407042078 -:10AC8000340704203C0704203C0704204407042028 -:10AC9000440704204C0704204C07042054070420D8 -:10ACA000540704205C0704205C0704206407042088 -:10ACB000640704206C0704206C0704207407042038 -:10ACC000740704207C0704207C07042084070420E8 -:10ACD000840704208C0704208C0704209407042098 -:10ACE000940704209C0704209C070420A407042048 -:10ACF000A4070420AC070420AC070420B4070420F8 -:10AD0000B4070420BC070420BC070420C4070420A7 -:10AD1000C4070420CC070420CC070420D407042057 -:10AD2000D4070420DC070420DC070420E407042007 -:10AD3000E4070420EC070420EC070420F4070420B7 -:10AD4000F4070420FC070420FC0704200408042066 -:10AD5000040804200C0804200C0804201408042013 -:10AD6000140804201C0804201C08042024080420C3 -:10AD7000240804202C0804202C0804203408042073 -:10AD8000340804203C0804203C0804204408042023 -:10AD9000440804204C0804204C08042054080420D3 -:10ADA000540804205C0804205C0804206408042083 -:10ADB000640804206C0804206C0804207408042033 -:10ADC000740804207C0804207C08042084080420E3 -:10ADD000840804208C0804208C0804209408042093 -:10ADE000940804209C0804209C080420A408042043 -:10ADF000A4080420AC080420AC080420B4080420F3 -:10AE0000B4080420BC080420BC080420C4080420A2 -:10AE1000C4080420CC080420CC080420D408042052 -:10AE2000D4080420DC080420DC080420E408042002 -:10AE3000E4080420EC080420EC080420F4080420B2 -:10AE4000F4080420FC080420FC0804200409042061 -:10AE5000040904200C0904200C090420140904200E -:10AE6000140904201C0904201C09042024090420BE -:10AE7000240904202C0904202C090420340904206E -:10AE8000340904203C0904203C090420440904201E -:10AE9000440904204C0904204C09042054090420CE -:10AEA000540904205C0904205C090420640904207E -:10AEB000640904206C0904206C090420740904202E -:10AEC000740904207C0904207C09042084090420DE -:10AED000840904208C0904208C090420940904208E -:10AEE000940904209C0904209C090420A40904203E -:10AEF000A4090420AC090420AC090420B4090420EE -:10AF0000B4090420BC090420BC090420C40904209D -:10AF1000C4090420CC090420CC090420D40904204D -:10AF2000D4090420DC090420DC090420E4090420FD -:10AF3000E4090420EC090420EC090420F4090420AD -:10AF4000F4090420FC090420FC090420040A04205C -:10AF5000040A04200C0A04200C0A0420140A042009 -:10AF6000140A04201C0A04201C0A0420240A0420B9 -:10AF7000240A04202C0A04202C0A0420340A042069 -:10AF8000340A04203C0A04203C0A0420440A042019 -:10AF9000440A04204C0A04204C0A0420540A0420C9 -:10AFA000540A04205C0A04205C0A0420640A042079 -:10AFB000640A04206C0A04206C0A0420740A042029 -:10AFC000740A04207C0A04207C0A0420840A0420D9 -:10AFD000840A04208C0A04208C0A0420940A042089 -:10AFE000940A04209C0A04209C0A0420A40A042039 -:10AFF000A40A0420AC0A0420AC0A0420B40A0420E9 -:10B00000B40A0420BC0A0420BC0A0420C40A042098 -:10B01000C40A0420CC0A0420CC0A0420D40A042048 -:10B02000D40A0420DC0A0420DC0A0420E40A0420F8 -:10B03000E40A0420EC0A0420EC0A0420F40A0420A8 -:10B04000F40A0420FC0A0420FC0A0420040B042057 -:10B05000040B0420FFFFFFFF00000200A0150420E6 -:0CB06000512C0100C5010000A1010000FE -:0400000300002C4984 -:00000001FF diff --git a/docs/solutions/reference-designs/eval-cn0503-ardz/img_20200501_130012_1.jpg b/docs/solutions/reference-designs/eval-cn0503-ardz/img_20200501_130012_1.jpg deleted file mode 100644 index 6eef4b994ab..00000000000 --- a/docs/solutions/reference-designs/eval-cn0503-ardz/img_20200501_130012_1.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eeb1035dd63901034d74b2b30f3488df06c1418eec35c953dbd6fe264d75d983 -size 34601 diff --git a/docs/solutions/reference-designs/eval-cn0503-ardz/img_20200501_130034_1.jpg b/docs/solutions/reference-designs/eval-cn0503-ardz/img_20200501_130034_1.jpg deleted file mode 100644 index 09b4d5ce94c..00000000000 --- a/docs/solutions/reference-designs/eval-cn0503-ardz/img_20200501_130034_1.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:38a609c5df86b48a0f13629ca67028a20d93333adda0bc5737ed9adb4f82d321 -size 38047 diff --git a/docs/solutions/reference-designs/eval-cn0503-ardz/index.rst b/docs/solutions/reference-designs/eval-cn0503-ardz/index.rst index f6b755866b6..10cc7ffdccb 100644 --- a/docs/solutions/reference-designs/eval-cn0503-ardz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0503-ardz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0503-ARDZ ================ -Multiple Parameter Optical Liquid Measurement Platform -"""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Multiple Parameter Optical Liquid Measurement Platform. :adi:`CN0503` is a reconfigurable multi-parameter optical liquid measurement platform capable of performing colorimetry, turbidity, and @@ -680,7 +679,7 @@ Schematic, PCB Layout, Bill of Materials .. admonition:: Download - :download:`EVAL-CN0503-ARDZ Design & Integration Files ` + :download:`EVAL-CN0503-ARDZ Design & Integration Files ` - Schematics - PCB Layout diff --git a/docs/solutions/reference-designs/eval-cn0503-ardz/nitrate-measurement/ld3sel-ard.png b/docs/solutions/reference-designs/eval-cn0503-ardz/nitrate-measurement/ld3sel-ard.png deleted file mode 100644 index b3285516cba..00000000000 --- a/docs/solutions/reference-designs/eval-cn0503-ardz/nitrate-measurement/ld3sel-ard.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7d8d0305162127c217a5cee62eafe114cd1c9827a407cfb4709ee0e553caac27 -size 4667 diff --git a/docs/solutions/reference-designs/eval-cn0503-ardz/pH-measurement/ld3sel-ard.png b/docs/solutions/reference-designs/eval-cn0503-ardz/pH-measurement/ld3sel-ard.png deleted file mode 100644 index b3285516cba..00000000000 --- a/docs/solutions/reference-designs/eval-cn0503-ardz/pH-measurement/ld3sel-ard.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7d8d0305162127c217a5cee62eafe114cd1c9827a407cfb4709ee0e553caac27 -size 4667 diff --git a/docs/solutions/reference-designs/eval-cn0518-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0518-ebz/index.rst index e094e127d3f..ac4ef078446 100644 --- a/docs/solutions/reference-designs/eval-cn0518-ebz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0518-ebz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0518-EBZ =============== -USB-Powered, 915 MHz RF Low Noise Amplifier Receiver with Overpower Protection Circuit -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +USB-Powered, 915 MHz RF Low Noise Amplifier Receiver with Overpower Protection Circuit. Overview -------- diff --git a/docs/solutions/reference-designs/eval-cn0521-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0521-ebz/index.rst index 5531bbf503e..d395e0fa88e 100644 --- a/docs/solutions/reference-designs/eval-cn0521-ebz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0521-ebz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0521-EBZ =============== -USB-Powered, 2.4 GHz RF Low Noise Amplifier Receiver with Overpower Protection Circuit -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +USB-Powered, 2.4 GHz RF Low Noise Amplifier Receiver with Overpower Protection Circuit. Overview -------- diff --git a/docs/solutions/reference-designs/eval-cn0523-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0523-ebz/index.rst index 217c58c26a9..0d83a2decce 100644 --- a/docs/solutions/reference-designs/eval-cn0523-ebz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0523-ebz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0523-EBZ =============== -USB-Powered, 5.8 GHz RF Power Amplifier with Overtemperature Management -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +USB-Powered, 5.8 GHz RF Power Amplifier with Overtemperature Management. Overview -------- diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/adalm_pluto_loop_back.png b/docs/solutions/reference-designs/eval-cn0534-ebz/adalm_pluto_loop_back.png new file mode 100644 index 00000000000..206303208f6 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/adalm_pluto_loop_back.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fbe2d485df20bb23b0ef130998d04131fbcce9228050fb3ea4ca5da8436e30e +size 14009 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_adalm_pluto_test.png b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_adalm_pluto_test.png new file mode 100644 index 00000000000..65df6688af6 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_adalm_pluto_test.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccfb18e0b6f299250809b8c527143412ef9cc6d0ff79c5ea400ca7a3a2e6896a +size 24379 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_and_adalm_pluto_test_setup.png b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_and_adalm_pluto_test_setup.png new file mode 100644 index 00000000000..372b393b716 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_and_adalm_pluto_test_setup.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:022559d5ae637dfc286a45f3335da739d049a69b449ffd79340a8502762526a0 +size 760443 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_connector_labels.png b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_connector_labels.png new file mode 100644 index 00000000000..73917824236 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_connector_labels.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:575f64309b5f34b3eda460be7ba38ffcd68edc3b8d128b6a16e7744e52e6ea4b +size 884122 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_design_support_package.zip b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_design_support_package.zip new file mode 100644 index 00000000000..d255fc79edc --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_design_support_package.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7f150ed4c4175c53f9070884476f7134991f1b8c0d04fbdcfef113b9e1a9ebc +size 11074732 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_led_power_indicator.png b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_led_power_indicator.png new file mode 100644 index 00000000000..b2426ac0710 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_led_power_indicator.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ef3c9f73428f4687967428bfed3ee2ddc79cffa66fc9b9f01bff4e320f4f88f +size 1831218 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_sample_application.png b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_sample_application.png new file mode 100644 index 00000000000..987b192f8da --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_sample_application.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3f71dd3ae06635f79112150df2372d1ca5532cc2020a024f97250aea642679d +size 385312 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_system_block_diagram.png b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_system_block_diagram.png new file mode 100644 index 00000000000..1cc917b5ff3 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/cn0534_system_block_diagram.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:433777edf85d4ec66a905d2306041c1438956d3251182c0e6b332c83149203ea +size 43325 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/command_line_to_update_ad9364.jpg b/docs/solutions/reference-designs/eval-cn0534-ebz/command_line_to_update_ad9364.jpg new file mode 100644 index 00000000000..710242cef0e --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/command_line_to_update_ad9364.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c685a69cc04cca183f3391705a1ecae8eb75c4646150eaae7be42956fdea305 +size 38582 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/connecting_of_iio_osc.jpg b/docs/solutions/reference-designs/eval-cn0534-ebz/connecting_of_iio_osc.jpg new file mode 100644 index 00000000000..f0912b2fe0f --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/connecting_of_iio_osc.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14406776f911812e5278ff4b2142f71b4afee6fbaa798137d58698a3b26adf3b +size 61019 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/eject_pluto.jpg b/docs/solutions/reference-designs/eval-cn0534-ebz/eject_pluto.jpg new file mode 100644 index 00000000000..1e121a7c60e --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/eject_pluto.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6859e718df9ea1f844b0b91e945a3876644df91917e867aca0d538fca4350fbd +size 14691 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/eval-cn0534-ebzangle.jpg b/docs/solutions/reference-designs/eval-cn0534-ebz/eval-cn0534-ebzangle.jpg new file mode 100644 index 00000000000..67bc26fa08c --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/eval-cn0534-ebzangle.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:725babe5414534a4fb6ef3fb7da73125fbb77519fbd85b4378e5784cc5fd8880 +size 1046370 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0534-ebz/index.rst new file mode 100644 index 00000000000..bbb606334ec --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/index.rst @@ -0,0 +1,316 @@ +.. _eval-cn0534-ebz: + +EVAL-CN0534-EBZ +=============== + +USB Powered 5.8 GHz RF LNA Receiver with Output Power Protection + +Overview +-------- + +The International Telecommunication Union (ITU) allocates the +un-licensed 5.8 GHz industrial, scientific, and medical (ISM) radio +frequency band for use worldwide. Advancements in wireless technologies +and standards, as well as minimal regulatory compliance requirements, +have made this frequency band popular for short range, wireless +communication systems. + +The 5.8 GHz band is preferred for short range digital communication +applications (such as WiFi) because of the number of channels and the +bandwidth available. While the transmission range is shorter than that +of the 2.4 GHz band, its 150 MHz bandwidth accommodates up to 23 +non-overlapping WiFi channels. Additional common uses include software +defined radio, wireless access points, public safety radio, wireless +repeaters, femtocells, and Long-Term Evolution (LTE)/Worldwide +Interoperability for Microwave Access (WiMAX)/4G, base transceiver +station (BTS) infrastructure. + +This design provides high gain, robust overpower monitoring, and +protection all in a small footprint, which is a great addition to any +ISM band application where low signal strength or distance may be a +complication. + +The circuit is a high performance RF receiver system with +23 dB of +gain, optimized for operation at a center frequency of 5.8 GHz. The +input is unfiltered, maintaining a noise figure of 2 dB, while a +bandpass filter at the output attenuates out-of-band interferers. + +The circuit includes a high speed overpower detector and switch that +protects sensitive downstream equipment connected to the receiver +system. The receiver system also automatically returns to normal +operation when the RF power level drops within the acceptable range. The +RF inputs and outputs are standard SMA connectors, and the entire design +is powered from a single micro USB connector. + +.. figure:: cn0534_system_block_diagram.png + :align: center + +.. figure:: eval-cn0534-ebzangle.jpg + :align: center + :width: 600px + :height: 400px + +General Setup +------------- + +.. figure:: test_setup.gif + :align: center + :width: 600px + +.. figure:: cn0534_led_power_indicator.png + :align: center + :width: 600px + +.. note:: + + LED, DS1 from :adi:`CN0534`, will automatically turn on indicating that the + CN0534 is powered and operational. If the LED is off, the CN0534 could + still be powered properly, but the RF input power into the amplifier + might be activating the automatic shutdown, so try to lower the RF input + signal by 10dB and see if the LED turns on. + +Connectors +---------- + +.. figure:: cn0534_connector_labels.png + :align: center + +SMA Connectors +~~~~~~~~~~~~~~ + +The SMA connectors are used for the RF input and output connections. + + - **J1** is the **RF OUTPUT** SMA Female connector that would normally + be connected to a radio or piece of RF equipment. + + - **J2** is the **RF INPUT** SMA Male connector that would normally be + connected to an antenna. + +Power Connector +~~~~~~~~~~~~~~~ + + - **P1** is the micro USB port used to provide 5V power to the board + +Getting Started +--------------- + +Required Equipment +~~~~~~~~~~~~~~~~~~ + + - :adi:`EVAL-CN0534-EBZ Board ` + + - :adi:`ADALM-Pluto` + + - Two (2) micro-USB power adaptors OR Two (2) micro-USB to USB cables + for powering up ADALM-Pluto and EVAL- CN0534-EBZ + + - One (1) SMA male to SMA male cable + + - One (1) SMA 10dB RF Attenuator (6610_SMA-50-2/199_NE) OR any + equivalent RF Attenuator with same attenuation or higher + +ADALM-Pluto Preparation +~~~~~~~~~~~~~~~~~~~~~~~~ + +Firmware Loading +^^^^^^^^^^^^^^^^ + +#. Download the :git-plutosdr-fw:`latest Pluto firmware `. + +#. Unzip downloaded folder. + +#. Connect Pluto to PC/Laptop using micro USB cable in the terminal + with USB symbol. + +#. Open the Pluto mass storage device. + +#. Open the downloaded firmware file. + +#. Copy the file, pluto.frm, to the Pluto mass storage device + + .. figure:: pluto_firmware_update.jpg + :align: center + :width: 800px + +#. This will cause LED1 to blink rapidly. This means programming is + taking place. Do not remove power (or USB) while the device is + blinking rapidly. It does take approximately 4 minutes to properly + program the device. + +#. Once the device is done programming, it will re-appear as a mass + storage device. + +#. Eject (don’t unplug) the Pluto mass storage device. + + .. figure:: eject_pluto.jpg + :align: center + +#. Now the USB cable can now be safely disconnected in the PC. + +Updating to the AD9364 +^^^^^^^^^^^^^^^^^^^^^^ + +#. Connect again the Pluto to PC/Laptop using micro USB cable. + +#. Open any serial application (ex. TeraTerm, Putty) and ssh to + 192.168.2.1, username is root and the password is analog. + + .. figure:: tera_term_connection.jpg + :align: center + + .. figure:: username_and_password.jpg + :align: center + +#. To change things to the AD9364 configuration, type in the following + commands, line by line: + + .. code-block:: + + # fw_setenv attr_name compatible + # fw_setenv attr_val ad9364 + # reboot + + .. figure:: command_line_to_update_ad9364.jpg + :align: center + +#. Eject (don’t unplug) the Pluto mass storage device. + +#. Now the USB cable can now be safely disconnected in the PC. + +#. Connect again Pluto to PC/Laptop using micro USB cable and proceed + setting up the hardware test setup following the instruction in the + next section. + +Test Setup +~~~~~~~~~~ + +Normal Operation +^^^^^^^^^^^^^^^^ + + .. figure:: cn0534_and_adalm_pluto_test_setup.png + :align: center + :width: 800px + +#. Connect the RF Tx of Pluto SDR to J2 of the + :adi:`EVAL-CN0534-EBZ Board `. + +#. Connect J1 of the :adi:`EVAL-CN0534-EBZ Board ` + to the RF Rx of Pluto SDR + +#. Connect P1 (micro USB) connector of the + :adi:`EVAL-CN0534-EBZ Board ` into a PC USB port + or 5 V USB charger. + +#. The DS1 LED of CN0534 will automatically turn on indicating the board + is powered on and is in operation. + +.. important:: + + The ADALM-Pluto can be configured using an IIO Oscilloscope, + visit the website on + + - :ref:`iio-oscilloscope` to know more about the tool. + + - Optional: an RF attenuator can be connected in between the + :adi:`EVAL-CN0534-EBZ Board ` RF Output and the RF + Rx of Pluto SDR to protect the Rx of Pluto from exceeding + its limits. + +IIO Oscilloscope +~~~~~~~~~~~~~~~~ + +.. important:: + + Make sure to download/update to the latest version of + IIO-Oscilloscope found on this + :git-iio-oscilloscope:`link `. + +#. Once done with the installation or an update of the latest + IIO-Oscilloscope, open the application. The user needs to supply a + URI which will be used in the context creation of the IIO + Oscilloscope and the instructions can be seen from the previous + section. + +#. Press refresh to display available IIO Devices, once ADALM-Pluto + appeared, press connect. + + .. figure:: connecting_of_iio_osc.jpg + :align: center + +ADALM Pluto Loop-Back Operation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + .. figure:: adalm_pluto_loop_back.png + :align: center + :width: 500px + +The plot shown below is the ADALM Pluto output with the RF Tx and Rx +connected directly with transmit power set to -30 dBFS producing a 63.5 +dB RSSI RF power input reading: + +And with transmit power set to -10 dBFS producing a 43.5 dB RSSI RF +power input reading: + +Normal Operation +^^^^^^^^^^^^^^^^ + + .. figure:: cn0534_adalm_pluto_test.png + :align: center + :width: 600px + +The plot is as shown below with transmit power set to -30 dBFS producing +a 41.5 dB RSSI RF power input reading providing a gain of 22dB in +reference with the loop back test operation: + +Auto Shutdown Operation +^^^^^^^^^^^^^^^^^^^^^^^ + +The plot is as shown below with transmit power set to -10 dBFS producing +a 40.25 dB RSSI RF power input reading and showing a 20 dB attenuation +in reference with the loop back test operation: + + .. figure:: cn0534_adalm_pluto_test.png + :align: center + :width: 600px + +WARNING +------- + +.. warning:: + + Connecting the :adi:`EVAL-CN0534-EBZ Board ` directly + to the input (Rx) of a radio or other piece of RF equipment may + exceed the absolute maximum ratings for the RF Input. (which is +2.5 dBm + for the ADALM-PLUTO). Doing this may permanently damage the input. + + .. figure:: cn0534_sample_application.png + :align: center + :width: 700px + + Never do this in normal operation. + +More Information and Useful Links +--------------------------------- + + - :adi:`EVAL-CN0534-EBZ Board ` + - :adi:`HMC717A Product Page ` + - :adi:`ADL5904 Product Page ` + - :adi:`HMC802A Product Page ` + - :adi:`LTC6991 Product Page ` + - :adi:`LT8335 Product Page ` + - :adi:`ADM7150 Product Page ` + - :adi:`ADP150 Product Page ` + - :dokuwiki:`RF Amplifier Considerations ` + +Schematic, PCB Layout, Bill of Materials +---------------------------------------- + +.. admonition:: Download + + :download:`EVAL-CN0534-SDPZ Design & Integration Files ` + + - Schematics + - PCB Layout + - Bill of Materials + - Gerber Files + - Allegro Board File diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/pluto_firmware_update.jpg b/docs/solutions/reference-designs/eval-cn0534-ebz/pluto_firmware_update.jpg new file mode 100644 index 00000000000..3593b2f4745 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/pluto_firmware_update.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df9b1050798693c2eafcea735609e32e379b618c9c3ae553d9f404e9adefafa9 +size 104679 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/tera_term_connection.jpg b/docs/solutions/reference-designs/eval-cn0534-ebz/tera_term_connection.jpg new file mode 100644 index 00000000000..dd1d89fd5d5 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/tera_term_connection.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9cae31b443bf722aa2e11b24fbfc0a6fc6517402ef0de11f1155ccaad89bf90 +size 38539 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/test_setup.gif b/docs/solutions/reference-designs/eval-cn0534-ebz/test_setup.gif new file mode 100644 index 00000000000..fdf1986dca6 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/test_setup.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b2ac014001fb16726fb68063385fdb614acd53615d64e16e4bc70562c2c0df5 +size 16528 diff --git a/docs/solutions/reference-designs/eval-cn0534-ebz/username_and_password.jpg b/docs/solutions/reference-designs/eval-cn0534-ebz/username_and_password.jpg new file mode 100644 index 00000000000..74a75cc2b00 --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0534-ebz/username_and_password.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:327c039cd16e344062236fc488fb82cbe3c440acca7af477f642b91df276d736 +size 47652 diff --git a/docs/solutions/reference-designs/eval-cn0540-ardz/index.rst b/docs/solutions/reference-designs/eval-cn0540-ardz/index.rst index c105995955b..7f8f45b06c4 100644 --- a/docs/solutions/reference-designs/eval-cn0540-ardz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0540-ardz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0540-ARDZ =============================================================================== -24-Bit Data Acquisition System for IEPE Sensors -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +24-Bit Data Acquisition System for IEPE Sensors. .. image:: ../images/ad7768-1.png :align: left @@ -96,8 +95,8 @@ Table of Contents #. Use the board to better understand the :adi:`EVAL-CN0540-ARDZ` - #. :external+adi-kuiper-gen:doc:`Configure a SD Card ` - #. :external+adi-kuiper-gen:doc:`Update the SD Card ` + #. :external+kuiper:doc:`Configure a SD Card ` + #. :external+kuiper:doc:`Update the SD Card ` #. Linux Applications diff --git a/docs/solutions/reference-designs/eval-cn0540-ardz/quickstart/de10nano.rst b/docs/solutions/reference-designs/eval-cn0540-ardz/quickstart/de10nano.rst index ce33488718b..8d29e59dad1 100644 --- a/docs/solutions/reference-designs/eval-cn0540-ardz/quickstart/de10nano.rst +++ b/docs/solutions/reference-designs/eval-cn0540-ardz/quickstart/de10nano.rst @@ -3,7 +3,7 @@ DE10-Nano Quickstart =============================================================================== -.. image:: ../../images/DE10Nano.jpg +.. image:: ../../images/de10nano.jpg :align: center :width: 500 diff --git a/docs/solutions/reference-designs/eval-cn0550-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0550-ebz/index.rst index 82f47ca9144..5c2c4f58750 100644 --- a/docs/solutions/reference-designs/eval-cn0550-ebz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0550-ebz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0550-EBZ =============== -Low/Full/High-Speed USB 2.0 Isolator with Isolated Power -"""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Low/Full/High-Speed USB 2.0 Isolator with Isolated Power. General Description ------------------- diff --git a/docs/solutions/reference-designs/eval-cn0554-rpiz/cn0554-DesignSupport.zip b/docs/solutions/reference-designs/eval-cn0554-rpiz/cn0554-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/eval-cn0554-rpiz/cn0554-DesignSupport.zip rename to docs/solutions/reference-designs/eval-cn0554-rpiz/cn0554-designsupport.zip diff --git a/docs/solutions/reference-designs/eval-cn0554-rpiz/index.rst b/docs/solutions/reference-designs/eval-cn0554-rpiz/index.rst index 3eb04ff5a67..bfa5e18b268 100644 --- a/docs/solutions/reference-designs/eval-cn0554-rpiz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0554-rpiz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0554-RPIZ ================ -±10 V Analog Input and ±15 V Analog Output for Raspberry Pi Platforms -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +±10 V Analog Input and ±15 V Analog Output for Raspberry Pi Platforms. The :adi:`EVAL-CN0554-RPIZ` is a flexible, general-purpose multichannel mixed-signal analog input/output (I/O) module. @@ -39,7 +38,7 @@ Equipment Required - **Software** -- :external+adi-kuiper-gen:doc:`index` +- :external+kuiper:doc:`index` Connectors and Jumper Configurations ------------------------------------ @@ -116,7 +115,7 @@ Equipment Required **Software** -- :external+adi-kuiper-gen:doc:`index` +- :external+kuiper:doc:`index` **Documentation** @@ -227,7 +226,7 @@ In order to control the :adi:`EVAL-CN0554-RPIZ` from the Raspberry Pi, you will need to install ADI Kuiper Linux on an SD card. Complete instructions, including where to download the SD card image, how to write it to the SD card, and how to configure the system are provided at -:external+adi-kuiper-gen:doc:`index`. Write the image and follow the system +:external+kuiper:doc:`index`. Write the image and follow the system configuration procedure. .. figure:: command_prompt.png @@ -243,7 +242,7 @@ EVAL-CN0554-RPIZ for this case. The overlay file is already included in the SD card and just needs to be matched to the EVAL-CN0554-RPIZ. Follow the Hardware Configuration procedure under **Preparing the Image: -Raspberry Pi** in the :external+adi-kuiper-gen:doc:`index` page, substituting +Raspberry Pi** in the :external+kuiper:doc:`index` page, substituting the following lines in **config.txt**: This brings up the file in the terminal. Scroll down until the line that @@ -331,7 +330,7 @@ Schematic, PCB Layout, Bill of Materials .. admonition:: Download - :download:`EVAL-CN0554-RPIZ Design & Integration Files ` + :download:`EVAL-CN0554-RPIZ Design & Integration Files ` - Schematics - PCB Layout @@ -350,7 +349,7 @@ Reference Demos & Software - :ref:`pyadi-iio` - :ref:`iio-oscilloscope` -- :external+adi-kuiper-gen:doc:`index` +- :external+kuiper:doc:`index` Hardware Registration --------------------- diff --git a/docs/solutions/reference-designs/eval-cn0555-ebz/CN0555-DesignSupport.zip b/docs/solutions/reference-designs/eval-cn0555-ebz/cn0555-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/eval-cn0555-ebz/CN0555-DesignSupport.zip rename to docs/solutions/reference-designs/eval-cn0555-ebz/cn0555-designsupport.zip diff --git a/docs/solutions/reference-designs/eval-cn0555-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0555-ebz/index.rst index 220bc632005..c02bcabd68e 100644 --- a/docs/solutions/reference-designs/eval-cn0555-ebz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0555-ebz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0555-EBZ =============== -USB-Powered, 433.92 MHz RF Low Noise Amplifier Receiver with Overpower Protection -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +USB-Powered, 433.92 MHz RF Low Noise Amplifier Receiver with Overpower Protection. Overview -------- @@ -302,7 +301,7 @@ Schematic, PCB Layout, Bill of Materials .. admonition:: Download - :download:`EVAL-CN0555-EBZ Design & Integration Files ` + :download:`EVAL-CN0555-EBZ Design & Integration Files ` - Schematics - PCB Layout diff --git a/docs/solutions/reference-designs/eval-cn0556-ebz/556_554_boost_range.png b/docs/solutions/reference-designs/eval-cn0556-ebz/556_554_boost_range.png deleted file mode 100644 index da8fa886515..00000000000 --- a/docs/solutions/reference-designs/eval-cn0556-ebz/556_554_boost_range.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ef5c9e539cdbec327a642bf2918e4523568badc0de6460390cf1fdf75f4db186 -size 474283 diff --git a/docs/solutions/reference-designs/eval-cn0556-ebz/556_554_buck_range.png b/docs/solutions/reference-designs/eval-cn0556-ebz/556_554_buck_range.png deleted file mode 100644 index e46b42799dc..00000000000 --- a/docs/solutions/reference-designs/eval-cn0556-ebz/556_554_buck_range.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:648a4a61907678db630ef54b3cc2e1562bf19b02cbe1f907acc310b4cfb026a0 -size 477030 diff --git a/docs/solutions/reference-designs/eval-cn0556-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0556-ebz/index.rst index a20a24666b5..66664e4c30e 100644 --- a/docs/solutions/reference-designs/eval-cn0556-ebz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0556-ebz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0556-EBZ =============== -Programmable High Current and Voltage Source/Sink Power Supply -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Programmable High Current and Voltage Source/Sink Power Supply. Overview -------- @@ -109,7 +108,7 @@ update the device tree overlay. A Device Tree Overlay contains information about additional connected hardware, the EVAL-CN0556-EBZ for this case. The overlay file is already included in the SD card and just needs to be matched to the EVAL-CN0556-EBZ. -Follow :external+adi-kuiper-gen:ref:`hardware-configuration-raspberry-pi`, +Follow :external+kuiper:ref:`hardware-configuration-raspberry-pi`, substituting the following lines in **config.txt**. This brings up the file in the terminal. Scroll down until the line that diff --git a/docs/solutions/reference-designs/eval-cn0565-ardz/CN0565-DesignSupport.zip b/docs/solutions/reference-designs/eval-cn0565-ardz/cn0565-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/eval-cn0565-ardz/CN0565-DesignSupport.zip rename to docs/solutions/reference-designs/eval-cn0565-ardz/cn0565-designsupport.zip diff --git a/docs/solutions/reference-designs/eval-cn0565-ardz/index.rst b/docs/solutions/reference-designs/eval-cn0565-ardz/index.rst index 1a16b416def..6773b944bdc 100644 --- a/docs/solutions/reference-designs/eval-cn0565-ardz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0565-ardz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0565-ARDZ ================ -Electrical Impedance Tomography Measurement System -""""""""""""""""""""""""""""""""""""""""""""""""""" +Electrical Impedance Tomography Measurement System. Overview -------- @@ -395,7 +394,7 @@ Design and Integration Files .. admonition:: Download - :download:`EVAL-CN0565-ARDZ Design & Integration Files ` + :download:`EVAL-CN0565-ARDZ Design & Integration Files ` - Schematic - PCB Layout diff --git a/docs/solutions/reference-designs/eval-cn0575-rpiz/CN0575-DesignSupport.zip b/docs/solutions/reference-designs/eval-cn0575-rpiz/cn0575-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/eval-cn0575-rpiz/CN0575-DesignSupport.zip rename to docs/solutions/reference-designs/eval-cn0575-rpiz/cn0575-designsupport.zip diff --git a/docs/solutions/reference-designs/eval-cn0575-rpiz/I2C-Bus-Address-Selection.csv b/docs/solutions/reference-designs/eval-cn0575-rpiz/i2c-bus-address-selection.csv similarity index 100% rename from docs/solutions/reference-designs/eval-cn0575-rpiz/I2C-Bus-Address-Selection.csv rename to docs/solutions/reference-designs/eval-cn0575-rpiz/i2c-bus-address-selection.csv diff --git a/docs/solutions/reference-designs/eval-cn0575-rpiz/index.rst b/docs/solutions/reference-designs/eval-cn0575-rpiz/index.rst index ad81ffd29ce..ab1b16b3f22 100644 --- a/docs/solutions/reference-designs/eval-cn0575-rpiz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0575-rpiz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0575-RPIZ ================ -10BASE-T1L Field Device Development Platform with Class 12 and 13 SPoE -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +10BASE-T1L Field Device Development Platform with Class 12 and 13 SPoE. General Description ------------------- @@ -103,7 +102,7 @@ class. SPoE PD Power Class Jumpers .. csv-table:: - :file: SPoE_PD_Power_Class_Selection.csv + :file: spoe_pd_power_class_selection.csv The :adi:`EVAL-CN0575-RPIZ ` was designed and evaluated for PD Classes 12 and 13. However, Classes 10 and 11 may still be @@ -142,7 +141,7 @@ Refer to the table below on setting the **JP3** jumper to enable/disable the software power-down feature: .. csv-table:: - :file: JP3-Setting.csv + :file: jp3-setting.csv The :adi:`ADIN1110` supports both generic SPI and the OPEN Alliance SPI protocol in its communication. Refer to the table below on @@ -167,7 +166,7 @@ If there is a need to reassign the :adi:`ADT75` address, refer to the following table: .. csv-table:: - :file: I2C-Bus-Address-Selection.csv + :file: i2c-bus-address-selection.csv Optional GPIO Pins (JP9 to JP13) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -182,7 +181,7 @@ be used in the application, the corresponding jumpers can be removed - doing this will allow these GPIO pins to be used for other external hardware. .. csv-table:: - :file: Optional-GPIO-Pins.csv + :file: optional-gpio-pins.csv General Purpose LED and Button Connections (JP14 and JP15) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -198,10 +197,10 @@ the appropriate jumpers. **JP14** is used to set the button connection, while **JP15** is used to set the LED connection. .. csv-table:: - :file: JP14-setting.csv + :file: jp14-setting.csv .. csv-table:: JP15 Setting - :file: JP15-Setting.csv + :file: jp15-setting.csv .. tip:: @@ -452,7 +451,7 @@ Schematic, PCB Layout, Bill of Materials .. admonition:: Download - :download:`EVAL-CN0575-RPIZ Design & Integration Files ` + :download:`EVAL-CN0575-RPIZ Design & Integration Files ` - Schematics - PCB Layout diff --git a/docs/solutions/reference-designs/eval-cn0575-rpiz/JP14-setting.csv b/docs/solutions/reference-designs/eval-cn0575-rpiz/jp14-setting.csv similarity index 100% rename from docs/solutions/reference-designs/eval-cn0575-rpiz/JP14-setting.csv rename to docs/solutions/reference-designs/eval-cn0575-rpiz/jp14-setting.csv diff --git a/docs/solutions/reference-designs/eval-cn0575-rpiz/JP15-Setting.csv b/docs/solutions/reference-designs/eval-cn0575-rpiz/jp15-setting.csv similarity index 100% rename from docs/solutions/reference-designs/eval-cn0575-rpiz/JP15-Setting.csv rename to docs/solutions/reference-designs/eval-cn0575-rpiz/jp15-setting.csv diff --git a/docs/solutions/reference-designs/eval-cn0575-rpiz/JP3-Setting.csv b/docs/solutions/reference-designs/eval-cn0575-rpiz/jp3-setting.csv similarity index 100% rename from docs/solutions/reference-designs/eval-cn0575-rpiz/JP3-Setting.csv rename to docs/solutions/reference-designs/eval-cn0575-rpiz/jp3-setting.csv diff --git a/docs/solutions/reference-designs/eval-cn0575-rpiz/Optional-GPIO-Pins.csv b/docs/solutions/reference-designs/eval-cn0575-rpiz/optional-gpio-pins.csv similarity index 100% rename from docs/solutions/reference-designs/eval-cn0575-rpiz/Optional-GPIO-Pins.csv rename to docs/solutions/reference-designs/eval-cn0575-rpiz/optional-gpio-pins.csv diff --git a/docs/solutions/reference-designs/eval-cn0575-rpiz/SPoE_PD_Power_Class_Selection.csv b/docs/solutions/reference-designs/eval-cn0575-rpiz/spoe_pd_power_class_selection.csv similarity index 100% rename from docs/solutions/reference-designs/eval-cn0575-rpiz/SPoE_PD_Power_Class_Selection.csv rename to docs/solutions/reference-designs/eval-cn0575-rpiz/spoe_pd_power_class_selection.csv diff --git a/docs/solutions/reference-designs/eval-cn0577-fmcz/HDL-reference-design/cn0577_block_diagram.png b/docs/solutions/reference-designs/eval-cn0577-fmcz/HDL-reference-design/cn0577_block_diagram.png deleted file mode 100644 index 4566979dbba..00000000000 --- a/docs/solutions/reference-designs/eval-cn0577-fmcz/HDL-reference-design/cn0577_block_diagram.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d67d898602d356c678e545822b5d6bd51601b35c9f16b131378f45e1e24b6aba -size 264818 diff --git a/docs/solutions/reference-designs/eval-cn0577-fmcz/CN0577-DesignSupport.zip b/docs/solutions/reference-designs/eval-cn0577-fmcz/cn0577-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/eval-cn0577-fmcz/CN0577-DesignSupport.zip rename to docs/solutions/reference-designs/eval-cn0577-fmcz/cn0577-designsupport.zip diff --git a/docs/solutions/reference-designs/eval-cn0577-fmcz/index.rst b/docs/solutions/reference-designs/eval-cn0577-fmcz/index.rst index b9d5353b5ac..9c53138891e 100644 --- a/docs/solutions/reference-designs/eval-cn0577-fmcz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0577-fmcz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0577-FMCZ ================ -Analog Front End and Digital Interface for Serial LVDS SAR ADCs -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Analog Front End and Digital Interface for Serial LVDS SAR ADCs. Overview -------- @@ -178,10 +177,10 @@ In order to control the :adi:`EVAL-CN0577-FMCZ `, you will need to install ADI Kuiper Linux on an SD card. Complete instructions, including where to download the SD card image, how to write it to the SD card, and how to configure the system are provided in the -:external+adi-kuiper-gen:doc:`Kuiper documentation `. +:external+kuiper:doc:`Kuiper documentation `. When -:external+adi-kuiper-gen:doc:`configuring the SD Card ` +:external+kuiper:doc:`configuring the SD Card ` follow instructions for Xilinx projects. * Directory on SD image: cn0577_zed @@ -236,7 +235,7 @@ Using :adi:`ADALM2000` as input source: #. Connect the ADALM2000 to :adi:`EVAL-CN0577-FMCZ ` using BNC to SMA cable (W1 to J1 and W2 to J2) #. Plug the ADALM2000 to the host PC. Open Scopy and use the Signal Generator - feature to set input. More information on using the Scopy Signal Generator in :dokuwiki:`here `. + feature to set input. More information on using the :external+scopy:ref:`signal_generator`. #. Run the IIO Oscilloscope software and capture the resulting ADC data. .. figure:: demo_with_m2k.png @@ -413,7 +412,7 @@ Schematic, PCB Layout, Bill of Materials .. admonition:: Download - :download:`EVAL-CN0577-FMCZ Design & Integration Files ` + :download:`EVAL-CN0577-FMCZ Design & Integration Files ` - Schematics - PCB Layout diff --git a/docs/solutions/reference-designs/eval-cn0579-ardz/eval-cn0579-ardz_bottom-web.gif b/docs/solutions/reference-designs/eval-cn0579-ardz/eval-cn0579-ardz_bottom-web.gif index de670461345..0c533cec5eb 100644 Binary files a/docs/solutions/reference-designs/eval-cn0579-ardz/eval-cn0579-ardz_bottom-web.gif and b/docs/solutions/reference-designs/eval-cn0579-ardz/eval-cn0579-ardz_bottom-web.gif differ diff --git a/docs/solutions/reference-designs/eval-cn0579-ardz/eval-cn0579-ardz_top-web.gif b/docs/solutions/reference-designs/eval-cn0579-ardz/eval-cn0579-ardz_top-web.gif index a61d89296b6..a61ca5aca5a 100644 Binary files a/docs/solutions/reference-designs/eval-cn0579-ardz/eval-cn0579-ardz_top-web.gif and b/docs/solutions/reference-designs/eval-cn0579-ardz/eval-cn0579-ardz_top-web.gif differ diff --git a/docs/solutions/reference-designs/eval-cn0579-ardz/index.rst b/docs/solutions/reference-designs/eval-cn0579-ardz/index.rst index 44d5b3ca896..ccfd7fddbc6 100644 --- a/docs/solutions/reference-designs/eval-cn0579-ardz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0579-ardz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0579-ARDZ ================ -Quad-Channel IEPE Vibration Sensor Measurement System -"""""""""""""""""""""""""""""""""""""""""""""""""""""" +Quad-Channel IEPE Vibration Sensor Measurement System. Overview -------- @@ -403,8 +402,7 @@ IIO Commands ^^^^^^^^^^^^ There are different commands that can be used to manage the device being used. -The :dokuwiki:`iio_attr ` -command reads and writes IIO attributes. +The :ref:`libiio iio_attr` command reads and writes IIO attributes. .. shell:: diff --git a/docs/solutions/reference-designs/eval-cn0581-ebz/CN0581-designsupport.zip b/docs/solutions/reference-designs/eval-cn0581-ebz/cn0581-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/eval-cn0581-ebz/CN0581-designsupport.zip rename to docs/solutions/reference-designs/eval-cn0581-ebz/cn0581-designsupport.zip diff --git a/docs/solutions/reference-designs/eval-cn0581-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0581-ebz/index.rst index 9a85fe92ff6..e1933f7ea0b 100644 --- a/docs/solutions/reference-designs/eval-cn0581-ebz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0581-ebz/index.rst @@ -1,8 +1,7 @@ EVAL-CN0581-EBZ ================ -Configurable USB-C Power Sink Solution -""""""""""""""""""""""""""""""""""""""" +Configurable USB-C Power Sink Solution. Overview -------- @@ -425,7 +424,7 @@ Design and Integration Files .. admonition:: Download - :download:`EVAL-CN0581-EBZ Design & Integration Files ` + :download:`EVAL-CN0581-EBZ Design & Integration Files ` - Schematics - PCB Layout diff --git a/docs/solutions/reference-designs/eval-cn0582-usbz/index.rst b/docs/solutions/reference-designs/eval-cn0582-usbz/index.rst index 357d6f5915f..c0d81507772 100644 --- a/docs/solutions/reference-designs/eval-cn0582-usbz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0582-usbz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0582-USBZ ================ -USB 3.0 Quad-Channel IEPE Vibration Sensor Measurement System -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +USB 3.0 Quad-Channel IEPE Vibration Sensor Measurement System. General Description ------------------- diff --git a/docs/solutions/reference-designs/eval-cn0583-som/cn0583-designsupport.zip b/docs/solutions/reference-designs/eval-cn0583-som/cn0583-designsupport.zip deleted file mode 100644 index a3a1be4fc55..00000000000 --- a/docs/solutions/reference-designs/eval-cn0583-som/cn0583-designsupport.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4864bbe493d83795899c4ede4de50ed26f3a42e2c59374d5e3d1f33762341fee -size 7693684 diff --git a/docs/solutions/reference-designs/eval-cn0583-som/daplink.png b/docs/solutions/reference-designs/eval-cn0583-som/daplink.png deleted file mode 100644 index 3504dd9fcf4..00000000000 --- a/docs/solutions/reference-designs/eval-cn0583-som/daplink.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:466ba3c5777bfd0c1708ceff972c97fdf0c6fd7bfc73cd3ef349dcf30d9ce54d -size 63845 diff --git a/docs/solutions/reference-designs/eval-cn0583-som/en-14604_and_en54-7_test_report.pdf b/docs/solutions/reference-designs/eval-cn0583-som/en-14604_and_en54-7_test_report.pdf deleted file mode 100644 index aea43f12d4f..00000000000 Binary files a/docs/solutions/reference-designs/eval-cn0583-som/en-14604_and_en54-7_test_report.pdf and /dev/null differ diff --git a/docs/solutions/reference-designs/eval-cn0583-som/index.rst b/docs/solutions/reference-designs/eval-cn0583-som/index.rst index db74d141877..83833f4d688 100644 --- a/docs/solutions/reference-designs/eval-cn0583-som/index.rst +++ b/docs/solutions/reference-designs/eval-cn0583-som/index.rst @@ -3,8 +3,7 @@ EVAL-CN0583-SOM =============== -Multistandard Micropower Verified Smoke Detection System-on-Module -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Multistandard Micropower Verified Smoke Detection System-on-Module. Overview -------- diff --git a/docs/solutions/reference-designs/eval-cn0584-ebz/CN0584-DesignSupport.zip b/docs/solutions/reference-designs/eval-cn0584-ebz/cn0584-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/eval-cn0584-ebz/CN0584-DesignSupport.zip rename to docs/solutions/reference-designs/eval-cn0584-ebz/cn0584-designsupport.zip diff --git a/docs/solutions/reference-designs/eval-cn0584-ebz/cn0584.png b/docs/solutions/reference-designs/eval-cn0584-ebz/cn0584.png deleted file mode 100644 index cba6b41ac86..00000000000 --- a/docs/solutions/reference-designs/eval-cn0584-ebz/cn0584.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0f253ce66c0a37aae62ca7b8a853b207f52a34aca90f8cc765dafbbaff5c471f -size 46016 diff --git a/docs/solutions/reference-designs/eval-cn0584-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0584-ebz/index.rst index 6c7cdc5f88f..20734133ab0 100644 --- a/docs/solutions/reference-designs/eval-cn0584-ebz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0584-ebz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0584-EBZ =============== -Precision Low Latency Development Kit -"""""""""""""""""""""""""""""""""""""" +Precision Low Latency Development Kit. Overview -------- @@ -810,7 +809,7 @@ Schematic, PCB Layout, Bill of Materials .. admonition:: Download - :download:`EVAL-CN0584-EBZ Design & Integration Files` + :download:`EVAL-CN0584-EBZ Design & Integration Files` - Schematics - PCB Layout diff --git a/docs/solutions/reference-designs/eval-cn0585-fmcz/cn0585-designsupport.zip b/docs/solutions/reference-designs/eval-cn0585-fmcz/files/cn0585-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/eval-cn0585-fmcz/cn0585-designsupport.zip rename to docs/solutions/reference-designs/eval-cn0585-fmcz/files/cn0585-designsupport.zip diff --git a/docs/solutions/reference-designs/eval-cn0585-fmcz/cn0585.png b/docs/solutions/reference-designs/eval-cn0585-fmcz/images/cn0585.png similarity index 100% rename from docs/solutions/reference-designs/eval-cn0585-fmcz/cn0585.png rename to docs/solutions/reference-designs/eval-cn0585-fmcz/images/cn0585.png diff --git a/docs/solutions/reference-designs/eval-cn0585-fmcz/images/cn0585_available_rails.jpg b/docs/solutions/reference-designs/eval-cn0585-fmcz/images/cn0585_available_rails.jpg new file mode 100644 index 00000000000..5167be6a6ee --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0585-fmcz/images/cn0585_available_rails.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad5e7e40535e75f11e9471d5c01d61a9556468c26886ba92dcdc17f9e0519a95 +size 101698 diff --git a/docs/solutions/reference-designs/eval-cn0585-fmcz/cn0585_voltage_monitoring.png b/docs/solutions/reference-designs/eval-cn0585-fmcz/images/cn0585_voltage_monitoring.png similarity index 100% rename from docs/solutions/reference-designs/eval-cn0585-fmcz/cn0585_voltage_monitoring.png rename to docs/solutions/reference-designs/eval-cn0585-fmcz/images/cn0585_voltage_monitoring.png diff --git a/docs/solutions/reference-designs/eval-cn0585-fmcz/connector_pinout_revb.png b/docs/solutions/reference-designs/eval-cn0585-fmcz/images/connector_pinout_revb.png similarity index 100% rename from docs/solutions/reference-designs/eval-cn0585-fmcz/connector_pinout_revb.png rename to docs/solutions/reference-designs/eval-cn0585-fmcz/images/connector_pinout_revb.png diff --git a/docs/solutions/reference-designs/eval-cn0585-fmcz/eval-cn0585-fmcz_bottom-web.jpg b/docs/solutions/reference-designs/eval-cn0585-fmcz/images/eval-cn0585-fmcz_bottom-web.jpg similarity index 100% rename from docs/solutions/reference-designs/eval-cn0585-fmcz/eval-cn0585-fmcz_bottom-web.jpg rename to docs/solutions/reference-designs/eval-cn0585-fmcz/images/eval-cn0585-fmcz_bottom-web.jpg diff --git a/docs/solutions/reference-designs/eval-cn0585-fmcz/eval-cn0585-fmcz_top-web.jpg b/docs/solutions/reference-designs/eval-cn0585-fmcz/images/eval-cn0585-fmcz_top-web.jpg similarity index 100% rename from docs/solutions/reference-designs/eval-cn0585-fmcz/eval-cn0585-fmcz_top-web.jpg rename to docs/solutions/reference-designs/eval-cn0585-fmcz/images/eval-cn0585-fmcz_top-web.jpg diff --git a/docs/solutions/reference-designs/eval-cn0585-fmcz/setup_cn0585_diagram.png b/docs/solutions/reference-designs/eval-cn0585-fmcz/images/setup_cn0585_diagram.png similarity index 100% rename from docs/solutions/reference-designs/eval-cn0585-fmcz/setup_cn0585_diagram.png rename to docs/solutions/reference-designs/eval-cn0585-fmcz/images/setup_cn0585_diagram.png diff --git a/docs/solutions/reference-designs/eval-cn0585-fmcz/index.rst b/docs/solutions/reference-designs/eval-cn0585-fmcz/index.rst index ff7958427f9..6ac2389ceda 100644 --- a/docs/solutions/reference-designs/eval-cn0585-fmcz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0585-fmcz/index.rst @@ -3,8 +3,12 @@ EVAL-CN0585-FMCZ ================== -Quad Channel, Low Latency, Data Acquisition and Signal Generation Module -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +.. toctree:: + :hidden: + + power_tree + +Quad Channel, Low Latency, Data Acquisition and Signal Generation Module. The :adi:`EVAL-CN0585-FMCZ ` Low Latency Development Kit (LLDK) board is a development board consisting of 4 x 16-bit ADC channels and 4 x 16-bit DAC @@ -13,7 +17,7 @@ Connector. Current revision of :adi:`EVAL-CN0585-FMCZ ` is Rev B. :adi:`EVAL-CN0585-FMCZ `, :adi:`EVAL-CN0584-EBZ ` and ZedBoard are connected together to build a development system setup as shown in Figure 1. -.. figure:: setup_cn0585_diagram.png +.. figure:: images/setup_cn0585_diagram.png CN0585 Development Platform Setup @@ -34,17 +38,17 @@ output in <200ns from initial data written to the DAC. .. grid:: :widths: 50 50 - .. figure:: eval-cn0585-fmcz_top-web.jpg + .. figure:: images/eval-cn0585-fmcz_top-web.jpg :width: 400 px EVAL-CN0585-FMCZ Board (Top) - .. figure:: eval-cn0585-fmcz_bottom-web.jpg + .. figure:: images/eval-cn0585-fmcz_bottom-web.jpg :width: 400 px EVAL-CN0585-FMCZ Board (Bottom) -.. figure:: cn0585.png +.. figure:: images/cn0585.png EVAL-CN0585-FMCZ Simplified Block Diagram @@ -112,7 +116,7 @@ capability for the power supply rails. The circuit consists of an :adi:`AD7291` 8-Channel, I2C, 12-Bit SAR ADC, and resistive dividers. Each power rail is connected to AD7291 by resistive dividers as shown in Figure 5. -.. figure:: cn0585_voltage_monitoring.png +.. figure:: images/cn0585_voltage_monitoring.png Power Supply Voltage Monitor Circuit @@ -343,7 +347,7 @@ FMC LPC Connector Pinout for LLDK Board (Rev B) FMC LPC connector routes the data acquired by the ADAQ23876 to FPGA and transfers the data from FPGA to AD3552R DAC. -.. figure:: connector_pinout_revb.png +.. figure:: images/connector_pinout_revb.png FMC LPC Connector Pinout @@ -380,7 +384,7 @@ Schematic, PCB Layout, Bill of Materials .. admonition:: Download - :download:`EVAL-CN0585-FMCZ Design & Integration Files ` + :download:`EVAL-CN0585-FMCZ Design & Integration Files ` - Schematics - PCB Layout diff --git a/docs/solutions/reference-designs/eval-cn0585-fmcz/power_tree.rst b/docs/solutions/reference-designs/eval-cn0585-fmcz/power_tree.rst new file mode 100644 index 00000000000..3bfa5267f3e --- /dev/null +++ b/docs/solutions/reference-designs/eval-cn0585-fmcz/power_tree.rst @@ -0,0 +1,62 @@ +Power Tree +================================================================================ + +USB-C PD Input +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The main power comes from the USB-C PD power adapter. The power adaptor must +provide at least 12V, and up to 1.5A. The :adi:`MAX77958` with its specific +firmware takes care of all the negotiation with the power adapter. + +The :adi:`MAX77958` is configured to prioritize voltage versus current. As an +example, if the supply can generate 20V and 3A, as well as 12V and 5A, the +selected supply will be 20V and 3A. The minimum voltage and current from the +external supply must be 12V/1.5A. + +Once the :adi:`MAX77958` has negotiated the power with the external USB power +adapter, and the FPGA is initialized (Power_good from FMC connector), the +:adi:`MAX77958` will generate the enabling signal for the power regulators +(Power_on_good). If something fails, a red LED will indicate the failure. + +Available Rails +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The :adi:`CN0585` board has 13 different rails: + +.. image:: images/cn0585_available_rails.jpg + :width: 800 + +Some of these rails are exposed in the :ref:`eval-cn0585-fmcz` expansion +connector, as well as some of the rails coming from the FPGA: + +.. list-table:: + :header-rows: 1 + + * - Power rail name + - Voltage + * - USB-PD + - Defined by USB power + * - 3P3V + - +3.3V from FPGA + * - VADJ + - Logic supply used by the FPGA + * - 3V3_EEPROM + - +3.3V from the FPGA to power the EEPROM + * - +15V + - +15V generated by the :adi:`LTM8049` + * - -15V + - -15V generated by the :adi:`LTM8049` + * - +12V_ANALOG + - +12V rail from :adi:`LT3045-1` + * - -12V_ANALOG + - -12V rail from :adi:`LT3094` + * - VIO + - Input rail that defines the logic voltage from the personality board to + the EVAL-CN0585-FMCZ. If not used connect to 3P3V + +.. note:: + The maximum current for each rail depends on the maximum current from the + previous regulator. As an example, the :adi:`LT3094` is connected to + :adi:`LTM8049` so, if you use the :adi:`LTM8049` in your expansion board, + the maximum current from the :adi:`LT3094` cannot be the maximum that the + component could provide. diff --git a/docs/solutions/reference-designs/eval-cn0588-ebz/CN0588-designsupport.zip b/docs/solutions/reference-designs/eval-cn0588-ebz/cn0588-designsupport.zip similarity index 100% rename from docs/solutions/reference-designs/eval-cn0588-ebz/CN0588-designsupport.zip rename to docs/solutions/reference-designs/eval-cn0588-ebz/cn0588-designsupport.zip diff --git a/docs/solutions/reference-designs/eval-cn0588-ebz/index.rst b/docs/solutions/reference-designs/eval-cn0588-ebz/index.rst index f07beee9ac8..df56e2a23e5 100644 --- a/docs/solutions/reference-designs/eval-cn0588-ebz/index.rst +++ b/docs/solutions/reference-designs/eval-cn0588-ebz/index.rst @@ -3,8 +3,7 @@ EVAL-CN0588-EBZ =============== -DC to 10 kHz MEMS-Based IEPE Vibration Sensor -"""""""""""""""""""""""""""""""""""""""""""""" +DC to 10 kHz MEMS-Based IEPE Vibration Sensor. Overview -------- @@ -202,7 +201,7 @@ Design & Integration Files .. admonition:: Download - :download:`EVAL-CN0588-EBZ Design & Integration Files ` + :download:`EVAL-CN0588-EBZ Design & Integration Files ` - Schematics - PCB Layout diff --git a/docs/solutions/reference-designs/eval-ess1-sys/index.rst b/docs/solutions/reference-designs/eval-ess1-sys/index.rst index 1d86f28236a..d256d261d2a 100644 --- a/docs/solutions/reference-designs/eval-ess1-sys/index.rst +++ b/docs/solutions/reference-designs/eval-ess1-sys/index.rst @@ -1,8 +1,7 @@ EVAL-ESS1-SYS ============= -Scalable BMS Kit for Cell and Pack Monitoring -""""""""""""""""""""""""""""""""""""""""""""" +Scalable BMS Kit for Cell and Pack Monitoring. Introduction ------------ diff --git a/docs/solutions/reference-designs/eval-isomax/EVAL-ISOMAX-design_support.zip b/docs/solutions/reference-designs/eval-isomax/eval-isomax-design_support.zip similarity index 100% rename from docs/solutions/reference-designs/eval-isomax/EVAL-ISOMAX-design_support.zip rename to docs/solutions/reference-designs/eval-isomax/eval-isomax-design_support.zip diff --git a/docs/solutions/reference-designs/eval-isomax/hardware_guide/EVAL-ISOMAX-design_support.zip b/docs/solutions/reference-designs/eval-isomax/hardware_guide/eval-isomax-design_support.zip similarity index 100% rename from docs/solutions/reference-designs/eval-isomax/hardware_guide/EVAL-ISOMAX-design_support.zip rename to docs/solutions/reference-designs/eval-isomax/hardware_guide/eval-isomax-design_support.zip diff --git a/docs/solutions/reference-designs/eval-isomax/hardware_guide/eval-isomax_angle.jpg b/docs/solutions/reference-designs/eval-isomax/hardware_guide/eval-isomax_angle.jpg deleted file mode 100644 index 92cfeae80a9..00000000000 --- a/docs/solutions/reference-designs/eval-isomax/hardware_guide/eval-isomax_angle.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1ed2c958a7b8be195f309014f50fab80c0c7bac4f6c6bfe1c43cbd0d2cf80bce -size 122541 diff --git a/docs/solutions/reference-designs/eval-isomax/hardware_guide/idle_current.png b/docs/solutions/reference-designs/eval-isomax/hardware_guide/idle_current.png deleted file mode 100644 index aa5c1e2ccd6..00000000000 --- a/docs/solutions/reference-designs/eval-isomax/hardware_guide/idle_current.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a1348dc3acf8d104363bd9644bdaea4591f5bb8a92d4084cc4667be022ec10f5 -size 761113 diff --git a/docs/solutions/reference-designs/eval-isomax/hardware_guide/index.rst b/docs/solutions/reference-designs/eval-isomax/hardware_guide/index.rst index f914a701a1c..6ea3c2a2b5e 100644 --- a/docs/solutions/reference-designs/eval-isomax/hardware_guide/index.rst +++ b/docs/solutions/reference-designs/eval-isomax/hardware_guide/index.rst @@ -665,7 +665,7 @@ Design and Integration Files .. admonition:: Download - :download:`EVAL-ISOMAX Design Support Package <../EVAL-ISOMAX-design_support.zip>` + :download:`EVAL-ISOMAX Design Support Package <../eval-isomax-design_support.zip>` * Schematic * PCB Layout diff --git a/docs/solutions/reference-designs/eval-isomax/index.rst b/docs/solutions/reference-designs/eval-isomax/index.rst index 11abc97394d..2dd30290153 100644 --- a/docs/solutions/reference-designs/eval-isomax/index.rst +++ b/docs/solutions/reference-designs/eval-isomax/index.rst @@ -1,8 +1,7 @@ EVAL-ISOMAX =========== -Low-cost Integrated BMS Monitor with On-board MCU and Dual isoSPI -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Low-cost Integrated BMS Monitor with On-board MCU and Dual isoSPI. Overview -------- @@ -118,7 +117,7 @@ Design and Integration Files .. admonition:: Download - :download:`EVAL-ISOMAX Design Support Package ` + :download:`EVAL-ISOMAX Design Support Package ` * Schematic * PCB Layout diff --git a/docs/solutions/reference-designs/eval-isomax/software_guide/installing_the_no-os_bms_drivers.png b/docs/solutions/reference-designs/eval-isomax/software_guide/installing_the_no-os_bms_drivers.png deleted file mode 100644 index b4fed13fe58..00000000000 --- a/docs/solutions/reference-designs/eval-isomax/software_guide/installing_the_no-os_bms_drivers.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:192a3e5a1bc7c975a0cc0da2fd93652a7570b7efac950b6ab1ca45dde60ed6c6 -size 86355 diff --git a/docs/solutions/reference-designs/eval-ltpa-kit/index.rst b/docs/solutions/reference-designs/eval-ltpa-kit/index.rst index 51c76b0b6d5..3fbc70fa6eb 100644 --- a/docs/solutions/reference-designs/eval-ltpa-kit/index.rst +++ b/docs/solutions/reference-designs/eval-ltpa-kit/index.rst @@ -3,8 +3,7 @@ EVAL-LTPA-KIT (LTpowerAnalyzer Kit) =================================== -Low-cost, High Performance, Compact Laboratory Tool for Evaluating and Characterizing Power Supply Designs -"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +Low-cost, High Performance, Compact Laboratory Tool for Evaluating and Characterizing Power Supply Designs. .. figure:: kitangle.gif :align: center diff --git a/docs/solutions/reference-designs/eval-ltpa-kit/kitangle.gif b/docs/solutions/reference-designs/eval-ltpa-kit/kitangle.gif index 2fcdb313276..164fdf08fa8 100644 Binary files a/docs/solutions/reference-designs/eval-ltpa-kit/kitangle.gif and b/docs/solutions/reference-designs/eval-ltpa-kit/kitangle.gif differ diff --git a/docs/solutions/reference-designs/fthr-pmd-intz/index.rst b/docs/solutions/reference-designs/fthr-pmd-intz/index.rst index dd5207a1e83..9e5126280cb 100644 --- a/docs/solutions/reference-designs/fthr-pmd-intz/index.rst +++ b/docs/solutions/reference-designs/fthr-pmd-intz/index.rst @@ -3,8 +3,7 @@ FTHR-PMD-INTZ ============= -Feather to PMOD Adaptor Board -""""""""""""""""""""""""""""" +Feather to PMOD Adaptor Board. Overview -------- diff --git a/docs/solutions/reference-designs/images/ZedBoard.png b/docs/solutions/reference-designs/images/ZedBoard.png new file mode 100644 index 00000000000..02b0975547a --- /dev/null +++ b/docs/solutions/reference-designs/images/ZedBoard.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7e8b5d930df05f4a165f3e15e42d96a6db48ade0102e8607b432eb077769390 +size 1518833 diff --git a/docs/solutions/reference-designs/images/ad9081.webp b/docs/solutions/reference-designs/images/ad9081.webp index 0181bb10c24..793df2d7953 100644 Binary files a/docs/solutions/reference-designs/images/ad9081.webp and b/docs/solutions/reference-designs/images/ad9081.webp differ diff --git a/docs/solutions/reference-designs/images/ad9082.webp b/docs/solutions/reference-designs/images/ad9082.webp index fb1e5b4cddd..666eb0efd35 100644 Binary files a/docs/solutions/reference-designs/images/ad9082.webp and b/docs/solutions/reference-designs/images/ad9082.webp differ diff --git a/docs/solutions/reference-designs/images/adrv9026.webp b/docs/solutions/reference-designs/images/adrv9026.webp index 9b85126b44b..36b432d77bc 100644 Binary files a/docs/solutions/reference-designs/images/adrv9026.webp and b/docs/solutions/reference-designs/images/adrv9026.webp differ diff --git a/docs/solutions/reference-designs/images/adrv904x-evaluation-board.png b/docs/solutions/reference-designs/images/adrv904x-evaluation-board.png new file mode 100644 index 00000000000..d0c31d09e5b --- /dev/null +++ b/docs/solutions/reference-designs/images/adrv904x-evaluation-board.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5a6c265cfb62a8f4042c59981445d4be497661cf3ed6327e12f531edf29b227 +size 531620 diff --git a/docs/solutions/reference-designs/images/adrv904x_block_diagram.png b/docs/solutions/reference-designs/images/adrv904x_block_diagram.png new file mode 100644 index 00000000000..384550f657b --- /dev/null +++ b/docs/solutions/reference-designs/images/adrv904x_block_diagram.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2acaede611acf8a1691029c926f7023b2c0612f677b774ee11de2bbc32224400 +size 20921 diff --git a/docs/solutions/reference-designs/images/cn0540_cora_stacked_input_numbers2.jpg b/docs/solutions/reference-designs/images/cn0540_cora_stacked_input_numbers2.jpg deleted file mode 100644 index 40a4b891c5c..00000000000 --- a/docs/solutions/reference-designs/images/cn0540_cora_stacked_input_numbers2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0eeab40a68a2ddc0bcab2e0c89beb8bb8aa9cf004810f7449f8fdce8d08b049 -size 34249 diff --git a/docs/solutions/reference-designs/images/coraz7s.webp b/docs/solutions/reference-designs/images/coraz7s.webp index b07b8b7a997..ac49b0a67fa 100644 Binary files a/docs/solutions/reference-designs/images/coraz7s.webp and b/docs/solutions/reference-designs/images/coraz7s.webp differ diff --git a/docs/solutions/reference-designs/images/DE10Nano.jpg b/docs/solutions/reference-designs/images/de10nano.jpg similarity index 100% rename from docs/solutions/reference-designs/images/DE10Nano.jpg rename to docs/solutions/reference-designs/images/de10nano.jpg diff --git a/docs/solutions/reference-designs/images/eval_cn0540.webp b/docs/solutions/reference-designs/images/eval_cn0540.webp deleted file mode 100644 index 77c935bf19b..00000000000 Binary files a/docs/solutions/reference-designs/images/eval_cn0540.webp and /dev/null differ diff --git a/docs/solutions/reference-designs/images/zcu102_usb_host_mode.jpg b/docs/solutions/reference-designs/images/zcu102_usb_host_mode.jpg new file mode 100644 index 00000000000..388ee8ea35d --- /dev/null +++ b/docs/solutions/reference-designs/images/zcu102_usb_host_mode.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:879f0a6709a6b2ed168990d0e751327def7b8e49b3a962164a732358eb28edcb +size 1849856 diff --git a/docs/solutions/reference-designs/index.rst b/docs/solutions/reference-designs/index.rst index 1843faf6c57..ed2cf3265d7 100644 --- a/docs/solutions/reference-designs/index.rst +++ b/docs/solutions/reference-designs/index.rst @@ -16,8 +16,7 @@ software drivers, and algorithm development. Our development boards for Battery Management Systems (BMS), Gigabit Multimedia Serial Link (GMSL), and 10BASE-T1L applications are now available in the following pages: -.. toctree:: - :maxdepth: 2 +.. toctree-preview:: :glob: */index diff --git a/docs/solutions/reference-designs/template/_index.rst b/docs/solutions/reference-designs/template/_index.rst index b040a9f5809..7259f107653 100644 --- a/docs/solutions/reference-designs/template/_index.rst +++ b/docs/solutions/reference-designs/template/_index.rst @@ -68,7 +68,7 @@ Table of contents #. Using the :ref:`ZCU102/Zynq UltraScale MP SoC