Перепрошивка Iskra js

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Р0МAH, 4 июн 2016.

  1. Р0МAH

    Р0МAH Нуб

    Привет форумчанам. Собственно я пока даже не начиающий робототехник, а просто интересующийся. Хочу начать изучение и подбираю плату для начала. Определился пока в том, что плата должна быть -Arduino совместимой, но с более современным процессором. Остановился пока на iskra js, все устраивает, и особенно описание на русском языке. Но есть один нюанс, не хотелось бы уходить от Си, т.к. все таки для микроэлектроники де-факто Си используется чаще, да и просто не люблю java script. Читал на этом форуме что в принципе перепрошить искру возможно, но так как я пока еще дуб в микроконтроллерах, не до конца понимаю как это сделать. Не могли бы вы поподробнее по шагам описать как это сделать, и возможно ли вообще это. В идеале хотелось бы получить более легкую адаптацию для платы скетчей arduino и использование популярных бесплатных IDE
     
    Последнее редактирование: 4 июн 2016
  2. ZAZ-965

    ZAZ-965 Гуру

    STM32F405RG перепрошивать не надо (bootloader встроенный).
    В плагине к Arduino от STM32duino.com есть поддержка STM32F4 board (будет ли работать на iskra js без бубна - не знаю). Библиотеки к STM32 свои, просто так взять и скомпилировать скетч от Uno\Mega2650 не получится.
     
  3. Р0МAH

    Р0МAH Нуб

    Я понимаю, что просто копипастом не обойтись, но хотябы с переделками. Вы считаете что все же лучше начать с avr? Просто не хотелось бы, купив эту плату, потом обнаружить что под нее нет какой либо библиотеки, и то что минимальными усилиями реализуется на ардуинке здесь потребует огромных усилий.
     
  4. ИгорьК

    ИгорьК Гуру

    Если Вы держитесь за С++ не рассматривайте эту плату. Ищите подходящую с названием Ардуино и на ее сайте.
     
  5. ZAZ-965

    ZAZ-965 Гуру

    Р0МAH, STM32F4 заметно сложнее знакомых мне PIC16 или Atmega. Другая архитектура, больше конфигурационных регистров, отличающаяся терминология. Имею пару LeafLabs Maple на STM32F1, простые скетчи (HD44780, ds18b20) работают, на хочется большего (RTOS, TCP и т.д и чтоб понятно, быстро, компактно и без ошибок). Поэтому я пока скирдую информацию, смотрю чужие проекты под IAR.
    Итого. Готовы разбираться с низкоуровневым программированием, вперед, микроконтроллер интересный. Но по-моему 99% любительских задач укладываются в Atmega328\ATmega32U4.
     
    Konkery нравится это.
  6. ИгорьК

    ИгорьК Гуру

    Это так.
    Для этой цели надо брать не эту плату. Производитель не осуществляет поддержки программирования на Си. Ковырять самому? Проще купить что-то другое, заявленное именно для требуемого языка.
     
    Konkery нравится это.
  7. Р0МAH

    Р0МAH Нуб

    Да задачь то собственно нет, хотелось просто изучить/поиграться (начать изучение мк именно с 32 битных)
    Я понмаю, просто я думал что поддержка java script выполнена именно в IDE, а в саму плату заливается уже скомпилированная сборка, а значит и переход на другой язык не сложен. Жаль что это не так, т.к. плата мне понравилась и взял бы с удовольствием
     
  8. ZAZ-965

    ZAZ-965 Гуру

    Плату iskra js использовать как удобную макетку (принципиальная и монтажная схемы есть), а писать на Си в среде IAR или CooCox.
     
  9. Р0МAH

    Р0МAH Нуб

    Вот-вот, то что нужно. Насколько это сложно реализовать, что для этого нужно сделать?
     
  10. ИгорьК

    ИгорьК Гуру

    Купить другую плату, для которой существует в Интернете туча руководств.
    В противном случае уважаемый ZAZ-965 будет единственным Вашим консультантом.

    Эту. Или эту.
     
    Konkery и ZAZ-965 нравится это.
  11. ZAZ-965

    ZAZ-965 Гуру

    Приобрести программатор StLink v2 (у меня дешевая китайская копия ~3$ + возможность отладки + SWD-разъём есть на всех платах). Выбрать плату\микроконтроллер (STM32F4 интересней моей STM32F1). Выбрать IDE. Собрать тестовый проект + залить его в микроконтроллер.
     
    ИгорьК нравится это.
  12. ИгорьК

    ИгорьК Гуру

    Действительно, это несложно... :)
     
  13. r1000ru

    r1000ru JS-технократ

    Тут Iskra JS вам полностью подойдет. Однозначно мощнее и функциональнее, при этом сохраняется возможность использования шилдов.

    Вы можете сколько угодно раз перепрошить Iskra JS на свою нативную прошивку на C/C++ и столько же раз вернуть прошивку Iskra JS. Для этого на ней используется стандартный для STM32 SWD разъем (6 пинов в ряд, посередине платы, рядом с микроконтроллером). Соответственно вам нужен будет SWD программатор. Такие среды, как CooCox, Keil, IAR используют именно его для прошивки и отладки. Так же для загрузки прошивки можно использовать DFU режим микроконтроллера. Для этого необходимо одеть перемычку на два пина рядом с SWD разъемом и подключить Iskra JS к USB. Она определиться как устройство в режиме DFU (соответственно драйверов не требует). Для прошивки, бинарник необходимо преобразовать в формат DFU (этот файл имеет описание, какие сектора перезаписываются, а какие остаются не тронутыми, а какие - стираются). Все этом можно сделать с помощью утилит с сайта ST Microelectronics. Последний режим для программирования использовать крайне не удобно, ибо уходит много времени на преобразование файлов, а отладка не возможна.

    Это не только не возможно, но и не рационально с точки зрения использования производительности. Дело в том, что если математические и логические операции будут работать значительно быстрее из-за разрядности, частоты и поддержки аппаратного деления, то операции обмена информацией с периферией, реализованные как на Arduino, сведут всю скорость к скорости обмена операций. Для того, чтобы этого не происходило, необходимо активно использовать таймеры, DMA каналы и прерывания. К сожалению работу с ними нельзя описать такими простыми методами, которые используются при программировании Arduino.

    Как резюме, рекомендую вам в качестве программатора и для первоначального обучения использовать одну из плат STM32xDiscovery. Причем лучше начинать с STM32F072Discovery. Там установлен чип с достаточно простой, но весьма функциональной периферией. Почитайте reference manual о чипе там и на Iskra JS.
    Установите STM CubeMX (это приложение, которое генерирует для различных MCU файлы инициализации периферии и тактирования и может делать это для разных сред) и по экспериментируйте. Да, все платы Discovery имеют на борту SWD программатор, который можно использовать не только для программирования чипа на борту Discovery, но и внешних плат, т.е. и IskraJS в том числе.
     
    Последнее редактирование: 6 июн 2016
    Konkery нравится это.
  14. ИгорьК

    ИгорьК Гуру

    Замыкание еще то... :)
     
  15. Р0МAH

    Р0МAH Нуб

    Т.е. через Iskra IDE и USB программируем на javascript а через Си-шную IDE и программатор на Си?

    Так зачем же покупать игрушку если ее не разбирать ;) Сказку про дедушку Ленина помните?:)
     
  16. ИгорьК

    ИгорьК Гуру

    Фигасе... :)

    Роман! Все таки Вы пытаетесь объять необъятное и, видимо, не очень представляете себе картину в целом.
    Если у Вас задача состоит в том, чтобы чем-нибудь заняться - плату следует приобретать по внешнему виду: какая больше понравилась - ту и покупайте.

    Если Вы хотите программировать на Си - берите те, что поддерживают это дело изначально.
    У Вас проблема с английским? Полагаю, за 32 битные платы Вам вообще браться сначала не следует. По ним совсем немного инструкций на русском.
    Возьмите обычную Уно и исследуйте ее вдоль и поперек. Изучите, вникнете, поймете как работать с регистрами, "исчерпаете" все возможности и набьете руку - возьметесь за 32.
    Или не возьметесь.
    Про себя могу сказать, что мне Искра JS нравится как раз именно JavaScript , а не своей мощностью. В домашней (вы же хобби будете заниматься?) практике возможностей/мощности обычной Ардуино - за глаза.

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

    Искра JS - хорошо, но Искра JS pro mini - гораздо лучше. К тому времени и она появится.
     
    Alex19 нравится это.
  17. Р0МAH

    Р0МAH Нуб

    Спасибо. Довольно подробно все объяснили. Погуглил по ключневым фразам вашего поста - большинство вопросов отпало. но появились и новые. Самый главный - как вернуть обратно поддержку javascript после всех экспериментов?
    Что касается выбора платы: на сколько я понял, главная загвоздка swd программатор, покупать его отдельно не оптимально, дешевле взять отладочную плату с программатором, например из STM32xDiscovery или STM32 Nucleo - у последней даже удобнее, т.к. можно его отпилить и использовать потом отдельно с той же Iskra js. Все верно?
     
  18. r1000ru

    r1000ru JS-технократ

    Бинарники прошивки Iskra JS выложены в открытом доступе: https://github.com/amperka/espruino-modcat/tree/master/binaries. Просто скачиваете последнюю версию и заливаете через SWD или DFU.

    Верно.
     
  19. Р0МAH

    Р0МAH Нуб

    Спасибо за консультацию, побежал в магазин :)
     
  20. ИгорьК

    ИгорьК Гуру

    Поздравляю!
    С надеждой на Ваши предстоящие рассказы об опыте программирования Iskra JS на Си!
    Не бросайте нас, тема безумно важная и необходимая.