Бюджетная IskraJS или "Зачем платить 5 раз за stm32f103"

Давно не брал я в руки шашек, но сейчас расскажу вам что-то интересное.

Этим "что-то" будет сказ про наших российских "производителей" и их цены прям заоблачных высот и про простых китайцев с приличным ценником. Поехали.


Достаточно давно у меня был пост про ESP8266 с интерпретатором JS. Я описал плату, показал как шить и вроде наигрался и успокоился, как вдруг на просторах великого и могучего "китайэкспресса" мне попалась на глаза платка на STM32F103RCT6 и STM32F103RET6.

Вот такого плана. И да, она реально такая маленькая.

Бюджетная IskraJS или "Зачем платить 5 раз за stm32f103" Espruino, Arduino, Iskrajs, Stm32, Javascript, Длиннопост

И тут я вспомнил что не так давно видел пост про IskraJS и припомнил ее тех. характеристики и характеристики оригинальной платы от Espruino. И знаете что? А то что плата от китайцев минимум в 4 раза дешевле "российской" и в 6 раз дешевле оригинальной. При идентичных параметрах с оригинальной, китайская плата даже еще меньше чем оригинальная Espruino Board. Контроллер у искры правда следующего поколения но это не повод накидывать 4 цены за плату.


В чем же подвох? Да нет его. За исключением отсутствующего встроенного прожигателя. Но с этим без проблем справился конвертер на PL2303 стоимостью 40 рублей. Но вместо него китайцы поставили часы реального времени и слот для "таблетки" :)


Что имеем в итоге? При равных возможностях и разном формфакторе переплачивать от 4 до 6 раз за схожую начинку глупо.

У китайцев плата с 512кб памяти стоит ровно столько же сколько и 256 и 128 и даже 64 кб памяти. Думаю, выбор очевиден.

Да и еще один немаловажный момент! Эта чудо-машинка стоит ровно столько же сколько Arduino MEGA. Количество пинов у этой платы на 1 меньше а в остальном она переплевывает ардуину на раз.


Перейдем к неинтересной части а точней к характеристикам :)

Контроллер 72мгц ARM 32 Cortex-M3

Память 64-512кб

Оперативка 8-64кб

51 портов ввода-вывода (почти как на Ардуине 2560) из которых 28 ШИМ, 16 АЦП, 3 USART, 2 SPI, 2 I2C, 2 ЦАП и 1 CAN шина

Если кому интересно более подробно ознакомится то вот ссылочки :)

https://www.espruino.com/EspruinoBoard/#pinout - тут почти все пины и описание.

http://s.click.aliexpress.com/e/JmQfyJu - ссылка на саму платку если кому интересно.


А теперь к еще более неинтересной теме.

Прошивка этой платы.

Честно говоря относительно прошивки esp8266 прошивка этой платы показалась мне простой как 5 копеек. Все очень подробно описано на странице самой прошивки https://www.espruino.com/Download т.ч. думаю проблем у вас не возникнет :) Ну а если возникнет то милости прошу в пост :)


На этом я закругляюсь :) Всем хорошего вечера, быстрых компиляций и доставок бед промедлений :)


Надеюсь хоть кому-то этот пост будет полезен :)

Arduino & Pi

1.4K постов20.6K подписчика

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Доброго времени суток. что-то не получается никак прошить. говорит btn1 зажать, но ее же на плате нет?

и переключатели boot1 / boot2  в каком положении должны находится?

раскрыть ветку (19)
Автор поста оценил этот комментарий
Btn1 там нет ибо плата левая. Просто переключите boot1 в 0 до прошивки и включения платы. После прошивки верните обратно. Плата шьется одним файлом т.ч. передергиват плату не нужно.
раскрыть ветку (18)
Автор поста оценил этот комментарий

пробовал boot обе во всех позициях

пробовал подключать и через pl2303 и через ch340

результат такой как на картинке



можно попросить Вас о более подробной инструкции?

Иллюстрация к комментарию
раскрыть ветку (17)
Автор поста оценил этот комментарий

и какая скорость должна быть выставлена по порту? 9600 или 115200?

раскрыть ветку (16)
Автор поста оценил этот комментарий

Ненене... Шить только через консоль и переходник USB/UART. На плате нет бутлоадера же.

Скачиваете из раздела download последнюю версию прошивки, сохраняете на рабочий стол и дальше все как в этом разделе документации http://www.espruino.com/Serial+Bootloader

раскрыть ветку (15)
Автор поста оценил этот комментарий

через консоль:

установил к питону 2.7 еще pyserial 2.7

после команды результат такой:


python stm32loader.py -p /dev/ttyUSB0 - ~/flash/espruino_1v92.bin


Traceback (most recent call last):

File "stm32loader.py", line 554, in <module>

bootversion = cmd.cmdGet()

File "stm32loader.py", line 140, in cmdGet

if self.cmdGeneric(0x00):

File "stm32loader.py", line 137, in cmdGeneric

return self._wait_for_ack(hex(cmd))

File "stm32loader.py", line 88, in _wait_for_ack

raise CmdException("No response to %s" % info)

__main__.CmdException: No response to 0x0

раскрыть ветку (14)
Автор поста оценил этот комментарий

Сейчас перезагружусь на убунту у меня там в истории есть точная команда через pyserial, вроде. С ходу я не напишу точно :(

раскрыть ветку (13)
Автор поста оценил этот комментарий

поставил под 10-кой, те же яйки получил

может что с либой этой?

Автор поста оценил этот комментарий

не нашли команду?

раскрыть ветку (11)
Автор поста оценил этот комментарий
python stm32loader.py -p /dev/ttyACM0 -evw ../build/espruino/v92.bin

С этой командой точно шьется. Раньше в доке было указание на использование -evw при прошивке, сейчас что-то не нашёл.
раскрыть ветку (10)
Автор поста оценил этот комментарий

что-то никак не идет


попробовал уже и на 2.7 версии питона и на 3.3

и под ubuntu и под windows 10

это под 10-ой

Reading data from espruino_1v92_stm32f4discovery.bin

Traceback (most recent call last):


File "stm32loader.py", line 543, in <module>


data = read(args[0])


File "stm32loader.py", line 437, in read


if bytes.startswith('\x7FELF'):


TypeError: startswith first arg must be bytes or a tuple of bytes, not str


а это под убунтой:


python stm32loader.py -k -p /dev/ttyUSB0 -evw ~/flash/espruino_1v92.bin

Reading data from /home/joshua/flash/espruino_1v92.bin

Traceback (most recent call last):

File "stm32loader.py", line 554, in <module>

bootversion = cmd.cmdGet()

File "stm32loader.py", line 140, in cmdGet

if self.cmdGeneric(0x00):

File "stm32loader.py", line 137, in cmdGeneric

return self._wait_for_ack(hex(cmd))

File "stm32loader.py", line 88, in _wait_for_ack

raise CmdException("No response to %s" % info)

__main__.CmdException: No response to 0x0


а с помощью st-link v2 как-то плату можно прошить? подсунуть ей этот бинарник?

раскрыть ветку (9)
Автор поста оценил этот комментарий

espruino_1v92_stm32f4discovery.bin почему этот бинарник то? Он же под другой камень. Нужен espruino_1v92_espruino_1r3.bin. С помощью стлинка думаю прошить можно но я не пробовал.


Итак. Только что перешил плату с переходником.

В качестве бинарника взят espruino_1v92_espruino_1r3.bin. BOOT0 = 1 BOOT1 = 0.

Команда $ python stm32loader.py -p /dev/ttyUSB0 -evw ../build/espruino_1v92_espruino_1r3.bin


Python 2.7.12


Файл stm32Loader.py на пейстбине https://pastebin.com/YGhjz5DR


Во время прошивки консоль будет выдавать примерно следующее


Reading data from ../build/espruino_1v92_espruino_1r3.bin

Bootloader version 0x22

Chip id 0x414, STM32F1, performance, high-density

Writing 221868 bytes to start address 0x8000000

Write 256 bytes at 0x8000000

...

Write 256 bytes at 0x8036200

Read 256 bytes at 0x8000000

...

Read 256 bytes at 0x8036200

Verification OK

раскрыть ветку (8)
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку