Работа с пинами

В нашем распоряжении имеется две платы: tang primer 25k и tang mega 138 pro, они отличаются и по характеристикам, и по количеству и расположению пинов. Хотя часть информации указана на самой плате, там подписано не всё, так что приходится обращаться к документации, и искать информацию там.

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

Разберём на примере распознавателя чисел на tang mega138 pro. Нам необходимо работать с кнопками и светодиодами, поэтому в документации ищем соответствующие схемы: button и led. Рассмотрим кнопки.

mega138 buttons

Здесь можно увидеть схемы с пояснениями соответствующих компонентов. Многое из этого нам неинтересно, но номера пинов вместе с названиями кнопок прописаны: S0 — K16, S1 — F15, S2 — G15, S3 — G16. И это ровно те пины, которые мы используем в файле описания сигналов

src/10-fpga/mega138_pin_constraints.cst
IO_LOC "rst_btn_i" G16;
IO_PORT "rst_btn_i" PULL_MODE=NONE BANK_VCCIO=3.3;
IO_LOC "btn_1_i" F15;
IO_PORT "btn_1_i" PULL_MODE=NONE BANK_VCCIO=3.3;
IO_LOC "btn_0_i" K16;
IO_PORT "btn_0_i" PULL_MODE=NONE BANK_VCCIO=3.3;

Наиболее же наглядна связь между документацией и реальным положением дел видна на примере коннекторов к primer25k.

primer25k connectors scheme photo

Здесь никаких более удобных названий нет, и придётся работать именно с номерами пинов.

Это можно использовать, чтобы проверить, насколько совпадает ваше понимание документации с тем, что она описывает: формат описания может меняться, но множество ожидаемых номеров может помочь.

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

primer25k led