Например TDA7294

Форум РадиоКот • Просмотр темы - AVR128DA28 - кто сталкивался?
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 06:15:55

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


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



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Ср фев 09, 2022 23:50:58 
Встал на лапы

Зарегистрирован: Чт дек 16, 2021 18:20:02
Сообщений: 90
Рейтинг сообщения: 0
А есть тут кто сталкивался уже с новой серией АВРов новой серии ?
Кодинг сильно отличается от старых мег?
Чем прошивать и к каким пинам цеплять программатор?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Вс фев 13, 2022 17:31:58 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 18798
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Чем прошивать и к каким пинам цеплять программатор?

А что на этот счёт даташит говорит?

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Ср фев 23, 2022 16:29:31 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Кодинг сильно отличается от старых мег?
Чем прошивать и к каким пинам цеплять программатор?


Приветствую!
Сам заинтересовался новой линейкой микроконтроллеров
Купил себе (вчера) попробовать плату AVR128DA48 Curiosity Nano.
Что касается прошивки. Прошивка идет по одному пину и называется это все дело UPDI программатор!
На моей плате он присутствует. Может прошивать все (память фьюзы и прочее), читать все, и вроде как внутрисхемная отладка. Работает это дело через студию.
В сети можно найти программатор из подручных средств.

Вот сейчас читаю даташит.
Отличия от меги есть. Больше регистров, больше настроек, всего больше. +Появилась гибкость переназначения функции пинов.
Пока еще сам не пробовал рулить ножками. Для управления пином предусмотрено 23 регистра :shock:

Вообще контроллер на первый взгляд интересный. Отличие от нашей меги как жигули с мерседесом :)) (И не говорите только про STM в этой ветки :) )

PS С праздников защитники! :beer:


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Чт фев 24, 2022 19:24:30 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Привет!
Решил поиграться с новой игрушкой.
И по классике жанра начнем с Blink.

Начать хочется с тактирования МК. В новой AVR128DA имеется 2 встроенных генератора. На 1-24МГц и часовой. Часов (Из даташита) не очень точный. И поэтому есть ножки для подключения внешнего часового генератор. Вообще там уйма чего можно сделать с тактовым сигналом. И комбинировать это все можно как хочешь. Больше информации из картинки:
Изображение
Настроек много. И пока я не все изучил. В данном моменте нас интересует написать Blink.

Фьюзы.
В целом в них ничего не поменялось. Но исчезло все что связано с Тактовым генератором.
Теперь настройка частоты осуществляется в коде устройства. (По умолчанию МК работает на частоте 4МГц).
Нас интересует регистр OSCHFCTRLA.
Изображение
Именно в нем производится настройка частоты МК. И опять там не все просто. Есть регистры которые являются заблокированными для изменения.
Для их разблокировки нужно прописать команду в другой регистр. Эта затея не очень, так как я нашел решение получше.

Для задания частоты можно написать команду:
_PROTECTED_WRITE (CLKCTRL.OSCHFCTRLA, CLKCTRL_FRQSEL_24M_gc);
Первый аргумент это регистр, второй это значение которое мы хотим установить.

Самое прикольное что в файле ioavr128da48.h все константы определены и подписаны.

Частоту мы задали. Давайте теперь напишем Blink.
Управление портами :) Взгляните.
Изображение
DIR - Регистр управление направлением портов (Непосредственный)
DIRSET - Регистр для установки битов в DIR (Типа маски)
DIRCLR - Регистр для сброса битов в DIR (Типа маски)
DIRTGL - Регистр для инверсии битов в DIR (Типа маски)

OUT-Регистр вывода (Если порты на выход).(Непосредственный)
OUTSET -(Типа маски)
OUTCLR - (Типа маски)
OUTTGL - (Типа маски)

IN - Регистр входа (Считывает вход)
INTFLAGS - Регистр флагов прерывания. (Для сброса бит-флага, нужно записать туда 1).
PORTCTRL - Пока не знаю зачем он нужен.

PINCONFIG -Регистр конфигурации всего порта разом (Настройка сразу всех ног). Можно: включить прерывание, подтяжку резистором и настроить форму сигнала для обработки прерывания.
Изображение
PINCTRLUPD - (Типа маски)
PINCTRLSET - (Типа маски)
PINCTRLCLR - (Типа маски)

PIN0CTRL......PIN7CTRL - Тоже самое что и PINCONFIG, только можно настроить каждую ножку индивидуально.

Для чего столько всего? Как пишут в даташите это сделано ради быстродействия кода.
Когда мы обращаемся к (Непосредственным) регистрам это требуется несколько тактов.
Когда мы взаимодействуем используя (Регистры Маски) то код выполняется за 1 такт.

И БОЛЬШОЕ нововведение это то что на каждую ножку можно повесить прерывание!!!!!

Сначала классический "Полный" Код
Код:
#define F_CPU      24000000UL       
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
   _PROTECTED_WRITE (CLKCTRL.OSCHFCTRLA, CLKCTRL_FRQSEL_24M_gc); //Установка частоты
   PORTC.DIR= PIN6_bm; //Порт 6 на выход
   while (1)
   {
      PORTC.OUT|= PIN6_bm; //Установка на порте 6 лог.1
      _delay_ms(1000);
      PORTC.OUT&=~PIN6_bm; //Установка на порте 6 лог.0
      _delay_ms(1000);
   }
}

Можно и по другому:
Код:
   PORTC.DIRSET= PIN6_bm;
   while (1)
   {
      PORTC.OUTSET= PIN6_bm;
      _delay_ms(1000);
      PORTC.OUTCLR=PIN6_bm;
      _delay_ms(1000);
   }

или
Код:
   PORTC.DIRSET= PIN6_bm;
   while (1)
   {
      PORTC.OUTTGL= PIN6_bm;
      _delay_ms(1000);
   }

В общем вариаций много.
Так же нужно сказать про виртуальные порты VPORTx
Изображение
Если я правильно понял даташит, то они нужны для специфического кода программы который располагается в другой области памяти..... :shock:
Я встречал этот код в Бутлодере.... и сомневаюсь что для нас это актуально....

На сегодня как то так. Если вам интересно, то могу писать дальше свои эксперименты по этому контроллеру. :beer:


Вложения:
VPORTx.PNG [6.03 KiB]
Скачиваний: 934
PINCONFIG.PNG [45.49 KiB]
Скачиваний: 939
PORT.PNG [35.25 KiB]
Скачиваний: 941
OSCHFCTRLA.PNG [65.94 KiB]
Скачиваний: 941
тактирование.PNG [31.86 KiB]
Скачиваний: 938
Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Сб фев 26, 2022 10:43:42 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Что то уже не получается запустить UART на этом МК.....
Ковыряюсь уже 2 дня. И Пример даже не работает от производителя :(


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Вс фев 27, 2022 12:00:09 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Ситуация на данный момент такая.
UART на МК работает четко. Проблема с программатором.
На ножку микросхемы программатора сигнал UART приходит. (Проверил анализатором и ткнул в эту ножу другими usb to com преобразователем).
Я думаю что проблема в прошивке программатора. Уже создал на форуме производителя тему с описанием проблемы. Но пока ответа нет..... Буду долбить их дальше.

Надо обязательно починить программатор. Он очень годный.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Вс фев 27, 2022 12:28:35 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 296
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1220
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Поставьте буферные резисторы (470..1000 Ом) к программатору. Не будет блокировать уровни пинах.
При необходимости постаьте резисторы и на UART.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Пн фев 28, 2022 16:22:05 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Ну как обычно. Виной всему невнимательность :facepalm:

Нужно в программе мониторинга COM порта включить DTR (Готовность приемника данных). Это даже в инструкции к плате написано.
А я это проморгал..... А потом и инструкцию посеял и забыл про неё. Все в другую смотрел (Очень похожую на вид). :facepalm:

Ладно. Хорошо что все работает!
Очень кратенько. "Быстрый старт UART"
По настройкам говорить бесполезно. Их там очень много. Приведу просто список.
Изображение
С программной точки зрения особо отличий от старых МК нет.
Только чуть по другому рассчитывается скорость. (Формула работает с разными частотами кварца).
Приведу классически пример кода. Он возвращает строку что вы отправили в COM порт.
Код:
#define F_CPU                           24000000UL         
#define USART1_BAUD_RATE(BAUD_RATE)     ((float)(64 * F_CPU / (16 * (float)BAUD_RATE)) + 0.5)

#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>

static int uart_putchar(char c, FILE *stream);
static int uart_getchar(FILE *stream);

static FILE mystd = FDEV_SETUP_STREAM(uart_putchar, uart_getchar, _FDEV_SETUP_RW); //Поток

int main(void)
{
   _PROTECTED_WRITE (CLKCTRL.OSCHFCTRLA, CLKCTRL_FRQSEL_24M_gc);  //Настройка частоты кварца
   
   PORTC.DIRSET = PIN0_bm;                        /* set pin 0 of PORT C (TXd) as output*/
   PORTC.DIRCLR = PIN1_bm;                        /* set pin 1 of PORT C (RXd) as input*/
   
   USART1.BAUD = (uint16_t)(USART1_BAUD_RATE(9600));   //Задаем скорость
   USART1.CTRLC = USART_CHSIZE_8BIT_gc|USART_SBMODE_2BIT_gc; //Формат: 8Бит, 2 Стоп кадра         
   USART1.CTRLB = USART_TXEN_bm|USART_RXEN_bm;         //Включить Передатчик и приемник.
   
   stdout=&mystd;
   stdin=&mystd;
   while (1)
   {
      if (USART1.STATUS & USART_RXCIF_bm)            //Проверяем наличие данных
      {
         char str[80];
         scanf("%s", str);                     //Читаем данные
         printf("%s\n", str);                  //Печатаем то что прочитали
      }

      //printf("Hello World!\n");
   }
}

static int uart_putchar(char c, FILE *stream)         //отправка данных по USART
{
   if (c == '\n') uart_putchar('\r', stream);
   
   while(!(USART1.STATUS & USART_DREIF_bm));
   USART1.TXDATAL=c;
   return 0;
}

static int uart_getchar(FILE *stream)               //чтение данных по USART
{
   while(!(USART1.STATUS & USART_RXCIF_bm));
   return USART1.RXDATAL;
}

Также хочу сказать про PORTMUX (Port Multiplexer).
Он дает возможность переключать пины периферии на альтернативные ножки. Список регистров:
Изображение
Сводная табличка по UART
Изображение


Вложения:
tabl.JPG [33.74 KiB]
Скачиваний: 786
PORTMUX.JPG [41.46 KiB]
Скачиваний: 801
uart.JPG [50.15 KiB]
Скачиваний: 795
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Сб мар 05, 2022 18:58:15 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Всем привет!
Продолжаю свои эксперименты с микроконтроллером AVR128DA48.
Не буду приводить больше описания из даташита, так как смысла не вижу. Я почти не пользуюсь всякими хитрыми настройками, а использую только стандартный функционал.

Сегодня I2C+DS3231
I2C знатно попил крови. :)) Регистры и последовательность действий отличается от МЕГИ. Лично мне не удалось запустить правильно шину. Все время что то отсылалось не так, либо приходили не те данные.
Мне удалось найти рабочий пример кода на забугорном форуме. Пример очень хороший! И в примере более шире раскрыт функционал I2С. Так что кому интересно изучайте. :)

Для себя я использую стандартную "Тупую" последовательность. (Без прерываний и прочего). Пока мне такого кода хватает за глаза.
Приведу код I2C.
Спойлер
Код:
//////////////////////////////////////////////
//            Макроопределения         //
//////////////////////////////////////////////
#define TWI0_BAUD(F_SCL, T_RISE) ((((((float)F_CPU / (float)F_SCL)) - 10 - ((float)F_CPU * T_RISE))) / 2)
#define TWI_IS_CLOCKHELD() TWI0.MSTATUS & TWI_CLKHOLD_bm
#define TWI_IS_BUSERR() TWI0.MSTATUS & TWI_BUSERR_bm
#define TWI_IS_ARBLOST() TWI0.MSTATUS & TWI_ARBLOST_bm
#define TWI_IS_BUSBUSY() ((TWI0.MSTATUS & TWI_BUSSTATE_BUSY_gc) == TWI_BUSSTATE_BUSY_gc)
#define TWI_WAIT() while (!((TWI_IS_CLOCKHELD()) || (TWI_IS_BUSERR()) || (TWI_IS_ARBLOST()) || (TWI_IS_BUSBUSY())))

//////////////////////////////////////////////
//         Инициализация   I2C            //
//////////////////////////////////////////////
void I2C_Init()
{
    TWI0.MBAUD = (uint8_t)TWI0_BAUD(I2C_SCL_FREQ, 0);
   TWI0.MADDR = 0x00;
   TWI0.MDATA = 0x00;
    TWI0.MCTRLA = TWI_ENABLE_bm;   
   TWI0.MSTATUS = TWI_RIF_bm | TWI_WIF_bm | TWI_CLKHOLD_bm | TWI_RXACK_bm |TWI_ARBLOST_bm | TWI_BUSERR_bm | TWI_BUSSTATE_IDLE_gc;
}

//////////////////////////////////////////////
//         Старт условие I2C            //
//////////////////////////////////////////////
uint8_t I2C_Start(uint8_t address)
{
   uint8_t ticks = 254;
   TWI0.MADDR =address;
   while ((!((TWI_IS_CLOCKHELD()) || (TWI_IS_BUSERR()) || (TWI_IS_ARBLOST()) || (TWI_IS_BUSBUSY())))&&(ticks!=0))ticks--;
   if (ticks!=0) return OK_I2C;
   else return ERR_I2C;
}

//////////////////////////////////////////////
//            Запись I2C               //
//////////////////////////////////////////////
uint8_t I2C_Write (uint8_t data)
{
   uint8_t ticks = 254;
   TWI0.MDATA = data;         
   while ((!((TWI_IS_CLOCKHELD()) || (TWI_IS_BUSERR()) || (TWI_IS_ARBLOST()) || (TWI_IS_BUSBUSY())))&&(ticks!=0))ticks--;
   if (ticks!=0) return OK_I2C;
   else return ERR_I2C;
}

//////////////////////////////////////////////
//            Чтение I2C               //
//////////////////////////////////////////////
uint8_t I2C_Read (uint8_t acknowl)
{
   uint8_t ticks = 254;
   TWI0.MSTATUS = TWI_CLKHOLD_bm;
   while ((!((TWI_IS_CLOCKHELD()) || (TWI_IS_BUSERR()) || (TWI_IS_ARBLOST()) || (TWI_IS_BUSBUSY())))&&(ticks!=0))ticks--;
   if (acknowl == ACK) TWI0.MCTRLB = TWI_ACKACT_ACK_gc | TWI_MCMD_RECVTRANS_gc;
   else TWI0.MCTRLB = TWI_ACKACT_NACK_gc;
   return TWI0.MDATA;;
}

//////////////////////////////////////////////
//         Стоп условие I2C            //
//////////////////////////////////////////////
void I2C_Stop ()
{
   TWI0.MCTRLB |=TWI_MCMD_STOP_gc;
}

Про переменную "ticks". Она нужна для того что бы не зависала программа если I2C устройство отсутствует или неисправно на шине.
Благодаря этой переменной можно подключать/отключать I2C устройства на "Горячую" и не волноваться что МК зависнет.

Прикладываю свой пример тестовый программы.
*Сразу скажу что я не программист, а любитель! И если вы напишете более оригенально и лучше, то не стесняйтесь! Выкладывайте!


Вложения:
UART_I2C_DS3231.rar [63.3 KiB]
Скачиваний: 242
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Вс мар 06, 2022 18:56:47 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 3
Продолжаем разговор!
RTC - Real-Time Counter
Изображение
Часовой таймер.
В МК есть внутренний часовой кварц. И так же можно подключить внешний кварц. (Переключение источника тактирования осуществляется в регистре).
Внутренний кварц может выдавать стандартную частоту 32768Hz или через пределитель на 32 (1024Hz)
Далее эти такты можно разделить еще на 2;4;8;16;32;64;128;256;512;1024;2048;4096;8192;16384;32768.
Эти такты поступают в специальный счетный регистр (CNT размером 2 байта).

У часов есть 2 вектора прерывания:
Регистр (CMP размером 2 байта) - Compare Сравнение. Сгенерирует прерывания при совпадении.
Регистр (PER размером 2 байта) - Overflow Переполнение. Сгенерирует прерывания при совпадении И сбросит счетный регистр CNT.

Пример кода. Поморгаем лампочкой.
Код:
#define F_CPU 24000000UL   //Частота МК

#include <avr/io.h>
#include <avr/interrupt.h>

int main(void)
{
   _PROTECTED_WRITE (CLKCTRL.OSCHFCTRLA, CLKCTRL_FRQSEL_24M_gc); //Настройка частоты МК

   PORTC.DIRSET= PIN6_bm; //Пин Светодиода
   
   RTC.CLKSEL = RTC_CLKSEL_OSC32K_gc; //Тактирование от внутреннего кварца 32к
   RTC.INTCTRL=RTC_OVF_bm; //Прерывание при переполнении
   RTC.CTRLA=RTC_RTCEN_bm; //Включить Таймер
   RTC.PER = 0x8000; //Совпадение и сброс 0x8000=32768Hz

   sei(); //Разрешить прерывание
   
   while (1){}
}
   ISR(RTC_CNT_vect)
   {
      PORTC.OUTTGL= PIN6_bm; //Инвертировать пин светодиода
      RTC.INTFLAGS = RTC_OVF_bm; //Сбросить флаг прерывания
   }

Так же есть одно замечание в даташите. При настройке регистров конфигурации требуется некоторое количество тактов для синхронизации. То есть внесенные изменения применяются не сразу.
Для отслеживание синхронизации есть специальный регистр и флаги. (Так что если критично то все можно отслеживать.)
Еще есть возможность корректировки ± 1 PPM - ± 127 PPM.

Про Sleep Mode. Таймер может работать в Sleep Mode при условии что установлен специальные бит в регистре настроек.

Нам осталось понять что такое PIT Таймер Периодического Прерывания
Тут вообще все просто. PIT генерирует прерывания в зависимости от количества тактов RTC
Можно выбрать из следующих значений тактов: 4;8;16;32;64;128;256;512;1024;2048;4096;8192;16384;32768.
PIT работает в любом спящем режиме.

Пример кода.
Код:
#define F_CPU 24000000UL   //Частота МК

#include <avr/io.h>
#include <avr/interrupt.h>

int main(void)
{
   _PROTECTED_WRITE (CLKCTRL.OSCHFCTRLA, CLKCTRL_FRQSEL_24M_gc); //Настройка частоты МК

   PORTC.DIRSET= PIN6_bm; //Пин Светодиода

   RTC.CLKSEL = RTC_CLKSEL_OSC32K_gc; //Тактирование от внутреннего кварца 32к
   RTC.PITCTRLA=RTC_PITEN_bm|RTC_PRESCALER_DIV16384_gc; //Включить PIT + Каждые 16384 такта
   RTC.PITINTCTRL=RTC_PI_bm; //Включить прерывания PIT
   sei(); //Разрешить прерывание
   
   while (1){}
}
   ISR(RTC_PIT_vect)
   {
      PORTC.OUTTGL= PIN6_bm; //Инвертировать пин светодиода
      RTC.PITINTFLAGS = RTC_PI_bm; //Сбросить флаг прерывания
   }

Напоследок все регистры разом.
Изображение


Вложения:
reg.JPG [57.43 KiB]
Скачиваний: 705
CLK_RTC.JPG [38.49 KiB]
Скачиваний: 707
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Чт май 19, 2022 14:43:22 
Встал на лапы

Зарегистрирован: Чт дек 16, 2021 18:20:02
Сообщений: 90
Рейтинг сообщения: 0
Приветствую!
Сам заинтересовался новой линейкой микроконтроллеров
Купил себе (вчера) попробовать плату AVR128DA48 Curiosity Nano.


Доброго дня.
А где брали? Яндекс не выдает возможности покупки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Пт сен 22, 2023 22:31:00 
Открыл глаза

Зарегистрирован: Сб июл 30, 2011 21:00:24
Сообщений: 61
Рейтинг сообщения: 0
И так же можно подключить внешний кварц...

Как я понял, можно подключить только кварц на 32 кГц, а кварц, скажем, 4 МГц уже не подключить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Вт сен 26, 2023 19:53:09 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Как я понял, можно подключить только кварц на 32 кГц, а кварц, скажем, 4 МГц уже не подключить.


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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR128DA28 - кто сталкивался?
СообщениеДобавлено: Вс окт 08, 2023 21:39:14 
Открыл глаза

Зарегистрирован: Сб июл 30, 2011 21:00:24
Сообщений: 61
Рейтинг сообщения: 0
Я пока бросил заниматься микроконтроллером. Его негде не купить.
А что касается вопроса, то его лучше уточнить в даташите.

Разбирался с AVR32DA32-I/PT из аналогичной серии, покупал в ЧипДипе за 200 рублей. Нужны были несколько штук USART и SPI в одном корпусе, они там есть.
МК и сейчас можно купить, но несколько дороже.
Интересные МК с хорошо развитой периферией. Регистров для работы с периферией около 550 штук. Корпус легкопаяемый в домашних условиях.
Скорее всего, будет неплохая возможность для отладки, поскольку можно просматривать SRAM при работе.
Начал делать проект, где задействованы пара USART, один, как обычно, с компьютером, второй с другим устройством. Всё работает, понравилось.

Насчёт кварца, даташит, конечно, смотрел. Написано, можно подключить внешний кварц 32 кГц, как с другими кварцами, неясно.
Есть встроенный генератор с широким диапазоном частот, который может стабилизироваться внешним кварцем 32 кГц.
Как я понял, посчитали, что этого достаточно, т.е. ставишь внешний часовой кварц, а нужную частоту получаешь от внутреннего стабилизированного генератора.


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

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


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

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


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

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


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