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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
miharus
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Пт фев 18, 2011 12:04:23

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

Сообщение miharus »

ААА вот оно! был косяк с частотой! поставил в проекте как в кварце, ошибку не выдает, щас попробую вывести результат! спасибо, BCluster )))
3DRaven
Грызет канифоль
Сообщения: 294
Зарегистрирован: Пт мар 11, 2011 08:51:55

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

Сообщение 3DRaven »

Возился с датчиком ds18b20 неделю. Пока выяснилось, что он не работал только потому, что я индикацию повесил на МК и для генерации сигнала по 1вире не хватало тока у МК. Может чем поможет кому.

Но у меня вопрос есть. Как посчитать токи на схеме? То есть...можно было как то посчитать заранее, что у МК не хватит тяги что бы потянуть диодную индикацию семи сегментную и общение с датчиком?
сколько МК тратит тока что бы выдать 1 на ногу, сколько у него "в распоряжении" есть что бы не глючил и пр.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

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

Сообщение ploop »

сколько МК тратит тока что бы выдать 1 на ногу

Нисколько. А сколько будет кушать потребитель - зависит только от него.

Как же так можно подключить индикатор, чтобы напряжение просело? Без резисторов что-ли?
Аватара пользователя
IfoR
Поставщик валерьянки для Кота
Сообщения: 2029
Зарегистрирован: Сб ноя 15, 2008 10:09:56
Откуда: г. Тула
Контактная информация:

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

Сообщение IfoR »

Люди, а по моему вопросу есть что или мне case использовать? Или задать вопрос в соседней теме? :)
Изображение
/dev/urandom - гигабайты информации.

OS: openSUSE 13.2 (x86_64)
3DRaven
Грызет канифоль
Сообщения: 294
Зарегистрирован: Пт мар 11, 2011 08:51:55

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

Сообщение 3DRaven »

С резисторами. Я это вообще случайно обнаружил...хотя в статье со схемой писали, но не поверил.
Я подрубил программатор (от него схему питаю) и забыл отключить блок питания (он подрублен через стабилизатор и кондеры).
Датчик взял и обнаружился, хотя до этого признаков жизни не подавал...да еще и стал слать данные...но правда црц не проходит и шлет мусор...пока. Я еще не поставил дешифратор для индикации...индикатор с общим анодом и чем транзисторами рулить, проще дешифратор за 8р купить.

Вопрос остается. Есть нагрузка-индикатор. Можно ли заранее сказать, что МК нагрузку не потянет (любую вообще то). Не хочется еще раз в какой то схеме провозится неделю что бы такое обнаружить.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

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

Сообщение ploop »

Не понял про индикаторы, ну да ладно.
Можно ли заранее сказать, что МК нагрузку не потянет (любую вообще то).

Конечно. Открываем даташит, ищем максимальную нагрузку, которую может выдержать порт МК, а так же суммарную нагрузку на шины VCC и GND.
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

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

Сообщение demiurg301 »

Никак не могу уловить из даташита atmega128

Power-down Mode
....., an External Level Interrupt on INT7:4, or an External Interrupt on
INT3:0 can wake up the MCU
. This sleep mode basically halts all generated clocks, allowing
operation of asynchronous modules only.


И русское описание с gaw.ru

Внешние прерывания 7 - 4 активизируются через внешние выводы INT7:4, если установлены флаг I в регистре статуса SREG и соответствующая маска прерывания в регистре EIMSK. Условие, по которому генерируется прерывание, выбирается исходя из данных таблицы 50. Для определения фронтов на выводах INT7:4 осуществляется выборка их состояний. Если выбрано прерывание по фронту или изменению уровня, то прерывание будет сгенерировано, если на входе появляется импульс, длительность которого больше одного периода синхронизации. При действии на входе более коротких импульсов генерация прерывания не гарантируется. Обратите внимание, что частота синхронизации ЦПУ может быть ниже чем частота XTAL, если разрешена работа делителя частоты XTAL. Если выбрано прерывание по низкому уровню, то прерывание генерируется, если до момента окончания выполнения текущей инструкции на входе по прежнему присутствует низкий уровень. Если разрешено прерывание по уровню, то оно будет генерироваться непрерывно до тех пор, пока на входе присутствует низкий уровень.


А как сработает прерывание на 4-7 пине если тактовый генератор отключён?
Аватара пользователя
IfoR
Поставщик валерьянки для Кота
Сообщения: 2029
Зарегистрирован: Сб ноя 15, 2008 10:09:56
Откуда: г. Тула
Контактная информация:

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

Сообщение IfoR »

Ну да просто. Как сказано в английском варианте, при возникновении прерывания на INT-ах, камень просыпается, включив все свои тактовые генераторы. Точнее не он сам их включает, а вспомогательная цепочка логики, наверняка. Затем идёт обработка прерывания.
На счёт русского варианта, наверное имеется ввиду, что в спящем режиме тактовый генератор запускает в сам момент подачи импульса, то есть в этом случае и фронт импульса прерывания и фрон тактового сигнала примерно совпадают. В этом случае прерывание сразу же срабатывает. А в штатном режиме, что бы прерывание сработало, нужно после подачи импульса прерывания дождаться фронта тактового сигнала. В этом случае перерывание гарантированно сработает, если длительность импульса будет больше периода тактового сигнала (или больше полупериода).
Изображение
/dev/urandom - гигабайты информации.

OS: openSUSE 13.2 (x86_64)
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

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

Сообщение demiurg301 »

IfoR писал(а):Ну да просто. Как сказано в английском варианте, при возникновении прерывания на INT-ах, камень просыпается, включив все свои тактовые генераторы. Точнее не он сам их включает, а вспомогательная цепочка логики, наверняка. Затем идёт обработка прерывания.
На счёт русского варианта, наверное имеется ввиду, что в спящем режиме тактовый генератор запускает в сам момент подачи импульса, то есть в этом случае и фронт импульса прерывания и фрон тактового сигнала примерно совпадают. В этом случае прерывание сразу же срабатывает. А в штатном режиме, что бы прерывание сработало, нужно после подачи импульса прерывания дождаться фронта тактового сигнала. В этом случае перерывание гарантированно сработает, если длительность импульса будет больше периода тактового сигнала (или больше полупериода).


Понятно. Получается при использовании ноги INT4-7 для выхода из PowerDown разницы c использованием INT0-3 нет?
Т.е. разница только в фиксированном времени срабатывания или относительно тактовой?

Тогда не понятно... Камень проснулся например по спаду с 1 на 0 на INT4-7. Тогда как он "словит" прерывание если спад уже был , а тактовый запустился позже. Вот это никак не догоню...

*****************
Всё, догнал :) Спасибо за разъяснение
Аватара пользователя
miharus
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Пт фев 18, 2011 12:04:23

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

Сообщение miharus »

Кстати друзья, вот еще какой вопрос! сколько времени должно занимать чтение с датчика sd18b20? процедура чтения вот какая t=ds18b20_temperature(0). уменя она занимает около секунды и на это время перестает работать динамическая индикация.
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

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

Сообщение demiurg301 »

miharus писал(а):Кстати друзья, вот еще какой вопрос! сколько времени должно занимать чтение с датчика sd18b20? процедура чтения вот какая t=ds18b20_temperature(0). уменя она занимает около секунды и на это время перестает работать динамическая индикация.


Так загляните в либу.


float ds18b20_temperature(unsigned char *addr)
{
unsigned char resolution;
if (ds18b20_read_spd(addr)==0) return -9999;
resolution=(__ds18b20_scratch_pad.conf_register>>5) & 3;
if (ds18b20_select(addr)==0) return -9999;
w1_write(0x44);
delay_ms(conv_delay[resolution]);
if (ds18b20_read_spd(addr)==0) return -9999;
w1_init();
return (*((int *) &__ds18b20_scratch_pad.temp_lsb) & bit_mask[resolution])*0.0625;
}

Для 12 бит 800мс.

И не будет динамика работать - надо delay_ms(conv_delay[resolution]); заменить таймером тогда.
Аватара пользователя
miharus
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Пт фев 18, 2011 12:04:23

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

Сообщение miharus »

а если динамическую индикацию повесить на прерывание таймера, то она не будет прерываться этим фуфлом?)))
Kasey
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Пн ноя 08, 2010 23:15:12

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

Сообщение Kasey »

Объясните мне пару вопросов:
Вот у меня есть отладочная плата и мк с ядром ARM, подключается через USB к ноуту (установлен драйвер для эмуляции COM порта), на плате FT232BL... Настраиваю UART и кидаю через терминал данные в мк... почти работает. В даташите написано что FT232 - преобразователь USB в RS232... Вообщем, все как надо :) , но что-то я совсем не понимаю, что происходит:

Что у меня передается по USB шнуру? Те же 10бит (старт, 8 данных, стоп) которые создаются UARTом?
Или FT232 преобразовала их в сигналы USB data+,data-?
Почему на другом конце RS232, разве у него лог0 и лог1 не +5-15 и -5-15В?
Или RS232 это и есть UART?
А если бы у меня был ком-порт и нужный кабель, то во что бы превратилась схемка
[пк] - USB - [ft232] - UART - [мк] (если я правильно понимаю)?

Надеюсь, кто-нибудь сможет мне объяснить это простым языком, а то нигде ответа на эти мои странные вопросы не нашел. Хотя, они не так сильно важны для меня, ведь все работает, только для меня непонятно почему так работает и в каком виде информация приходит на комп. Если уж по USB-протоколу, то зачем вообще вообще виртуальный COM-порт? Совсем каша в голове :shock: , помогите разобраться. :oops: :facepalm:
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

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

Сообщение BerZerK-ku »

FT232 это преобразователь USB-UART. Для достижения заявленных уровней RS-232 необходимо дополнительное преобразование.
Если выражаться простым языком, польза микросхемы огромна. Начнем с того, что на современных ПК, не говоря о ноутбуках, нетбуках, смартфонах, планшетниках встретить COM порт практически нереально, а работать с уже имеющимися устройствами необходимо. При этом надо учесть, что ПО уже написано для работы с COM портом. Что делать?! Как что, применять шнурки-преобразователи USB-COM. ПО для ПК уже переписывать не надо (хотя не всегда), железяка к которой подцепляете шнурок тоже не видит разницы, все работает, все рады.
Идем дальше, разработка нового устройства. Например используем МК AVR ATmega8, как его соединять с ПК? Как вариант, использовать готовые библиотеки для подключения к USB на прямую. Можно и так, но при этом большая часть ресурсов МК будет потеряна. FT232 в этом случае берет основную часть работы с ПК на себя, передвая в МК требуемую информацию по UART.
Идем дальше, разработка нового ПО для ПК. Разработчик, имеющий долгие годы работающий с COM портом имеет возможность работать с ним и дальше, благодаря виртуальному порту. Нет необходимости изучать и разбираться с USB. Тем более нет необходимости разбираться с протоколом самого USB устройства.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

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

Сообщение ploop »

Что у меня передается по USB шнуру? Те же 10бит (старт, 8 данных, стоп) которые создаются UARTом?

Там работает обычный USB со своей спецификой. На стороне ПК драйвер преобразует это в ваши 8 бит, и предоставляет интерфейс в виде виртуального COM-порта. На сторон железки этим занимается FT232.
Отличие RS232 от UART уже объяснили.
Kasey
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Пн ноя 08, 2010 23:15:12

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

Сообщение Kasey »

Там работает обычный USB со своей спецификой. На стороне ПК драйвер преобразует это в ваши 8 бит, и предоставляет интерфейс в виде виртуального COM-порта.
Отлично, то что я хотел и узнать.
FT232 это преобразователь USB-UART.
Значит надпись "USB-RS232 convertor and interface" немного некорректна в описании отладочной платы?
И последний вопрос: если бы моя плата подключалась к com-порту напрямую, то FT232 там не нужен, т.е все шло прямо на ноги мк, так?
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

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

Сообщение Мастер Ломастер »

Kasey писал(а):И последний вопрос: если бы моя плата подключалась к com-порту напрямую, то FT232 там не нужен, т.е все шло прямо на ноги мк, так?

напрямую на МК нельзя, нужен преобразователь уровней, например MAX232 (или на транзисторах). сами же писали, что в СОМ-порту уровни совсем не ТТЛ-овские
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

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

Сообщение ploop »

Kasey, на выходе COM-порта настоящий RS232. Нужен согласователь уровней RS232-UART (MAX232)
Так же и наоборот: чтобы получить настоящий RS232-USB нужен FT232+MAX232
Kasey
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Пн ноя 08, 2010 23:15:12

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

Сообщение Kasey »

ААА! Все, разобрался! :)) ploop, Мастер Ломастер и всем остальным большое спасибо!
Аватара пользователя
DJ_Kiridza
Мучитель микросхем
Сообщения: 458
Зарегистрирован: Пн дек 13, 2010 13:01:59
Откуда: Украина
Контактная информация:

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

Сообщение DJ_Kiridza »

Всем привета.
Есть мелкий вопрос:
В ATtini2313 есть USI и USART, мне нужно повесить на одну ногу кучу DS18B20 (ок 10 шт.), подходит ли USI для работы с DS18B20. Значю что через USART проще, но мне USART нужен для связи с компом, а "вручную" городить интерфейс общения на обычной ноге не охота ??...

Вариант разные ноги = разные DS18B20 не подходит, т.к. эти ноги заняты своими функциями.
мысли мысли штош вы вйотесь
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
Ответить

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