Новые возможности Altium Designer 19

Небольшая заметка со ссылкой на вебинар о новых возможностях Altium Designer 19. Довольно интересно и много полезного.

B79-1

Темы вебинара:

  • Новый менеджер стека слоев
  • Улучшение трассировки
  • Поддержка микроотверстий
  • Управление подключением полигона к площадкам и отверстиям
  • Безграничное количество механических слоев
  • Улучшения в Draftsman
  • Улучшения в BOM
  • Новые панели Part search и Components
  • Улучшения в Multi-Board
  • Печатная электроника

Как по мне, вебинар будет интересен не только новичкам, но и давним пользователям Альтиума.

Читать далее

Отладочная плата для 5600ВВ3Т

Эта статья также из разряда описания старых плат, спроектированных в начале 2015-го года. В то время раздавали бесплатные образцы 5600ВВ3Т предприятиям (и даже на момент публикации статьи ещё раздают!), я сделал запрос образцов и на скорую руку спроектировал простую отладочную плату для проведения тестирования новинки. Опять же, т. к. устройство «для себя», то сдавать никакую документацию не требовалось, поэтому УГО компоненты и схема в целом не очень-то и по ГОСТу, это просто пример устройства с кратким описанием.

B7-14

В целом, здесь не будет каких-либо секретов запуска или особенностей проектирования (их и нет-то), просто открытый проект для изучения и применения как вам вздумается, без какой-либо ответственности с моей стороны.

Читать далее

Обзор на 2-слойные печатные платы из Seeed Studio

Предложили мне тут сделать обзор на печатные платы из Seeed Studio. Я не стал отказываться, правда, по времени предложение вышло очень неудачно — работы сейчас навалом и платы делал наспех, тратя не более 2-х вечеров на каждую… ну, для обзора и этого вполне будет достаточно. ;)

B76-0

Seeed Studio — это производитель электронных модулей (к примеру, линейка Grove), которые в большинстве своём предназначены для поклонников Arduino и одноплатных компьютеров. У них ещё бывают редкие железяки, которые не купить на али или в местных магазинах, а также они предоставляют услуги по изготовлению и сборке печатных плат. Отдельно хочу отметить, что они поощряют Open Source и даже можно замутить продажу своего проекта на их площадке!

Читать далее

HyperRAM — это что за память?

Под катом небольшой обзор особенностей этой памяти, отличия от других типов памяти и в конце небольшой список того, что же взяла (позаимствовала) эта память из других типов.

Заметка будет полезна начинающим и не имевшим дела с этой памятью, вкратце попробую описать её назначение с индивидуально формирующимся выводом для каждого разработчика в процессе чтения, стоит ли она применения в своём проекте или нет.

B75-0

Читать далее

Visual Studio Code и Icarus Verilog

В этой статье попробую вкратце показать, как можно настроить Visual Studio Code для написания HDL кода на языках Verilog, SystemVerilog, настроить задачи для компиляции и симуляции работы, а также отображения результатов симуляции в GTKWave.

Написание HDL кода в Visual Studio Code по сравнению с Intel Quartus Prime порядком удобней и можно просто использовать Visual Studio Code как продвинутый редактор кода (если вам не нужна компиляция и симуляция из Icarus Verilog).

B67-0

Установка Visual Studio Code

Скачиваем Visual Studio Code для вашей ОС, в моём случае я скачал версию для Windows x64, ZIP архив (версия 1.27.1). Распаковываем\устанавливаем и запускаем, нас встречает главное окно редактора (да, да, это не полноценная IDE, как Visual Studio, а именно легкий редактор кода с возможностью кастомизации расширениями практически до уровня IDE) со стартовой страницей:

B67-1

Произведём минимальные настройки для удобства. Открываем настройки Visual Studio Code:

B67-2

В строке поиска вводим «theme» и переключаем на более приятную тему для вас (в моём случае это «Default Light+«):

B67-3

Далее в строке поиска вводим «titleBarStyle» и переключаем параметр Title Bar Style на «custom«:

B67-4

Этот параметр изменит вид меню и интегрирует само меню в заголовок окна, что экономит место и визуально редактор становится приятнее, пример этого решения в конце абзаца.

И последнее, в строке поиска вводим «minimap» и, собственно, отключаем её отображение:

B67-5

Миникарта — это вот что:

B67-6

Справа сверху отображается представление файла в мини-превью, иногда это удобно, иногда это место лучше освободить от этого превью (к примеру, открываете вертикально 2-3 файла, и это превью уже ощутимо кушает место) — тут кому как удобнее. :)

Итак, перезапускаем редактор и видим следующие визуальные изменения:

B67-7

Установка расширений для Visual Studio Code

Далее, чтобы удобно (подсветка, автодополнение) работать с Verilog, SystemVerilog, TCL файлами, нам необходимо установить расширения, поддерживающие эти типы файлов.

Открываем панель расширений (Ctrl+Shift+X):

B67-8

И в строке поиска вводим «ext:v«, ставим расширение Verilog HDL:

B67-9

Далее в строке поиска вводим «ext:sv«, ставим расширение SystemVerilog:

B67-10

Последнее, в строке поиска вводим «ext:tsl«, ставим расширение TSL:

B67-11

Вот и всё. После перезапуска Visual Studio Code установленные расширения будут активны. Да, ставить именно указанные расширения не обязательно, возможно, расширения от других авторов будут более удобны или с более богатым функционалом — не бойтесь пробовать (и пишите в комментариях, какие расширения Вам больше понравились и чем).

Пример работы расширения:

B67-12

Установка Icarus Verilog

Теперь нужно установить компилятор\симулятор HDL кода — Icarus Verilog. Скачиваем установщик под Windows (для остальных платформ смотрим Installation Guide), я скачал последнюю версию iverilog-10.1.1-x64.

При установке в целом сложностей не возникает, главное — ставьте полную версию с библиотеками:

B67-13

И не убирайте галочки добавления путей к GTKWave и в PATH:

B67-14

Ярлычки в меню Пуск и на рабочий стол я не ставил. Перезагружаем ПК или просто разлогиниваемся и снова заходим под рабочим пользователем — этого должно хватить, чтобы подхватились изменения в системной переменной PATH.

Примечание: у меня установщик никаких правок в PATH не внёс и я не сразу понял, почему не работает. Пришлось вручную внести в пользовательский PATH следующие две строки (Icarus Verilog установлен в C:\Data\iverilog\):

B67-19

Настройка проекта под Visual Studio Code

В качестве проекта возьмём counter.v и counter_tb.v из прошлой статьи «Запускаем ModelSim с Quartus Prime и без«, чего будет более чем достаточно.

Приведу их ещё раз. counter.v :

`timescale 1ns/1ns

module counter (
input wire reset,
input wire clk,
input wire [7:0]wdata,
input wire wr,
output reg [7:0]data
);
always @ (posedge clk or posedge reset)
if (reset)
data <= 8'h00;
else
if(wr)
data <= wdata;
else
data <= data + 8'h01;

endmodule

counter_tb.v :

`timescale 1ns/1ns
`include "counter.v"
module counter_tb();

reg reset, clk, wr;
reg [7:0]wdata;
wire [7:0] data_cnt;

counter DUT(reset, clk, wdata, wr, data_cnt);

always
#10 clk = ~clk;

initial begin
clk = 0;
reset = 0;
wdata = 8'h00;
wr = 1'b0;

#10 reset = 1;
#5 reset = 0;
#50;

end

initial begin
#400 $stop;
end

initial
begin
$dumpfile("out.vcd");
$dumpvars(0,DUT);
end

initial
$monitor($stime,, reset,, clk,,, wdata,, wr,, data_cnt);

endmodule

Итак, открываем корневую папку проекта, в которой и находятся файлы counter.v и counter_tb.v:

B67-15

Редактор теперь показывает открытую папку TEST и файлы в ней:

B67-16

Далее необходимо создать задачи компиляции и симуляции проекта (точнее Test Bench). Переходим в меню по пункту Terminal -> Configure Tasks, откроется следующий диалог:

B67-17

Потом:

B67-18

Создаём файл .vscode\Tasks.json из шаблона Others (нижний пункт). Собственно, после создания файла он должен открыться в редакторе — копируем туда следующий текст:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Compile Verilog File",
            "type": "shell",
            "command": "cd ${fileDirname} ; iverilog -o ${fileBasename}.vvp ${fileBasename} ; vvp -N ${fileBasename}.vvp"
        },
        {
            "label": "Run GTKWave",
            "type": "shell",
            "command": "cd ${fileDirname} ; gtkwave out.vcd"
        }
    ]
}

Сохраняем. Это создание двух команд, первая — для компиляции, вторая — для отображения результатов симуляции.

Закрываем редактор, чтобы он подхватил изменения файла .vscode\Tasks.json при следующем запуске.

Примечание: Можно еще хоткеи настроить для задач, но это уже оставлю на вашу любознательность. ;)

Тест

Ну а теперь самое простое… Запускаем Visual Studio Code, папка с проектом будет открыта уже в воркспейсе (если не перемещали). Открываем файл counter_tb.v
т. к. это основной файл, с которого будет произведена компиляция и симуляция. Переходим в меню по пункту Terminal -> Run Task…, откроется следующий диалог с ранее объявленными задачами:

B67-20

Вначале выбираем Compile Verilog File и потом выбираем запуск задачи без сканирования лога выполнения:

B67-21

Успешно откомпилировано и создан файл для отображения симуляции работы (на идеальных компонентах):

B67-22

После успешной компиляции аналогичным образом вызываем Run GTKWave для просмотра результатов. Откроется основное окно GTKWave:

B67-23

Раскрываем слева экземпляр тестбенча и выделяем экземпляр DUT тестируемого модуля counter, внизу появятся его сигналы, просто перетаскиваем их в колонку Signals:

B67-24

Вот и всё! Надеюсь это будет полезно начинающим. ;)

Ссылки

  • Visual Studio Code — официальная страничка редактора кода;
  • Tasks in Visual Studio Code — полезное описание, как создавать свои команды;
  • Icarus Verilog — официальный сайт компилятора и симулятора Verilog;
  • Icarus Verilog Installation Guide — как скомпилировать и установить Icarus Verilog на любой платформе;
  • Icarus Verilog for Windows — откомпилированные бинарники Icarus Verilog (вариант для ленивых как я :D) в виде установщика под Windows.

Обзор модуля AFW121TI

Привет! Сегодня на обзор новейший модуль AFW121TI по вполне доступной цене ($3.7 за 1шт и ниже с увеличением покупаемого количества на момент написания статьи) на довольно свежем SoC — RTL8710BX-A0 от Realtek, который является самым бюджетным в линейке.

B73-2

Характеристики этого Wi-Fi SoC:

  • ARM Cortex-M4, 62.5 МГц
  • Wi-Fi: IEEE 802.11 b/g/n
  • 11 Мбит/с (802.11 b), 54 Мбит/с (802.11 g), 150 Мбит/с (802.11 n)
  • SSL/TLS
  • GPIO — 11
  • UART — 2 (HS, LOG)
  • SPI — 1
  • I2C — 2
  • PWM — 6
  • JTAG/SWD
  • WDG — 1
  • RTC — 1
  • ADC — 1
  • Рабочая температура: -20…+85℃

Если стало интересно — прошу под кат. ;)

Читать далее

Выбор стандартного интерфейса для обмена данными

В этой заметке будет краткий обзор различных распространённых интерфейсов, которые используются в качестве канала обмена данными между персональным компьютером (ПК) и разрабатываемым\проектируемым устройством (или в пределах устройств только). Заметка, скорее, для начинающих схемотехников \ программистов, которая поможет определиться с начальным выбором, оценив возможности и ограничения описанных интерфейсов.

B69-0

Фото взято отсюда.

Заметка не претендует на полноту изложения или обстоятельный подход к каждому интерфейсу, могут быть ошибки или неточности, это скорее заметка с авторскими пометками и моё мнение может не совпадать с вашим. :) Если интересно — прошу под кат:

Читать далее

Замена EPCQ-L для Intel Cyclone 10 GX

Небольшая заметка для разработчиков, которые при проектировании устройств на Intel Cyclone 10 GX столкнулись с такой досадной ситуацией, когда единственная рекомендуемая для них конфигурационная память линейки EPCQ-L является Obsolete и её покупка является затруднительной задачей в данный момент, и будет невозможна в скором будущем…

B72-0

Что с этим делать и на что можно заменить рекомендуемую конфигурационную память EPCQ-L — разберёмся в небольшой заметке под катом.

Читать далее

Altium Designer — Настраиваем правила разводки для отдельных компонентов

У начинающих разработчиков, работающих в САПР Altium Designer, может возникнуть ситуация, когда для конкретных компонентов необходимо применить какое-либо правило к разводке, к примеру, отличающееся подключение к полигону или увеличенные зазоры. Первое, что приходит в голову — это использовать порядковый номер компонента (Designator), вручную занеся его в правило печатной платы, вот только при любом изменении схемы правило придется обновлять — это непорядок! Хотя давно, честно говоря, я сам так делал, потом запарился и задумался, что я делаю не так…

B71-0

Под катом же покажу, как сделать более правильно и просто на примере Altium Designer 18.

Читать далее

Различия между диэлектриками керамических конденсаторов

В этой заметке будет показано различие между диэлектриками керамических конденсаторов (или, более правильно, различия в температурном коэффициенте емкости, ТКЕ), часто используемых как в радиолюбительской практике, так и в серьезных разработках. Речь о трёхсимвольном коде из букв и цифр в даташите или в описании магазина на тот или иной керамический конденсатор, чаще всего можно увидеть такие коды: X7R, X7S, X5R, X8R, Z5U,Y5V, C0G.

Керамические конденсаторы разделяются на 4 класса (1, 2, 3, 4), последние два практически не используются и даже не стандартизированы, поэтому речь будет только о первых двух (1, 2).

B66-0

Читать далее