Просьба к представителям Амперки дополнить Вики информацией по предопределенным именам пинов, точнее где ее смотреть. Дело в том, что в Вики вы пишете "pin", но не ясно что именно в качестве этого параметра вводить. Примеры ссылок на страницы Вики: http://wiki.amperka.ru/js:builtins http://wiki.amperka.ru/js:pin http://wiki.amperka.ru/js:serial Мне удалось найти информацию по именам пинов только на рисунке распиновки Iskra JS тут http://wiki.amperka.ru/js:iskra_js Так же помогла надпись "GPIO-пин на Iskra JS. Под этим именем вы можете обратиться к пину из программы". Лично мне эта информация потребовалась, когда решил разобраться в коде, который вы использовали в проекте "Умный лабиринт для крыс на Iskra JS". И вроде все было хорошо пока я не дошел до строки Код (Javascript): SPI2.setup({baud: 3200000, mosi: B15, miso: B14, sck: B13}); Как оказалось можно в коде использовать не только имена пинов с платы Iskra JS, но и имена пинов на микроконтроллере. Может кому-то это все покажется само собой разумеющимся, но, мне думается, такие базовые вещи должны быть описаны И да, раньше с программированием никаких МК не сталкивался, и "имя нам - легион"
И небольшой вопрос на засыпку. Откуда узнать какую скорость соединения указывать при работе с SPI-интерфейсом?
Про пины вы хорошо заметили. Подумаем над самым элегантным и очевидным способом объяснить их. Спасибо! Скорость нужно указывать ту, на которую рассчитана та периферия, с которой вы хотите работать. Если не укажете явно, скорость будет принята за 100000 бод. Это разумное умолчание для большей части железок.
Прошу помочь разобраться в этой тонкости, точнее подсказать куда смотреть на конкретном примере. Ниже кусок кода из проекта, в котором указывается скорость соединения Iskra JS с платой расширения Ethernet Shield 2: Код (Javascript): // Настраиваем соединение с Ethernet Shield 2 SPI2.setup({baud: 3200000, mosi: B15, miso: B14, sck: B13}); var eth = require('WIZnet').connect(SPI2, P10); Т.е. была назначена скорость в 3'200'000 бод. Решил самостоятельно найти где в спецификации можно найти эту информацию. Источники, к которым обращался: 1. Сайт Амперки - http://amperka.ru/product/arduino-ethernet-shield 2. Сайт Arduino SRL - http://www.arduino.org/products/boards/4-arduino-boards/arduino-ethernet Т.к. на сайте Амперки для платы было указано "Ethernet-чип: Wiznet W5500", то посетил сайт производителя чипа. 3. Сайт WIZnet - http://www.wiznet.co.kr/product-item/w5500/ Старался пройти по всем ссылкам с этих страниц, но все безрезультатно. Максимум нашел только упоминание о том, что чип W5500 поддерживает скорость через SPI до 80МГц. Яндекс мне "объяснил", что прямой связи между МГц и бод нет. Что я упустил? Куда податься?
Связь есть В конкретном контексте. Смотрите, SPI — синхронный интерфейс, т.е. бит от одного устройства «перетекает» в другое по линии MOSI или MISO в тот момент, когда дёргается линия SCK. Частота — это как часто что-то происходит. Боды — это скорость передачи данных в битах в секунду. Таким образом, если мы говорим об SPI, частота SCK (параметр baud) определяет скорость передачи по интерфейсу. Ваше право, если вы Master (а если вы — это Iskra JS, вы — Master) определить любой baud в пределах поддерживаемого микроконтроллером. Slave, такой как W5500 под вас подстроится. Но если baud будет слишком велик, slave физически не будет успевать реагировать. Поэтому в вашем примере предельный baud — 80 000 000 = 80 МГц.