Raspberry Pi Pico

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Туцик пишет:

Хреново, что сам чип в qfn исполнении. Паять не очень удобно(

так он жеж распаян уже

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

b707 пишет:

andycat пишет:
b707 пишет:

[

Я планирую в pi sdk писать на нем + регистры, думаю там такого не будет.

А в чем писать и компилировать станете? Или у SDK есть своя ИДЕ?


Не знаю, пока не вникал.

b707
Offline
Зарегистрирован: 26.05.2017

Поставил альтернативный аддон, упомянутый в сообщении #47. С ним размер блинка - 42к код и 7к переменные. Разница с дефолтным аддоном в 8 раз
8-:)

Туцик
Туцик аватар
Offline
Зарегистрирован: 31.03.2020

ua6em пишет:

Туцик пишет:

Хреново, что сам чип в qfn исполнении. Паять не очень удобно(

так он жеж распаян уже

Если собирать готовое устройство, то предпочитаю голый мк, или что то типа esp. А так пихать плату в плату, в этом нету кошеры.

Туцик
Туцик аватар
Offline
Зарегистрирован: 31.03.2020

Кстати, а почему так blink выжирает столько оперативы у малины? Если мерять по атмеге. Это из за архитектуры мк?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Для начала неплохо бы выяснить, сколько отжирает пустой скетч. Может там разница с блинком - 8 байт.

b707
Offline
Зарегистрирован: 26.05.2017

andriano пишет:

Для начала неплохо бы выяснить, сколько отжирает пустой скетч. Может там разница с блинком - 8 байт.

Ага, почти угадали

Пустой код - 48340 байт, память - 7212 байт

Блинк - 48764 байт и 7244 байт

b707
Offline
Зарегистрирован: 26.05.2017

Туцик пишет:

Если собирать готовое устройство, то предпочитаю голый мк, или что то типа esp.

интересно. много вы собрали готовых устройств на чипах сложнее атмеги8?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

У меня приятель 6 лет делал девайсы в которых ардуино нано на разъёме, проблем в этом узле не было, проблемы с комплектующими распаянными на плате были. Нано брал без распаянных гребёнок, паял сам...
С точки зрения ремонтопригодности считаю что это более удачное решение, ИМХО
PS паяльные станции с нижним и верхним подогревом имеются

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

b707 пишет:

Ага, почти угадали

Пустой код - 48340 байт, память - 7212 байт

Блинк - 48764 байт и 7244 байт

Них ... себе

b707
Offline
Зарегистрирован: 26.05.2017

Komandir пишет:

b707 пишет:

Пустой код - 48340 байт, память - 7212 байт

Блинк - 48764 байт и 7244 байт

Них ... себе

ну, выглядит так, будто все Ардуино API грузится сразу..

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Да просто дофига железа настраивать.

Неужели никого еще не отбили желание удивляться цифры для esp8266? Там и в оперативке, и во флешь циферки покруче будут.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

ua6em пишет:

PS паяльные станции с нижним и верхним подогревом имеются

Можно поподробнее, что за зверь? Примеры таких станций со ссылками? Пожалуйста.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

Можно поподробнее, что за зверь? Примеры таких станций со ссылками? Пожалуйста.

ИК-650 ПРО брали у них, для пайки BGA в основном

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Спасибо

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

Спасибо


это крайний, на котором остановились, всё что было приобретено до этого - не устроило, профили у них есть на любые микросхемы, недостатки тоже есть, как же без них, опыт пайки есть только по BGA...(демонтаж-монтаж)
на днях пробегал пост где ТС мечтает сделать аналогичное на базе светодиодной матрицы...

b707
Offline
Зарегистрирован: 26.05.2017

Мечта всех попрошаек "помогите объединить два скетча" - два setup() и два loop() . Или свежий способ помигать двумя светодиодами с разными интервалами...

// code for core0

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  // put code for core0 here

digitalWrite(LED_BUILTIN, HIGH);
delay(1400);
digitalWrite(LED_BUILTIN, LOW);
delay(400);
}

// code for core1
void setup1() {
  pinMode(4, OUTPUT);
}

void loop1() {
  // put code for core1 here
digitalWrite(4, HIGH);
delay(300);
digitalWrite(4, LOW);
delay(500);
}

 

-NMi-
Offline
Зарегистрирован: 20.08.2018

Ачо, так можно было???

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

вот так бывает, продаван написал, что девайсы не было возможности доставить на почту и дескать отправляет заново )))
 

b707
Offline
Зарегистрирован: 26.05.2017

Вот поэтому я подумал и решил, что 300р стоят месячного ожидания...

Пока мне платки по 200р едут с Али, я купил одну на Авито за 500 и уже неделю как играюсь потихоньку :)

Я себя знаю, я через месяц могу и остыть :)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

Вот поэтому я подумал и решил, что 300р стоят месячного ожидания...

Пока мне платки по 200р едут с Али, я купил одну на Авито за 500 и уже неделю как играюсь потихоньку :)

Я себя знаю, я через месяц могу и остыть :)

я заказывал с 16 мегабайтами на борту, паять таких крох себе дороже, а 500 рублей больше этого точно не стоят

b707
Offline
Зарегистрирован: 26.05.2017

ua6em пишет:

я заказывал с 16 мегабайтами на борту

я тоже на Али заказал 16 Мб. А на "поиграться", изучить софт - хватит и самой дешевой 2 Мб. Ну тут каждый сам выбирает.

Я тут посидел два вечера, понадергал кусков из примеров - написал "чуду-юду" с генерацией пачек импульсов по таймеру через DMA и с выводом в PIO-машину :) Частота на выходе получилась 55 МГц, приходится понижать частоту PIO-ядра в 6 раз, чтобы хоть что-то рассмотреть в лог-анализаторе с его 20 MSPS.

В общем, пока впечатление, что зверек очень интересный, документация подробная, программировать легко, но железо бедноватое, например прерывание одно на все таймеры и только по UPDATE... Зато все искупает PIO-машина - чего нет в железе, можно написать на ней...

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

что за память на ней стоит? типа W25Q...?

b707
Offline
Зарегистрирован: 26.05.2017

xDriver пишет:

что за память на ней стоит? типа W25Q...?

Не знаю, глубоко не вникал.

Написано "External Flash via QSPI interface". Часть ее можно отводить под файловую систему. доступную по USB как флешдиск

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

А код перед исполнением куда то копируется ? Память то достаточно медленная ...

b707
Offline
Зарегистрирован: 26.05.2017

Komandir пишет:

А код перед исполнением куда то копируется ? Память то достаточно медленная ...

пишут что нет

External Flash is accessed via the QSPI interface using the execute-in-place (XIP) hardware. This allows an external flash memory to be addressed and accessed by the system as though it were internal memory. Bus reads to a 16MB memory window starting at 0x10000000 are translated into a serial flash transfer, and the result is returned to the master that initiated the read. This process is transparent to the master, so a processor can execute code from the external flash without first copying the code to internal memory, hence "execute in place.

Даташит, раздел 2.6.3

sadman41
Offline
Зарегистрирован: 19.10.2016

В ESP тоже, вроде, прямо со SPI исполняется код? Вроде там функции прерываний перегружают в RAM, чтобы побыстрее было, а остальное - как есть...

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

b707 пишет:

Я тут посидел два вечера

SDK ставил?  Я поставил IDE расширение от earleFillHover  и  SDK от Pi Pico, а как их теперь вместе связать - ХЗ.

Ну тоись #include <pico\stdlib.h> вроде находится, а функции оттудова, типа   setup_default_uart()  линкер потом не находит почему-то.   Ниччо не понимаю.   

b707
Offline
Зарегистрирован: 26.05.2017

DetSimen пишет:

 Я поставил IDE расширение от earleFillHover  и  SDK от Pi Pico

расширение от earleFillHover само ставит поддержку SDK

 

Цитата:
функции оттудова, типа   setup_default_uart()  линкер потом не находит почему-то.

В документации от SDK нет такой функции, ты чо-та путаешь. Вот оно https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf - функции UART перечислены в разделе 4,1,25.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

https://raspberrypi.github.io/pico-sdk-doxygen/group__pico__stdlib.html#gacf31cd777510116d829aea040b034c4c

Вопщем надо мне разбираца как следовает, а не наскоком. 

b707
Offline
Зарегистрирован: 26.05.2017

Да, нашел твою функцию

Да, если включить в скетч хидер pico/stdlib - у меня на на setup_default_uart() не ругается, правда лезут другие ошибки. Вероятно еще какого-то инклюда не хватает.

В общем, мне чем понравился аддон earleFillHover - он старается идти буквально по SDK. Поэтому нет проблем с документацией, я пишу скетч ардуино прямо по даташиту. Это сильно отличается в приятную сторону от, скажем, СТМ32, где надо сначала найти в даташите, как это делается. а потом искать в доках к аддону, как это выразить в ардуино...

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Вопщем, у мня Serial.print(...)  работает, а stdout переопределить, чтоб и просто printf(...) стандартный работал - я пока не нашол как.  Искаропки ни он, ни все прочие puts() в сериал ничо не выводят

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DetSimen пишет:

Вопщем, у мня Serial.print(...)  работает, а stdout переопределить, чтоб и просто printf(...) стандартный работал - я пока не нашол как.  Искаропки ни он, ни все прочие puts() в сериал ничо не выводят

видимо не напрасно мне продаван так долго отгружает, к тому моменту когда потребуется переложить код генератора для катушки Мишина будет у кого спросить... )))

b707
Offline
Зарегистрирован: 26.05.2017

DetSimen пишет:

Вопщем, у мня Serial.print(...)  работает, а stdout переопределить, чтоб и просто printf(...) стандартный работал - я пока не нашол как.  Искаропки ни он, ни все прочие puts() в сериал ничо не выводят

Можешь мне примерчик тестовый накатать, я у себя попробую. Только полный скетч, с сетап и луп, чтобы можно было просто запустить

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017
#include <pico/stdlib.h>

void setup()
{
    Serial.begin(115200);
    delay(500);
    Serial.println("This output works fine and text is visible in Serial monitor");

    pinMode(LED_BUILTIN, OUTPUT);

    puts("But this output does not work. :(   Why?");
}

void loop() {}

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Хотя, нет, не запускай пока.  Я счас не дома, у мня IDE нету, в понедельник пришлю.  Пока буду читать. 

b707
Offline
Зарегистрирован: 26.05.2017

у меня етот код даже первую надпись не печатает. Но у меня что-то криво с драйверами - плата определяется только если кнопку зажать и подключать с зажатой кнопкой.

Я пока не копал, потому что по роду моего интереса к этой платке мне Сериал нафик не нужен :)

b707
Offline
Зарегистрирован: 26.05.2017

из интересных ссылок - Pio Emulator

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

из интересных ссылок - Pio Emulator

WOKWI тоже поддерживает, в каком объёме не скажу

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Есть у кого в Питере лишняя (запасная) платка? Готов купить, что-то офигели магазины местные, а из Китая ждать так отпуск кончится :с

b707
Offline
Зарегистрирован: 26.05.2017

спросил в ветке про Visual micro - у всех он нормально с Pico SDK работает? Что-то у меня глючит... Вопрос тут

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:
не так уж ее и много.... на обычный блинк уходит 50Кб из 250 -ти :)
Есть ощущение, что они туда PVM запихали :-)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ЕвгенийП пишет:
они туда PVM запихали

А этта шо?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

PVM - Питоновская Виртуальная Машина - интерпретатор евойного (питоновского) байт-кода.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

у меня етот код даже первую надпись не печатает. 

Там задержка с потолка, попробуйте с проверкой. У меня работает вот так:

	Serial.begin(115200);
	while(!Serial);
	Serial.println("Hello, world!");

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Вот как бы сделать, чтоб вапще без Serial. обойтись, просто printf() и сё.  stdout =  fdevopen(...)  здесь почему-то не катит

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Я вчерась смотрел, там у них уже что-то с stdout делалось.

Ага, там имеются три константы LIB_PICO_STDIO_UART, LIB_PICO_STDIO_USB, LIB_PICO_STDIO_SEMIHOSTING. так по виду, вроде надо просто выбрать и оно само куда надо пойдёт.

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

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Спасибо, некритично.  Я сам пока не могу, с температурой валяюсь

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DetSimen пишет:

Спасибо, некритично.  Я сам пока не могу, с температурой валяюсь

опять в реке купался?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

по инструкции

Raspberry Pi Pico : C/C++ SDK and Toolchain Setup in Windows 10 - Arnab Kumar Das

поставил SDK и примеры, все работает, компилируется. Попробовал сделать пустой проект на основе Blink, сделал отдельную папку, туда исходники записал, сначала ругалось на include, добавил пути, теперь куча ошибок по CMake, несколько часов бьюсь....никак.

Подскажите плиз, есть минимальная инструкция настройки конфигурации для VScode Pico проект с нуля сделать?

Или проще в эти pico-examples добавить дополнительный свой каталог и в cmake txt добавить его для общей компиляции?