Quantcast
Channel: SparkFun Tutorials
Viewing all articles
Browse latest Browse all 1123

MicroMod Single Pair Ethernet Function Board - ADIN1110 Hookup Guide

$
0
0

MicroMod Single Pair Ethernet Function Board - ADIN1110 Hookup Guide a learn.sparkfun.com tutorial

Available online at: http://sfe.io/t2256

Introduction

The SparkFun MicroMod Single Pair Ethernet Function Board - ADIN1110 introduces 10Base-T1L Single Pair Ethernet protocol into the SparkFun MicroMod ecosystem. Using the ADIN1110 Ethernet transceiver from Analog Devices Inc., this Function Board provides a development tool for long-range, 10Mb/s single-pair 10BASE-T1L Ethernet applications. The 10BASE-T1L Ethernet supported by the ADIN1110 is compatible with the 802.3cg IEEE® standard, supports high bandwidth up to 10Mb/s and can send and receive data on connections over 1 kilometer long! We also have the MicroMod Single Pair Ethernet Kit that includes nearly everything you need to get started prototyping a MicroMod Single Pair Ethernet connection.

SparkFun MicroMod Single Pair Ethernet Function Board - ADIN1110

SparkFun MicroMod Single Pair Ethernet Function Board - ADIN1110

COM-19038
$49.95
SparkFun MicroMod Single Pair Ethernet Kit

SparkFun MicroMod Single Pair Ethernet Kit

KIT-19628
$174.95

In this guide we'll cover the basics of 10BASE-T1L Single-Pair Ethernet (SPE), what to expect from the ADIN1110 and other hardware present on this Function Board, how to assemble a SPE circuit and use it with our ADIN1110 Arduino Library.

Required Materials

The following materials are necessary for following along with this guide. All Function Boards require a Main Board and Processor to connect to each other. Depending on your application, you may need a Single or Dual Main Board:

SparkFun MicroMod Main Board - Double

SparkFun MicroMod Main Board - Double

DEV-18576
$17.95
SparkFun MicroMod Main Board - Single

SparkFun MicroMod Main Board - Single

DEV-18575
$14.95

A Processor Board is needed to act as a host controller for the Function Board. We recommend using the STM32 Processor Board:

SparkFun MicroMod STM32 Processor

SparkFun MicroMod STM32 Processor

DEV-17713
$16.50
SparkFun MicroMod SAMD51 Processor

SparkFun MicroMod SAMD51 Processor

DEV-16791
$18.95
1
SparkFun MicroMod Teensy Processor

SparkFun MicroMod Teensy Processor

DEV-16402
$21.50
4
SparkFun MicroMod ESP32 Processor

SparkFun MicroMod ESP32 Processor

WRL-16781
$16.95
1

Finally, a Single Pair Ethernet cable is required to connect the two MicroMod assemblies to each other:

Single Pair Ethernet Cable - 0.5m (Shielded)

Single Pair Ethernet Cable - 0.5m (Shielded)

CAB-19312
$21.75
Single Pair Ethernet Cable - 20m (Shielded)

Single Pair Ethernet Cable - 20m (Shielded)

CAB-19364
$98.95

Suggested Reading

The MicroMod ecosystem is a unique way to allow users to customize their project to their needs. If you aren't familiar with the MicroMod system, click on the banner below for more information.

MicroMod Logo


You may also want to read the tutorials below if you are not familiar with the concepts covered in them:

Serial Peripheral Interface (SPI)

SPI is commonly used to connect microcontrollers to peripherals such as sensors, shift registers, and SD cards.

What is an Arduino?

What is this 'Arduino' thing anyway? This tutorials dives into what an Arduino is and along with Arduino projects and widgets.

Installing Arduino IDE

A step-by-step guide to installing and testing the Arduino software on Windows, Mac, and Linux.

Getting Started with MicroMod

Dive into the world of MicroMod - a compact interface to connect a microcontroller to various peripherals via the M.2 Connector!

Hardware Overview

In this section we'll take a closer look at the hardware on this Function Board along with a brief overview of what exactly 10BASE-T1L Single Pair Ethernet is and what benefits it provides.

10BASE-T1L Single Pair Ethernet

The 10BASE-T1L Single Pair Ethernet (SPE) standard uses just a single twisted pair for data as well as power. 10BASE-T1L Ethernet transmits data at speeds up to 10Mbps at distances up to 1.7km. With just a single pair, the cable is smaller and lighter making it ideal for remote monitoring or industrial applications connecting a large number of edge devices to a network connection.

For more information about 10BASE-T1L SPE, refer to this article on the communication protocol from Analog Devices.

ADIN1110

The ADIN1110 is an ultra-low power Ethernet transceiver for 10BASE-T1L IEEE Standard 802.3cg-2019 SPE.

Highlighting the ADIN1110 IC

It operates from a supply voltage of 1.8V or 3.3V. This Function Board runs the ADIN1110 in single-supply mode at 3.3V (VDD_H and VVD_L are both powered at 3.3V) and this allows for transmission amplitude of 2.4V. For a complete overview of the ADIN1110 IC, refer to the datasheet.

The ADIN1110 MAC supports 16 individual MAC addresses and communicates over both Open Alliance and generic SPI protocols. The ADIN1110 transmits data at half duplex when using generic SPI and full duplex when using the Open Alliance protocol. The IC also includes support for three LED outputs, a Link LED and two configurable general purpose LEDs. The Function Board breaks out all of those to LEDs on board. Read on to the LEDs section below for more information.

SPE Data Output

The Function Board routes the ADIN1110's data signal pairs through a TVS diode protection circuit and phase transformer from Würth Elektronik before terminating in a specialized T1 Industrial Jack for connection to a separate SPE device or network hub.

Highlighting SPE Data Output components

For more information about the TZ Industrial Jack, refer to the datasheet.

Power

The Function Board receives power from the Main Board it connects to. The Main Board can be powered either via USB or a connected LiPo battery. Reminder, this Function Board is not designed to send power over the Single Pair Ethernet connection.

LEDs

This Function Board includes four LEDs labeled PWR, LED 0, LED 1 and LINK ST.

Highlighting the LEDs
  • PWR - Power LED.
  • LED 0 - General purpose programmable LED. Active LOW. Default configuration turns the LED on when a link is established and blinks on activity.
  • LED 1 - General purpose programmable LED. Active LOW. Default configuration disables the LED.
  • LINK ST - Link status LED. Active HIGH. LED illuminates with a valid link.

For detailed instructions on programming the general purpose LEDs, refer to the LED Control Register section of the ADIN1110 Datasheet or the SparkFun ADIN1110 Arduino Library.

Solder Jumpers

This function board has twelve solder jumpers. The table below outlines each jumper's label, function, default states and any notes about their use.

Photo highlighting the solder jumpers
Having trouble seeing the detail in the image? Click on it for a larger view.
LabelDefault StateFunctionNotes
SHLDCAP (See note)Double jumper to select connector shield grounding option.Default connects the connector shield to ground through a 3.3nF capacitor. Switch to GND side to connect the shield directly to ground.
LED1CLOSEDCompletes LED1 configurable LED circuit.Open to disable the labeled LED. Helps reduce the total current draw.
LINKSTCLOSEDCompletes the Link Status LED circuit.
LED0CLOSEDCompletes the LED0 configurable LED circuit.
PWRCLOSEDCompletes the Power LED circuit.
TX2P4 ENOPENPulls TX2P4_EN pin LOW.Controls the transmit amplitude mode. By default, this pin is LOW and allows both 1.0V and 2.4V p-p transmit levels. Pulling this pin high disables 2.4V transmit level.1
SWPD ENOPENPulls SWPD_EN pin LOW.Controls whether or not the ADIN1110 enters software power-down mode after reset. By default, the ADIN1110 starts autonegotiation after a reset. If the jumper is closed, the ADIN1110 remains in power-down mode after reset until it is configured over SPI. This allows software control over power-down mode.1
MS SELOPENSets the ADIN1110 to operate as a peripheral (slave) device on SPI.Controls whether the ADIN1110 defaults to a controller or peripheral on the SPI bus.1
SPI CFG1OPENSets the ADIN1110 to use OPEN Aliance SPI protocol with protection (if SPI_CFG0 is also LOW).
SPI CFG0OPENSets the ADIN1110 to use OPEN Aliance SPI protocol with protection (if SPI_CFG1 is also LOW).
EWPOPENEEPROM write protection.
MEASCLOSEDTies VCC_IN to input on 3.3V voltage regulator.Open to measure current draw of the board.
1. Refer to page 16 of the datasheet for more information on the configuration pins.

MicroMod Edge Connector and Pinout

The MicroMod ecosystem uses a polarized M.2 edge connector to provide a standardized electrical connection that is keyed to prevent incorrect connection between MicroMod boards. The attachment points for the screws prevent users from connecting a processor board into a function board slot and vice-versa.

Highlighting the M2 connector amd mounting points

MicroMod Pinout

This Function Board uses the following pins on a connected Processor Board:

  • 3.3V & VCC
  • Power enable
  • SPI - ADIN1110 Communication
  • I2C - EEPROM Comunication
  • D0 (Slot 0) / D1 (Slot 1) - ADIN1110 Interrupt
  • CS0 (Slot 0) / CS1 (Slot 1) - ADIN1110 Chip Select (SPI)

For the complete MicroMod Pinout and pins used by this function board, take a look at the tables below:

AUDIOUARTGPIO/BUSI2CSDIOSPI0Dedicated
FunctionBottom
Pin
   Top   
Pin
Function
(Not Connected)75GND
3.3V7473G5 / BUS5
RTC_3V_BATT7271G6 / BUS6
SPI_CS1#SDIO_DATA3 (I/O)7069G7 / BUS7
SDIO_DATA2 (I/O)6867G8
SDIO_DATA1 (I/O)6665G9ADC_D- CAM_HSYNC
SPI_CIPO1SDIO_DATA0 (I/O)6463G10ADC_D+CAM_VSYNC
SPI COPI1SDIO_CMD (I/O)6261SPI_CIPO (I)
SPI SCK1SDIO_SCK (O)6059SPI_COPI (O)LED_DAT
AUD_MCLK (O)5857SPI_SCK (O)LED_CLK
CAM_MCLKPCM_OUTI2S_OUTAUD_OUT5655SPI_CS#
CAM_PCLKPCM_INI2S_INAUD_IN5453I2C_SCL1 (I/O)
PDM_DATAPCM_SYNCI2S_WSAUD_LRCLK5251I2C_SDA1 (I/O)
PDM_CLKPCM_CLKI2S_SCKAUD_BCLK5049BATT_VIN / 3 (I - ADC) (0 to 3.3V)
G4 / BUS44847PWM1
G3 / BUS34645GND
G2 / BUS24443CAN_TX
G1 / BUS14241CAN_RX
G0 / BUS04039GND
A13837USBHOST_D-
GND3635USBHOST_D+
A03433GND
PWM03231Module Key
Module Key3029Module Key
Module Key2827Module Key
Module Key2625Module Key
Module Key2423SWDIO
UART_TX2 (O)2221SWDCK
UART_RX2 (I)2019UART_RX1 (I)
CAM_TRIGD11817UART_TX1 (0)
I2C_INT#1615UART_CTS1 (I)
I2C_SCL (I/0)1413UART_RTS1 (O)
I2C_SDA (I/0)1211BOOT (I - Open Drain)
D0109USB_VIN
SWOG1187GND
RESET# (I - Open Drain)65USB_D-
3.3V_EN43USB_D+
3.3V21GND
DescriptionFunctionBottom
Pin
   Top   
Pin
FunctionDescription
(Not Connected)75GND
-74733.3VPower Supply: 3.3-6V
-7271Power ENPower Enable
-7069-
-6665-
-6463-
-6261-
-6059-
-5857-
-5655RESETADIN1110 Reset Button
-5453-
-5251-
-5049CSADIN1110 Chip Select
-4847INTADIN1110 Interrupt Pin
-4645GND
-4443-
-4241-
Write protection pin for the EEPROM. Pull low to enable.EEPROM_WP4039GND
-3837-
EEPROM I2C address configuration.EEPROM_A03635-
EEPROM I2C address configuration.EEPROM_A13433GND
EEPROM I2C address configuration.EEPROM_A23231Module Key
Module Key3029Module Key
Module Key2827Module Key
Module Key2625Module Key
Module Key2423-
-2221I2C_SCLI2C - Clock signal for EEPROM
-2019I2C_SDAI2C - Data signal for EEPROM
-1817-
-1615-
-1413-
-1211-
-109-
-87POCISPI Peripheral Output/Controller Input.
-65PICOSPI Peripheral Input/Controller Output.
-43SCKSPI Clock Signal
-21GND
Signal GroupSignalI/ODescriptionVoltage
Power3.3VI3.3V Source3.3V
GNDReturn current path0V
USB_VINIUSB VIN compliant to USB 2.0 specification. Connect to pins on processor board that require 5V for USB functionality4.8-5.2V
RTC_3V_BATTI3V provided by external coin cell or mini battery. Max draw=100μA. Connect to pins maintaining an RTC during power loss. Can be left NC.3V
3.3V_ENOControls the carrier board's main voltage regulator. Voltage above 1V will enable 3.3V power path.3.3V
BATT_VIN/3ICarrier board raw voltage over 3. 1/3 resistor divider is implemented on carrier board. Amplify the analog signal as needed for full 0-3.3V range3.3V
ResetResetIInput to processor. Open drain with pullup on processor board. Pulling low resets processor.3.3V
BootIInput to processor. Open drain with pullup on processor board. Pulling low puts processor into special boot mode. Can be left NC.3.3V
USBUSB_D±I/OUSB Data ±. Differential serial data interface compliant to USB 2.0 specification. If UART is required for programming, USB± must be routed to a USB-to-serial conversion IC on the processor board.
USB HostUSBHOST_D±I/OFor processors that support USB Host Mode. USB Data±. Differential serial data interface compliant to USB 2.0 specification. Can be left NC.
CANCAN_RXICAN Bus receive data.3.3V
CAN_TXO CAN Bus transmit data.3.3V
UARTUART_RX1IUART receive data.3.3V
UART_TX1OUART transmit data.3.3V
UART_RTS1OUART ready to send.3.3V
UART_CTS1IUART clear to send.3.3V
UART_RX2I2nd UART receive data.3.3V
UART_TX2O2nd UART transmit data.3.3V
I2CI2C_SCLI/OI2C clock. Open drain with pullup on carrier board.3.3V
I2C_SDAI/OI2C data. Open drain with pullup on carrier board3.3V
I2C_INT#IInterrupt notification from carrier board to processor. Open drain with pullup on carrier board. Active LOW3.3V
I2C_SCL1I/O2nd I2C clock. Open drain with pullup on carrier board.3.3V
I2C_SDA1I/O2nd I2C data. Open drain with pullup on carrier board.3.3V
SPISPI_PICOOSPI Peripheral Input/Controller Output.3.3V
SPI_POCIISPI Peripheral Output/Controller Input.3.3V
SPI_SCKOSPI Clock.3.3V
SPI_CS#OSPI Chip Select. Active LOW. Can be routed to GPIO if hardware CS is unused.3.3V
SPI/SDIOSPI_SCK1/SDIO_CLKO2nd SPI Clock. Secondary use is SDIO Clock.3.3V
SPI_PICO1/SDIO_CMDI/O2nd SPI Peripheral Input/Controller Output. Secondary use is SDIO command interface.3.3V
SPI_POCI1/SDIO_DATA0I/O2nd SPI Controller Output/Peripheral Input. Secondary use is SDIO data exchange bit 0.3.3V
SDIO_DATA1I/OSDIO data exchange bit 1.3.3V
SDIO_DATA2I/OSDIO data exchange bit 2.3.3V
SPI_CS1/SDIO_DATA3I/O2nd SPI Chip Select. Secondary use is SDIO data exchange bit 3.3.3V
AudioAUD_MCLKOAudio master clock.3.3V
AUD_OUT/PCM_OUT/I2S_OUT/CAM_MCLKOAudio data output. PCM synchronous data output. I2S serial data out. Camera master clock.3.3V
AUD_IN/PCM_IN/I2S_IN/CAM_PCLKIAudio data input. PCM syncrhonous data input. I2S serial data in. Camera periphperal clock.3.3V
AUD_LRCLK/PCM_SYNC/I2S_WS/PDM_DATAI/OAudio left/right clock. PCM syncrhonous data SYNC. I2S word select. PDM data.3.3V
AUD_BCLK/PCM_CLK/I2S_CLK/PDM_CLKOAudio bit clock. PCM clock. I2S continuous serial clock. PDM clock.3.3V
SWDSWDIOI/OSerial Wire Debug I/O. Connect if processor board supports SWD. Can be left NC.3.3V
SWDCKISerial Wire Debug clock. Connect if processor board supports SWD. Can be left NC.3.3V
ADCA0IAnalog to digital converter 0. Amplify the analog signal as needed to enable full 0-3.3V range.3.3V
A1IAnalog to digital converter 1. Amplify the analog signal as needed to enable full 0-3.3V range.3.3V
PWMPWM0OPulse width modulated output 0.3.3V
PWM1OPulse width modulated output 1.3.3V
DigitalD0I/O General digital input/output pin.3.3V
D1/CAM_TRIGI/OGeneral digital input/output pin. Camera trigger.3.3V
General/BusG0/BUS0I/OGeneral purpose pins. Any unused processor pins should be assigned to Gx with ADC + PWM capable pins given priority (0, 1, 2, etc.) positions. The intent is to guarantee PWM, ADC and Digital Pin functionality on respective ADC/PWM/Digital pins. Gx pins do not guarantee ADC/PWM function. Alternative use is pins can support a fast read/write 8-bit or 4-bit wide bus.3.3V
G1/BUS1I/O3.3V
G2/BUS2I/O3.3V
G3/BUS3I/O3.3V
G4/BUS4I/O3.3V
G5/BUS5I/O3.3V
G6/BUS6I/O3.3V
G7/BUS7I/O3.3V
G8I/OGeneral purpose pin3.3V
G9/ADC_D-/CAM_HSYNCI/ODifferential ADC input if available. Camera horizontal sync.3.3V
G10/ADC_D+/CAM_VSYNCI/ODifferential ADC input if available. Camera vertical sync.3.3V
G11/SWOI/OGeneral purpose pin. Serial Wire Output3.3V

Board Dimensions

This Function Board uses the standard sizing for MicroMod Function Boards and measures 2.56" x 1.48" (65.02mm x 37.59mm) and the T1 jack protrudes roughly 0.15" (3.81mm) from the edge of the board.

Board Dimensions

Hardware Assembly

If you're not familiar with assembling boards using the MicroMod connection system, head over to the MicroMod Main Board Hookup Guide for information on inserting and securing your MicroMod Processor and Function Boards to the Main Board:

MicroMod Main Board Hookup Guide

November 11, 2021

The MicroMod Main Board - Single and Double are specialized carrier boards that allow you to interface a Processor Board with a Function Board(s). The modular system allows you to add an additional feature(s) to a Processor Board with the help of a Function Board(s). In this tutorial, we will focus on the basic functionality of the Main Board - Single and Main Board - Double.

Single Pair Ethernet Basic Assembly

With the Function and Processor Boards connected to their respective Main Boards, we can complete the assembly of the Single Pair Ethernet circuit. For a basic SPE prototyping circuit either with your own setup or with the Single Pair Ethernet Kit, connect the two MicroMod assemblies together using a Single Pair Ethernet Cable and then power the two MicroMod Main Boards via USB-C like the photo below:

Basic SPE Circuit

Demo Circuit Assembly

We'll be assembling a demo circuit that works with an example pair included in the ADIN1110 Arduino Library that sends environmental data recorded by the SparkFun Atmospheric Sensor Breakout - BME280 (Qwiic) connected to one SPE MicroMod assembly to display on a SparkFun 20x4 SerLCD - RGB Backlight (Qwiic) connected to the opposite SPE MicroMod assembly.

Connect the Qwiic boards to the Qwiic connector on their respective MicroMod Main Boards then plug the SPE cable into the T1 jacks on each Function Board. Once all of those are connected, power the MicroMod Main boards with USB-C cables. The completed demo circuit should look like the photo below:

Completed BME / LCD Demo Circuit Assembly
Having trouble seeing the detail in the image? Click on it for a larger view.

Now that our demo circuit is complete, we can move on to uploading the code to establish a SPE link and send data between the two MicroMod assemblies.

Software Setup

Note: This library assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using Arduino or if you need a refresher, please review the following tutorials.

SparkFun ADIN1110 Arduino Library

The SparkFun ADIN1110 Arduino Library includes several examples to get started communicating between two ADIN1110 Function Boards. The library is hosted on GitHub. Install the library through the Arduino Library Manager tool by searching for "SparkFun ADIN1110 Arduino Library". Users who prefer to manually install it can grab it from the repository or download it directly by clicking the button below:

The SparkFun ADIN1110 Arduino Library includes a wide set of examples to demonstrate different ways to configure and use the ADIN1110. They include basic examples to get up and running as well as advanced examples for users who prefer to customize the performance and memory use in transmissions.

Processor Arduino Board Definitions and Driver

Make sure you go through the Hookup Guide for your chosen Processor Board to install the latest Arduino board definitions and any necessary drivers:

MicroMod ESP32 Processor Board Hookup Guide

October 21, 2020

A short hookup guide to get started with the SparkFun MicroMod ESP32 Processor Board.

MicroMod STM32 Processor Hookup Guide

May 13, 2021

Get started with the MicroMod Ecosystem and the STM32 Processor Board!

MicroMod Teensy Processor Hookup Guide

July 1, 2021

Add the processing power and versatility of the Teensy to your MicroMod project following this guide for the SparkFun MicroMod Teensy Processor.

Pin Connection Table

The table below helps show which pins the Function Board connects to depending on the slot it is connected to on a Main Board (Note: The Single Main Board connection is Slot 0):

AUDIOUARTGPIO/BUSI2CSDIOSPI0Dedicated
Function Board
Pin Name
I/O
Direction
Main Board's
Processor Pin
Slot 0Slot 1
VCCInput-
3.3VInput-
GND--
INTD0D1
CSCS0CS1

Arduino Examples

The SparkFun ADIN1110 Arduino Library includes several sets of examples to get started communicating between ADIN1110 nodes. In this section we'll take a look at the Arduino example pair for the demo circuit shown in the Hardware Assembly section.

Example Set 3 - Transmit BME280 / Receive LCD Display

Note: This example pair requires two additional libraries; the SparkFun BME280 Library and SparkFun SerLCD Library. Install them through the Arduino Library Manger tool or download them for manual install by clicking the buttons below:

The Example 3 set (3a & 3b) work together to send environmental data from a BME280 connected to the transmitter MicroMod assembly to display on a LCD attached to the receiver MicroMod assembly.

Open an instance of the Arduino IDE for both boards and open the examples by going to File/Examples/SparkFun ADIN1110 Arduino Library/Example 03A_TransmitStrBME280 / 03B_RxStrSerLCD. Take note of the ports for both Processors to keep track of which board is which. Upload the examples to both boards and once a link is confirmed, the boards should start sending/receiving data between each other. If you do not see data or the LINK LEDs lighting up on both Function Boards, open the serial monitor and reset both boards. The code will print out debug data that may help troubleshoot issues with the SPE link.

Example 3A - BME280 Transmit

Example 3A creates the frame parameters for sending data measured by the BME280 and then sends that data over to the receiver every five seconds by default. If the readings from the BME280 change beyond a specified threshold in between reports, the code overrides the five second delay and sends a force report.

Example 3B - LCD Receive

Example 3B readies the ADIN1110 to receive data from the BME280 on the other Function Board and then prints the data to a LCD connected to the MicroMod main board. When starting up, the display will print out "Waiting for connection" and then "Connected" once a link is established. After establishing the link, the display should update with new data every five seconds or more often if the transmit Function Board receives a force update due to large changes in readings from the BME280.

Troubleshooting

Here are a couple of quick troubleshooting tips to use if you run into issues creating a link between ADIN1110's.

Check Board/Library Versions

If you have any issues with the Arduino Library and a SparkFun MicroMod Processor, make sure you have the latest versions of both the Processor Board definitions and the Arduino Library.

Reset Sequence

If the boards do not establish a link when running the example sets from the Arduino library, hold the RESET buttons on the Main Boards down at the same time. Release the RESET button on the receiving board (eg. the LCD circuit for the demo example) first and then release the RESET button on the transmitting after.

General Troubleshooting

Resources and Going Further

That's a wrap for this guide. For more information about the MicroMod Single Pair Ethernet Function Board - ADIN1110, check out these resources:

For more information on the MicroMod ecosystem, head over to these resources:


learn.sparkfun.com | CC BY-SA 3.0 | SparkFun Electronics | Niwot, Colorado


Viewing all articles
Browse latest Browse all 1123

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>