FPGA (ПЛИС)

Данный раздел сайта посвящен программированию программируемых логических интегральных схем (ПЛИС), по-английски обозначаемых аббревиатурой FPGA, а также их применению в конструировании электронных устройств на их основе.

Как я познакомился с FPGA

Научившись писать несложные скетчи для Arduino, я попробовал заменить микроконтроллер в панельке Arduino на купленный для этих экспериментов ATmega168. Спаяв в качестве программатора так называемый программатор "пять проводков", я начался учиться программировать микроконтроллер с помощью программы avrdude, и когда всё получилось вполне успешно с первого раза - загруженный скетч Blink радостно начал мигать светодиодом, я решил посмотреть, как влияет разные установки Fuse-битов CLKSEL на работу микроконтроллера. Увлёкшись тем, что микроконтроллер мигает с разной скоростью, то быстрее, то медленнее, я не заметил как запрограммировал его случайно тактироваться от килогерцового кварца, что было ужасно, поскольку такого кварца у меня не было в наличии, и соответственно мне пришлось срочно ехать в магазин, чтобы вывести микроконтроллер из полного ступора.

Про это я уже читал в сети, так что скорее повеселился, что наступил на те же грабли, что и многие другие начинающие осваивать программирование микроконтроллеров. И даже вдохновившись успехом я приобрёл ещё несколько разных микроконтроллеров ATmega для последующего освоения. Так например в Arduino лично мне очень не хватало портов ввода-вывода - полный 8-битный порт у ATmega328p всего один, а мне хотелось чтобы хотя бы Covox к нему можно было подключить, вспомнить времена программы ScreamTracker и SoundBlaster-ов.

И после этого я уже стал делать свою первую плату на нескольких микроконтроллерах - прототип 8-битного синтезатора, чтобы посмотреть, что из этого получится и насладиться 8-битным FM-синтезом с PWM-звуком. Сделав этот прототип и поигравшись с ним, я сделал для себя три вывода:

  1. Микроконтроллеры мне больше подойдут 32-битные.

  2. Встроенные в микроконтроллеры устройства обычно дают результат не очень высокого качества для задач, которые выходят за рамки вариантов использования самого микроконтроллера. Например, если мне нужен 16-битный аудио-ЦАП, то это уже нетиповая задача, и следовательно лучше для этого подключить к микроконтроллеру специализированный чип, если мне нужен качественный результат, а не низкая стоимость устройства.

  3. Микроконтроллер с интерфейсом I2S найти сложнее и стоит он дорого (примечание: сейчас уже выпущен STM32F4), не всегда для него можно найти даташит и средства разработки. Таким образом перспективным решением для себя я счёл попробовать подключить аудио-кодек к FPGA и посмотреть, что из этого получится, насколько это всё просто или сложно.

Вот так я с FPGA и познакомился, купив недорогую плату для прототипирования от LDM-Systems.

За обновлениями на сайте можно следить в моём блоге и в социальных сетях: