Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт мар 12, 2013 16:05:45

Сообщение service47 »

Будет ли работать I2C если от микроконтроллера с 5В напряжения питания соединить через два резистора с ATmega88, запитанную от 3.5В.

Тут пишут:
http://we.easyelectronics.ru/Shematech/ ... oystv.html
что можно с полевым транзистором соединить по IIC два микроконтроллера. Как правильно это сделать и какой транзистор лучше применить.

И еще ATmega88 соединена по IIC с предусилителем на TDA7469 c напряжением питания 5В. Значит схема на полевых транзисторах получиться сдвоенной. От одного микроконтроллера с 5В с подтягивающими резисторами, через полевые транзисторы, снова подтягивающие резисторы, но к 3,5В и ко входу IIC ATmega88, затем с этих же входов снова на другие полевые транзисторы, после них подтягивающие резисторы к 5В и на вход IIC TDA7469.

Подходит ли для этих целей BSN20:
http://www.nxp.com/documents/data_sheet/BSN20.pdf
Реклама
Встал на лапы
Сообщения: 126
Зарегистрирован: Пн окт 13, 2014 09:31:45

Сообщение rahmaevao »

У меня вопрос.
Для связи двух устройств по rs-232 надо ли ставить как на схеме
Изображение
Или можно без них?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Котаны, такой вопрос. Есть микроконтроллер. Будем считать что пожирнее, из STM32. К нему подходят две линии с изменяющимися лог.сигналами, единичками и нулями. Линии эти он опрашивает, с частотой 2,4МГц каждую. Т.е. имеем поток в 4,8МБит/сек некоторых данных. И необходимо сохранить их на SD карточку. Как это правильно сделать? Чтоб потом можно было к этим данным обратиться как к файлу некоторой программой с ПК.

Я праильно понимаю, что в буффере надо накапливать пачку из 512 бит и писать такими кусками? А сам файл какого типа взять? ТХТ? BIN? Или ещё какие варианты есть? Какие могут возникнуть тонкости?
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт мар 12, 2013 16:05:45

Сообщение service47 »

Если ATmega16 запитана от 3,5В и к ней подключен разъем USB (к INT0, INT1 через резисторы 68 Ом D+ и D-) на 5В, как согласовать уровни напряжений.
Реклама
Эиком - электронные компоненты и радиодетали
Chettuser

Сообщение Chettuser »

Здрасьте всем.
Мучаю АЦП STM32F030. Что то не получается считать последовательно два канала АЦП (IN_8, IN_9). Перевёл чтение в функции, которые вызываю вручную и получаю в переменных ADC936 и ADCPOT одинаково изменяющиеся значения (Переменный резистор на IN_9).
Вроде бы выборку канала делаю функцией ADC_ChannelConfig(). Функции ADC_Cmd(ADC1,ENABLE) и DISABLE применил на всякий случай.
Спойлерvoid ADC_POT()
{
/* Convert the ADC1 Channel 8 and 9 with 28.5 Cycles as sampling time */
ADC_ChannelConfig(ADC1, ADC_Channel_9, ADC_SampleTime_239_5Cycles);
ADC_Cmd(ADC1,ENABLE);
ADC_StartOfConversion(ADC1);
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));
ADCPOT = ADC_GetConversionValue(ADC1);
ADC_StopOfConversion(ADC1);
ADC_Cmd(ADC1,DISABLE);
return;
}

void ADC_936()
{
ADC_ChannelConfig(ADC1, ADC_Channel_8, ADC_SampleTime_239_5Cycles);
ADC_Cmd(ADC1,ENABLE);
ADC_StartOfConversion(ADC1);
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));
ADC936 = ADC_GetConversionValue(ADC1);
ADC_StopOfConversion(ADC1);
ADC_Cmd(ADC1,DISABLE);
return;
}
Где я ошибся или что не увидел?
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Чт май 14, 2015 15:11:39
Откуда: Саратов

Сообщение FireProoF »

Насколько понял, для измерения по двум каналам и более нужно настраивать АЦП, указывая количество каналов и включив сканирование по списку.
P.S. ну или попробуйте отключать ацп после каждого измерения.
Здесь есть оба варианта и Ваша проблема
Реклама
Chettuser

Сообщение Chettuser »

Спасибо.

Кто нибудь пользовался OpenSTM32?
Я скачал, поставил. Но что то не могу открыть проект из Cube, посмотреть.
Изображение
Пункты меню неактивные. Обновления какие то среда сама закачала и установила.
Встал на лапы
Сообщения: 126
Зарегистрирован: Пн окт 13, 2014 09:31:45

Сообщение rahmaevao »

service47 писал(а):Если ATmega16 запитана от 3,5В и к ней подключен разъем USB (к INT0, INT1 через резисторы 68 Ом D+ и D-) на 5В, как согласовать уровни напряжений.
Можно не согласовывать, так как МК нормально поймет 5-ти вольтовые сигналы, а если МкК захочет лог 1 дать, то 3,5 входит в диапазон для лог 1 (более 2,5 В). Если уж совсем не в моготу, можно согласовать с помощью транзисторных ключей.
Изображение
(как на картинке, только используйте n-канальные транзисторы (серия даже есть IRLML).
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт мар 12, 2013 16:05:45

Сообщение service47 »

Для V-USB требуется тактовая частота микроконтроллера от 12 МГц и более. Используется ATmega16A, запитанная от 3.5В. Будет ли стабильно работать чтение данных из USB.
Родился
Сообщения: 5
Зарегистрирован: Вт апр 26, 2016 16:18:29

Сообщение xxx2142 »

Товарищи, подскажите , что за чип такой ST 1825-0057 и с чем его едят. Чип установлен на маленькой плате для обработки данных с картриджа принтера HP. Мне нужно снять с него дамп.
st1825.jpg
(21.88 КБ) 334 скачивания
Друг Кота
Аватара пользователя
Сообщения: 25434
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

xxx2142 писал(а):Мне нужно снять с него дамп.
Даже если Вы бы знали какой это контроллер, то и в этом случае Вы бы его не прочитали. У микросхем подобного назначения прошивки всегда залочены.
Скорее всего, это какой нибудь STM32F0 с заказной прошивкой. Причем с высокой степенью вероятности еще и масочной.
Chettuser

Сообщение Chettuser »

Нашёл в stm32f0xx.h следующее выражение:
ADC_CCR_VBATEN
В описании регистра CCR что то такого не нашёл. Это для чего?
Друг Кота
Аватара пользователя
Сообщения: 25434
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Есть мнение, что это КОНСТАНТА...
И ее значение в хедере откомментировано:

Код: Выделить всё

#define  ADC_CCR_VBATEN                       ((uint32_t)0x01000000)       /*!< Voltage battery enable */
Вымогатель припоя
Аватара пользователя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Сообщение scorpi_0n »

RM0091

Код: Выделить всё

Bit 24 VBATEN: VBAT enable
This bit is set and cleared by software to enable/disable the VBAT channel.
0: VBAT channel disabled
1: VBAT channel enabled
Note:Software is allowed to write this bit only when ADSTART=0 (which ensures that no conversion is ongoing).
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Чт май 14, 2015 15:11:39
Откуда: Саратов

Сообщение FireProoF »

Всем привет. Такая ситуация. Спрашиваю датчик на i2c в тупом цикле, все норм. Как только начинаю опрашивать его через таймер, то чтение встает на месте. Частоту таймера уже до герца снизил.
Stm32f3 discovery. L3gd20
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Чт май 14, 2015 15:11:39
Откуда: Саратов

Сообщение FireProoF »

Еще вопрос: как передать по UART число с точкой, чтобы можно было принять на компьютере в терминале без проблем?
P.S. с предыдущим вопросом разобрался. Там таймер с измерениями стартовал раньше инициализации периферии.
Друг Кота
Аватара пользователя
Сообщения: 25434
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

FireProoF писал(а):как передать по UART число с точкой
Вероятно, передав в нужном месте эту самую точку... :)))
Вопрос странный...
Вы не в курсе относительно форматирования вывода в sprintf или относительно того, что в терминал нужно передавать ASCII?
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Чт май 14, 2015 15:11:39
Откуда: Саратов

Сообщение FireProoF »

Я вот с точкой понял. Т.е. сначала передаем целую часть, потом знак точки, потом дробную. Дробную часть придётся урезать. ПРост думал, может что получше есть)
Chettuser

Сообщение Chettuser »

Постигаю просветление с DMA в STM32. А вот как народ умудряется с GPIO через DMA работать? На картинках в RM в разделе DMA про GPIO ничего нету, это и понятно. Как я понимаю вместо начального адреса памяти надо прописать адрес порта и без инкремента? А какой тогда режим выставлять - "память-периферия" или "память-память"? И как тут быть с сигналом "Event"?
Спасибо.
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Чт май 14, 2015 15:11:39
Откуда: Саратов

Сообщение FireProoF »

Столкнулся с необъяснимым) Есть L3GD20. Это ДУС с термометром. Выходной регистр термометра размером в один байт. Масштабный коэффициент 1 град/бит. Вроде всё здорово). Считываю показания: 0х12 = 18 град. Тут мне пришла мне мысль нагреть его феном. Грею, а показания температуры стали опускаться! Даж в минус уходит.
За основу взял STэмовскую библиотеку под stm32f3discovery
Спойлер

Код: Выделить всё

void Demo_GyroReadTempRaw (uint8_t* pfData, uint8_t* pfDataSign)
{
  uint8_t rawData = 0;
  int i =0;
  
  L3GD20_Read(&rawData,L3GD20_OUT_TEMP_ADDR,1);
  
	if(((uint8_t)rawData > 0x7F) == 0) { *pfDataSign = 0;}
	else
	{
		*pfDataSign = 1;
		rawData &= 0x7F;
		rawData = 0x7F - rawData;
	}
		
	*pfData = rawData;
}
Кто-нибудь может это объяснить?
Ответить

Вернуться в «Разные вопросы по МК»