Например TDA7294

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





Текущее время: Чт апр 18, 2024 14:59:18

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


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



Начать новую тему Ответить на тему  [ Сообщений: 12482 ]     ... , , , 616, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пт дек 03, 2021 00:41:34 
Мудрый кот
Аватар пользователя

Карма: 12
Рейтинг сообщений: 142
Зарегистрирован: Пт фев 27, 2015 20:57:08
Сообщений: 1754
Откуда: Курск
Рейтинг сообщения: 0
ARV, Прошу прощения. :oops: Последние вопросы к данному разделу действительно не относятся...

Добавлено after 9 minutes 28 seconds:
Увлекся...
Кстати, действительно помехи могут мешать. Не подумал... На собственном опыте убедился. приемник радиолюстры вдруг начал переставать принимать сигнал от пульта после первой успешной команды от пульта (включение первой половины люстры). Оказалось косяк шел от 12 вольтовых светодиодных лампочек (аналог галогенных). Внутри каждой лампочки был ШИМ и дроссель помимо прочих компонентов. И видимо его частота как-то конфликтовала с несущей частотой от пульта. Проблему решить увы так и не удалось, кроме как поставить назад галогенки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Вт дек 14, 2021 22:08:53 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Добрый вечер. У меня не большой вопросик.
Вот классический код начинающего микроконтроллерщика
Спойлер// ATtiny85 test
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>

int main(void){

PORTB |= (1 << PB2);
DDRB |= ( 1 << PB2 );// output

while(1){
PORTB |= (1<<PB2);
_delay_ms(500);
PORTB &= ~(1<<PB2);
_delay_ms(500);
}

}

/*
0x18 PORTB – – PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0
0x17 DDRB – – DDB5 DDB4 DDB3 DDB2 DDB1 DDB0
0x16 PINB – – PINB5 PINB4 PINB3 PINB2 PINB1 PINB0
*/
Необходимо переписать тот же код без использования имен регистров, используя исключительно их адреса (0x18, 0x17, 0x16) согласно ДШ.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Ср дек 15, 2021 00:00:14 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
а слабО проследить по цепочке инклюдников, начиная с avr/io.h, как там все эти PORTB и прочее описаны? вряд ли что-то иное придумать выйдет...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Ср дек 15, 2021 21:26:17 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Нет. Чем сейчас я и занимаюсь. Разбираю по запчастям вот это. Очень интересные файлики Board.h GPIO.h. Скачал, установил. Немного подкорректировал, что бы отвязаться от Ардуины. Перевожу комментарии. Устал просто.

Добавлено after 4 minutes 48 seconds:
Особенно записывать биты столбиком на листочке и смотреть, что получится после << >> | & :))

Добавлено after 4 hours 32 minutes 2 seconds:
Решено. Выпотрошил из файла GPIO.h. всё то без чего класс может работать. Пусть не по фэн-шую. Зато теперь всё понятно и работает. А теперь меня заинтересовала идея напр. реализовать таким методом аппаратный SPI интерфейс (да мало ли чего).
Спойлер/* ATiny85
регистр специального назначения
регистры SFR
*/
#define F_CPU 8000000UL //
#include <avr/io.h>
#include <util/delay.h>

#define GPIO_PIN(port,pin) (((port) << 4) | (pin))
#define GPIO_REG(pin) ((pin) >> 4)
#define GPIO_MASK(pin) _BV((pin) & 0xF)

class BOARD {
public: enum pin_t {
D0 = GPIO_PIN(0x36,0), // PINB:0
D1 = GPIO_PIN(0x36,1), // PINB:1
D2 = GPIO_PIN(0x36,2), // PINB:2
D3 = GPIO_PIN(0x36,3), // PINB:3
D4 = GPIO_PIN(0x36,4), // PINB:4
D5 = GPIO_PIN(0x36,5), // PINB:5
};
};

template<BOARD::pin_t PIN>
class GPIO {
public:

GPIO<PIN>& input() {
SFR()->ddr &= ~MASK;
return (*this);
}

void output(){ SFR()->ddr |= MASK;}

void low(){ SFR()->port &= ~MASK; }

void high(){ SFR()->port |= MASK; }

void write(int value){
if(value){ high(); } else { low(); }
}

bool read(){ return ((SFR()->pin & MASK) != 0); }

void operator=(int value) {
write(value);
}

protected:
struct gpio_reg_t {
volatile uint8_t pin; //!< Port Input Pins.
volatile uint8_t ddr; //!< Data Direction Register.
volatile uint8_t port; //!< Data Register.
};

gpio_reg_t* SFR(){ return ((gpio_reg_t*) GPIO_REG(PIN)); }

static const uint8_t MASK = GPIO_MASK(PIN);
};


GPIO<BOARD::D3> led;

int main(void){

led.output();// пин на выход

while (1) {// мигание светодиодом

led = 1; // зажечь
_delay_ms(500);
led = 0; // погасить
_delay_ms(500);

}
}


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Чт дек 16, 2021 15:54:54 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
Пусть не по фэн-шую.

С появлением constexpr перечисления для констант не используют:
Код:
struct BOARD
{
    static constexpr auto D0 = GPIO_PIN(0x36,0);
.....
};

И макросы тут лучше заменить constexpr/consteval функциями.


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пт дек 17, 2021 21:35:53 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Если внутри main() доступ к полям структуры такой: uint8_t MASK2 = GPIO_MASK(BOARDn::D3); Но вот как структуру сделать параметром шаблона с возможностью доступа к полям, пока затрудняюсь. Голый(не class) enum pin_t в шаблоне такой <pin_t PIN> :dont_know:

Добавлено after 2 minutes 3 seconds:
Код:
Спойлер/* ATiny85 -std=c++11
регистр специального назначения SFR
*/

#define F_CPU 8000000UL //
#include <avr/io.h>
#include <util/delay.h>

#define GPIO_PIN(port, pin) ( ((port) << 4) | (pin) )
#define GPIO_REG(pin) ((pin ) >> 4)
#define GPIO_MASK(pin) _BV( (pin) & 0xF )

class BOARD {
public:
enum pin_t {
D0 = GPIO_PIN(0x36,0), // PINB:0
D1 = GPIO_PIN(0x36,1), // PINB:1
D2 = GPIO_PIN(0x36,2), // PINB:2
D3 = GPIO_PIN(0x36,3), // PINB:3
D4 = GPIO_PIN(0x36,4), // PINB:4
D5 = GPIO_PIN(0x36,5), // PINB:5
};
};
/*
enum pin_t {
D0 = GPIO_PIN(0x36,0), // PINB:0
D1 = GPIO_PIN(0x36,1), // PINB:1
D2 = GPIO_PIN(0x36,2), // PINB:2
D3 = GPIO_PIN(0x36,3), // PINB:3
D4 = GPIO_PIN(0x36,4), // PINB:4
D5 = GPIO_PIN(0x36,5), // PINB:5
};
*/
/**/
struct BOARDn {
static constexpr auto D0 = GPIO_PIN(0x36,0); // PINB:0
static constexpr auto D1 = GPIO_PIN(0x36,1); // PINB:1
static constexpr auto D2 = GPIO_PIN(0x36,2); // PINB:2
static constexpr auto D3 = GPIO_PIN(0x36,3); // PINB:3
static constexpr auto D4 = GPIO_PIN(0x36,4); // PINB:4
static constexpr auto D5 = GPIO_PIN(0x36,5); // PINB:5
};

//template<pin_t PIN>
template<BOARD::pin_t PIN>
class GPIO {
public:
void output(){ SFR()->ddr |= MASK;}
void low(){ SFR()->port &= ~MASK; }
void high(){ SFR()->port |= MASK; }
void write(int value){
if(value){ high(); } else { low(); }
}
void operator=(int value){ write(value); }

protected:
struct gpio_reg_t {
volatile uint8_t pin; //!< Port Input Pins.
volatile uint8_t ddr; //!< Data Direction Register.
volatile uint8_t port; //!< Data Register.
};

gpio_reg_t* SFR(){ return ( (gpio_reg_t*)GPIO_REG(PIN) ); }

static const uint8_t MASK = GPIO_MASK(PIN);
};
/**/

GPIO<BOARD::D3> led;
//GPIO<pin_t::D3> led;

int main(void){

uint8_t TestMASK = GPIO_MASK(BOARDn::D3);// test

led.output();// пин на выход

while (1) {// мигание светодиодом

led=1; // зажечь
_delay_ms(500);
led=0; // погасить
_delay_ms(500);

}
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пт дек 17, 2021 21:56:02 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Но вот как структуру сделать параметром шаблона с возможностью доступа к полям, пока затрудняюсь.


Лучше передавать адрес структуры. Так как порты это volatile сущности, которые из constexpr "вышибают".

Спойлер
Код:
struct PIN
{
  volatile int x;
  volatile int y;
};

#define PIN_A_BASE (0x1234)
#define PIN_A ((PIN*)PIN_A_BASE)

template <uint32_t PIN_BASE>
class TEST
{
public:
  TEST() = default;
 
  static inline void WriteX(int x) { base()->x = x; }
 
private:
  static constexpr auto base() { return (PIN *)PIN_BASE; }
};

using TEST_PA = TEST<PIN_A_BASE>;

TEST_PA pa;

int main()
{
  PIN_A->x=0;
  TEST_PA::WriteX(1);
  pa.WriteX(2);
}
Compiler Exploer


Последний раз редактировалось VladislavS Сб дек 18, 2021 11:34:25, всего редактировалось 6 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пт дек 17, 2021 22:15:28 
Вымогатель припоя
Аватар пользователя

Карма: 1
Рейтинг сообщений: 12
Зарегистрирован: Вт июн 16, 2020 22:43:47
Сообщений: 646
Рейтинг сообщения: 0
вместо attiny2313 можно поставить attiny2313a, или не прошьётся ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Сб дек 18, 2021 05:35:48 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4220
Откуда: Ижевск
Рейтинг сообщения: 0
Можно без исключений.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Сб дек 18, 2021 05:48:34 
Друг Кота
Аватар пользователя

Карма: 187
Рейтинг сообщений: 8259
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Сообщений: 39541
Откуда: Нерезиновая
Рейтинг сообщения: 0
вместо attiny2313 можно поставить attiny2313a,
:facepalm:
Хотя, вообще- то, с точки зрения некоторых программаторов разница между ними есть, а для других программаторов- нет.. :dont_know:
Например, у TL866 они указаны отдельно:
Вложение:
2313.png [36.47 KiB]
Скачиваний: 94

А у AVRDUDESHELL - одной строкой:
Вложение:
2313-Д.png [11.72 KiB]
Скачиваний: 91


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Сб дек 18, 2021 15:05:55 
Вымогатель припоя
Аватар пользователя

Карма: 1
Рейтинг сообщений: 12
Зарегистрирован: Вт июн 16, 2020 22:43:47
Сообщений: 646
Рейтинг сообщения: 0
АлександрЛ писал(а):
точки зрения некоторых программаторов разница между ними есть

С точки зрения моего Изображение
хочу lgbtrgb контроллер с ду собрать https://radioparty.ru/device/avr/390-rg ... attiny2313
но просто 2313 битым оказался, хотя не использовал ни разу, в 2313a зашил так красный светит и 0 реакции. Этот вариант единственный с тв пультом нашёл, потому что все эти специальные пульты это дядя Ляо и ожидание в месяц.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Ср дек 29, 2021 22:15:26 
Электрический кот
Аватар пользователя

Карма: 11
Рейтинг сообщений: 17
Зарегистрирован: Вт авг 17, 2010 11:58:06
Сообщений: 1071
Откуда: Казань
Рейтинг сообщения: 0
Ребят подскажите если можно как быть и что делать.
МК СТМ32 на некоторых из МК отваливается СДВ интерфейс и программа его не видит.Приходится прошивать по УАРТ.
Пины Дата и Клок не подтянуты к плюсу питания.Может в этом проблема?Или всёж сам интерфейс в МК мрет?
И если проблема в этом то стоит ли подтягивать и порт УАРТ к плюсу?Для надежности.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн май 30, 2022 17:42:17 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт фев 05, 2019 17:20:08
Сообщений: 229
Откуда: Днепр, Украина
Рейтинг сообщения: 0
Поделитесь ссылкой если есть, на терминал у которого есть 9битный режим.. столько их скачал, а такого не нашел((

_________________
Одержать сто побед в ста битвах — это не вершина воинского искусства. Повергнуть врага без сражения — вот вершина.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн май 30, 2022 19:11:34 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Roman Solovey, ну, чисто теоретически мой терминал может включать 9-битный режим... вот ссылка: https://cloud.mail.ru/public/Audn/95Vd3Xz1j
только по-моему, драйверы портов этот режим не поддерживают, во всяком случае, мои попытки включить 9 бит дают ошибку

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн май 30, 2022 20:43:24 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт фев 05, 2019 17:20:08
Сообщений: 229
Откуда: Днепр, Украина
Рейтинг сообщения: 0
ARV, а как же тогда люди проверяют 9 битный режим? тупо два мк соеденяют?

_________________
Одержать сто побед в ста битвах — это не вершина воинского искусства. Повергнуть врага без сражения — вот вершина.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн май 30, 2022 21:05:47 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Roman Solovey, понятия не имею, кому он нафиг нужен, этот режим. подозреваю, что никто его и не проверяет и не применяет

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн май 30, 2022 21:13:56 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт фев 05, 2019 17:20:08
Сообщений: 229
Откуда: Днепр, Украина
Рейтинг сообщения: 0
Есть тензодатчики которые общаются с прибором, и вот у них как раз 9 битный протокол..
нужно скопировать протокол обмена но без терминала сложно отлаживать.

_________________
Одержать сто побед в ста битвах — это не вершина воинского искусства. Повергнуть врага без сражения — вот вершина.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн май 30, 2022 21:17:30 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
ну, еще раз: в моём терминале такой режим предусмотрен, но на виртуальном СОМ-порту моего ноутбука он не включается. если вы найдете такой порт с такими дровами, чтобы он включался, можете попробовать. функцию я ввел, но по вышеописанной причине протестировать не смог. 5, 6 и 7 бит вроде как работают, думаю, и 9 тоже сработает, если включить сумеете :)))

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн май 30, 2022 21:37:03 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт фев 05, 2019 17:20:08
Сообщений: 229
Откуда: Днепр, Украина
Рейтинг сообщения: 0
та я понял. вроде пишут что не поддерживается такой режим. Нужно прям в железе делать терминал)
почему до меня его никто не сделал...

_________________
Одержать сто побед в ста битвах — это не вершина воинского искусства. Повергнуть врага без сражения — вот вершина.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
СообщениеДобавлено: Пн май 30, 2022 21:59:05 
Друг Кота
Аватар пользователя

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

Потому что только мсье знает толк в извращениях))

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


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

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


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

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


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

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


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