README.md

LAN-tester — Тестер витой пары на ATmega16A-AU

Форк автора Potok из статьи на Habr. Схема перерисована в KiCad v10.0 с некоторыми доработками и изменениями. Прошивка написана с нуля.

 

Платформа

Arduino IDE 1 и 2 версий (плата MightyCore)

  Проект полностью открыт и распространяется по лицензии GPL-3.0-or-later.

Ссылки на GitFlic и GitHub.


Возможности

  • Проверяет целостность всех жил и схему обжима
  • Определяет тип кабеля: прямой или перекрёстный (кросс)
  • Распознаёт готовность линий к скоростям 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

Описание
Тестер витой пары на ATmega16A-AU
Конвейеры
0 успешных
0 с ошибкой
Разработчики