Где я ошибся? Почему Arduino Pro Micro перестала работать? (не работает UART)

hcipap
Offline
Зарегистрирован: 13.05.2019

Добрый день, уважаемые радиолюбители! 

Подскажите пожалуйста, почему Arduino Pro Micro (китайская без кнопки, на 3.3в, чип AtMega32U4-MU) после заливки скетча перестала определятся как com port?И как избежать этого в будущем?Я пытался собрать по схеме из статьи измеритель CO.Компоненты всё как в статье, скетч прошёл проверку в Arduino IDE и после заливки плата больше как ком-порт не определяется.

Скетч в итоге то же не заработал. :(

При заливки скетча плата была выбрана:

Не понятно, как избежать повторения этой ситуации :( 

Подскажите, пожалуйста!

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

А скетч, который Вы туда залили, где?

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

а ничо, што AtMega32U4-MU и AtMega328P это немношка разные процессоры? 

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

вот он и пришол в изумление.  Да и перестал, на всякий случай, работать.  Как говорица "а.уел сего числа".  

hcipap
Offline
Зарегистрирован: 13.05.2019

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

А скетч, который Вы туда залили, где?

Извините, ссылка действительно не удобно. 

Вот :

#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;
}

 

hcipap
Offline
Зарегистрирован: 13.05.2019

DetSimen пишет:

вот он и пришол в изумление.  Да и перестал, на всякий случай, работать.  Как говорица "а.уел сего числа".  

Да, видать очень разные... Ну что ж, спасибо за подсказку, я действительно балбес... поторопился. :(

А какую же плату выбирать в будущем? Leonardo?

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

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

Green
Offline
Зарегистрирован: 01.10.2015

)) Это нужно в приколы. "Приколы нашего городка"). Ну ладно бы плата. Мини - Микро, не заметил... Но веть и контроллер то СОВСЕМ другой.(

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

Может это чем-то поможет: я выбираю Pro Micro для Pro Micro. 

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

sadman41 пишет:

Может это чем-то поможет: я выбираю Pro Micro для Pro Micro. 

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

hcipap
Offline
Зарегистрирован: 13.05.2019

DetSimen пишет:

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

И тем не менее, это произошло. :( Как уж я так сумел..? хз. Забегая вперёд, плату вернуть к жизни не могу второй день :( Уже отчаился и простился с ней...

Есть вторая, не хочу её загубить. И делать что - не ясно. :( 

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

#8 исчерпывающе. 

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

Думаю, что стоит попробовать залить загрузчик заново по SPI (см ArduinoISP).

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

hcipap пишет:

Есть вторая, не хочу её загубить. И делать что - не ясно. :( 

выбирать в настройках ИДЕ правильный процессор - не предлагать? :)

hcipap
Offline
Зарегистрирован: 13.05.2019

Green пишет:

)) Это нужно в приколы. "Приколы нашего городка"). Ну ладно бы плата. Мини - Микро, не заметил... Но веть и контроллер то СОВСЕМ другой.(

Я честно, не обратил на это внимание. Что написано на чипе, стал читать когда дело дошло до загрузчика...

Прикол - это когда плата собирается на 3х разных чипах. Это круто!

И спасибо Вам за совет.

hcipap
Offline
Зарегистрирован: 13.05.2019

b707 пишет:

hcipap пишет:

Есть вторая, не хочу её загубить. И делать что - не ясно. :( 

выбирать в настройках ИДЕ правильный процессор - не предлагать? :)

Какой? 

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

МАТЬТВАЮ, да прочитай уже сообщение #8

hcipap
Offline
Зарегистрирован: 13.05.2019

sadman41 пишет:

Думаю, что стоит попробовать залить загрузчик заново по SPI (см ArduinoISP).

У меня не получилось :( 

Дальше этого :

avrdude: verification error, first mismatch at byte 0x0000 0x00 != 0x0c

avrdude: verification error; content mismatch

Ошибка при записи загрузчика

Я продвинуться не смог. День проковырялся - и потерял надежду...

hcipap
Offline
Зарегистрирован: 13.05.2019

DetSimen пишет:

МАТЬТВАЮ, да прочитай уже сообщение #8

Вот мой список. Где же плата из #8 ?

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

В Вашей версии IDE ребрендированный Pro Micro выглядит как Genuino Micro (под рукой нет сейчас своей IDE).

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

sadman41 пишет:

Может это чем-то поможет: я выбираю Pro Micro для Pro Micro. 

И что? Неужели работает?

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

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

sadman41 пишет:

Может это чем-то поможет: я выбираю Pro Micro для Pro Micro. 

И что? Неужели работает?

Да вроде работало. Это не моя основная ардуина, раз в полгода подключаю. Хотя вот интернеты пишут, что надобно как Леонардо шить. Думаете, что подводит уже склероз? :(

 

hcipap
Offline
Зарегистрирован: 13.05.2019

sadman41 пишет:

В Вашей версии IDE ребрендированный Pro Micro выглядит как Genuino Micro (под рукой нет сейчас своей IDE).

Ясно! Спасибо!

hcipap
Offline
Зарегистрирован: 13.05.2019

sadman41 пишет:

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

sadman41 пишет:

Может это чем-то поможет: я выбираю Pro Micro для Pro Micro. 

И что? Неужели работает?

Да вроде работало. Это не моя основная ардуина, раз в полгода подключаю. Хотя вот интернеты пишут, что надобно как Леонардо шить. Думаете, что подводит уже склероз? :(

Я когда загрузчик пытался залить - две статьи были про Леонардо. Всё не однозначно как-то :(

https://schou.dk/linux/arduino/isp/

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

hcipap пишет:
Всё не однозначно как-то :(
А много Вы в этой жизни однозначного-то видели?

hcipap
Offline
Зарегистрирован: 13.05.2019

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

hcipap пишет:
Всё не однозначно как-то :(
А много Вы в этой жизни однозначного-то видели?

Ну с UNO я пока не сталкнулся с проблемами. Есть правда всего две платы и не так часто что-то делаю, но сколько возился с ними - в тыкву ещё не превратил. А тут ... :(

dimax
dimax аватар
Онлайн
Зарегистрирован: 25.12.2013

Arduino IDE "из коробки" не поддеживает платы Pro Micro. Хотя они в принципе совместимы с Arduino/Genuino Micro, бутлоадер на том же ядре "Caterina", но разные его настройки. Разные device PID, иное аппартаное включение светодиодов Rx/Tx.  Поэтому возможны проблемы, о которых на форуме не раз писали . Так что лучше загрузать оригинальный аддон от спаркфана (этот тот производитель, с оригинала которого и делают китайские клоны)  дабы всё работало корректно. Ссылка для менеджера плат:   https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Boa...