ESP8266 SANS RF

Mrburnette
Вторник 19 апреля 2016 г. 14:51
20160507: заголовок изменился после того, как кто -то заметил, что я ошибался как ESP8622 : oops:

Я стал одержим на прошлой неделе с мыслью, что очень дешевый ESP8622 может быть полезен, если это не было RF потребление столько власти.

Сумасшедший? Наверное: но играя с идеей и поиск очень простого механизма отключения радиочастотного участка, чтобы отбросить энергопотребление, теперь я обнаружил, что модуль NON-RF ESP8622-12E в форм-факторе NodeMCU занимает только 20 мА при 80 МГц и менее 40 мкм (30'ish) при 160 МГц. Это довольно примечательно для стоимости.

Конкретный блок, который я использую в своем тесте, Вот этот - За исключением того, что я заплатил 3 доллара.11 с бесплатной доставкой.

Итак, какую производительность обеспечивает 3 доллара и копейки? Я работаю над большим количеством примеров, но я взял пример STM32Duino, который я перенес из 8-битного мира AVR, который был написан известным Ником Гаммоном и я перенесли порт STM32 в ESP8266. Добавление одного беззнательного длительного варна во время одного прохода программы, это результаты на Maple Mini STM32DUINO с загрузчиком 2.0 и энергопотребление было 40+ма Prime Number Generator Number of primes in prime table = 53 Last prime in table = 251 Calculating primes through 63001 Total microseconds = 199887 uS

Martinayotte
Вторник 19 апреля 2016 г. 15:28
Это странно !
С помощью тестов Dhrystone, выполненных в прошлом году, ESP на 80 МГц был примерно на 10% медленнее, чем STM32F103:
ViewTopic.PHP?f = 3&t = 76&начало = 30#p5435

Werecatf
Вторник 19 апреля 2016 г. 15:29
Почему у вас есть звонок system_update_cpu_freq(FREQUENCY);

Сжимать
Вторник 19 апреля 2016 г. 15:36
ESP8266 - это специальная часть оборудования в качестве процессора.
Ядро имеет 80 КБ DRAM (RAM DATA) и 35 КБ IRAM (ОЗУ инструкции).Сегменты DRAM и IRAM разделены (архитектура Гарварда).
Программы хранятся в флэш-памяти, и из-за быстрого интерфейса (SPI-Quad) инструкции могут быть извлечены и выполнены «на месте», другими словами, не копируя их сначала. В некоторых случаях вы не можете напрямую выполнить свой код из флэш -памяти SPI, в основном потому, что он должен быть максимальным быстрым или потому, что он обрабатывает саму флэш -память (E.глин. писать об этом). В этом случае вы можете получить какой -то код, всего 32 тыс. В общей сложности, скопировали из вспышки при запуске, в IRAM. Этот код будет работать с Ирама, а не от Flash.
К сожалению, пространство IRAM в основном занято кодом SDK и мало осталось, с 32K для вашего собственного приложения, около 2 тыс., Может быть, 3K.
Даже при быстром SPI выполнение в Flash медленно по сравнению с нормальной вспышкой (на шине процессора) нашего STM32.
Есть несколько директив компилятора, чтобы заставить сгенерированный код для выполнения в Ираме, но вы должны уважать пределы памяти.
Что -то подобное используется, когда мы хотим чего -то в Ираме
#define IRAM0 __attribute__((section(".iram0.text"))) void IRAM0 myfunc(void) { }

Mrburnette
Вторник 19 апреля 2016 г. 15:42
WereCatf написал:Почему у вас есть звонок system_update_cpu_freq(FREQUENCY);

Mrburnette
Вторник 19 апреля 2016 г. 15:45
Сламмер написал:ESP8266 - это специальная часть оборудования в качестве процессора.
Ядро имеет 80 КБ DRAM (RAM DATA) и 35 КБ IRAM (ОЗУ инструкции).Сегменты DRAM и IRAM разделены (архитектура Гарварда).
Программы хранятся в флэш-памяти, и из-за быстрого интерфейса (SPI-Quad) инструкции могут быть извлечены и выполнены «на месте», другими словами, не копируя их сначала. В некоторых случаях вы не можете напрямую выполнить свой код из флэш -памяти SPI, в основном потому, что он должен быть максимальным быстрым или потому, что он обрабатывает саму флэш -память (E.глин. писать об этом). В этом случае вы можете получить какой -то код, всего 32 тыс. В общей сложности, скопировали из вспышки при запуске, в IRAM. Этот код будет работать с Ирама, а не от Flash.<...>

Werecatf
Вторник 19 апреля 2016 г. 15:56
Это может звучать глупо, но что именно задерживает (0)? Я предполагаю, что перенести ноль к задержке ()-функция абсолютно ничего не сделает, но удаление этой линии значительно ускоряет, так что она, очевидно, что-то делает.

Mrburnette
Вторник 19 апреля 2016 г. 15:59
Сламмер написал:<...>
Что -то подобное используется, когда мы хотим чего -то в Ираме
#define IRAM0 __attribute__((section(".iram0.text"))) void IRAM0 myfunc(void) { }

Mrburnette
Вторник 19 апреля 2016 г., 16:01
WereCatf написал:...Но что именно задерживает (0)?<...>

Werecatf
Вторник 19 апреля 2016 г., 16:04
Mrburnette написал:С ESP8266 задержка (0) является синонимом доходности ();

Mrburnette
Вторник 19 апреля 2016 г., 16:08
WereCatf написал:Mrburnette написал:С ESP8266 задержка (0) является синонимом доходности ();

Martinayotte
Вторник 19 апреля 2016 г., 16:14
Mrburnette написал:Сламмер написал:<...>
Что -то подобное используется, когда мы хотим чего -то в Ираме
#define IRAM0 __attribute__((section(".iram0.text"))) void IRAM0 myfunc(void) { }

Werecatf
Вторник 19 апреля 2016 г., 16:16
Mrburnette написал:Ага. Я профилировал часть этой прошлой недели для своего собственного любопытства. Но с Arduino это не вариант, если Loop () не повторяется каждые 30-50 мс.

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

Werecatf
Вторник 19 апреля 2016 г., 16:17
Martinayotte написал:Это код из Loop (), который должен быть помещен там, и Loop () будет называть myfunc () .

Mrburnette
Вторник 19 апреля 2016 г., 16:22
Martinayotte написал:Mrburnette написал:Сламмер написал:<...>
Что -то подобное используется, когда мы хотим чего -то в Ираме
#define IRAM0 __attribute__((section(".iram0.text"))) void IRAM0 myfunc(void) { }

Сжимать
Вторник 19 апреля 2016 г., 16:51
Посмотрите программу и размер данных, до/после IRAM0 или ICACHE_RAM_ATTR, если функция действительно находится в IRAM0
Может быть, сценарий линкера не принимает вашу функцию, так как есть некоторые ограничения.... В любом случае я новичок в ESP8266, я просто мигаю светодиодом.... :рулон:

Mrburnette
Вторник 19 апреля 2016 г., 17:24
WereCatf написал:Mrburnette написал: <...>
HM, ну, вы не сравниваете процессоры, тогда,<...>

Rogerclark
Вторник 19 апреля 2016 г., 21:41
Ржу не могу...

Я думаю, что качество публикации EPS8266 здесь гораздо лучше, чем на ESP8266.компонент ;-)

Я думаю, что практически все мы используем ESP8266, а также STM32.

Я разработал печатную плату с Maple Mini, ESP-12, а также ILI9341 и NRF905, которые я использую для различных проектов (хотя изначально он был спроектирован как дисплей)

Если бы у ESP8266 была лучшая ADC, и USB я мог бы полностью удалить STM32 из моего дизайна полностью.

Но есть все еще такие вещи, как сбор данных в реальном времени, которые ESP8266 не подходит для.

Martinayotte
Ср 20 апреля 2016 г., 19:41
Привет, Рэй,

Я понял это ! Макро не должен быть:
#define IRAM0 __attribute__((section(".iram0.text")))

Mrburnette
Ср 20 апреля 2016 г., 8:09 вечера
Martinayotte написал: <...> #define IRAM0 __attribute__((section(".iram.text")))

Mrburnette
Ср 20 апреля 2016 г. 22:44
Я верю, что 1 -й доска, которую я получил пару недель назад, дефектный. Он будет программировать, он будет работать, но только если я использую тип платы "generic". Новый совет получил вчерашние программы отлично каждый раз в качестве «Nodemcu 1.0 ".

Подробнее здесь: ViewTopic.PHP?F = 45&t = 996&начало = 40#p12370

Краткое содержание...

Доска Nodemcu - это хорошая покупка за 3 доллара.11 долларов США (сегодня чек показывает его по 3 доллара.22. При отключении RF -секции на 160 МГц, плата занимает менее 40 мА (то есть мой счетчик показывает его более 30 мА, но никогда не 40ma.) OTOH, Maple Mini находится в диапазоне 40 - 49 мА (никогда не ниже 40, но никогда не показывает 50 мА на дисплее).

Но... И это большой, но... Maple Mini значительно быстрее, чем nodemcu на основе ESP8266. Небольшая разница в цене в 4 доллара.00 - 3 доллара.22 (оба свободного корабля), на мой взгляд, недостаточно, чтобы выбрать Nodemcu в качестве замены для STM32F103, если только:
  • Требуется более 20 тыс. ОЗУ требуется
  • Требуется более 128 тыс. Флэш -
  • Требуется внутренняя файловая система, основанная на вспышке, Spiffs
  • Чистая скорость процессора не является критическим фактором
Может быть, некоторые из наших участников могут добавить в список. Как предостережение, помните, что во время 1-й включения РЧ будет энергично, и энергопотребление будет минимум 0.1а и, вероятно, немного выше, так как я использую USB -метр, а дисплей не мгновенный.

Луча

Rogerclark
Ср 20 апреля 2016 г., 23:26
Привет, Рэй

Я не понял, что ESP8266 при 80 МГц (или даже 160 МГц) будет значительно медленнее.

Я предполагаю, что это из -за инструкции, получая время из вспышки SPI.

Mrburnette
Чт 21 апреля 2016 г. 12:38 утра
Rogerclark написал:Привет, Рэй

Я не понял, что ESP8266 при 80 МГц (или даже 160 МГц) будет значительно медленнее.

Я предполагаю, что это из -за инструкции, получая время из вспышки SPI.

Werecatf
Чт 21 апреля 2016 г. 1:01
Mrburnette написал:Я не уверен, поскольку цифры противоречат некоторому предыдущему тестированию, см. Ссылку Мартина ранее в потоке. Таким образом, это может быть проблема «рабочей нагрузки» с алгоритмом основного числа.

Mrburnette
Чт 21 апреля 2016 г. 1:49
WereCatf написал: <...>
Ваш тест измеряет скорость ардуино-внедрения, а не только скорость процессора, потому что <...>

Rogerclark
Чт 21 апреля 2016 г., 3:45
Я думаю, что люди должны были бы сравнить скорость при выполнении фактической задачи, которая требуется.

Я был бы удивлен, если у SPI Flash будет такая же производительность, как и внутренняя вспышка, для начала она должна появиться через один бит, поэтому даже если часы SPI составляли 80 МГц, оно будет только на 10 мега -байтов в секунду.

Мы знаем из GD32, что время загрузки инструкций имеет большое значение, так как 72 МГц GD32 определенно быстрее, чем 72 МГц STM32 даже на простых тестах.

Кроме того, ESP8266 имеет только один АЦП, и это от 0 до 1 В, а не от 0 до 3.3В. Я не знаю, имеет ли у АЦП такую ​​же точность, как и STM32 (кажется маловероятным), но я не знаю.

Werecatf
Чт 21 апреля 2016 г. 8:10 утра
Rogerclark написал:Я был бы удивлен, если у SPI Flash будет такая же производительность, как и внутренняя вспышка, для начала она должна появиться через один бит, поэтому даже если часы SPI составляли 80 МГц, оно будет только на 10 мега -байтов в секунду.

Werecatf
Чт 21 апреля 2016 г. 8:54 утра
Теперь, когда я думаю об этом, как бы можно было тестировать внутреннюю скорость вспышки? Вам понадобится какая-то кэширование маршрутизации в Ираме, не вызывая никаких внешних функций, чтобы не запускать изгиб инструкции во время тестирования..

Сжимать
Чт 21 апреля 2016 г. 9:18 утра
WereCatf написал:....не вызовать каких-либо внешних функций, чтобы не запустить изгиб инструкции во время тестирования..

Mrburnette
Чт 21 апреля 2016 г., 13:02
Сламмер написал: <...>
В любом случае, производительность и стоимость этого крошечного устройства 2 $ примечательны, для моей точки зрения единственное реальное ограничение - это количество IO/периферийное устройство.

Сжимать
Чт 21 апреля 2016 г. 13:30
Если ценник предстоящего ESP32 составляет около 4 $ (в качестве вашего предварительного заказа), то у нас будет победитель....И это выявит мир Arduino...
Через несколько месяцев мы узнаем...

Rogerclark
Чт 21 апреля 2016 г., 21:13
Мне нравится ESP8266, но есть несколько ниг...

Независимо от того, что сделать USB в серийный интерфейс, который я использую, я не могу получить надежную загрузку быстрее, чем 115200 :-(
Хотя я думаю, что у меня есть FT232, которые у меня есть, вероятно, клоны....

И мне все еще нужно сделать 2 -й кнопку.

Было бы здорово, если бы я мог загрузить на удивительных скоростях, которые некоторые люди управляют (900 тысяч или более), и если бы мне не нужно было возиться с нажимающими кнопками перед загрузкой.

Martinayotte
Чт 21 апреля 2016 г., 21:18
Если в вашем эскизе вы просто добавите ota Library+Handler, после того, как вы загрузите свой эскиз, теперь легко выполнить обновления без каких-либо кнопок, чтобы нажать USB-TTL, чтобы прикрепить ... ;) (Конечно, это не "Sans Rf" ... : Geek: )

Werecatf
Чт 21 апреля 2016 г., 21:46
Rogerclark написал:Независимо от того, что сделать USB в серийный интерфейс, который я использую, я не могу получить надежную загрузку быстрее, чем 115200 :-(
Хотя я думаю, что у меня есть FT232, которые у меня есть, вероятно, клоны....

Werecatf
Чт 21 апреля 2016 г., 21:48
Martinayotte написал:Если в вашем эскизе вы просто добавите ota Library+Handler, после того, как вы загрузите свой эскиз, теперь легко выполнить обновления без каких-либо кнопок, чтобы нажать USB-TTL, чтобы прикрепить ... ;) (Конечно, это не "Sans Rf" ... : Geek: )

Rogerclark
Чт 21 апреля 2016 г., 22:04
Я пытался использовать OTA с удаленного веб -сервера, в основном в качестве эксперимента. Однако я не нахожу это очень надежным, даже с последним SDK.

Местный OTA не очень используется для меня, так как многое время работает RF, но устройство не подписано в мою сеть, поскольку оно работает как AP, так что потребуется много, чтобы переключиться, чтобы переключиться Wi -Fi для ПК для подключения к AP ESP8266 и т. Д.

Гораздо проще использовать прямое последовательное соединение.

Я думаю, что у меня может быть куда -то USB на основе CH340G, но в основном у меня есть плодовитые модули CP21XX.

Пса. Я пытался использовать Maple Mini в качестве сериала USB, но, похоже, он вообще не работал с ESP8266 :-(

Werecatf
Чт 21 апреля 2016 г., 22:31
Rogerclark написал:Я думаю, что у меня может быть куда -то USB на основе CH340G, но в основном у меня есть плодовитые модули CP21XX.

Пса. Я пытался использовать Maple Mini в качестве сериала USB, но, похоже, он вообще не работал с ESP8266 :-(

Сжимать
Пт 22 апреля 2016 г. 1:15 утра
Схема Nodemcu требует как RT, так и сигналов DTR от чипа UART, что не очень распространено.
Если вы посмотрите на конец страницы, которая была связана, есть ссылка на:

http: // www.JCE.Лу/Блог/?P = 143

Там вы можете найти схему, которая требует только сигнала DTR (например, базовый кабель FTDI)
Я не проверял схему, так как у меня есть только Nodemcus.

Werecatf
Пт 22 апреля 2016 г. 2:03
Сламмер написал:Схема Nodemcu требует как RT, так и сигналов DTR от чипа UART, что не очень распространено.
Если вы посмотрите на конец страницы, которая была связана, есть ссылка на:

http: // www.JCE.Лу/Блог/?P = 143

Там вы можете найти схему, которая требует только сигнала DTR (например, базовый кабель FTDI)
Я не проверял схему, так как у меня есть только Nodemcus.

Mrburnette
Пт 22 апреля 2016 г. 15:43
Mrburnette написал:Martinayotte написал: <...> #define IRAM0 __attribute__((section(".iram.text")))

Martinayotte
Пт 22 апреля 2016 г. 15:57
Да ! Эти результаты похожи на те, которые я получил.
Действительно небольшая выгода в IRAM, вероятно, является выгодой от первой итерации, где не IRAM приносит в кеш, все остальные итерации становятся идентичными, поскольку обе версии уже находятся внутри Iram.

Mrburnette
Пт 22 апреля 2016 г., 22:06
Martinayotte написал:Да ! Эти результаты похожи на те, которые я получил.
Действительно небольшая выгода в IRAM, вероятно, является выгодой от первой итерации, где не IRAM приносит в кеш, все остальные итерации становятся идентичными, поскольку обе версии уже находятся внутри Iram.

Радждардж
Ср 27 апреля 2016 г. 11:38
Rogerclark написал:Ржу не могу...

Я думаю, что качество публикации EPS8266 здесь гораздо лучше, чем на ESP8266.компонент ;-)

Я думаю, что практически все мы используем ESP8266, а также STM32.

Я разработал печатную плату с Maple Mini, ESP-12, а также ILI9341 и NRF905, которые я использую для различных проектов (хотя изначально он был спроектирован как дисплей)

Gbulmer
Чт 28 апреля 2016 г. 18:58
Прошу прощения за то, что вернулся к этому неделю на неделю.

У меня нет проблем с основной идеей сравнить STM32F с не RF ESP8266 с использованием портов той же программы.

Тем не менее, я обеспокоен тем, что могут быть некоторые молодые, впечатлительные, люди, читающие сайт, которые могут неправильно понять ...
Mrburnette написал: <...>

.... С помощью оборудования RISC системы системных часов определяют MIP (за исключением сердечников с определением взгляда и определения ветви и предварительного кеша ЦП.), Но для большинства рук недорогих UC, максимальные часы являются определяющим фактором; Следовательно, 80 МГц быстрее 72 МГц... быстрее к 80/72 = 11.11%

Rogerclark
Чт 28 апреля 2016 г., 21:22
@gbulmer

Спасибо за отличный пост.

Я полностью согласен и ранее опубликовал биты аналогичной информации.

Если бы ESP8266 не имел Wi -Fi, люди отклонили бы его как «также REN» с точки зрения его обработки и отсутствия нормальной периферийной установки, обнаруженной на нормальных MCUS.

Но он получил тягу, и объемы производства позволяют его стоимости быть низкими.

Также не было бы ни в коем случае, если бы IGGR не сделал порт Arduino.
(Я считаю, что с открытым исходным кодом, Non Arduino Toolchain - это кошмар для установки, и, кажется, работает только на 32 -битных Linux))

Mrburnette
Чт 28 апреля 2016 г., 21:29
Гбулмер написал:Прошу прощения за то, что вернулся к этому неделю на неделю.

У меня нет проблем с основной идеей сравнить STM32F с не RF ESP8266 с использованием портов той же программы. Тем не менее, я обеспокоен тем, что могут быть некоторые молодые, впечатлительные, люди, читающие сайт, которые могут неправильно понять ...
<...>

Саймонф
Сб 07 мая 2016 г. 2:04
Я думал, что моя дислексия превратилась в дискалькулию, тогда я понял, что это должно быть "ESP8266 Sans Rf".

Martinayotte
Сб, 07 мая 2016 г. 13:17
Что ты имеешь в виду ? «Санс» - это французское слово «без» ...

Werecatf
Сб 07 мая 2016 г. 14:22
Martinayotte написал:Что ты имеешь в виду ? «Санс» - это французское слово «без» ...

Martinayotte
Сб, 07 мая 2016 г. 14:25
Я тоже дислексик : D

Werecatf
Сб, 07 мая 2016 г. 14:28
Martinayotte написал:Я тоже дислексик : D

Ахулл
Сб 07 мая 2016 г., 15:14
Страшная вещь, мы добрались до пяти страниц ответов, прежде чем кто -то на самом деле заметил. : o

Martinayotte
Сб 07 мая 2016 г., 17:22
Может быть, Мосанто тайно ввел что -то в мировое алиментацию, и теперь мы все затронуты заболеванием дислексии ... :ржу не могу:

Mrburnette
Сб, 7 мая 2016 г., 18:20
: oops:
Переименованная мастер -запись.

Саймонф
Солнце 8 мая 2016 г. 22:17
Martinayotte написал:Может быть, Мосанто тайно ввел что -то в мировое алиментацию, и теперь мы все затронуты заболеванием дислексии ... :ржу не могу:

Gbulmer
Пн, 09 мая 2016 г., 12:53
Я - «Слово» («Не могу писать для Ишики», как сказала бы моя мама), но я заметил «ESP8622» (я узнаю числа деталей лучше, чем написание слов)

Тем не менее, я не посещал в течение нескольких дней, не читал новую ветку после нескольких дней постов, и предположил, что это было преднамеренно.

Поэтому я задавался вопросом, был ли какой -нибудь макиавеллианский сюжет, например, летать под радаром эспрессф? В конце концов, это был нелестный эталон, и некоторые компании очень скрипят о таких вещах. Однако первое правило макиавеллианского клуба, ... ;)

С другой стороны, я люблю книги и фильмы Яна Флеминга, и я прочитал некоторые из «Принц» Макиавелли, когда я был молодежью : D

В любом случае, это был интересный эксперимент, который я все еще хотел бы понять.

Я озадачен, как работает код-рам-кэш, какой алгоритм он использует для загрузки кода?
Кроме того, я впечатлен, что его можно было разгонять в 2 раза и все еще прочитать память QSPI. Итак, я хотел бы прочитать документацию.

Где английские переносы руководств по программированию периферического интерфейса? У меня была лапша, но не смог их найти.

Саймонф
Пн, 09 мая 2016 г., 5:11 утра
Гбулмер написал: Тем не менее, я не посещал в течение нескольких дней, не прочитал титул после нескольких дней постов, и предположил, что это было преднамеренно.

Стевех
Пн, 09 мая 2016 г., 16:12
Где перевод американского английского (как опубликовано ранее) сжимать : mrgreen:

и будет ли два F ?

Gbulmer
Вторник 10 мая 2016 г. 18:25
Стевех написал:Где перевод американского английского (как опубликовано ранее) сжимать : mrgreen:

и будет ли два F ?

Стевех
Вторник 10 мая 2016 г., 8:06 вечера
Я бы хотел, чтобы у американского английского было больше таких вежливых эвфемизмов.

Рамимо
Пт 19 мая 2017 г. 8:35 утра
Всем привет,

Я знаю, эта тема действительно, _really_ старый. Я нашел его во время поиска Infos для переключения Wi -Fi на ESP8266. Опять же, у этой доски был лучший результат :) Я работаю над своего рода артичным проектом, включающим дисплеи и камеры и еще много чего - если я могу все это запустить.

Контрольные результаты сбили с толку меня. По моему опыту, ESP8266 на самом деле не такой медленный. Виновник, как было заявлено не раз, что таймер сторожевого пса хочет быть накормленным снова и снова.

На мой взгляд, это абсолютно действителен, чтобы возиться с этим зверями. Если я знаю, что что -то нужно некоторое время без какого -либо риска, чтобы отправиться в Фубар, я соответственно установил сторож. С 10 секундами тайм -аута (более чем достаточно, чтобы рассчитать основные числа, я получаю результат:

80 МГц, без Iram: 797219 мкс
80 МГц, с IRAM: 760123 мкс
160 МГц, без IRAM: 398799 мкс
160 МГц, с IRAM: 380203 мкс

Все, что я сделал, это добавил линию "ESP.wdtenable (10000); «В setup () и отключение задержки (0). Цифры определенно хуже, чем с Litte STM32F103, но это всего лишь фактор 2 или 4. У меня не так много кода, который чувствителен к скорости, так что это все о выводах для меня. Если они мне нужны, это STM32, но если я хочу «установить» веб -сервер с каплей горячего клея, я беру ESP :)

Genuino 101