Страница 1 из 3
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 12 фев 2019, 12:42
Grafsaxar
Добрый день знатоки а так же многоуважаемый автор программы.
Много тем создавалось о нехватки ресурсов на вселюбимый камень мега328.
При нехватки приходилось брать несколько мег328 и соединять по уарту или брать всякие микрухи для увеличения ног работающие по И2С. Но пару микрух , часы и дисплей по И2С и начинала мега глючить. приходилось брать могучий:)) мега 2560.
Очень много времени уходит на эксперименты без желаемого результата.
Я думаю многим не помешало бы иметь в штатном камне хотя бы пару Уартов и побольше входов/выходов.
Я лично все проекты делаю с прошивкой по воздуху и передачей по модбасу, а это уже 2 уарта.
В итоге в нашей среде нет контролёра для среднего класса:))
Стоимость 10 шт. мега328 12,5$
Стоимость 10 шт. мега64 10$
Стоимость 10 шт. мега128 9$
Стоимость 10 шт. мега2560 50$
Представте если бы у вас была возможность купить
либо ВАЗ за 10000$ либо Мерс за 50000$ ,в середине ничего:((
Если ошибаюсь поправте.....
Куря как-то буржуйский

) форум наткнулся на интересный проект имеющий поддержку многих камней . Загрузчики И раскладка пинов прилагаются.
https://github.com/MCUdude/MegaCore
Так вот вопрос к Разработчику и знатокам:
Можно ли осуществить в среде Flprog поддержку этих камней????
Возможно это будет проще чем пилить поддержку STM32.
Готов создать и протестировать плату с поддержкой вышеупомянутых камней.
Давайте сделаем свой контролёр и назовём по своему....
Кто за???????????????????????????????????
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 12 фев 2019, 19:40
seri0shka
Всё создано до нас:
Crumbuino
Я купил несколько Atmega128 и доволен, проекты создаю в Flprog ,но приходится в проекте ставить тип контроллера Atmega2560, а после компиляции ручками вносить изменения. Конечно, удобней было бы, если б в программе была поддержка Atmega644 и Atmega128 (а так же Atmega8, это отдельный разговор), тем более добавить их намного проще, чем всё, что делает уважаемый автор.
Grafsaxar писал(а): 12 фев 2019, 12:42Готов создать и протестировать плату с поддержкой вышеупомянутых камней.
Собственно, плата не особо нужна, достаточно голого контроллера, даже без кварца, это один из плюсов MegaCore и MiniCore. Это добавляет ещё 2 пина для Atmega8/168/328, их тоже неплохо было бы иметь возможность задействовать в проекте (для себя решил пользовательскими блоками).
Вобщем, я ЗА, если это что-то решает.
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 12 фев 2019, 20:19
Ingwar
seri0shka писал(а): 12 фев 2019, 19:40а после компиляции ручками вносить изменения.
Зачем лишние движения? Bobuino наше все
viewtopic.php?t=3149&start=20
viewtopic.php?f=42&t=3815&p=58324&hilit=bobuino#p58324
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 12 фев 2019, 21:32
seri0shka
Ingwar писал(а): 12 фев 2019, 20:19Зачем лишние движения? Bobuino наше все
Bobuino, она же Atmega644 имеет 44 вывода, в проекте нет ни одной платы под 44-пиновый контроллер, так само как и под 64-пиновый (Atmega128). Так что выводы никак не могут соответствовать. Тем более не совпадают номера выводов I2C, SPI, и прочих. Так что после компиляции из FLprog в ArduinoIDE приходится править руками, и не дай бог где-то пропустить или перепутать.
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 12 фев 2019, 22:39
Ingwar
seri0shka писал(а): 12 фев 2019, 21:32Так что после компиляции из FLprog в ArduinoIDE приходится править руками, и не дай бог где-то пропустить или перепутать.
В проекте выбираю мегу. Пины меги согласно рисункам
https://github.com/MCUdude/MightyCore
Компилировал в IDE и как под Bobuino, как и под Standart. Удобно под разную разводку. В корпусах TQFP44 и DIP.
[spoiler]
Безымянный.png
[/spoiler]
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 12 фев 2019, 23:13
seri0shka
Ingwar писал(а): 12 фев 2019, 22:39В проекте выбираю мегу
seri0shka писал(а): 12 фев 2019, 19:40...проекты создаю в Flprog ,но приходится в проекте ставить тип контроллера Atmega2560
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 12 фев 2019, 23:18
Ingwar
Да, но пины то выставляешь в проекте, а не в IDE. Какая разница - смотреть разводку меги или bobuino. Там только с прерываниями повнимательней, но и они указаны на рисунках. Допускаю трудности при использовании готовых скетчей/ПБ заточенных под мегу.
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 12 фев 2019, 23:31
seri0shka
Повторю: не совпадают номера выводов I2C, SPI, и прочих аппаратных интерфейсов, прерывания в том числе. Простейший пример из последних: часы реального времени по I2C отбирают в проекте 2 пина, которые должны управлять семисегментным индикатором, реально же для Atmega128 I2C работает по другим выводам и индикатору не мешают, вот и приходится в проекте вешать индикатор на "левые" пины, а потом вручную править в ИДЕ. Для более сложного проекта будет ещё больше коллизий. Всё можно решить, но речь об удобстве пользования программой.
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 13 фев 2019, 00:28
dekorator
Была
тема так и заглохла, наверно не достаточно людей поддержало.
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 13 фев 2019, 10:59
Grafsaxar
seri0shka писал(а): 12 фев 2019, 19:40Я купил несколько Atmega128 и доволен, проекты создаю в Flprog ,но приходится в проекте ставить тип контроллера Atmega2560, а после компиляции ручками вносить изменения.
Это называется что то вроде онанизма. А что если через год надо что то переделать?
seri0shka писал(а): 12 фев 2019, 19:40Собственно, плата не особо нужна, достаточно голого контроллера, даже без кварца, это один из плюсов MegaCore и MiniCore. Это добавляет ещё 2 пина для Atmega8/168/328
Ну да провода сразу будете к процессору припаивать.
Мега 328 работает с внутренним кварцем на 8 мгц.
Из за 2 ног с 16мгц на 8

((
seri0shka писал(а): 12 фев 2019, 23:31Повторю: не совпадают номера выводов I2C, SPI, и прочих аппаратных интерфейсов, прерывания в том числе. Простейший пример из последних: часы реального времени по I2C отбирают в проекте 2 пина, которые должны управлять семисегментным индикатором, реально же для Atmega128 I2C работает по другим выводам и индикатору не мешают, вот и приходится в проекте вешать индикатор на "левые" пины, а потом вручную править в ИДЕ
В этом то и проблемма. Надо именно Flprog заточить под эти камни.
Создавать программу в Flprog да потом её ещё править в IDE и думать как то она криво работает задание не очень приятное, и требует не мало времени.
это извращение я пробовал несколько лет назад, когда Flprog была в версии 1.0 .
Даже статью об этом писал.
Не говорю что работать не будет, будет но не всегда.
Зависит от использования железа в камне. В основном таймеров.
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 13 фев 2019, 11:56
Ingwar
seri0shka писал(а): 12 фев 2019, 23:31Повторю: не совпадают номера выводов I2C, SPI, и прочих аппаратных интерфейсов, прерывания в том числе.
seri0shka писал(а): 12 фев 2019, 23:31для Atmega128 I2C работает по другим выводам
Мы наверно говорим про разные камни... Bobuino это ATmega8535/16/32/164/324/644/1284
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 13 фев 2019, 15:23
Grafsaxar
seri0shka писал(а): 12 фев 2019, 21:32в проекте нет ни одной платы под 44-пиновый контроллер, так само как и под 64-пиновый (Atmega128)
Ребята это разные камни.
Мега 1284 и мега 128 разные камни.
Мега1284 немного отличается от меги328
Мега1284:
• Peripheral Features
– Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
– Two 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture
Mode
– Real Time Counter with Separate Oscillator
– Six PWM Channels
– 8-channel, 10-bit ADC
Differential mode with selectable gain at 1x, 10x or 200x
Мега328
Peripheral Features
– Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode
– One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture
Mode
– Real Time Counter with Separate Oscillator
– Six PWM Channels
– 8-channel 10-bit ADC in TQFP and QFN/MLF package
Temperature Measurement
– 6-channel 10-bit ADC in PDIP Package
А вот мега128:
Peripheral Features
– Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode
– Four 16-bit Timer/Counter with Separate Prescaler, Compare- and Capture Mode
– Real Time Counter with Separate Oscillator
– Four 8-bit PWM Channels
– Six/Twelve PWM Channels with Programmable Resolution from 2 to 16 Bits
(ATmega1281/2561, ATmega640/1280/2560)
– Output Compare Modulator
– 8/16-channel, 10-bit ADC (ATmega1281/2561, ATmega640/1280/2560)
– Two/Four Programmable Serial USART (ATmega1281/2561, ATmega640/1280/2560)
– Master/Slave SPI Serial Interface
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 13 фев 2019, 20:45
seri0shka
Ingwar писал(а): 13 фев 2019, 11:56Мы наверно говорим про разные камни... Bobuino это ATmega8535/16/32/164/324/644/1284
Мы говорим о "поддержке камней Atmega64, Atmega128 и других..."
Но если Вам так понятнее, пусть будет Bobuino: пины I²C - 22,23, а для доступной в ФЛпрог ATmega2560 пины I²C - 20,21. Уже нестыковка. И так далее.
Grafsaxar писал(а): 13 фев 2019, 10:59Из за 2 ног с 16мгц на 8
Это одна из наименьших проблем. Если мне не нужно сверхбыстродействие, я вообще ставлю 1мгц.
Grafsaxar писал(а): 13 фев 2019, 10:59А что если через год надо что то переделать?
Если проект не сохранил, то через год будет проблематично переделать даже поддерживаемые платы. Если проект есть, то в проекте можно и нужно писать комментарии о том, что надо изменить руками в скетче. В любом случае, очень рекомендую все проекты хранить ещё и в виде скетчей, и с комментариями в тексте. Через год вы можете не вспомнить, в какой версии ФЛпрог делался проект, а открыть его в другой версии зачастую невозможно. Особенно с чужими проектами.
Отправлено спустя 3 минуты 25 секунд:
Хотя повторюсь: я двумя руками за поддержку дополнительных контроллеров!
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 13 фев 2019, 21:34
Ingwar
seri0shka писал(а): 13 фев 2019, 20:45Но если Вам так понятнее, пусть будет Bobuino: пины I²C - 22,23, а для доступной в ФЛпрог ATmega2560 пины I²C - 20,21. Уже нестыковка.
Если не секрет, из за каких блоков используемых в Flprog Вам приходится заморачиватся с корректировкой SDA SDL в IDE ? Сам использовал блоки Oled дисплеев на SSD и SH а так же MCP23017. Использовал IN0,1,2.
Ничего не правил в IDE. При разводке платы смотришь на какой ноге нужный тебе функционал и все.
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 13 фев 2019, 23:41
seri0shka
Правил не из-за блоков, а из-за несоответствия контроллера в проекте (2560) и в реальности (128). Я в проекте не мог использовать по своему назначению выводы, которые "якобы" были заняты часами реального времени.
Отправлено спустя 5 минут 35 секунд:
Вот кусочек проекта.
[spoiler]
2222.png
[/spoiler]
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 14 фев 2019, 06:06
kulibinsvv
Ingwar писал(а): 13 фев 2019, 21:34из за каких блоков используемых в Flprog Вам приходится заморачиватся
"Заморачиваться" приходится, в первую очередь, с аналоговыми выходами (ШИМ). У каждого типа микроконтроллеров они находятся на разных портах (у Ардуино - логических выводах).
Надо отметить, что проблему представляет не физическая привязка функций микроконтроллера к его ногам, сколько логическое разбиение на порты. Поскольку в С/С++ приходится оперировать символическими именами портов, а не номерами выводов микросхемы.
Тот же TWI (I2C): у одних микроконтроллеров семейства AVR привязан к порту D, у других - к С, у третьих - к В. Дак ещё и у одного порта могут быть использованы разные разряды. Про другие семейства микроконтроллеров (не AVR) и говорить не чего.
Из-за этого и не удаётся создать единую систему логической нумерации выводов для всех микроконтроллеров.
Отправлено спустя 14 минут 38 секунд:
Для проекта Bobuino в FLProg однозначно надо выбирать Mega2560. Ни каких замарок с использованием штатных блоков не возникает. Единственный неприятный момент это выводы ШИМ, которые надо отслеживать самостоятельно и править ручками в Arduino IDE.
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 14 фев 2019, 12:09
Grafsaxar
seri0shka писал(а): 13 фев 2019, 20:45Grafsaxar писал(а): ↑Вчера{, 07:59}
Из за 2 ног с 16мгц на 8
Это одна из наименьших проблем. Если мне не нужно сверхбыстродействие, я вообще ставлю 1мгц.
Возможно для управления простой логики.......Вполне.
А вот для вещей посерьёзнее туговато.
Осебенно с выводом информации да дисплей и отслеживании короткого импульса.
Нашёл и заказал интересную платку.......
https://ru.aliexpress.com/item/ATMEL-AT ... 33edELfnen
Вот жду с нетерпением.....
Так же ожидаю заглянет ли к нам в тему многоуважаемый автор Сергей......
У него ведь скоро вахта, а это обновление программы.....
Вот возмёт и заточит Flprog уже на 2 неделе вахты под ATmega128.
Отправлено спустя 1 минуту 48 секунд:
dekorator писал(а): 13 фев 2019, 00:28Была тема так и заглохла, наверно не достаточно людей поддержало.
Проспал видать я её:)))
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 23 фев 2019, 23:42
gafner2289
Попробуйте подкорректировал библиотеку выводов MegaCore. Пока не проверял.
arduino-mega.rar
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 24 фев 2019, 00:06
seri0shka
gafner2289 писал(а): 23 фев 2019, 23:42подкорректировал библиотеку выводов MegaCore
С какой целью? Вроде в старой нормально было?
Поддержка камней Atmega64, Atmega128 и других...........
Добавлено: 24 фев 2019, 12:58
gafner2289
чтобы пины попадали с Flprog atmega2560
[spoiler]
ПИН MEGA.jpg
[/spoiler]
Отправлено спустя 2 часа 56 минут 45 секунд:
Не могу понять с Atmega128 не компилируется, а Atmega1281 все окей.
[spoiler]unsigned long _SCT2 = 0UL;
unsigned long _SCT2IC = 0UL;
int _sCHCV = 0;
void setup()
{
pinMode(2, INPUT);
TCCR2A = (1<<WGM21);
TCCR2B = (1<<CS21);
OCR2A = 199;
TIMSK2 = (1<<OCIE2A);
sei ();
attachInterrupt(0, _SCT2coutFunction, FALLING);
}
void loop()
{
//Плата:1
analogWrite(12, _SCT2);
}
void _SCT2coutFunction()
{ _SCT2IC++;
}
ISR (TIMER2_COMPA_vect)
{if(_sCHCV==10000) {_sCHCV = 0;_SCT2 = _SCT2IC;
_SCT2IC = 0;
} else {_sCHCV++;}}[/spoiler]