Notice: Memcache::get(): Server localhost (tcp 11211) failed with: Connection refused (111) in /home/a146/www/we.easyelectronics.ru/engine/lib/external/DklabCache/Zend/Cache/Backend/Memcached.php on line 134
Блог / Публикации teplofizik / Сообщество EasyElectronics.ru

NyaiCEProg F3. Программатор для FPGA серии iCE5 (iCE40 Ultra)

На время отладки конфигурации FPGA неудобно постоянно изменять прошивку и перепрошивать мастер-контроллер, потому сделал себе простенький программатор, благо, на отладочной плате разведён USB.
В архиве stm32f3lattice.zip лежит два hex, для STM32F3Discovery и для отладочной платы «STM32F303 + ice5 Development Board». Отличаются, впрочем, они только расположением светодиода.

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

Интерфейс ПО незамысловат: выбираем bin-файл конфигурации и нажимаем «Program».
Интерфейс


Читать дальше

Подключение встроенного модуля токового драйвера FPGA серии iCE5 (iCE40 Ultra)

В микросхеме iCE5LP2K есть встроенные токовые драйвера для светодиодов. Три канала слаботочных, с ограничением тока от 4 до 24 мА с шагом в 4 мА (настраивается статически) и один канал посильнее, от 50 до 500 мА с шагом в 50 мА.

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


Читать дальше

Настройка PLL FPGA серии iCE5 (iCE40 Ultra) в среде iCEcube2

Как и в любом уважающем себя FPGA, рассчитанном на достаточно высокое быстродействие, в iCE5LP2K есть один модуль PLL, и, скорее всего, он понадобится. Продолжим же с него. На самом деле, микросхема эта не настолько уж и шустрая, не дотягивает даже до уровня первого циклона (Altera Cyclone I).

Я провёл мини-тест, запускал моргалку светодиода на разных частотах.
  • 96 МГц: предупреждений нет, моргает нормально;
  • 120 МГц: есть предупреждения о превышениях временных порогов на каких-то путях, но ещё работает, сбоев в моргании нет;
  • 130 МГц: есть предупреждения, моргает со сбоями и зависаниями, всё плохо.
  • 150 МГц: есть предупреждения, не работает ничего, светодиод просто не включается.
Синтезатор не требует файла с временными ограничениями на сигналы и позволяет собрать даже нерабочий вариант. Файл ограничений, кстати, добавить можно.
То есть даже собранный правильный код не означает, что он будет работать. Думаю, более простая схема, без такого километрового счётчика, работала бы и на более высокой частоте, чем эта моргалка.

Читать дальше

Создание проекта для iCE5 (iCE40 Ultra) в среде iCEcube2

Есть такая фирма Lattice, которая производит микросхемы FPGA (некоторые из них тут продаются, некоторые — фиг). Самое интересное их отличительное качество — размер. Например, серия iCE5 (iCE40 Ultra), имеет вариант корпуса QFN48 7х7мм:
STM32F303 + ice5 Development Board
Вторая микросхема — это stm32f303. Сама плата: STM32F303 + ice5 Development Board. iCE5LP4K не удалось найти, потому поставили iCE5LP2K, да и слот под sd-карты решили не паять.


Читать дальше

Оболочка для прошивки серийных устройств

По итогам двух лет работы с предыдущей версией программы сделал я новую версию ПО, переписанную, практически, с нуля (внутренние механизмы заметно изменились).



Читать дальше

CMSIS-DAP на STM32F4Discovery

Тут уже лет 5 назад упоминали о таком, но мало ли. CMSIS-DAP какой-то канонный опенсорсный интерфейс отладки от ARM для кортексов на базе протокола USB HID. Т.е. не привязанный к конкретному производителю контроллеров и не требующий драйвера.
Более мощная версия этой штуки (со всякими балалайками, типа популярной нынче прошивки через MSD, или USB-UART) развивается mbedом и называется DAPLink.





Читать дальше

AVRISPmkII на STM32F4Discovery

Изучал USB-библиотеку на STM32F4 и как побочный результат этой деятельности получился клон AVR ISP mkII.
В архиве hex прошивки и исходник.

Распиновка ISP (AVR):
PD7 — RESET
PB3 — SCK
PB4 — MISO
PB5 — MOSI

Распиновка PDI (XMega):
PB13 — CLK
PB15 — DATA

PE5 — 4 МГц меандр на всякий случай

Красная лампочка просто моргает, зелёная — при активности.
stm32f4discovery as avrispmkII

Вдруг просто надо будет что-то авровское прошить, а под рукой программатора нет. А так можно быстро сколхозить из весьма распространённой отладки. Номер версии ПО: 0x18.

ОС как библиотека

Иногда внезапно возникает необходимость сделать какую-то работу в коде программы в синхронном режиме — то есть, не конечным автоматом, а просто дожидаясь результата каких-то действий. Например, скачать http-страничку, или, того хуже, https-страничку.

Но и тормозить основной цикл тоже как-то не очень хорошо. На этот случай есть известное решение — ОС.

Но если требуется допилить уже существующий проект с минимальным вмешательством в остальной код?
Вот мне стало интересно сделать мини-ОС, которая подключается к проекту как библиотека. То есть, делаем вызов какой-нибудь функции os_Init() и получаем возможность создавать потоки, не вмешиваясь в работу основного цикла. Он продолжает работать, как будто никакой ОС и нет, просто иногда управление передаётся дополнительным потокам.



Читать дальше

Редактор шрифтов

Часто бывает надо поменять какой-нибудь символ в шрифте, добавить иконку или что-то такое, но квадратики в тетрадочке закрашивать лень, высчитывать номер байта и бита в гигантском массиве тоже… На такой случай и была сделана программка для редактирования шрифтов прямо в .c/.h файлах. Естественно, для тех форматов, которые попадались под руку — а то больно их много всяких.

Открыл файлик font14x8.c прям в папке проекта, поменял растр буковки — и сохранил. Прелесть.


Читать дальше

Работа с SDR-свистками на C# (RTL2832)

Было время, когда стала очень популярна тема SDR (цифровая обработка радиосигналов) на всяких дешёвых китайских радиосвистках, и многие их купили. Посмотрели, наверняка, в программках спектры всяких радиостанций и убрали на полку. Но если заниматься проектами, где используются субгигагерцовые передатчики или какие-то внешние сигналы, то свисток может ещё послужить с пользой — проверить какие-то частоты, посмотреть, что на них сидит или даже декодировать сигнал, если частота выборки позволяет, и известны алгоритмы кодирования.

Меж тем, подключить свисток к программе на C# достаточно просто.


Читать дальше