Например TDA7294

Форум РадиоКот • Просмотр темы - Attiny 1-й серии как работать с регистрами напрямую?
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вт янв 06, 2026 16:39:26

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 56 ]    , , 3
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пн дек 30, 2024 13:33:35 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15343
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Так и выбирайте соответственно наиболее удобный набор кристаллов.
Зачем лезть в навороченное раньше времени?
Если возможности имеющейся базы до конца не использованы?
:dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пн дек 30, 2024 13:35:20 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2919
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24672
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Ну значит будем посмотреть в другую сторону.

И ты внезапно обнаружишь, что описание регистров периферии как структур является практически тотальным. И происходит это в связи доменной архитектурой периферии в пространстве памяти. То есть все таймеры, например, отличаются только тем, что у них разные начальные адреса. А все регистры внутри домена смещены идентично. Даже если конкретного регистра у таймера нет, этот адрес остается пустым. Поэтому структура - идеальный способ описания регистров периферии.
И даташит тут вообще не причем. Тем более, что имена полей структур более-менее соответствуют названиям регистров и самой периферии в даташитах. А если что то не нравится, всегда можно поправить в хедерах.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пн дек 30, 2024 13:41:19 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 48
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 478
Рейтинг сообщения: 0
Речь идет о мелкой 8 битной блохе за 1 дол., для которой нужно за час написать прошивку, залить и закинуть в какю нить железку и на МК 0-серии так и было.

0-серия точно такая же, те же порты, такой же двухрежимный TCA и CLKCTRL с делением на 6 по умолчанию. В 1 серию периферии добавили чуть и все.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пн дек 30, 2024 13:43:44 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15343
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Т. Е. В документации идёт "подгонка под СИ(ЯВУ).
Да и 1 и 0 серии это уже не атмел, а "микрочип стиль", причём с учётом всего ранее используемого.
И кой чего от ПИК24 возможно...
:roll:
Насчёт своих заголовочников, файлов описания ресурсов - так их (как и макросы в ассемблере) никто не отменял.
:hunger:


Последний раз редактировалось BOB51 Пн дек 30, 2024 13:44:32, всего редактировалось 1 раз.

Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пн дек 30, 2024 13:44:19 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2919
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24672
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Речь идет о мелкой 8 битной блохе за 1 дол., для которой нужно за час написать прошивку, залить и закинуть в какю нить железку и на МК 0-серии так и было. Но вот в новой 1-серии нужно прочитать мануал на 500+ страниц дабы сделать тоже самое. Зачем? Производитель тот же, среда разработки та же, железо и архитектура прежние... Но нет... надо все переделать.

С какого перепуга? Производитель сменился. Сменилась группа технической поддержки. Это хорошо заметно по даташитам. Только старые тулчейны от Атмела никто не переделывал, но и не поддерживает.
И, что характерно, тоже самое произошло и с PIC-ами. Потому что чипмейкер решает свои проблемы с продвижением товара на рынке. Опираться на вкусовщину вменяемый бизнес не будет. Любая нишевость в тулчейнах приводит к потерям клиентов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пн дек 30, 2024 13:44:39 
Прорезались зубы

Зарегистрирован: Чт дек 07, 2017 13:48:44
Сообщений: 205
Рейтинг сообщения: 0
Поэтому структура - идеальный способ описания регистров периферии.


Всё так, но нахиба всё это делать с 8-битным 8-ногим МК с памятью в 2кБ и ОЗУ 64б???


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пн дек 30, 2024 13:47:34 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2919
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24672
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
нахиба всё это делать с 8-битным 8-ногим МК...?

Чтобы не вызывать баттхерта у тех, кто приходит к этим чипам со стороны.
Кстати, да, у тебя ИДЕ не выдает подсказки в виде списка полей структур?
Может все таки ты чего то делаешь не так?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пн дек 30, 2024 13:48:43 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15343
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Разделение весьма здравое -
Общая документация на серию и уточняющая на каждый конкретный кристалл. Плюс отдельно прошивка и обнаруженные ошибки.
Другое дело - доступность на сегодня по известным причинам мягко выражаясь........
Нецензурная...
8)
Насчёт IDE...
Я пока ещё старыми версиями пользуюсь.
Остальное легче на адуринку свалить.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пн дек 30, 2024 14:17:52 
Прорезались зубы

Зарегистрирован: Чт дек 07, 2017 13:48:44
Сообщений: 205
Рейтинг сообщения: 0
Чтобы не вызывать баттхерта у тех, кто приходит к этим чипам со стороны.
Кстати, да, у тебя ИДЕ не выдает подсказки в виде списка полей структур?
Может все таки ты чего то делаешь не так?


Угу и вызвать "баттхерт" у тех кто не состороны)) Железная Л-огика))

IDE и всё т.п. в первом посте первого обзаца.
PlatformIO.
Подсказки то выделяет, но как мне понять что за конфигурацию 3-х битов WGMODE[0:2] отвечает групповая битовая маска TCA_SINGLE_WGMODE_NORMAL_gc;
В даташите написано что для режима "Normal" эти биты должны ровняться нулю. Маска ведь не называется CTRLB_WGMODE0_0_WGMODE1_0_WGMODE2_0
Тоесть я по подсказке и встречающемуся WGMODE_NORMAL в названии маски должем сам догадаться??
Но не это главное, можно почитать, попробовать и подстроится, но весь вопрос поста в том что нахрена так было делать и можно ли по прежнему.

Из всей писанины тут суть стала понятна: нахрена? - а ШО б было соувремённо; можно ли прежнему - можно, написав свой макрос, тулчайн, IDE и микросхему самому спаять... И вообще лучше пойти нахрен старому пердуну и не мешать соувремённым технологиям.

Всё понятно, всем спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пн дек 30, 2024 14:22:24 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 48
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 478
Рейтинг сообщения: 0
Подсказки то выделяет, но как мне понять что за конфигурацию 3-х битов WGMODE[0:2] отвечает групповая битовая маска TCA_SINGLE_WGMODE_NORMAL_gc;

TCA_SINGLE_WGMODE_NORMAL_gc - это не маска, маски на _bm(bit mask) заканчиваются.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пн дек 30, 2024 14:35:15 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2919
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24672
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Подсказки то выделяет, но как мне понять что за конфигурацию 3-х битов WGMODE[0:2] отвечает групповая битовая маска TCA_SINGLE_WGMODE_NORMAL_gc;
В даташите написано что для режима "Normal" эти биты должны ровняться нулю.

И что мешает прямо так и написать =0;? Использовать дефайны констант совершенно не обязательно.
И таки да, это не маска.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пн дек 30, 2024 16:30:35 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15343
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
...И вообще лучше пойти нахрен старому пердуну и не мешать соувремённым технологиям.

...

Вот только не надо зря фырчать!
8)
Никто ж не заставляет в режиме форс-мажора новинки осваивать. Другое дело не всегда приятно слушать "а чего Вы еще не на АРМе(STM32 или еще какой новинке)??"....
Просто при необходимости готовим заранее базу. Как и в старо-добрые время.
Тем более времени в достатке.
По мне так зачем за суперновинками раньше времени гнаться?
Да и Х/З чего в ближайшие годы актуальным будет. Возможно и китайский язык придется осваивать.
:roll:
А в "кащеевом сундуке" радиолюбителя и так добра лет на ... хватит.
:hunger: :wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Сб янв 04, 2025 22:42:33 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Вспомнилась эта тема :)
Пишу сейчас под мегу328-ю..
Даташит 16-го года..

В даташите регистры в TIMSK0:
OCIEB OCIEA TOIE

А в m328Pdef.inc
.equ TOIE0 = 0 ; Timer/Counter0 Overflow Interrupt Enable
.equ OCIE0A = 1 ; Timer/Counter0 Output Compare Match A Interrupt Enable
.equ OCIE0B = 2 ; Timer/Counter0 Output Compare Match B Interrupt Enable

Поправил, и дальше писать.. :dont_know:
Не проблема же :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Вс янв 05, 2025 11:10:18 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Далее по даташиту на 328-ю

В примерах по TWI на C и ASM-е:
Table 26-2. Assembly and C Code Example
Везде указан регистр TWCR0,

типа:
wait1:
in r16,TWCR0
sbrs r16,TWINT
rjmp wait1

и в описании TWCRn, как будто TWCR-ов несколько..
Да мне то пофиг.. я просто по накатанной свои конфиги в порядок привожу :dont_know:

А если первый раз и с "нуля", то да, придётся глубже изучать :dont_know:

Но это везде и повсюду такое, ничего необычного в этом нет :dont_know:



Добавлено after 1 minute 53 seconds:
PS: Atmel-42735B-ATmega328/P_Datasheet_Complete-11/2016


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пт янв 31, 2025 22:25:21 
Прорезались зубы

Зарегистрирован: Чт дек 07, 2017 13:48:44
Сообщений: 205
Рейтинг сообщения: 0
Тут надо было быстренько проверить одну задумку с прерыванием по внешнему событию (спадающий фронт на выводе МК).
За 10 мин. накидал код для ATtiny85 и всё что мне нужно было проверил в железе.

Инициализация таймера для генерации прерывания по спадающему фронту на выводе PB0 выглядит так:

Код:

  PCMSK = (1<<PCINT0);
  GIMSK = (1<<PCIE);
  MCUCR = (1<<ISC01);

  ISR (PCINT0_vect) {}



И тут мне вспомнилось как у меня бомбило от Микрочиповских говномасок в битах конфигурации для новых серий AVR.
Думаю, валяется ж где-то недопаяная плата с Attiny212. Посмотрю для интересу как там сиё наваять получитсо)))

Угу, 40 минут курения даташита и гугления родили ЭТО...

Инициализации таймера для генерации прерывания по спадающему фронту на пине PA6:

Код:

   TCD0.CTRLB = TCD_WGMODE_ONERAMP_gc;
   TCD0.INTCTRL = TCD_TRIGA_bm;//разрешить прерывания по событию
   TCD0.EVCTRLA= TCD_EDGE_FALL_LOW_gc | TCD_ACTION_bm | TCD_TRIGEI_bm;//сработка про спадающему фронту, включение захвата по каналу А и включение входных событий по каналу А
   TCD0.CTRLA = TCD_CLKSEL_SYSCLK_gc | TCD_CNTPRES_DIV4_gc | TCD_ENABLE_bm;//источник тактирования, делитель и включение таймера

   EVSYS.ASYNCCH0 = EVSYS_ASYNCCH0_PORTA_PIN6_gc;//сопоставление канала событий ch0 выводу PA6
   EVSYS.ASYNCUSER6 = EVSYS_ASYNCUSER6_ASYNCCH0_gc;//сопоставление таймера TCD0 (ASYNCUSER6) каналу событий ch0

   ISR (TCD0_TRIG_vect) {
   TCD0.INTFLAGS=TCD_TRIGA_bm;
   }
   


Это просто п...ц!
И вы мне тут хором все говорите, что это нормально и современно?))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Attiny 1-й серии как работать с регистрами напрямую?
СообщениеДобавлено: Пт янв 31, 2025 22:42:43 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 48
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 478
Рейтинг сообщения: 0
Таймер то зачем, если для каждого пина можно прерывания по низкому уровню или любому фронту настроить?
Код:
PORTA.PIN6CTRL = PORT_ISC_FALLING_gc;


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 56 ]    , , 3

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y