Поддержка камней Atmega64, Atmega128 и других...........

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Аватара пользователя
Grafsaxar
Лейтенант
Сообщения: 377
Зарегистрирован: 06.09.2015{, 16:04}
Репутация: 6
Откуда: Маркс-Энгелс
Имя: Alexander

Поддержка камней Atmega64, Atmega128 и других...........

#1

Сообщение Grafsaxar » 12.02.2019{, 12:42}

Добрый день знатоки а так же многоуважаемый автор программы.

Много тем создавалось о нехватки ресурсов на вселюбимый камень мега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.

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

Давайте сделаем свой контролёр и назовём по своему....

Кто за???????????????????????????????????
Вложения
mega128 pinout.jpg
Качество — это делать что-либо правильно, даже когда никто не смотрит

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

Поддержка камней Atmega64, Atmega128 и других...........

#2

Сообщение seri0shka » 12.02.2019{, 19:40}

Всё создано до нас: Crumbuino
Я купил несколько Atmega128 и доволен, проекты создаю в Flprog ,но приходится в проекте ставить тип контроллера Atmega2560, а после компиляции ручками вносить изменения. Конечно, удобней было бы, если б в программе была поддержка Atmega644 и Atmega128 (а так же Atmega8, это отдельный разговор), тем более добавить их намного проще, чем всё, что делает уважаемый автор.
Grafsaxar писал(а):
12.02.2019{, 12:42}
Готов создать и протестировать плату с поддержкой вышеупомянутых камней.
Собственно, плата не особо нужна, достаточно голого контроллера, даже без кварца, это один из плюсов MegaCore и MiniCore. Это добавляет ещё 2 пина для Atmega8/168/328, их тоже неплохо было бы иметь возможность задействовать в проекте (для себя решил пользовательскими блоками).
Вобщем, я ЗА, если это что-то решает.

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Поддержка камней Atmega64, Atmega128 и других...........

#3

Сообщение Ingwar » 12.02.2019{, 20:19}

seri0shka писал(а):
12.02.2019{, 19:40}
а после компиляции ручками вносить изменения.
Зачем лишние движения? Bobuino наше все :smile9:
viewtopic.php?t=3149&start=20
viewtopic.php?f=42&t=3815&p=58324&hilit=bobuino#p58324
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

Поддержка камней Atmega64, Atmega128 и других...........

#4

Сообщение seri0shka » 12.02.2019{, 21:32}

Ingwar писал(а):
12.02.2019{, 20:19}
Зачем лишние движения? Bobuino наше все
Bobuino, она же Atmega644 имеет 44 вывода, в проекте нет ни одной платы под 44-пиновый контроллер, так само как и под 64-пиновый (Atmega128). Так что выводы никак не могут соответствовать. Тем более не совпадают номера выводов I2C, SPI, и прочих. Так что после компиляции из FLprog в ArduinoIDE приходится править руками, и не дай бог где-то пропустить или перепутать.

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Поддержка камней Atmega64, Atmega128 и других...........

#5

Сообщение Ingwar » 12.02.2019{, 22:39}

seri0shka писал(а):
12.02.2019{, 21:32}
Так что после компиляции из FLprog в ArduinoIDE приходится править руками, и не дай бог где-то пропустить или перепутать.
В проекте выбираю мегу. Пины меги согласно рисункам https://github.com/MCUdude/MightyCore
Компилировал в IDE и как под Bobuino, как и под Standart. Удобно под разную разводку. В корпусах TQFP44 и DIP.
СпойлерПоказать
Безымянный.png
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

Поддержка камней Atmega64, Atmega128 и других...........

#6

Сообщение seri0shka » 12.02.2019{, 23:13}

Ingwar писал(а):
12.02.2019{, 22:39}
В проекте выбираю мегу
seri0shka писал(а):
12.02.2019{, 19:40}
...проекты создаю в Flprog ,но приходится в проекте ставить тип контроллера Atmega2560

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Поддержка камней Atmega64, Atmega128 и других...........

#7

Сообщение Ingwar » 12.02.2019{, 23:18}

Да, но пины то выставляешь в проекте, а не в IDE. Какая разница - смотреть разводку меги или bobuino. Там только с прерываниями повнимательней, но и они указаны на рисунках. Допускаю трудности при использовании готовых скетчей/ПБ заточенных под мегу.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

Поддержка камней Atmega64, Atmega128 и других...........

#8

Сообщение seri0shka » 12.02.2019{, 23:31}

Повторю: не совпадают номера выводов I2C, SPI, и прочих аппаратных интерфейсов, прерывания в том числе. Простейший пример из последних: часы реального времени по I2C отбирают в проекте 2 пина, которые должны управлять семисегментным индикатором, реально же для Atmega128 I2C работает по другим выводам и индикатору не мешают, вот и приходится в проекте вешать индикатор на "левые" пины, а потом вручную править в ИДЕ. Для более сложного проекта будет ещё больше коллизий. Всё можно решить, но речь об удобстве пользования программой.

Аватара пользователя
dekorator
Лейтенант
Сообщения: 427
Зарегистрирован: 06.09.2015{, 09:39}
Репутация: 7
Откуда: Баку

Поддержка камней Atmega64, Atmega128 и других...........

#9

Сообщение dekorator » 13.02.2019{, 00:28}

Была тема так и заглохла, наверно не достаточно людей поддержало.

Аватара пользователя
Grafsaxar
Лейтенант
Сообщения: 377
Зарегистрирован: 06.09.2015{, 16:04}
Репутация: 6
Откуда: Маркс-Энгелс
Имя: Alexander

Поддержка камней Atmega64, Atmega128 и других...........

#10

Сообщение Grafsaxar » 13.02.2019{, 10:59}

seri0shka писал(а):
12.02.2019{, 19:40}
Я купил несколько Atmega128 и доволен, проекты создаю в Flprog ,но приходится в проекте ставить тип контроллера Atmega2560, а после компиляции ручками вносить изменения.
Это называется что то вроде онанизма. А что если через год надо что то переделать?
seri0shka писал(а):
12.02.2019{, 19:40}
Собственно, плата не особо нужна, достаточно голого контроллера, даже без кварца, это один из плюсов MegaCore и MiniCore. Это добавляет ещё 2 пина для Atmega8/168/328
Ну да провода сразу будете к процессору припаивать.
Мега 328 работает с внутренним кварцем на 8 мгц.
Из за 2 ног с 16мгц на 8 :(((
seri0shka писал(а):
12.02.2019{, 23:31}
Повторю: не совпадают номера выводов I2C, SPI, и прочих аппаратных интерфейсов, прерывания в том числе. Простейший пример из последних: часы реального времени по I2C отбирают в проекте 2 пина, которые должны управлять семисегментным индикатором, реально же для Atmega128 I2C работает по другим выводам и индикатору не мешают, вот и приходится в проекте вешать индикатор на "левые" пины, а потом вручную править в ИДЕ
В этом то и проблемма. Надо именно Flprog заточить под эти камни.
Создавать программу в Flprog да потом её ещё править в IDE и думать как то она криво работает задание не очень приятное, и требует не мало времени.
это извращение я пробовал несколько лет назад, когда Flprog была в версии 1.0 .
Даже статью об этом писал.
Не говорю что работать не будет, будет но не всегда.
Зависит от использования железа в камне. В основном таймеров.
Качество — это делать что-либо правильно, даже когда никто не смотрит

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Поддержка камней Atmega64, Atmega128 и других...........

#11

Сообщение Ingwar » 13.02.2019{, 11:56}

seri0shka писал(а):
12.02.2019{, 23:31}
Повторю: не совпадают номера выводов I2C, SPI, и прочих аппаратных интерфейсов, прерывания в том числе.
seri0shka писал(а):
12.02.2019{, 23:31}
для Atmega128 I2C работает по другим выводам
Мы наверно говорим про разные камни... Bobuino это ATmega8535/16/32/164/324/644/1284
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Аватара пользователя
Grafsaxar
Лейтенант
Сообщения: 377
Зарегистрирован: 06.09.2015{, 16:04}
Репутация: 6
Откуда: Маркс-Энгелс
Имя: Alexander

Поддержка камней Atmega64, Atmega128 и других...........

#12

Сообщение Grafsaxar » 13.02.2019{, 15:23}

seri0shka писал(а):
12.02.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
Качество — это делать что-либо правильно, даже когда никто не смотрит

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

Поддержка камней Atmega64, Atmega128 и других...........

#13

Сообщение seri0shka » 13.02.2019{, 20:42}

Ingwar писал(а):
13.02.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.02.2019{, 10:59}
Из за 2 ног с 16мгц на 8
Это одна из наименьших проблем. Если мне не нужно сверхбыстродействие, я вообще ставлю 1мгц.
Grafsaxar писал(а):
13.02.2019{, 10:59}
А что если через год надо что то переделать?
Если проект не сохранил, то через год будет проблематично переделать даже поддерживаемые платы. Если проект есть, то в проекте можно и нужно писать комментарии о том, что надо изменить руками в скетче. В любом случае, очень рекомендую все проекты хранить ещё и в виде скетчей, и с комментариями в тексте. Через год вы можете не вспомнить, в какой версии ФЛпрог делался проект, а открыть его в другой версии зачастую невозможно. Особенно с чужими проектами.

Отправлено спустя 3 минуты 25 секунд:
Хотя повторюсь: я двумя руками за поддержку дополнительных контроллеров!

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Поддержка камней Atmega64, Atmega128 и других...........

#14

Сообщение Ingwar » 13.02.2019{, 21:34}

seri0shka писал(а):
13.02.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. При разводке платы смотришь на какой ноге нужный тебе функционал и все.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

Поддержка камней Atmega64, Atmega128 и других...........

#15

Сообщение seri0shka » 13.02.2019{, 23:36}

Правил не из-за блоков, а из-за несоответствия контроллера в проекте (2560) и в реальности (128). Я в проекте не мог использовать по своему назначению выводы, которые "якобы" были заняты часами реального времени.

Отправлено спустя 5 минут 35 секунд:
Вот кусочек проекта.
СпойлерПоказать
2222.png

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 476
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 54
Откуда: Омск

Поддержка камней Atmega64, Atmega128 и других...........

#16

Сообщение kulibinsvv » 14.02.2019{, 05:52}

Ingwar писал(а):
13.02.2019{, 21:34}
из за каких блоков используемых в Flprog Вам приходится заморачиватся
"Заморачиваться" приходится, в первую очередь, с аналоговыми выходами (ШИМ). У каждого типа микроконтроллеров они находятся на разных портах (у Ардуино - логических выводах).
Надо отметить, что проблему представляет не физическая привязка функций микроконтроллера к его ногам, сколько логическое разбиение на порты. Поскольку в С/С++ приходится оперировать символическими именами портов, а не номерами выводов микросхемы.
Тот же TWI (I2C): у одних микроконтроллеров семейства AVR привязан к порту D, у других - к С, у третьих - к В. Дак ещё и у одного порта могут быть использованы разные разряды. Про другие семейства микроконтроллеров (не AVR) и говорить не чего.
Из-за этого и не удаётся создать единую систему логической нумерации выводов для всех микроконтроллеров.

Отправлено спустя 14 минут 38 секунд:
Для проекта Bobuino в FLProg однозначно надо выбирать Mega2560. Ни каких замарок с использованием штатных блоков не возникает. Единственный неприятный момент это выводы ШИМ, которые надо отслеживать самостоятельно и править ручками в Arduino IDE.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

Аватара пользователя
Grafsaxar
Лейтенант
Сообщения: 377
Зарегистрирован: 06.09.2015{, 16:04}
Репутация: 6
Откуда: Маркс-Энгелс
Имя: Alexander

Поддержка камней Atmega64, Atmega128 и других...........

#17

Сообщение Grafsaxar » 14.02.2019{, 12:07}

seri0shka писал(а):
13.02.2019{, 20:45}
Grafsaxar писал(а): ↑Вчера{, 07:59}
Из за 2 ног с 16мгц на 8
Это одна из наименьших проблем. Если мне не нужно сверхбыстродействие, я вообще ставлю 1мгц.
Возможно для управления простой логики.......Вполне.
А вот для вещей посерьёзнее туговато.

Осебенно с выводом информации да дисплей и отслеживании короткого импульса.

Нашёл и заказал интересную платку.......
https://ru.aliexpress.com/item/ATMEL-AT ... 33edELfnen

Вот жду с нетерпением.....

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

Вот возмёт и заточит Flprog уже на 2 неделе вахты под ATmega128.

Отправлено спустя 1 минуту 48 секунд:
dekorator писал(а):
13.02.2019{, 00:28}
Была тема так и заглохла, наверно не достаточно людей поддержало.
Проспал видать я её:)))
Качество — это делать что-либо правильно, даже когда никто не смотрит

gafner2289
Рядовой
Сообщения: 11
Зарегистрирован: 07.10.2017{, 19:22}
Репутация: 0
Откуда: Славянск-на-Кубани

Поддержка камней Atmega64, Atmega128 и других...........

#18

Сообщение gafner2289 » 23.02.2019{, 23:42}

Попробуйте подкорректировал библиотеку выводов MegaCore. Пока не проверял.
arduino-mega.rar
(790.34 КБ) 105 скачиваний

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 22
Откуда: Кременчуг
Имя: Сергей

Поддержка камней Atmega64, Atmega128 и других...........

#19

Сообщение seri0shka » 24.02.2019{, 00:06}

gafner2289 писал(а):
23.02.2019{, 23:42}
подкорректировал библиотеку выводов MegaCore
С какой целью? Вроде в старой нормально было?

gafner2289
Рядовой
Сообщения: 11
Зарегистрирован: 07.10.2017{, 19:22}
Репутация: 0
Откуда: Славянск-на-Кубани

Поддержка камней Atmega64, Atmega128 и других...........

#20

Сообщение gafner2289 » 24.02.2019{, 10:01}

чтобы пины попадали с Flprog atmega2560
СпойлерПоказать
ПИН MEGA.jpg
Отправлено спустя 2 часа 56 минут 45 секунд:
Не могу понять с Atmega128 не компилируется, а Atmega1281 все окей.
СпойлерПоказать
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++;}}

Ответить

Вернуться в «Спросить у знатоков»