Giter Site home page Giter Site logo

de10-nano_cooling's Introduction

Система охлаждения для платы Terasic DE10-Nano (Altera, Intel FPGA)

Введение

На многих форумах, посвященных обсуждению вопросов о платах на ПЛИС и SoC, поднимается вопрос перегрева платы DE10-Nano. На форуме один из пользователей провел сравнение с другой платой на аналогичном чипе ПЛИС и выяснил, что плата DE10-Nano подвержена сильному нагреву, особенно при работе с HPS и ПЛИС одновременно. Такая ситуация не позволяет оставлять ее включенной на время большее нескольких часов, так как это может оказать негативное влияние на плату в целом и чип в частности.
В некоторых исключительных случаях перегрев может вывести плату из строя. Но во многих проектах плата должна работать несколько часов или даже несколько дней. Поэтому на другом форуме предлагается использовать вентилятор и/или радиатор для охлаждения. Для этого вентилятор необходимо правильно разместить для наилучшего охлаждения.
Кроме того, постоянно работающий вентилятор может раздражать шумом и быть избыточным. В некоторых high-end платах уже интегрирован в чип датчик температуры (internal TSD) и в ПО Quartus Prime имеются специальные мега-функции чтобы обрабатывать его показания с аппратно-привязанных пинов. В DE10-Nano такого датчика нет.

Данный проект создан специально для DE10-Nano (но легко может быть перенесен на другие платы) и включает:
-- 3д модель крышки, которая удобно крепится на ножки платы и имеет все необходимые сокеты для крепления остальных компонентов системы (вентилятора, печатной платы управления и т.д.);
-- Схема печатной платы для схемы управления датчиком температуры;
-- Универсальный Verilog моуль для обработки показаний датчика и контроля вентилятором.

Создание печатной платы

Для проекта была разработана печатная плата, для удобного соединения всех компонентов.

Размер печатной платы – 27х16 мм. Печатная плата

Проект был разработан в среде EasyEDA и находится здесь.

Перечень необходимых компонентов:

  1. Q1 – транзистор IRLR8113 в корпусе DPAK.
  2. Q2 – транзистор 2N7002 в корпусе SOT23.
  3. R1 и R3 – резисторы сопротивлением 1 КОм в корпусе 1206.
  4. R2 – резистор сопротивлением 10 КОм в корпусе 1206.
  5. R4 – резистор сопротивлением 100 КОм в корпусе 1206.
  6. TERM – термистор NTC 3950 100K.
  7. LD1 – светодиод любого цвета типоразмера 1608.
  8. Для площадки H1 требуются header male 1x4.
  9. Для площадок H2 и H3 требуются header male 1x3.
  10. Для площадки H4 требуются header male 1x2.

Подключение к плате DE10-Nano

Для правильной работы системы необходимо подключить все необходимы пины к плате:

  1. Пин GND подключается к пину GND на плате.
  2. Пин Vcc подключается к пину с питанием 3.3В на плате.
  3. Пин S необходимо подключить к одну из пинов GPIO в зависимости от привязанного в проекте пина.
  4. Пин ST необходимо подключить к одну из пинов ADC в зависимости от привязанного в проекте пина.
  5. Пины L- и L+ необходимо подключить к вентилятору.
  6. Пины P- и P+ необходимо подключить к источнику питания для вентилятора. Питание может быть подключено несколькими способами:
    1. Пин P+ подключается к пину 9В в разъемах Arduino. Пин P- можно не подключать, т.к. пин GND уже подключен к плате.
    2. Пин P+ подключается к питанию с напряжением до 24В. Пин P- необходимо подключить к GND источника питания.
  7. Если необходимо реализовать постоянное охлаждение, то нужно закоротить перемычку H4. В таком случае шаг 3 и 4 не требуется.

Сборка системы охлаждения

Специально для разработанной платы был разработана 3D модель крышки с удобным соединением с DE10-Nano, а также с вентилятором типоразмера 40х40 мм. Крышка

Скачать модель в формате stl для печати можно здесь.

Модуль управления охлаждением

Если модуль используется в качестве постоянного охлаждения, то данный шаг не требуется. В папке Quartus_project представлен проект с примером использования адаптивной системы охлаждения.

Основные настройки

Ниже представлен пример подключения модуля охлаждения в проект.

cooling_system cs1(
    .min_temp(30),
    .max_temp(60),
    .cur_temp(analog[0]),    
    .fan_control(GPIO[0]),
    );

Для корректной работы необходимо подать правильные сигналы в каждый вход/выход модуля:

  • В min_temp передается температура, до которой необходимо охлаждать плату в случае ее нагрева до max_temp.
  • В max_temp передается максимально допустимая температура.
  • В cur_temp необходимо передавать данные о текущей температуре с термистора.
  • В fan_control необходимо подключить один из пинов GPIO для управления включением/отключение вентилятора.

Дополнительные настройки

Для дополнительной настройки кода, в том числе для использования с другими платами есть возможность дополнительной настройки модуля:

  1. extra_res используется для задания сопротивления резистора R4 выступающего в качестве делителя напряжения для работы термистора.
  2. voltage показывает напряжение, поданное на пин VCC. Данное значение должно быть целым и для этого реальное значение помножается на mult_voltage. Для питания 3.3В voltage = 33.
  3. mult_voltage отображает на сколько домножено напряжение на VCC. Для питания 3.3В mult_voltage = 10.

Использование примера

Для использования примера можно воспользоваться уже скомпилированной версией. Для этого нужно прошить плату с использованием Quartus Prime Lite Edition 18.1 и файла cooling.sof.

Примечание

Инструкцию в формате Word можно скачать здесь.

de10-nano_cooling's People

Contributors

romeome5 avatar vvzunin avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.