atmega8 + бибилиотека SD.h

genia1991
Offline
Зарегистрирован: 25.12.2019

не получается привязать библиотеку SD в среде IDE  к атмеге8 (

пишет как я понял не хватает памяти. Даже не компилируется.

Может есть ЛЕГКИЕ библиотеки специально под этот контроллер или может как то можно удалить лишнее с библиотеки SD. В скетче основное это чтение с карты. но и запись на карту было бы тоже хорошо.

можно ли что то придумать?

genia1991
Offline
Зарегистрирован: 25.12.2019

так пишет:

 

c:/users/appdata/local/arduino15/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: C:\Temp\arduino_build_18698/ReadWrite.ino.elf section `.text' will not fit in region `text'

c:/users/appdata/local/arduino15/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: region `text' overflowed by 2198 bytes

collect2.exe: error: ld returned 1 exit status

exit status 1
Ошибка компиляции для платы Arduino NG or older.

rkit
Offline
Зарегистрирован: 23.11.2016

Слишком много для sd. Что ещё жрёт память

genia1991
Offline
Зарегистрирован: 25.12.2019

я пробовал даже просто загружать стандартный скетч ReadWrite.ino ошибка как выше была.

Такая ошибка только с библиотекой SD. Где то писали тоже что вроде как в атмеге8 не хватает памяти для загрузки скетча.

kalapanga
Offline
Зарегистрирован: 23.10.2016

genia1991 пишет:

Такая ошибка только с библиотекой SD. Где то писали тоже что вроде как в атмеге8 не хватает памяти для загрузки скетча.

Просто диву даёшься - "где-то писали, вроде как"! То есть где посмотреть характеристики используемого процессора - это для Вас загадка? А что тиньку тринадцатую для работы с sd картой не взяли? А вдруг бы упихнулось!

genia1991
Offline
Зарегистрирован: 25.12.2019

kalapanga пишет:

genia1991 пишет:

Такая ошибка только с библиотекой SD. Где то писали тоже что вроде как в атмеге8 не хватает памяти для загрузки скетча.

А что тиньку тринадцатую для работы с sd картой не взяли? А вдруг бы упихнулось!

если помощь нечем можно было и не писать ЭТО

 

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

genia1991 пишет:

если помощь нечем можно было и не писать ЭТО

да совершенно правильно он пишет, кто за вас должен искать эту информацию? библиотека SD сразу при запуске отводит под буфер чтения карточки 512 байт. А теперь откройте даташит на атмегу8 и посмотрите, скорлько у нее ОЗУ... что там остается под программу то?

genia1991
Offline
Зарегистрирован: 25.12.2019

b707 пишет:

genia1991 пишет:

если помощь нечем можно было и не писать ЭТО

да совершенно правильно он пишет, кто за вас должен искать эту информацию? библиотека SD сразу при запуске отводит под буфер чтения карточки 512 байт. А теперь откройте даташит на атмегу8 и посмотрите, скорлько у нее ОЗУ... что там остается под программу то?

 

я это все понимаю SD не подходит. на загрузку она берез больше 8 кб. даже на чип не влезет.

Поэтому ищу чт ото очень простое и легкое. В интернете есть 1 библиотека но она примеров и для очень опытных сделана. я не смогу ее использовать.

Есть другой вариант. Но при записи 75 % показывает что занято памяти. буду тестить может что то и получится.

Но все же под атмегу8 сделать реально. на uno  у меня и так есть готовая рабочая программа. хочу именно под 8 ее переделать. под более дешевый чип

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

genia1991 пишет:

Но все же под атмегу8 сделать реально. на uno  у меня и так есть готовая рабочая программа. хочу именно под 8 ее переделать. под более дешевый чип

под атмегу168 переделайте - они даже дешевле атмеги8 на Али, а памяти больше и программируется даже проще, так как по пинам и регистрам полный аналог атмеги 328, что на уно

genia1991
Offline
Зарегистрирован: 25.12.2019

b707 пишет:

genia1991 пишет:

Но все же под атмегу8 сделать реально. на uno  у меня и так есть готовая рабочая программа. хочу именно под 8 ее переделать. под более дешевый чип

под атмегу168 переделайте - они даже дешевле атмеги8 на Али, а памяти больше и программируется даже проще, так как по пинам и регистрам полный аналог атмеги 328, что на уно

это будет второй вариант. просто у меня завалялась 8. хочется ее все таки добить )

а что скажете насчет библиотеки fat16? 

75% занято памяти. вроде есть шанс. но конечно на пределе ?

kalapanga
Offline
Зарегистрирован: 23.10.2016

genia1991, Вы бы ещё уточнили, а какую функцию у Вас SDкарта выполняет? Проекты с карточками, которые возможно Вы на атмеге8 видели, скорее всего совсем без файловой системы работают. Если Вам нужно какой-нибудь лог сохранять, а потом его через микроконтроллер же и читать, то это одно дело. А если карточку нужно ещё и в компьютер совать и работать именно с файлами, то лучше всё-таки сразу другой контроллер выбрать.

genia1991
Offline
Зарегистрирован: 25.12.2019

kalapanga пишет:

genia1991, Вы бы ещё уточнили, а какую функцию у Вас SDкарта выполняет? Проекты с карточками, которые возможно Вы на атмеге8 видели, скорее всего совсем без файловой системы работают. Если Вам нужно какой-нибудь лог сохранять, а потом его через микроконтроллер же и читать, то это одно дело. А если карточку нужно ещё и в компьютер совать и работать именно с файлами, то лучше всё-таки сразу другой контроллер выбрать.

основное это чтение строк и желательно дозапись что бы работала через UART.

при нажатии на кнопку вперед или назад контроллер должен выводить 1 строку на экране. экран OLED библиотеку сейчас не вспомню. надо в проэкте смотреть что там стоит. но чтояло там что то упрощенное текстовое . что то легкое.

Буду пробовать с FAT16 библиотекой делать если не получится то оставлю uno

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

а, так там еще и OLED? :) - чего ж вы хотите-то на своей атмеге8 ?

на самом деле не вижу ни малейшего смысла покупать младшие контроллеры для штучных изделий. Разница 50-100 рублей, а потом сидите неделями и не знаете как код запихнуть...

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

genia1991
Offline
Зарегистрирован: 25.12.2019

b707 пишет:

а, так там еще и OLED? :)

да стандартные библиотеки для  OLED прожорливые очень.

Но сейчас не могу глянуть. Но стоит у меня не стандартная. очень легкая текстовая версия. Возможно даже хватит места но это не точно. Проверю но думаю там все к нулю идет.

Или хотя бы гляну будет ли fat16 работать.

Но карточка у меня на 4 гиг. а желательно на 2 наверное и наверное форматировать надо в fat16 флешку?

Времени вообще сейчас нет что бы заняться этим (

Если бы кто то протестил и отписался что результаты дают

genia1991
Offline
Зарегистрирован: 25.12.2019

я протестил получается где то 106 % )

немного многовато. если конечно знать бы как уменьшить библиотеку для sd то очень даже реально все вместить.

мне только надо чтение файла и запись было бы хорошо.

Может кто нибудь помощь мне урезать fat16 библиотеку?

 

 

Скетч использует 7454 байт (103%) памяти устройства. Всего доступно 7168 байт.
Глобальные переменные используют 841 байт (82%) динамической памяти, оставляя 183 байт для локальных переменных. Максимум: 1024 байт.
Скетч слишком большой
Ошибка компиляции для платы Arduino NG or older.

 

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

не трогайте библиотеку, оптимизируйте свой код. 3% всегда можно найти, на чем сэкономить

kalapanga
Offline
Зарегистрирован: 23.10.2016

genia1991 пишет:

мне только надо чтение файла и запись было бы хорошо.

Может кто нибудь помощь мне урезать fat16 библиотеку?

Неиспользуемые функции в прошивку и так не попадут. Это у Вас уже без них размер прошивки такой.

Но 3%, как выше написали, уже есть шансы найти.

genia1991
Offline
Зарегистрирован: 25.12.2019

урезал все вообще в 94% и даже serial остался работать. Но это не считая что еще 2 кнопки я не подключал. Сейчас флешки рядом нет. Позже проверю все. Если флешка не подойдет то дальше развивать скетч не буду. Хотя на SD библиотеки работает хорошо. Может вечером проверю если получится по быстрому .только нечем ее форматировать в fat16. картридер не знаю рабочий или нет в компе

genia1991
Offline
Зарегистрирован: 25.12.2019

эм. не могу достать картридер нигде рабочий. мой уже что то не тю тю совсем.

Надо же как то форматнуть sd в fat16 файловую систему. вообще печалька

genia1991
Offline
Зарегистрирован: 25.12.2019

подключил sd карту но в терминале вот такая ошибка:

error: card.begin
SD error: 2

 

что это может быть?

карточка на 4 гиг. форматировал в fat16

подключил через sd адаптер для ардуино

такой скетч загружаю

/*
 * This sketch reads and prints the file
 * PRINT00.TXT created by fat16print.ino or
 * WRITE00.TXT created by fat16write.ino
 */
#include <Fat16.h>
#include <Fat16util.h> // use functions to print strings from flash memory

const uint8_t CHIP_SELECT = SS;  // SD card chip select pin.
SdCard card;
Fat16 file;

// store error strings in flash to save RAM
#define error(s) error_P(PSTR(s))

void error_P(const char* str) {
  PgmPrint("error: ");
  SerialPrintln_P(str);
  if (card.errorCode) {
    PgmPrint("SD error: ");
    Serial.println(card.errorCode, HEX);
  }
  while(1);
}

void setup(void) {
  Serial.begin(9600);
  Serial.println();
  PgmPrintln("type any character to start");
  while (!Serial.available());
  Serial.println();
  
  // initialize the SD card
  if (!card.begin(CHIP_SELECT)) error("card.begin");
  
  // initialize a FAT16 volume
  if (!Fat16::init(&card)) error("Fat16::init");
  
  // open a file
  if (file.open("PRINT00.TXT", O_READ)) {
    PgmPrintln("Opened PRINT00.TXT");
  } else if (file.open("WRITE00.TXT", O_READ)) {
    PgmPrintln("Opened WRITE00.TXT");    
  } else{
    error("file.open");
  }
  Serial.println();
  
  // copy file to serial port

//   easier way
  int16_t c;
  while ((c = file.read()) > 0) Serial.write((char)c);
  
  PgmPrintln("\nDone");
}

void loop(void) {}

 

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

открывайте исходники SD библиотеки и ищите сообщения об ошибках

genia1991
Offline
Зарегистрирован: 25.12.2019

b707 пишет:

открывайте исходники SD библиотеки и ищите сообщения об ошибках

вот такой кусок кода нашел. но не совсем понял что это за ошибка (

Мне кажется это ошибка:  что карточка не готова:

/** Card did not go ready */
uint8_t const SD_ERROR_ACMD41            = 0X2;

У меня карточка на 4 гиг. может надо на 2 гиг. ?

на 2 у меня просто нет такой (

 

 

 

 

//------------------------------------------------------------------------------
// error codes
/** Card did not go into SPI mode */
uint8_t const SD_ERROR_CMD0              = 0X1;
/** Card did not go ready */
uint8_t const SD_ERROR_ACMD41            = 0X2;
/** Write command not accepted */
uint8_t const SD_ERROR_CMD24             = 0X3;
/** Read command not accepted */
uint8_t const SD_ERROR_CMD17             = 0X4;
/** timeout waiting for read data */
uint8_t const SD_ERROR_READ_TIMEOUT      = 0X5;
/** write error occurred */
uint8_t const SD_ERROR_WRITE_RESPONSE    = 0X6;
/** timeout waiting for write status */
uint8_t const SD_ERROR_WRITE_TIMEOUT     = 0X7;
/** attempt to write block zero */
uint8_t const SD_ERROR_BLOCK_ZERO_WRITE  = 0X8;
/** card returned an error to a CMD13 status check after a write */
uint8_t const SD_ERROR_WRITE_PROGRAMMING = 0X9;
/** card fialed to initialize with CMD1*/
uint8_t const SD_ERROR_CMD1              = 0XA;
//------------------------------------------------------------------------------
/**
 * \class SdCard
 * \brief Hardware access class for SD flash cards
 *
 * Supports raw access to a standard SD flash memory card.
 *
 */
class SdCard  {
 public:
  /** Code for a SD error. See SdCard.h for definitions. */
  uint8_t errorCode;
  /** Data that may be helpful in determining the cause of an error */
  uint8_t errorData;
  
  bool begin(uint8_t chipSelect = SS, uint8_t sckDivisor = SPI_FULL_SPEED);
  uint32_t cardSize(void);
  /**
   * Initialize an SD flash memory card with default clock rate and chip
   * select pin.  See SdCard::begin(uint8_t chipSelectPin, uint8_t sckRateID).
   *
   * \return true for success or false for failure.
   */
  bool init(void) {
    return begin(SS, SPI_FULL_SPEED);
  }
  /**
   * Initialize an SD flash memory card.
   * 
   * \param[in] halfSpeed set SCK rate to half speed if true else full speed.  
   *
   * \return true for success or false for failure.   
   */
  bool init(bool halfSpeed) {
    return begin(halfSpeed ? SPI_HALF_SPEED : SPI_FULL_SPEED, SS);
  }
  /**
   * Initialize an SD flash memory card.
   *
   * \param[in] halfSpeed set SCK rate to half speed if true else full speed.
   * \param[in] chipSelect SD card chip select pin.
   *
   * \return true for success or false for failure.
   */  
  bool init(bool halfSpeed, uint8_t chipSelect) {
    return begin(halfSpeed ? SPI_HALF_SPEED : SPI_FULL_SPEED, chipSelect);}
  bool readBlock(uint32_t block, uint8_t* dst);

 

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

причем тут 2 или 4 гига? :) - Это просто ошибка номер 2: Card did not go ready

Английский несколько странный , наверно индиец писал :) - примерный перевод "карточка не переходит в режим готовности"

ХЗ что это значит на самом деле

genia1991
Offline
Зарегистрирован: 25.12.2019

b707 пишет:

причем тут 2 или 4 гига? :) - Это просто ошибка номер 2: Card did not go ready

Английский несколько странный , наверно индиец писал :) - примерный перевод "карточка не переходит в режим готовности"

ХЗ что это значит на самом деле

я думал может 4 гиг будет много. создал раздел на 1300мб.

Очень хочется что бы заработало :(   но пока полная печалька и не знаю что делать. купил картридер только что бы форматнуть эту карту но ничего не выходит (

очень хочется на атмеге 8 запустить.

 

у меня карта подключена через SS пин на D10. Адаптер обычный ардуиновский для SD карт синий. подключено по spi. размер карты сделал 1300мб

загружал скетч тот что выше. Пишет что мало памяти но грузит. 83% занято. Может и работает нестабильно из за этого (

 

очень нужна помощь :(

кстати ссылка библиотеку:

https://github.com/greiman/Fat16

genia1991
Offline
Зарегистрирован: 25.12.2019

нашел такую запись (

у меня по идеи такая SDHC

The class Fat16 is a minimal implementation of FAT16 on standard SD cards. High Capacity SD cards, SDHC, are not supported. It should work on all standard cards from 8MB to 2GB formatted with a FAT16 file system.

genia1991
Offline
Зарегистрирован: 25.12.2019

все уже работает )

очень довольный что не в пустую потратил столько времени и сил.  Все таки реально запустить sd на атмеге8 :)

Но видимо функционал придется резать. все таки память на пределе

genia1991
Offline
Зарегистрирован: 25.12.2019

для тех кому интересно будет

Скетч использует 5698 байт (79%) памяти устройства. Всего доступно 7168 байт.
Глобальные переменные используют 778 байт (75%) динамической памяти, оставляя 246 байт для локальных переменных. Максимум: 1024 байт.

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

genia1991 пишет:

Всего доступно 7168 байт.


а что так мало доступно? Должно быть больше 8к. Или у вас там бутлоадер?
Эээ батенька, с этого надо было начинать! Зачем там бут, если у вас наверняка на устройстве нет USB?

genia1991
Offline
Зарегистрирован: 25.12.2019

b707 пишет:
genia1991 пишет:

Всего доступно 7168 байт.

а что так мало доступно? Должно быть больше 8к. Или у вас там бутлоадер? Эээ батенька, с этого надо было начинать! Зачем там бут, если у вас наверняка на устройстве нет USB?

атмега8 + bootloader ардуино стоит.

а как тогда скетч грузить если прошивки не будет?

на атмеге8 же  и есть 8 кб

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

genia1991 пишет:

а как тогда скетч грузить если прошивки не будет?

А как Вы бутлоадер туда грузили? Вот так и скетч загружайте - через ISP. И не нужно бутлоадером место занимать, которого в Atmega8 и так мало.

Izvekoff
Offline
Зарегистрирован: 02.03.2020

b707 пишет:

открывайте исходники SD библиотеки и ищите сообщения об ошибках

какая FAT16 на флэхе 4 Гиг, вы о чём? )))

но решение проблемы есть, разбейте флэшку на два раздела по 2 гига и первый форматите в фат16

genia1991
Offline
Зарегистрирован: 25.12.2019

Izvekoff пишет:

b707 пишет:

открывайте исходники SD библиотеки и ищите сообщения об ошибках

какая FAT16 на флэхе 4 Гиг, вы о чём? )))

но решение проблемы есть, разбейте флэшку на два раздела по 2 гига и первый форматите в фат16

спасибо уже все работает ))

просто времени мало и не дочитал что нельзя использовать флешку больше чем 2 гиг. высокороскорсние использовать тоже нельзя.

 

genia1991
Offline
Зарегистрирован: 25.12.2019

Jeka_M пишет:

genia1991 пишет:

а как тогда скетч грузить если прошивки не будет?

А как Вы бутлоадер туда грузили? Вот так и скетч загружайте - через ISP. И не нужно бутлоадером место занимать, которого в Atmega8 и так мало.

А этот прием очень нужен. можно пожалуйста поподробнее как грузить на атмегу обычный скетч с IDE без бутлоадера?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

genia1991 пишет:

А этот прием очень нужен. можно пожалуйста поподробнее как грузить на атмегу обычный скетч с IDE без бутлоадера?

Подключаете к Atmega8 ISP-программатор (например USBasp) или ардуину с загруженным скетчем Arduino ISP. В Arduino IDE в меню "Инструменты" - "Программатор" выбираете программатор (USBasp или Arduino ISP соответственно). Скетч загружать через меню "Скетч" - "Загрузить через программатор".

genia1991
Offline
Зарегистрирован: 25.12.2019

Jeka_M пишет:

genia1991 пишет:

А этот прием очень нужен. можно пожалуйста поподробнее как грузить на атмегу обычный скетч с IDE без бутлоадера?

Подключаете к Atmega8 ISP-программатор (например USBasp) или ардуину с загруженным скетчем Arduino ISP. В Arduino IDE в меню "Инструменты" - "Программатор" выбираете программатор (USBasp или Arduino ISP соответственно). Скетч загружать через меню "Скетч" - "Загрузить через программатор".

спасибо надо будет проверить обязательно. Хотел только переспросить . Программатор выбирать ArduinoISP или Arduino as ISP ?

а фюзы записывать не надо отдельно?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

genia1991 пишет:

Хотел только переспросить . Программатор выбирать ArduinoISP или Arduino as ISP ?

Хм, раньше вроде только один был - Arduino as ISP. Не уверен, чем они отличаются, попробуйте оба.

genia1991 пишет:

а фюзы записывать не надо отдельно?

Если ранее в этот МК прошивали загрузчик, то вместе с ним прошиваются и нужные фьюзы. Повторно не надо. 
Если же будете прошивать новую Atmega8 без загрузчика, то фьюзы надо прошивать отдельно (по умолчанию МК настроен на внутренний осциллятор 1МГц). К сожалению, в Arduino IDE для этого нет удобного способа.

genia1991
Offline
Зарегистрирован: 25.12.2019

Jeka_M пишет:

genia1991 пишет:

Хотел только переспросить . Программатор выбирать ArduinoISP или Arduino as ISP ?

Хм, раньше вроде только один был - Arduino as ISP. Не уверен, чем они отличаются, попробуйте оба.

genia1991 пишет:

а фюзы записывать не надо отдельно?

Если ранее в этот МК прошивали загрузчик, то вместе с ним прошиваются и нужные фьюзы. Повторно не надо. 
Если же будете прошивать новую Atmega8 без загрузчика, то фьюзы надо прошивать отдельно (по умолчанию МК настроен на внутренний осциллятор 1МГц). К сожалению, в Arduino IDE для этого нет удобного способа.

скорее всего пункт: Arduino as ISP

Загрузчик тоже прошивал через ардуино (был в качестве программатора)

1. загрузил на uno скетч ArduinoISP

2. подсоединил к uno атмегу8 по spi

3. выбрал программатор Arduino as ISP

4. нажал записать загрузчик

Как я понял грузится загрузчик и уже настроенные фьюзы.

Вроде удобный способ.

А потом как я понимаю надо написать любой скетч и через меню скетч - загрузить через программатор (грузится в атмегу8 hex файл скетча любого нашего + удаляется bootloader но фьюзы остаются настроены)

Тем самым мы прошиваем восьмерку и памяти теперь у нас немного больше. потому что bootloader-а  у нас в чипе больше нет?

Скажите правильно ли я понимаю все пункты?

Гриша
Offline
Зарегистрирован: 27.04.2014

genia1991 пишет:

скорее всего пункт: Arduino as ISP

Загрузчик тоже прошивал через ардуино (был в качестве программатора)

1. загрузил на uno скетч ArduinoISP

2. подсоединил к uno атмегу8 по spi

3. выбрал программатор Arduino as ISP

4. нажал записать загрузчик

Как я понял грузится загрузчик и уже настроенные фьюзы.

Вроде удобный способ.

А потом как я понимаю надо написать любой скетч и через меню скетч - загрузить через программатор (грузится в атмегу8 hex файл скетча любого нашего + удаляется bootloader но фьюзы остаются настроены)

Тем самым мы прошиваем восьмерку и памяти теперь у нас немного больше. потому что bootloader-а  у нас в чипе больше нет?

Скажите правильно ли я понимаю все пункты?

вроде все верно, маленькое уточнение... при прошивке бутлоудера (пункт 4) загрузка начинается с прошивки фьюзов, а потом бут заливается. если далее заливать код по ISP   ЗАГРУЗЧИК ЗАТРЕТСЯ - ЕГО НЕ БУДЕТ. но программа этого не видит и согласно настройкам ограничивает размер кода для загрузки согласно выбраной плате. поставьте набор по ссылке из этого топика, там достаточно удобно.

еще раз, при программировании по ISP загрузчик на борту не нужен, более того он затирается, если был.

 

genia1991
Offline
Зарегистрирован: 25.12.2019

Гриша пишет:

genia1991 пишет:

скорее всего пункт: Arduino as ISP

Загрузчик тоже прошивал через ардуино (был в качестве программатора)

1. загрузил на uno скетч ArduinoISP

2. подсоединил к uno атмегу8 по spi

3. выбрал программатор Arduino as ISP

4. нажал записать загрузчик

Как я понял грузится загрузчик и уже настроенные фьюзы.

Вроде удобный способ.

А потом как я понимаю надо написать любой скетч и через меню скетч - загрузить через программатор (грузится в атмегу8 hex файл скетча любого нашего + удаляется bootloader но фьюзы остаются настроены)

Тем самым мы прошиваем восьмерку и памяти теперь у нас немного больше. потому что bootloader-а  у нас в чипе больше нет?

Скажите правильно ли я понимаю все пункты?

вроде все верно, маленькое уточнение... при прошивке бутлоудера (пункт 4) загрузка начинается с прошивки фьюзов, а потом бут заливается. если далее заливать код по ISP   ЗАГРУЗЧИК ЗАТРЕТСЯ - ЕГО НЕ БУДЕТ. но программа этого не видит и согласно настройкам ограничивает размер кода для загрузки согласно выбраной плате. поставьте набор по ссылке из этого топика, там достаточно удобно.

еще раз, при программировании по ISP загрузчик на борту не нужен, более того он затирается, если был.

 

 

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

 

Наверное я не понял как указать в файле boards.txt на освобождение места от загрузчика :(

мне надо просто загрузить эту инфу в файл boards (который находится в папке hardware/ avr)?

##############################################################

atmegang.name=Arduino NG or older

atmegang.upload.tool=avrdude
atmegang.upload.protocol=arduino
atmegang.upload.speed=19200

atmegang.bootloader.tool=avrdude
atmegang.bootloader.unlock_bits=0x3F
atmegang.bootloader.lock_bits=0x0F

atmegang.build.mcu=atmegang
atmegang.build.f_cpu=8000000L
atmegang.build.board=AVR_NG
atmegang.build.core=arduino
atmegang.build.variant=standard

## Arduino NG or older w/ ATmega168
## --------------------------------
atmegang.menu.cpu.atmega168=ATmega168

atmegang.menu.cpu.atmega168.upload.maximum_size=14336
atmegang.menu.cpu.atmega168.upload.maximum_data_size=1024

atmegang.menu.cpu.atmega168.bootloader.low_fuses=0xff
atmegang.menu.cpu.atmega168.bootloader.high_fuses=0xdd
atmegang.menu.cpu.atmega168.bootloader.extended_fuses=0xF8
atmegang.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_ng.hex

atmegang.menu.cpu.atmega168.build.mcu=atmega168

## Arduino NG or older w/ ATmega8
## ------------------------------
atmegang.menu.cpu.atmega8=ATmega8

atmegang.menu.cpu.atmega8.upload.maximum_size=7168
atmegang.menu.cpu.atmega8.upload.maximum_data_size=1024

atmegang.menu.cpu.atmega8.bootloader.low_fuses=0xdf
atmegang.menu.cpu.atmega8.bootloader.high_fuses=0xca
atmegang.menu.cpu.atmega8.bootloader.extended_fuses=
atmegang.menu.cpu.atmega8.bootloader.file=atmega8/ATmegaBOOT-prod-firmware-2009-11-07.hex

atmegang.menu.cpu.atmega8.build.mcu=atmega8

##############################################################

 

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

скопируйте секцию для атмеги8, назовите ее как-нить типа "атмега8 без бута" и исправьте парметр в строчке

atmegang.menu.cpu.atmega8.upload.maximum_size=7168

на 8192

genia1991
Offline
Зарегистрирован: 25.12.2019

b707 пишет:

скопируйте секцию для атмеги8, назовите ее как-нить типа "атмега8 без бута" и исправьте парметр в строчке

atmegang.menu.cpu.atmega8.upload.maximum_size=7168

на 8192

спасибо вроде понял. немного позже проверю этот способ

создал файл boards.txt (оригинал потом верну на место) с такими настройками.

 

Сам файл менял тот что в главной папке ардуино: Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt

изминил только строчку: atmegang.menu.cpu.atmega8.upload.maximum_size=8192

##############################################################

atmegang.name=Arduino NG or older

atmegang.upload.tool=avrdude
atmegang.upload.protocol=arduino
atmegang.upload.speed=19200

atmegang.bootloader.tool=avrdude
atmegang.bootloader.unlock_bits=0x3F
atmegang.bootloader.lock_bits=0x0F

atmegang.build.mcu=atmegang
atmegang.build.f_cpu=16000000L
atmegang.build.board=AVR_NG
atmegang.build.core=arduino
atmegang.build.variant=standard

## Arduino NG or older w/ ATmega168
## --------------------------------
atmegang.menu.cpu.atmega168=ATmega168

atmegang.menu.cpu.atmega168.upload.maximum_size=14336
atmegang.menu.cpu.atmega168.upload.maximum_data_size=1024

atmegang.menu.cpu.atmega168.bootloader.low_fuses=0xff
atmegang.menu.cpu.atmega168.bootloader.high_fuses=0xdd
atmegang.menu.cpu.atmega168.bootloader.extended_fuses=0xF8
atmegang.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_ng.hex

atmegang.menu.cpu.atmega168.build.mcu=atmega168

## Arduino NG or older w/ ATmega8
## ------------------------------
atmegang.menu.cpu.atmega8=ATmega8

atmegang.menu.cpu.atmega8.upload.maximum_size=8192
atmegang.menu.cpu.atmega8.upload.maximum_data_size=1024

atmegang.menu.cpu.atmega8.bootloader.low_fuses=0xdf
atmegang.menu.cpu.atmega8.bootloader.high_fuses=0xca
atmegang.menu.cpu.atmega8.bootloader.extended_fuses=
atmegang.menu.cpu.atmega8.bootloader.file=atmega8/ATmegaBOOT-prod-firmware-2009-11-07.hex

atmegang.menu.cpu.atmega8.build.mcu=atmega8

##############################################################

 

genia1991
Offline
Зарегистрирован: 25.12.2019

вроде все заработало :)

буду еще тестировать но вроде все работает идеально )

genia1991
Offline
Зарегистрирован: 25.12.2019

а еще интересно если использовать atmega328 то все шаги такие же делать надо как выше?

только везде надо будет выставлять и делать все под atmega328?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Для всех МК AVR.

genia1991
Offline
Зарегистрирован: 25.12.2019

Jeka_M пишет:

Для всех МК AVR.

спасибо

Гриша
Offline
Зарегистрирован: 27.04.2014

genia1991 пишет:

а еще интересно если использовать atmega328 то все шаги такие же делать надо как выше?

только везде надо будет выставлять и делать все под atmega328?

Jeka_M пишет:

Для всех МК AVR.

а чего ответ не полный :) фьюзы и загрузчик, на пример на НАНО проблема с вочдогом, нанку прошивают настройками УНО - камень один, а незначительные различия есть. 

т.е. вопрос какой-то непонятный, шаги то такие, а вот результаты могут быть разные.  

genia1991
Offline
Зарегистрирован: 25.12.2019

Гриша пишет:

genia1991 пишет:

а еще интересно если использовать atmega328 то все шаги такие же делать надо как выше?

только везде надо будет выставлять и делать все под atmega328?

Jeka_M пишет:

Для всех МК AVR.

а чего ответ не полный :) фьюзы и загрузчик, на пример на НАНО проблема с вочдогом, нанку прошивают настройками УНО - камень один, а незначительные различия есть. 

т.е. вопрос какой-то непонятный, шаги то такие, а вот результаты могут быть разные.  

Буду пробовать и атмегу328 прошить. сейчас ее просто нет и цены какие то большие очень. таргаши продают их по цене собранных ардуино. наглые очень они. а атмега8 вообще нереальных денег стоит (

может лучше у китайцев сразу пачку покупать. а не выручать наших

Гриша
Offline
Зарегистрирован: 27.04.2014

genia1991 пишет:

Буду пробовать и атмегу328 прошить. сейчас ее просто нет и цены какие то большие очень. таргаши продают их по цене собранных ардуино. наглые очень они. а атмега8 вообще нереальных денег стоит (

может лучше у китайцев сразу пачку покупать. а не выручать наших

1) atmega328 теперь разная ... и это очень печально, но не критично почитайте,.. часто непонятки возникают в посте почти ничего, кроме факта проблемы и ими весь инет завален...

2) ардуино разные, неужели нет подходящей под задачу готовой?  arduino pro mini... 

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

genia1991
Offline
Зарегистрирован: 25.12.2019

Гриша пишет:

genia1991 пишет:

Буду пробовать и атмегу328 прошить. сейчас ее просто нет и цены какие то большие очень. таргаши продают их по цене собранных ардуино. наглые очень они. а атмега8 вообще нереальных денег стоит (

может лучше у китайцев сразу пачку покупать. а не выручать наших

1) atmega328 теперь разная ... и это очень печально, но не критично почитайте,.. часто непонятки возникают в посте почти ничего, кроме факта проблемы и ими весь инет завален...

2) ардуино разные, неужели нет подходящей под задачу готовой?  arduino pro mini... 

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

 

я тоже не все могу запомнить и во времени проблема. программирование сам пытаюсь учить.  все это как хобби. деньги на этом не зарабатываю :)

программирую сейчас переводчик . анг- русс. будет полезная штука )

но все же остановился на 328. все таки памяти там больше.

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

Гриша
Offline
Зарегистрирован: 27.04.2014

genia1991 пишет:

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

патамучто ТАКИЕ объемы скорее исключение, чем правило. Проще ставит внешнюю память и туда скидывать. И МК никто не планирует массово использовать с криворуким кодом - для производства массовых изделий его оптимизируют. т.е. нытье десятка криворуких ползателей не причина для массового производства.  Ну и цена вопроса... 

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

genia1991 пишет:

программирую сейчас переводчик . анг- русс. будет полезная штука )

но все же остановился на 328. все таки памяти там больше.

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

да кто вам сказал, что таких нет? - навалом просто.  Далеко ходить не надо - в той же Меге 256 килобайт

Но юзерам сколько не дай - они всегда будут ныть. Потому что контроллер надо выбирать под задачу, а новички вечно сначала плату разведут, напаяют туда тини13, а потом жалуются, что система управления ядерным реактором не помещается в память :)

Взять хотя бы вас - ну ведь никому в здравом уме не придет в голову делать переводчик на атмеге328. Возьмите для этого Расбери - самое то. Хотя в принципе не ясно, кому это нужно, если в любой мобильник можно поставить словарик на десяток языков...