Знаток
Регистрация: 07.10.2009
Адрес: А кому интересно?
Сообщений: 382
Репутация: 70
|
Это как сказать. Я PIC микроконтроллеры изучал разбирая чужие проекты, и там все было более или менее понятно, что на Асм, что на Си. И вроде чего-то добился. Нужно, мне, например, управление цифровым радиовещательным приемником. Беру PIC16xxx, создаю проект, инициализирую МК, настраиваю порты ввода-вывода, тактовый генератор, и поехали. I2C интерфейс настроил, и пиши-читай в чип радиоприемника что нужно, следуя описанию регистров из даташита. Дисплей какой есть под рукой прикрутил, знакогенератор запилил (если нужно), опрос кнопок-энкодеров огранизовал, и рули себе чипом поглядывая на дисплей, слушай радио.
А тут (с ESP32) я с прошлого года туплю, не зная с какой стороны подступиться. Открываю файл main.cpp из чужого проекта, а там нихрена нету. Два десятка строчек непонятно для чего написанных, и все. И чего с этим делать? Там же реально ничего нет, что можно было бы посмотреть, разобрать, дабы понять как и что работает. Я только чужие прошивки научился заливать в ESP32, да проекты открывать, и дальше ничуть не продвинулся. Просто не понимаю, как и чего делать с программой в Ардуине (или в Visual Studio Code, или в Eclipse), чтобы, скажем, подключить ESP к WiFi роутеру. В найденных примерах не вижу чтобы как-то задействовались какие-либо регистры ESP, не вижу, чтобы что-то делалось с шинами (I2C, SPI, USART) при подключении к дисплею, не вижу работы с пинами при использовании энкодеров. Я там вообще ничего не вижу!!! Как эти программы-пустышки заставляют МК что-то выполнять??? |
||
Оценка
|
Специалист
Регистрация: 20.04.2011
Адрес: Казахстан г.Алматы
Сообщений: 1,234
Репутация: 256
|
Цитата:
http://www.gaw.ru/html.cgi/txt/app/micros/avr/index.htm - производитель микроконтроллеров на отдельных примерах подробно и понятно описывает работу блоков микропрограмм. Остаётся только научиться разрабатывать по ГОСТ-у Техническое Задание на алгоритмы работы микроконтроллера в соответствие с требованиями Заказчика. |
||
Оценка
|
Знаток
Регистрация: 07.10.2009
Адрес: А кому интересно?
Сообщений: 382
Репутация: 70
|
Но люди как-то пишут прошивки для ESP32. Они готовыми библиотеками пользуются, прописывая необходимые действия которые должны выполняются в функциях прописанных в библиотеках? Наверное потому у меня такие непонятки, что я привык все функции (за исключением стандартных функций Си) прописывать самостоятельно.
|
||
Оценка
|
Специалист
Регистрация: 20.04.2011
Адрес: Казахстан г.Алматы
Сообщений: 1,234
Репутация: 256
|
|
||
Оценка
|
Специалист
Регистрация: 20.04.2011
Адрес: Казахстан г.Алматы
Сообщений: 1,234
Репутация: 256
|
"Свободу" даёт фирма-производитель микроконтроллеров, например, ATMEL, которая в свободном доступе подробно описывает все подробности программирования своей продукции.
http://www.gaw.ru/html.cgi/txt/app/micros/avr/index.htm Из-за отсутствия названной свободы "благополучно" в мусорную корзину попало несколько перспективных проектов. В любом случае продолжение и развитие разработанных проектов возможно только при самом подробном описании разработанных программ, а это оказалось невозможно по той же причине - "хавай что дают и на большее не расчитывай". Подробное изложение программ необходимо даже при самого себя, как оказалось впоследствии... |
||
Оценка
|
Знаток
Регистрация: 07.10.2009
Адрес: А кому интересно?
Сообщений: 382
Репутация: 70
|
Цитата:
Но, растущие запросы потребовали что-то более шустрое, что заставило выбирать между ESP32 и STM32. По началу ESP привлек встроенным WiFi и блютузом. Только пришедшее по мере изучения модуля понимание того, что я буду полностью зависеть от сторонних разработчиков библиотек, мне как то не улыбается... Отчего все больше склоняюсь к изучению STM32. На них есть полное описание, и фирменная среда разработки, плюс альтернативный софт для написания прошивок и отладки. Да, как оказалось, у ESP32 сравнительно медленный АЦП. Медленный по сравнению с АЦП микроконтроллеров STM и Microchip. |
||
Оценка
|
Новичок
Регистрация: 14.06.2018
Сообщений: 112
Репутация: 17
|
Да, АЦП у ESP32, так себе. Чтобы конкуренция не сказала, что не имеется И очень нелинейный. Но непросто совместить и wi-fi контроллер и АЦП в одном устройстве и оба на высшем уровне. Не тягатся же Espressif-у с другими производителями АЦП. Поэтому - берем лучшее из двух миров. Внешный АЦП. По SPI, по i2c. Работает же.
|
||
Оценка
|
Новичок
Регистрация: 14.06.2018
Сообщений: 112
Репутация: 17
|
Если "открываете" main.cpp, значить не там попали. У ESP32 два совершенно разных мира, два разных стиля программирования. Первый, фирменный - это программирование под FreeOS. Там чтобы мигнуть LED-ом нужно объявить чуть ли не полдюжины тасков, мюутексов и очередей. Иначе не признают, вышвирнуть из общества Но есть и среда "Ардуино для ESP32". Там среда Arduino IDE, те же библиотеки, *.ino и *.pde файлы, те же setup-loop, просто и понятно. Поищите. Есть и то и другое. Поедет как-то и дальше не увидите никакой разницы в программирования то ли Arudino Nano, то ли ESP32-Wrover. Только скорость будет в разы больше и память покажется огромной. И вам wi-fi понравиться, всегда будет в ваших проектов.
|
||
Оценка
|
Знаток
Регистрация: 07.10.2009
Адрес: А кому интересно?
Сообщений: 382
Репутация: 70
|
Да, WiFi понравился. Особенно простота работы с ним посредством библиотек Arduino. Даже получилось свои html странички на сервере сделать, переделывая чужие примеры Хотя, еще не совсем догоняю, как передавать значения переменных между файлами веб-страниц и файлом ***.cpp для обработки. Придется, наверное, вплотную заняться JavaScript, к которому я всегда так несерьезно относился...
Для работы с проектами заточенными под Arduino поставил Visual Studio Code, а в нем установил фреймворк PlatformIO. Вроде ничего так, и функционал гораздо гораздее чем у среды Ардуино. По этому моменту у меня особых вопросов не возникает. Вот с ESP IDF не все так радужно. Поставил Eclipse, интегрировал его с ESP IDF, скомпилировал и прошил из него несколько примеров из самого ESP IDF, но... Не нашел там примеров где было бы показано, как настраивается, скажем, тактовый генератор ESP32. Ну там чтобы биты в регистрах определенных выставить в нужное состояние, и, скажем, заставить осциллятор ESP работать с нужной частотой, с требуемым умножением частоты и т.д. и т.п. Или как вывести в порт ESP некоторое значение через регистры самого ESP, а не как в Ардуине, через запись вроде output26 = off или output26 = on. Что-то я не нашел в папках директории msys32 примеров, где можно было бы подсмотреть работу с регистрами ESP. Какие-то они ардуинообразные все. Возможно, не туда попал. Но, где же посмотреть другие примеры? Да, будете смеяться, но до меня только сейчас дошло, что разработчики ESP затачивали ее под среду программирования и плату Arduino. Делали совместимой по выводам, командам и т.д. Не сразу врубился, потому что не видел доселе, чтобы микроконтроллер под среду программирования разрабатывали, а не наоборот... |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |