LINUX.ORG.RU

Raspberry Pi Pico

 , ,

Raspberry Pi Pico

2

4

Команда Raspberry Pi выпустила плату на кристалле RP2040 с 40-нм архитектурой: Raspberry Pi Pico.

Спецификация RP2040:

  • Двухядерный Arm Cortex-M0+ @ 133МГц
  • 264Кб RAM
  • Поддержка до 16МбFlash памяти через выделенную шину QSPI
  • DMA контроллер
  • 30 GPIO пинов, 4 из которых могут быть использованы как аналоговые входы
  • 2 UART, 2 SPI и 2 I2C контроллера
  • 16 ШИМ каналов
  • USB 1.1 контроллер с поддержкой host-режима
  • 8 Raspberry Pi I/O (PIO) программируемых конечных автоматов
  • Режим USB mass-storage boot с поддержкой прошивки через UF2

Raspberry Pi Pico разработана как оригинальная, недорогая (цена всего 4$) плата для RP2040. Она содержит RP2040 с 2 Мб флэш-памяти и микросхемой блока питания, поддерживающего входное напряжение от 1,8 до 5,5 В. Это позволяет питать Pico от различных источников, включая две или три AA батареи последовательно или от одного литий-ионного аккумулятора.

На базе чипа RP2040 так же скоро будут доступны платы от сторонних производителей:

Adafruit ItsyBitsy RP2040

Adafruit Feather RP2040

SparkFun Thing Plus - RP2040

Документация

>>> Подробности

★★★★☆

Проверено: Shaman007 ()
Последнее исправление: atsym (всего исправлений: 5)
Ответ на: комментарий от AnDoR

Не забудь упомянуть, что китайский сканер стоит сто евро, а родной все 400.

Любой J2534 сканает. У меня коётовские Mongoose VCI и Xhorse видятся.

mv ★★★★★
()
Ответ на: комментарий от AnDoR

Ответ сразу двоим уважаемым коллегам.

Не забудь упомянуть, что китайский сканер стоит сто евро, а родной все 400.

И

Любой J2534 сканает. У меня коётовские Mongoose VCI и Xhorse видятся.

Я только в начале пользовался «полноформатным сканнером», выделенным клубом, точнее, нашим клубным сервисом. Пока не понял что лучше бы мне спаять на базе ELM327 свой провод и распаять его на плату моего CarPC.

Так-то рекомендую мастридные в данном случае вещи типа The car hacker’s handbook (http://opengarages.org/handbook/) и более наглядный чисто для примера https://www.freecodecamp.org/news/hacking-cars-a-guide-tutorial-on-how-to-hack-a-car-5eafcfbbb7ec/

Bluetooth варианты, которые есть на рынке, мне не понравились, т.к. не дело в эфир нутро машины выставлять, пусть оно и довольно скромное по своему наполнению, чем у большинства современных машин. Спаял в общем, прокинул аккуратно кабель под торпедой, встал на разъём. А дальше пришлось немного пофаззить, т.к. было не совсем понятно что у меня за контроллер и как с ним общаться. В моём случае их два типа, там режим работы различается. Система запросов и откликов практически не различается.

И да, в моём случае «сканнер» это так… больно громкое название. Я оттуда запрашиваю весьма небольшое число данных, если честно. Чтоб соблазна не было нарукоблудить лишнего.

Так что, в моём случае это было цена микрухи, обвеса и примерно неделька неспешного фаззинга. А дальше уже какая-то добрая душа мануал подогнала, как раз на мою тачку и с кодами. Всё было проще. Просто проверял запрос-отклик-реакцию бортового контроллера.

Книгу рекомендую к прочтению, там всё очень хорошо расписано, чисто для вкуривания темы «с нуля», как это было в моём случае. Ну а конкретику под конкретную машину, это понятно что надо софт точить уже по месту. Хотя, через ELM там всё просто. По сути, ELM это ODB-II-RS232 интерфейс. Т.е., в ядре включаем поддержку FT232R и погнали запросы через UART кидать на контроллер/читать оттуда ответы. Так намного проще, чем через CAN-шину напрямую общаться с контроллером. Я этот вариант именно из-за простоты и выбрал. Открываем какой-то /dev/ttyUSB*, а дальше можно даже посредством AT-команд попробовать поработать. Ничего сложного.

Сложности будут – выставить нужный режим работы ELM, чтобы именно под эту версию ODB-II пошло (последние ELM позволяют сконфигурировать программно эту часть, раньше нужно было разные варианты иметь в виде «жгутов», насколько я знаю) и подобрать команды запросов, распарсить коды ответов (я не стал мудровать и заюзал regular expressions in glibc, благо и так гента на борту используется), интерпретировать их и закинуть в экранные формы, тот же аккумулятор нарисовать на экране и показать какое там напряжение, например. Собственно, чисто примера ради, если кому понадобится – https://codeseekah.com/2012/02/22/elm327-to-rs232-in-linux/

Ну вот, как-то вот так, в общем.

P.S. Вспомнил. Вдруг, кому интересно будет – http://freediag.sourceforge.net/ Тут реально рабочий линуксовый проект. Авось кому сгодится. Я сюда подглядывал когда свою версию писал.

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 2)
Ответ на: Ответ сразу двоим уважаемым коллегам. от Moisha_Liberman

Я только в начале пользовался «полноформатным сканнером», выделенным клубом, точнее, нашим клубным сервисом. Пока не понял что лучше бы мне спаять на базе ELM327 свой провод и распаять его на плату моего CarPC.

Полноформатный - это обычный «raw», просто трансивер с CAN-контроллером. Типа любой ардуиновский шилд на MCP2515. Или, если есть встроенный в чип CAN-контроллер, то трансивер, типа SN65HVD230. Далее на подходящей библиотеке строится свой код, который может программировать любой аспект передачи сообщений, а не только то, что ELM умеет.

Моя «приблуда» так и работает, прикидываясь официальным вольвовским сканером и, в принципе, дотягиваясь до всего, до чего может дотянуться официальный дилерский софт.

Если есть возможность выбрать микроконтроллер для carpc, то лучше тот, в котором CAN-контроллер уже встроен и висит в адресном пространстве проца, ибо через SPI с внешним контроллером медленновато может быть. 240 МГц ESP32 с двумя MCP2515 уже за старой вольвой уже не поспевает, например. А там всего 125 и 500 кбит/c шины. В то же время, 84 МГц Arduino Duo на ARM’е со встроенными контроллерами работает просто шикарно. 600 МГц Teensy 4.0, тоже на ARM’е, тоже отлично работает. И даже RPC-подобное общение, без фонового траффика, проходит быстрее процентов на 15, чем если использовать тот же Teensy, но MCP2515 через SPI.

mv ★★★★★
()
Ответ на: комментарий от mv

Да, это я уже понял. =)

Моя «приблуда» так и работает, прикидываясь официальным вольвовским сканером и, в принципе, дотягиваясь до всего, до чего может дотянуться официальный дилерский софт.

Поэтому сразу и заценил, сказав что крутая разработка. И не отказываюсь от своей оценки ни в какой мере. =) Я пошёл по более простому пути. Не люблю я усложнений типа «программирования CAN-шины», т.к. имею некоторое представление об этом процессе. Мне «всё» ненужно, мне нужно сравнительно немного, поэтому я и зарядился сразу на ELM.

Полноформатный - это обычный «raw», просто трансивер с CAN-контроллером. Типа любой ардуиновский шилд на MCP2515. Или, если есть встроенный в чип CAN-контроллер, то трансивер, типа SN65HVD230. Далее на подходящей библиотеке строится свой код, который может программировать любой аспект передачи сообщений, а не только то, что ELM умеет.

Для меня «полноформатным», который я использовал на первом этапе, был сканнер от клубных ремонтников. Я просто посмотрел что он вообще может, т.к. у меня есть доступ в клубную ремзону и меня оттуда не выгоняют (обычно – пригнал своё корыто, передал в ремонт и иди погуляй где-нибудь). =) Поэтому просто смотрел что сканнер вообще делает, что показывает. Прикидывал перспективы, т.к. программирование CAN для меня это не то чтобы тёмный лес, но довольно сложно. Там состояния надо отлавливать очень чётко, ЕМНИП. А я на старте не особо хотел морочиться, это уже потом, аппетит пришёл во время еды, что называется. =)

Если есть возможность выбрать микроконтроллер для carpc, то лучше тот, в котором CAN-контроллер уже встроен и висит в адресном пространстве проца, ибо через SPI с внешним контроллером медленновато может быть. 240 МГц ESP32 с двумя MCP2515 уже за старой вольвой уже не поспевает, например. А там всего 125 и 500 кбит/c шины. В то же время, 84 МГц Arduino Duo на ARM’е со встроенными контроллерами работает просто шикарно. 600 МГц Teensy 4.0, тоже на ARM’е, тоже отлично работает. И даже RPC-подобное общение, без фонового траффика, проходит быстрее процентов на 15, чем если использовать тот же Teensy, но MCP2515 через SPI.

Скажем так, если заряжусь делать нормальный сканнер, позволяющий дотянуться до всех компонент автомобиля, то я таким путём и пойду. Ну так, чтобы можно было бы фирмварь, например, поменять или ошибки засупрессить качественно. Но, к сожалению, вряд ли сподоблюсь. =) Не моя поляна по большому счёту чтобы вот так глубоко лезть.

Moisha_Liberman ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.