Где я ошибся? Почему Arduino Pro Micro перестала работать? (не работает UART)
- Войдите на сайт для отправки комментариев
Пнд, 13/05/2019 - 14:01
Добрый день, уважаемые радиолюбители!
Подскажите пожалуйста, почему Arduino Pro Micro (китайская без кнопки, на 3.3в, чип AtMega32U4-MU) после заливки скетча перестала определятся как com port?И как избежать этого в будущем?Я пытался собрать по схеме из статьи измеритель CO.Компоненты всё как в статье, скетч прошёл проверку в Arduino IDE и после заливки плата больше как ком-порт не определяется.
Скетч в итоге то же не заработал. :(
При заливки скетча плата была выбрана:
Не понятно, как избежать повторения этой ситуации :(
Подскажите, пожалуйста!
А скетч, который Вы туда залили, где?
а ничо, што AtMega32U4-MU и AtMega328P это немношка разные процессоры?
вот он и пришол в изумление. Да и перестал, на всякий случай, работать. Как говорица "а.уел сего числа".
А скетч, который Вы туда залили, где?
Извините, ссылка действительно не удобно.
Вот :
#include <SoftwareSerial.h> #include <Wire.h> // I2C OLED #include "SSD1306Ascii.h" #include "SSD1306AsciiWire.h" #define I2C_ADDRESS 0x3C SSD1306AsciiWire oled; // CO2 sensor: SoftwareSerial mySerial(8,9); // RX,TX byte cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79}; unsigned char response[9]; void setup() { // Serial Serial.begin(9600); mySerial.begin(9600); // OLED Wire.begin(); oled.begin(&Adafruit128x32, I2C_ADDRESS); oled.set400kHz(); oled.setFont(ZevvPeep8x16); oled.clear(); oled.println("setup::init()"); } long t = 0; void loop() { mySerial.write(cmd, 9); memset(response, 0, 9); mySerial.readBytes(response, 9); int i; byte crc = 0; for (i = 1; i < 8; i++) crc+=response[i]; crc = 255 - crc; crc++; oled.clear(); if ( !(response[0] == 0xFF && response[1] == 0x86 && response[8] == crc) ) { Serial.println("CRC error: " + String(crc) + " / "+ String(response[8])); oled.println("Sensor CRC error"); } else { unsigned int responseHigh = (unsigned int) response[2]; unsigned int responseLow = (unsigned int) response[3]; unsigned int ppm = (256*responseHigh) + responseLow; Serial.print(String(t)); Serial.print(","); Serial.print(ppm); Serial.println(";"); if (ppm <= 400 || ppm > 4900) { oled.println("CO2: no data"); } else { oled.println("CO2: " + String(ppm) + " ppm"); if (ppm < 450) { oled.println("Very good"); } else if (ppm < 600) { oled.println("Good"); } else if (ppm < 1000) { oled.println("Acceptable"); } else if (ppm < 2500) { oled.println("Bad"); } else { oled.println("Health risk"); } } } delay(10000); t += 10; }вот он и пришол в изумление. Да и перестал, на всякий случай, работать. Как говорица "а.уел сего числа".
Да, видать очень разные... Ну что ж, спасибо за подсказку, я действительно балбес... поторопился. :(
А какую же плату выбирать в будущем? Leonardo?
да я вапще удивлен, как скетч-то залился, у этих чипов сигнатуры напрочь разные, дудка бы не дала залить чужой скечч.
)) Это нужно в приколы. "Приколы нашего городка"). Ну ладно бы плата. Мини - Микро, не заметил... Но веть и контроллер то СОВСЕМ другой.(
Может это чем-то поможет: я выбираю Pro Micro для Pro Micro.
Может это чем-то поможет: я выбираю Pro Micro для Pro Micro.
А чо, так можно было? :)))))
да я вапще удивлен, как скетч-то залился, у этих чипов сигнатуры напрочь разные, дудка бы не дала залить чужой скечч.
И тем не менее, это произошло. :( Как уж я так сумел..? хз. Забегая вперёд, плату вернуть к жизни не могу второй день :( Уже отчаился и простился с ней...
Есть вторая, не хочу её загубить. И делать что - не ясно. :(
#8 исчерпывающе.
Думаю, что стоит попробовать залить загрузчик заново по SPI (см ArduinoISP).
Есть вторая, не хочу её загубить. И делать что - не ясно. :(
выбирать в настройках ИДЕ правильный процессор - не предлагать? :)
)) Это нужно в приколы. "Приколы нашего городка"). Ну ладно бы плата. Мини - Микро, не заметил... Но веть и контроллер то СОВСЕМ другой.(
Я честно, не обратил на это внимание. Что написано на чипе, стал читать когда дело дошло до загрузчика...
Прикол - это когда плата собирается на 3х разных чипах. Это круто!
И спасибо Вам за совет.
Есть вторая, не хочу её загубить. И делать что - не ясно. :(
выбирать в настройках ИДЕ правильный процессор - не предлагать? :)
Какой?
МАТЬТВАЮ, да прочитай уже сообщение #8
Думаю, что стоит попробовать залить загрузчик заново по SPI (см ArduinoISP).
У меня не получилось :(
Дальше этого :
avrdude: verification error, first mismatch at byte 0x0000 0x00 != 0x0c
avrdude: verification error; content mismatch
Ошибка при записи загрузчика
Я продвинуться не смог. День проковырялся - и потерял надежду...
МАТЬТВАЮ, да прочитай уже сообщение #8
Вот мой список. Где же плата из #8 ?
В Вашей версии IDE ребрендированный Pro Micro выглядит как Genuino Micro (под рукой нет сейчас своей IDE).
Может это чем-то поможет: я выбираю Pro Micro для Pro Micro.
И что? Неужели работает?
Может это чем-то поможет: я выбираю Pro Micro для Pro Micro.
И что? Неужели работает?
Да вроде работало. Это не моя основная ардуина, раз в полгода подключаю. Хотя вот интернеты пишут, что надобно как Леонардо шить. Думаете, что подводит уже склероз? :(
В Вашей версии IDE ребрендированный Pro Micro выглядит как Genuino Micro (под рукой нет сейчас своей IDE).
Ясно! Спасибо!
Может это чем-то поможет: я выбираю Pro Micro для Pro Micro.
И что? Неужели работает?
Да вроде работало. Это не моя основная ардуина, раз в полгода подключаю. Хотя вот интернеты пишут, что надобно как Леонардо шить. Думаете, что подводит уже склероз? :(
Я когда загрузчик пытался залить - две статьи были про Леонардо. Всё не однозначно как-то :(
https://schou.dk/linux/arduino/isp/
Ну с UNO я пока не сталкнулся с проблемами. Есть правда всего две платы и не так часто что-то делаю, но сколько возился с ними - в тыкву ещё не превратил. А тут ... :(
Arduino IDE "из коробки" не поддеживает платы Pro Micro. Хотя они в принципе совместимы с Arduino/Genuino Micro, бутлоадер на том же ядре "Caterina", но разные его настройки. Разные device PID, иное аппартаное включение светодиодов Rx/Tx. Поэтому возможны проблемы, о которых на форуме не раз писали . Так что лучше загрузать оригинальный аддон от спаркфана (этот тот производитель, с оригинала которого и делают китайские клоны) дабы всё работало корректно. Ссылка для менеджера плат: https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Boa...
Arduino IDE "из коробки" не поддеживает платы Pro Micro. Хотя они в принципе совместимы с Arduino/Genuino Micro, бутлоадер на том же ядре "Caterina", но разные его настройки. Разные device PID, иное аппартаное включение светодиодов Rx/Tx. Поэтому возможны проблемы, о которых на форуме не раз писали . Так что лучше загрузать оригинальный аддон от спаркфана (этот тот производитель, с оригинала которого и делают китайские клоны) дабы всё работало корректно. Ссылка для менеджера плат: https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Boa...
Всю жизнь выбирал в меню Arduino Leonardo, и все работало - пока не перешел на Arduino IDE 2.0. Теперь плата окирпичивается вне зависимости от того, что я выбираю в меню - Arduino Leonardo или Sparkfun pro Micro. Видимо, придется ставить IDE 1.8.