Arduino Leonardo ETH: современное сочетание мощности и связности

Microcontroller board with Ethernet, MMC/SD card interface and USB

This project is a basis for developing microcontroller applications
connected to an ethernet network.

The hardware

Hardware components already integrated on the reference design include:

  • Atmel ATmega128 RISC microcontroller with standard 10-pin ISP header
  • 64 kByte of external SRAM
  • USB <-> RS232 interface
  • SD/MMC socket
  • Ethernet interface with ENC28J60 (IEEE 802.3, 10Base-T)

The hardware design is expandable by connecting additional components
to the existing pin header. Several digitial I/Os, A/D inputs as well
as the standard SPI and I2C (TWI) serial interfaces are available for
user-defined purposes.

The curcuit board is designed as a two-layer board of size 100mm x 80mm. Most
components use SMD packages.

The software

The software is written in pure standard ANSI-C. Sure, it might not be the
smallest or the fastest one, but I think it is quite flexible.

By providing the software for this project under the GPLv2, great
flexibility is achieved. The following modules are already available:

  • TCP/IP and UDP/IP stack.
  • Client DHCP support for automatically configuring the network interface.
  • Small and flexible web server.
  • Mature and well-tested SD/MMC access with FAT16 support.
  • Client for retrieving current date and time over network (TIME protocol).
  • Several internal modules for providing a clock, timers, UART access and more.

I implemented a simple command prompt which is accessible via the UART at 115200 Baud. With
commands similiar to the Unix shell you can setup the network parameters, browse the SD/MMC
memory card and more.

  • cat <file>
    Writes a hexdump of <file> to the terminal.
  • cd <directory>
    Changes current working directory to <directory>.
  • clock
    Prints date and time from the internal clock.
  • clock_sync_start
    Starts periodically fetching current date and time from the internet.
    Note: In the official firmware my own server is contacted. This is for
    illustration purposes only. The service is not guaranteed and should
    not be used more often than every ten minutes!
  • clock_sync_stop
    Aborts clock synchronization.
  • disk
    Shows card manufacturer, status, filesystem capacity and free storage space.
  • dhcp_client_start
    Starts the DHCP client and tries to configure the network interface.
  • dhcp_client_abort
    Aborts the DHCP client.
  • ip_config ]]
    Displays or changes the network interface configuration.
  • ls
    Shows the content of the current directory.
  • sync
    Ensures all buffered data is written to the card.

Adapting the software to your needs

The software has been written with reusability in mind. Most modules are hardware independent,
and hardware abstraction has been used where hardware access is needed. That said, it should
be fairly easily adaptible to different hardware configurations.

By changing the MCU* variables in the Makefile, you can use other Atmel
microcontrollers or different clock speeds. Some modules are configurable, the parameters reside
in extra files named for example tcp_config.h or ethernet_config.h.

Downloads

This section is continuously updated with the newest software revisions. The
documentation is available online, but it is also included in the software package.

date comments files
2008-05-22
  • Make listing a directory much faster.
  • Code size reduction.
software sources (570kB)
2008-05-17 software sources (570kB)eagle schematics (revision 1.1) (105kB)

Bugs or comments?

If you have comments or found a bug in the software — there might be some
of them — you may contact me per mail at [email protected].

Copyright 2006-2008 by Roland Riegel

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License version 2 as published by
the Free Software Foundation (http://www.gnu.org/copyleft/gpl.html).
At your option, you can alternatively redistribute and/or modify the following
files under the terms of the GNU Lesser General Public License version 2.1
as published by the Free Software Foundation (http://www.gnu.org/copyleft/lgpl.html):

  • fat16.c
  • fat16.h
  • fat16_config.h
  • partition.c
  • partition.h
  • partition_config.h
  • sd_raw.c
  • sd_raw.h
  • sd_raw_config.h

Элементы платы

Микроконтроллер ATmega32U4

Аппаратной частью платформы является 8-битный микроконтроллер семейства AVR — ATmega32U4. Он предоставляет в ваше распоряжение 32 КБ флеш-памяти для хранения прошивки, 2.5 КБ оперативной памяти SRAM и 1 КБ энергонезависимой памяти EEPROM для хранения данных. Этого вполне достаточно для решения задач по управлению роботами, промышленной автоматикой, системами умного дома, световыми инсталляциями и т.д.

Чип W5500

W5500 — это функционально законченный чип встраиваемого Ethernet-контроллера для обеспечения проводного соединения TCP/IP. Аппаратный стек TCP/IP поддерживает TCP, UDP, IPv4, ICMP, ARP, IGMP, PPPoE. Связан с линией и пином на микроконтроллере ATmega32U4.

Пины питания

На плате предусмотрены следующие пины питания:

  • VIN: Напряжение, поступающее в Arduino непосредственно от внешнего источника питания (не связано с 5 В от USB или другим стабилизированным напряжением). Через этот пин можно подавать внешнее питание и потреблять ток, когда устройство подключено к внешнему адаптеру.
  • 5V: На вывод поступает напряжение 5 В от стабилизатора напряжения на плате, независимо от того, как запитано устройство — от адаптера (7–12 В), от USB (5 В) или через вывод VIN (7–12 В). Данный стабилизатор обеспечивает и питание микроконтроллера ATmega32U4. Подключать питание устройства через вывод не рекомендуется — в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.
  • 3.3V: 3,3 В от встроенного стабилизатора напряжения. Максимальный ток составляет 1,2 А.
  • GND: Выводы земли.
  • IOREF: Вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В зависимости от напряжения на пине IOREF, плата переключается на соответствующий источник питания или задействует преобразователи уровней, что позволит ей работать как с 5 В, так и с 3,3 В устройствами.

Порты ввода/вывода

Цифровые входы/выходы: пины –
Логический уровень единицы 5 В, нуля — 0 В. Максимальный ток выхода 40 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.

ШИМ: пины ,,,,, и
Позволяют выводить 8-битные аналоговые значения в виде ШИМ-сигнала.

АЦП: пины –, –(на цифровых пинах 4, 6, 8, 9, 10 и 12).
В Arduino Uno есть 12 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 значений). Разрядность АЦП — 10 бит.

TWI/I²C: пины и
Для общения с периферией по синхронному протоколу по 2 проводам с использованием библиотеки .

SPI: пины разъема
Данные выводы позволяют осуществлять связь по интерфейсу SPI

Обратите внимание, что линии SPI выведены только на разъем ICSP и не соединены с выводами платы, как на Arduino Uno. SPI-платы расширения без шестиконтактного разъема ICSP для соединения с Leonardo — работать не будут.

UART: пины и
Используется для коммутации платы Arduino с другими устройствами через класс

Для связи Arduino Leonardo с компьютером через порт micro-USB, используйте класс .

Светодиодная индикация

Имя светодиода Назначение
RX и TX Мигают при передаче данных между Arduino Leonardo ETH и USB компьютера.
L Светодиод вывода . При отправке значения HIGH светодиод включается, при отправке LOW – выключается.
ON Горит при подключении питания к Arduino Leonardo ETH.

Слот карт microSD

Слот предназначен для подключения карт microSD. Карта памяти будет полезна для хранение файлов медиа-данных для раздачи по сети и длинных лог-файлов.
Работу с microSD облегчает библиотека . При работе с библиотекой не забудьте, что линия соединена с выводом .

Ethernet-разъём

Arduino Leonardo ETH можно подключить к проводной сети через Ethernet-разъём RG-45. Для облегчения и скрытия всех тонкостей протокола реализована библиотека .

ICSP-разъём

ICSP-разъем предназначен для внутрисхемного программирования микроконтроллера ATmega32U4.
Также с применением библиотеки данные выводы могут осуществлять связь по интерфейсу SPI

Обратите внимание линии SPI не продублированы на цифровых контактах, как это сделано на Arduino Uno. Это означает, что если плата расширения использует SPI и не имеет снизу ICSP-разъёма ответного к этим штырькам на Arduino, она работать не будет.

In Stock : Please Inquiry

Please send RFQ , we will respond immediately.

United States

China

Canada

Japan

Russia

Germany

United Kingdom

Singapore

Italy

Hong Kong(China)

Taiwan(China)

France

Korea

Mexico

Netherlands

Malaysia

Austria

Spain

Switzerland

Poland

Thailand

Vietnam

India

United Arab Emirates

Afghanistan

Åland Islands

Albania

Algeria

American Samoa

Andorra

Angola

Anguilla

Antigua & Barbuda

Argentina

Armenia

Aruba

Australia

Azerbaijan

Bahamas

Bahrain

Bangladesh

Barbados

Belarus

Belgium

Belize

Benin

Bermuda

Bhutan

Bolivia

Bonaire, Sint Eustatius and Saba

Bosnia & Herzegovina

Botswana

Brazil

British Indian Ocean Territory

British Virgin Islands

Brunei

Bulgaria

Burkina Faso

Burundi

Cabo Verde

Cambodia

Cameroon

Cayman Islands

Central African Republic

Chad

Chile

Christmas Island

Cocos (Keeling) Islands

Colombia

Comoros

Congo

Congo (DRC)

Cook Islands

Costa Rica

Côte d’Ivoire

Croatia

Cuba

Curaçao

Cyprus

Czechia

Denmark

Djibouti

Dominica

Dominican Republic

Ecuador

Egypt

El Salvador

Equatorial Guinea

Eritrea

Estonia

Eswatini

Ethiopia

Falkland Islands

Faroe Islands

Fiji

Finland

French Guiana

French Polynesia

Gabon

Gambia

Georgia

Ghana

Gibraltar

Greece

Greenland

Grenada

Guadeloupe

Guam

Guatemala

Guernsey

Guinea

Guinea-Bissau

Guyana

Haiti

Honduras

Hungary

Iceland

Indonesia

Iran

Iraq

Ireland

Isle of Man

Israel

Jamaica

Jersey

Jordan

Kazakhstan

Kenya

Kiribati

Kosovo

Kuwait

Kyrgyzstan

Laos

Latvia

Lebanon

Lesotho

Liberia

Libya

Liechtenstein

Lithuania

Luxembourg

Macao(China)

Madagascar

Malawi

Maldives

Mali

Malta

Marshall Islands

Martinique

Mauritania

Mauritius

Mayotte

Micronesia

Moldova

Monaco

Mongolia

Montenegro

Montserrat

Morocco

Mozambique

Myanmar

Namibia

Nauru

Nepal

New Caledonia

New Zealand

Nicaragua

Niger

Nigeria

Niue

Norfolk Island

North Korea

North Macedonia

Northern Mariana Islands

Norway

Oman

Pakistan

Palau

Palestinian Authority

Panama

Papua New Guinea

Paraguay

Peru

Philippines

Pitcairn Islands

Portugal

Puerto Rico

Qatar

Réunion

Romania

Rwanda

Samoa

San Marino

São Tomé & Príncipe

Saudi Arabia

Senegal

Serbia

Seychelles

Sierra Leone

Sint Maarten

Slovakia

Slovenia

Solomon Islands

Somalia

South Africa

South Sudan

Sri Lanka

St Helena, Ascension, Tristan da Cunha

St. Barthélemy

St. Kitts & Nevis

St. Lucia

St. Martin

St. Pierre & Miquelon

St. Vincent & Grenadines

Sudan

Suriname

Svalbard & Jan Mayen

Sweden

Syria

Tajikistan

Tanzania

Timor-Leste

Togo

Tokelau

Tonga

Trinidad & Tobago

Tunisia

Turkey

Turkmenistan

Turks & Caicos Islands

Tuvalu

U.S. Outlying Islands

U.S. Virgin Islands

Uganda

Ukraine

Uruguay

Uzbekistan

Vanuatu

Vatican City

Venezuela

Wallis & Futuna

Yemen

Zambia

Zimbabwe

Quantity

Quick RFQ

Понравилась статья? Поделиться с друзьями: