LAN-tester — Тестер витой пары на ATmega16A-AU
Форк автора Potok из статьи на Habr. Схема перерисована в KiCad v10.0 с некоторыми доработками и изменениями. Прошивка написана с нуля.
Платформа
Arduino IDE 1 и 2 версий (плата MightyCore)
Проект полностью открыт и распространяется по лицензии GPL-3.0-or-later.
Возможности
- Проверяет целостность всех жил и схему обжима
- Определяет тип кабеля: прямой или перекрёстный (кросс)
- Распознаёт готовность линий к скоростям 100 Мбит и 1 Гбит
- Локализует короткие замыкания и обрывы проводников
- Измеряет метраж кабеля или расстояние до точки обрыва (погрешность ≈ ±10–20%)
- Калибровка ёмкости и порога напряжения 2-х и 5-ти метровые кабели (сохраняется в EEPROM)
- Отображает напряжение кроны (7 ступеней) и графический индикатор заряда (5 делений)
Заметки
Дисплей использовал от Nokia 1202 (96x68 pix с контроллером STE2007) и своей обвязкой, для него добавлен в схему второй линейный преобразователь для 3.3V.
Потребление тока от кроны в режиме ожидания 33mA, при измерении 8-жильного патчкорда 38mA.
В код внесены точные значения резисторов перед их запайкой для повышения точности.
При печати платы из KiCad v10.0 НЕ ставить галочку для зеркалирования, потому, что размещённые SMD детали уже отзеркалены, поэтому печатать так, как есть 1:1!
Кнопки подключены без резисторов, в разрыв между GND и пинами МК, так же подключены конденсаторы на 100nF между пином и GND для подавления дребезга контактов - это работает хорошо для подавления дребезга кнопок и убирает лишний код.
Разъёмы 8P8C (RJ-45) использовал какие были, поэтому вероятно потребуется их подобрать или изменить посадочные места на схеме под свои.
Отображает уровень заряда и вольтаж кроны (ступенями):
ВОЛЬТАЖ:
- 9.4V (максимум)
- 8.3V
- 8.2V
- 7.2V
- 7.1V
- 6.4V
- 5.0V (минимум / Критический разряд).
ИКОНКА БАТАРЕИ:
- 4 деления: при напряжении > 8.5V
- 3 деления: при напряжении > 7.5V
- 2 деления: при напряжении > 6.5V
- 1 деление: при напряжении >= 6.36V
- 0 делений (мигающая рамка): при падении ниже 6.36V
Немного самокритики
В коде есть сложности с идеальным определением КЗ, поэтому, некоторые пары при КЗ могут показывать 3 контакта, вместо двух, тем не менее это не мешает определить проблему (если такова имеется).
Бывают зависания или артефакты на дисплее, при быстрых нажатиях кнопок, требуется Выкл. и Вкл.
Будут ли доработки?
Не знаю, может быть, но это не точно. Если хотите, делайте форк и вносите правки на свой вкус, но места в МК осталось мало для кода, занято 97%.
Настройки Arduino IDE
Плата: MightyCore v3.1.0 → ATmega16
| Параметр | Значение |
|---|---|
| Baud rate | Default |
| BOD | 4.0V |
| Bootloader | No bootloader |
| Clock | External 20 MHz |
| EEPROM | EEPROM retained |
| JTAG pins | JTAG disabled |
| Compiler LTO | LTO enabled |
| Pinout | Standard pinout |
| Программатор | USBasp |
Фьюзы (на всякий случай)
| Фьюз | Значение |
|---|---|
| Lock | 0xFF |
| High (hfuse) | 0xC7 |
| Low (lfuse) | 0x3F |
Фотографии:

Все фото в Images
Схема:

Автор Otto, г. Омск 2026