Распиновка
По началу, когда я только-только начал осваивать эти бестии, я ничего толком не понял — где какая нога у них. Таблица назначения выводов Table 2.1 на странице 11 , приведённая в описании по CH32V0003, не столько проясняет ситуацию, сколько ещё больше запутывает. По началу, когда не понимаешь, что они там вообще хотели сказать, это какой-то трэш! В самом конце этой статьи я раскрыл "секрет" производителя.
К стати, для тех, кто , как и я , пользуется давно этим описанием, — второй половине мая вышла подновлённая версия https://www.wch-ic.com/downloads/CH32V003DS0_PDF.html. Она, к слову сказать, табличку не изменила — как были вопросы, так они там и остались.
В общем, проблема неясности в распиновке существует давно. У меня чуть ли не сразу возникло желание разрисовать распиновку и выложить в общий доступ. Но как это обычно бывает, с одной стороны не было полной уверенности, а с другой — матушка-лень. Я даже умудрился в поисках правды одну из микросхем «захлопнуть» (об этом я писал где-то ранее). А вот то, что выводы можно подписать частично (а не полностью расписать все функции, которые может обеспечит та или иная ножка), я как-то не допёр. Это сделал некий товарищ mockthebear из далёкой Бразилии (Sao Paulo), за что, собственно, ему большое Российское СПАСИБО за подсказку! (Какой же я тормоз!)
На рисунках ниже приведена цоколёвка микроконтроллеров в корпусах TSSOP20 и TSOP8 (SOP8). К сожалению, товарищ mockthebear эпически ошибся при указании выводов питания и общего провода у корпуса TSSOP20, и мне не удалось с ним связаться, чтобы указать ему на его промах. Я взял за основу его рисунки, героически (а то как же ещё!) исправил его ошибку и немного добавил своих описания функций на ножках. В общем, на рисунках ошибок нет. Если что, то пинайте меня.
Программатор WCH-LinkE следует подключать к выводу 18 (порт PD1) у микросхемы в корпусе TSSOP20. А у микросхемы в корпусе SOP8 для этого дела выделена нога 8 (порт PD4). Вывод на программаторе обозначен как SWDIO/TMS. Ну, питание и землю — само собой, разберётесь сами.
В своё время, когда я только начинал осваивать CH32V003, мне сильно не хватало понимания чего куда подключать. В поисках правильного решения я перебирал разные варианты и фиксировал их (как временное решение) на листочке. Потом всё как-то устаканилось. А вот листочек у меня так и сохранился в виде черновика. Для меня он своё назначение давно уже отработал. Публикую его содержимое только с целью, что, возможно, кому-то это может и пригодится.
Теперь пару слов по таблицам, приведённым в описании на микросхемы. Начну с того, что кремниевый чип один и тот же для всех корпусов! Никто не будет делать разные чипы под разные корпуса, потому как это крайне дорого. Поскольку чип одинаковый для всех корпусов, а ног у корпусов -- разное количество, то нужно из ситуации как-то выходить.
Самое простое решение -- не разваривать (не соединять тонкими золотыми проволочками) выводы чипа и ножки корпуса. Но есть и другая практика!
Поскольку незапрограммированные ноги (выводы портов) как правило после сброса находятся в 3-ем состоянии, то никто не мешает, допустим, два вывода на чипе разварить на одну ножку корпуса. Например, у корпуса SOP8 ножек совсем минимум, а богатый функционал периферийных устройств не хотелось бы потерять. Поэтому на ножку 1 предприимчивые китайцы приварили сразу два вывода порта -- PD6 и PA1. А вот на ножку 8 Приварено сразу аж три порта -- PD1, PD4 и PD5.
Поскольку порты ввода-вывода (GPIO) мультиплексируются с выводами периферийных устройств, то получается, что на "совмещённых" выводах корпуса также можно организовать ту или иную функцию периферийного устройства. Иначе говоря, богатая внутренняя периферия сохраняется. Не вся, но большая часть -- да.
Другой вопрос -- опасное ли это дело?
Ну как сказать... Объединённые ножки -- это всего лишь способ, инструмент. Такой же инструмент, как острый скальпель. Опасен ли скальпель? Это зависит в чьих руках он окажется. Если в руках ребёнка, то -- да, опасен. Если в руках хирурга, то -- нет.
Таким образом, если вы не будете конфигурировать порты или выводы периферийных устройств, которые разварены на одну и ту же ногу, оба на выход, то ничего страшного не произойдёт.
И даже наоборот! Если вы понимаете, как это работает, то вы можете один порт или периферийное устройство сконфигурировать на выход, а другое -- на вход. Я, правда, не очень понимаю, где такое решение может использоваться (или пригодится), но теоретически такое решение возможно, поскольку ничего не "сломает" в микроконтроллере.
2 Comments
Recommended Comments
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.