Мелкие вопросы по МК и ПЛИС.
Re: Различные мелкие вопросы
спасибо вроде всё понятно - буду с помощью switcha наверно реализовывать.
Я бы на вашем месте за докторскую диссертацию немедленно сел. - Торопиться не надо, сесть я всегда успею (с)
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Различные мелкие вопросы
Арвар писал(а):надо значение ацп преобразовать в семисегментный код, т.е. нужен дешифратор.
Если нужно отображение только цифрами, то вначале необходимо преобразовать результат в двоично-десятичный код (инфы должно быть море, как это делать на асме например), а затем уже полученный код преобразовывать в семисегментный. Код создается по типу индикатора под общий анод или общий катод, а также в зависимости от того, какой уровень будет активным нуль или единица. Коды семисегментников зашиваю в EEPROM по адресам от 0 до 9(числа) или 0x0f (численно-буквенный код), откуда читаю значения.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- x_sensor
- Встал на лапы
- Сообщения: 105
- Зарегистрирован: Ср сен 23, 2009 06:35:44
- Откуда: г.Курган (У.Ф.О.)
Re: Различные мелкие вопросы
Народ, проверьте пожалуйста печатку для Altera Byte Blaster.
Будет ли работать...? Разводил первый раз...
Будет ли работать...? Разводил первый раз...
- Вложения
-
- Программатор Altera Byte Blaster.lay
- (39.51 КБ) 404 скачивания
Всё во вселенной - волны.
[img]http://s2.itrash.ru/idb/68e9de059f57aa20b262a9992f669e05/ouserbar.jpg[/img]
[img]http://s2.itrash.ru/idb/68e9de059f57aa20b262a9992f669e05/ouserbar.jpg[/img]
Re: Различные мелкие вопросы
Люди! Пните меня пож-та в нужном направлении!=)
делаю термометр на атмеге8 и семисегментном индикаторе.
сначала хотел измерять температуру с помощью резистивного моста с последующим АЦП преобразованием, но сегодня нашёл таки и купил датчик DS18b20=)
ввиду многочисленной разнообразной информации, причём местами очень непонятной, не знаю с чего начать=(
интерфейс 1-цшку изучил, пишу исключительно на С в avr-studio
/*
вот моё грубое понимание алгоритма работы проги:
1.сигнальный провод датчика можно кинуть практически на любую ногу МК
2. формируем этот вывод на выход - создаём импульс резет
3. формируем эту же ногу на вход, ждем сигнала присутствия, далее получаем информацию - сохраняем инфо о температуре в регитре - выводим этот результат на семисегментник
*/
делаю термометр на атмеге8 и семисегментном индикаторе.
сначала хотел измерять температуру с помощью резистивного моста с последующим АЦП преобразованием, но сегодня нашёл таки и купил датчик DS18b20=)
ввиду многочисленной разнообразной информации, причём местами очень непонятной, не знаю с чего начать=(
интерфейс 1-цшку изучил, пишу исключительно на С в avr-studio
/*
вот моё грубое понимание алгоритма работы проги:
1.сигнальный провод датчика можно кинуть практически на любую ногу МК
2. формируем этот вывод на выход - создаём импульс резет
3. формируем эту же ногу на вход, ждем сигнала присутствия, далее получаем информацию - сохраняем инфо о температуре в регитре - выводим этот результат на семисегментник
*/
Я бы на вашем месте за докторскую диссертацию немедленно сел. - Торопиться не надо, сесть я всегда успею (с)
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
Re: Различные мелкие вопросы
1. Шлём RESET;
2. Получаем PRESENCE;
3. Если датчик один, то отправляем 0xCC;
4. Запускаем измерение 0x44;
5. Ждём около 800 мс или ждём пока датчик "отпустит" линию от нуля;
6. Шлём RESET;
7. Получаем PRESENCE;
8. Просим у датчика считать данные 0xBE;
9. Читаем данные и CRC.
2. Получаем PRESENCE;
3. Если датчик один, то отправляем 0xCC;
4. Запускаем измерение 0x44;
5. Ждём около 800 мс или ждём пока датчик "отпустит" линию от нуля;
6. Шлём RESET;
7. Получаем PRESENCE;
8. Просим у датчика считать данные 0xBE;
9. Читаем данные и CRC.
- Pooher
- Мучитель микросхем
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
Re: Различные мелкие вопросы
Позволю себе поправить.
1-5 - всё ОК.
а дальше:
6. Шлём RESET;
7. Получаем PRESENCE;
8.0xCC;
9. Просим у датчика считать данные 0xBE;
10. Читаем данные и CRC.
1-5 - всё ОК.
а дальше:
6. Шлём RESET;
7. Получаем PRESENCE;
8.0xCC;
9. Просим у датчика считать данные 0xBE;
10. Читаем данные и CRC.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Re: Различные мелкие вопросы
надеюсь, что это пройдёт без проблем=)
Я бы на вашем месте за докторскую диссертацию немедленно сел. - Торопиться не надо, сесть я всегда успею (с)
-
Shurf
- Встал на лапы
- Сообщения: 83
- Зарегистрирован: Ср май 12, 2010 10:24:41
- Откуда: Чувашия, Новочебоксарск
- Контактная информация:
Re: Различные мелкие вопросы
Добрый день.
Добрался до программатора USBbit v1.1. Уж больно его народ расхваливает - и шьет быстро, и прошивать его самого не надо и всякое прочее бла-бла. Ну я обрадовался, сделал печатку (и надо-же, дорожки 0,4 мм вышли четкими по методу Лазерного Утюга), но не тут-то было - купить микросхему FT232RL оказалось сложно - в розничной сети она порядка 300р (меня Жаба давить начала), а оптовики предлагают только опт(что неудивительно, впрочем). Но розничники предложили аналог - PL2303. Уверяли, что распиновка у них идентична. Я задумался и полез искать дадашиты. Вот что получил в итоге:

Как видно, распиновка этих микросхем вроде как не сходится, то есть придется делать новую ПП.
Но если бы только в этом и была проблема..
Интересует функциональная взаимозаменяемость этих МС в вышеуказанном программаторе.
В частности на той же страничке программатора есть Вопрос-Ответ:
datasheet PL2303 на поиск по BitBang ничего не дал(
PS: пересмотрел схемы, кажется распиновка идентична, если GND3.3V и GND это одно и то же. И прочее с питанием.
Добрался до программатора USBbit v1.1. Уж больно его народ расхваливает - и шьет быстро, и прошивать его самого не надо и всякое прочее бла-бла. Ну я обрадовался, сделал печатку (и надо-же, дорожки 0,4 мм вышли четкими по методу Лазерного Утюга), но не тут-то было - купить микросхему FT232RL оказалось сложно - в розничной сети она порядка 300р (меня Жаба давить начала), а оптовики предлагают только опт(что неудивительно, впрочем). Но розничники предложили аналог - PL2303. Уверяли, что распиновка у них идентична. Я задумался и полез искать дадашиты. Вот что получил в итоге:
Как видно, распиновка этих микросхем вроде как не сходится, то есть придется делать новую ПП.
Но если бы только в этом и была проблема..
Интересует функциональная взаимозаменяемость этих МС в вышеуказанном программаторе.
В частности на той же страничке программатора есть Вопрос-Ответ:
В: Можно-ли вместо микросхемы FT232RL использовать FT245BM?
О: В FT245BM НЕТУ BitBang Режима. Он есть в FT245R. Принцип работы данного программатора основан как-раз на функциях BitBang.
datasheet PL2303 на поиск по BitBang ничего не дал(
PS: пересмотрел схемы, кажется распиновка идентична, если GND3.3V и GND это одно и то же. И прочее с питанием.
- Вложения
-
- pinout.JPG
- (84.76 КБ) 7446 скачиваний
Re: Различные мелкие вопросы
эх, подскажите, пож-та, как осуществить посылку 0xCC? с помощь команды сдвига?
Я бы на вашем месте за докторскую диссертацию немедленно сел. - Торопиться не надо, сесть я всегда успею (с)
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
Re: Различные мелкие вопросы
Работа с 1-wire:
Код: Выделить всё
#define DDR1W DDRB
#define PIN1W PINB
#define DQ 0
//RESET и PRESENCE
char reset()
{
DDR1W|=(1<<DQ);
_delay_us(500);
DDR1W&=~(1<<DQ);
_delay_us(65);
if(!(PIN1W&(1<<DQ))) return(1);
else return(0);
}
//передача данных
void wire_tx(unsigned char data)
{
for(unsigned char i=0; i<8; i++)
{
if(!(data&(1<<i))){DDR1W|=(1<<DQ); _delay_us(80); DDR1W&=~(1<<DQ);}
else{DDR1W|=(1<<DQ); _delay_us(7); DDR1W&=~(1<<DQ); _delay_us(73);}
_delay_us(10);
}
}
//Приём данных
char wire_rx()
{
unsigned char datarx=0;
for(unsigned char i=0; i<8; i++)
{
DDR1W|=(1<<DQ);
_delay_us(7);
DDR1W&=~(1<<DQ);
_delay_us(7);
if(PIN1W&(1<<DQ)) datarx|=(1<<i);
_delay_us(120);
}
return(datarx);
}Re: Различные мелкие вопросы
подскажите пожалуйста, поставил в схему с мк цифровой транзистор PDTC143E с встроенными резисторами 4.7к, так что при подаче на базу напряжения лог.уровня (5в) получается делитель и на базу приходит 2,5в -меня волнует вопрос правильный ли это режим, полностью ли открывается в данном случае транзистор??? (схема работает, но хочу уточнить)
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
Re: Различные мелкие вопросы
Биполярные транзисторы открываются током, а не напряжением, так что всё ок.
Re: Различные мелкие вопросы
AI_Disable благодарю=)
Я бы на вашем месте за докторскую диссертацию немедленно сел. - Торопиться не надо, сесть я всегда успею (с)
Re: Различные мелкие вопросы
Ребята, подскажите, а то смотрю в даташитах, и что-то не пойму. При сборке программатора ByteBlaster, схему 74HC244 можно заменить 74HC374D?
Сильно не бейте
Заранее благодарен.
Сильно не бейте
Re: Различные мелкие вопросы
Attiny2313
Можно ли по нажатию на кнопку увеличивать значение таймера/счетчика, а когда нажали другую кнопку, просто декрементировать значение таймера/счетчика?
т.е. нажали на кнопку 1 раз, в регистр таймера записалось 00000001, затем еще раз, в регистре появится 00000010 и т.д.
А когда нажали другую кнопку, то счет пошел вниз... 00000010, 00000001, 00000000...
?
Можно ли по нажатию на кнопку увеличивать значение таймера/счетчика, а когда нажали другую кнопку, просто декрементировать значение таймера/счетчика?
т.е. нажали на кнопку 1 раз, в регистр таймера записалось 00000001, затем еще раз, в регистре появится 00000010 и т.д.
А когда нажали другую кнопку, то счет пошел вниз... 00000010, 00000001, 00000000...
?
Не умеешь - не берись, но не взявшись не научишься...
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Различные мелкие вопросы
Можно. Самое простое - задействовать механизм прерываний по внешним событиям. Например настраиваем входы int0 и int1 на обработку событий по переднему фронту (переход из 0 в 1). В обработчике int0 пишем инкремент переменной, а в обработчике int1 - декремент.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: Различные мелкие вопросы
ну это просто событие от кнопок.
А как сами таймеры задействовать?
А как сами таймеры задействовать?
Не умеешь - не берись, но не взявшись не научишься...
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
Re: Различные мелкие вопросы
Задействовать для чего? Запуск таймера осуществляется выбором прескалера (биты CSxx регистра TCCRxB). Регистр счёта таймера – TCNTx
Re: Различные мелкие вопросы
для отсчета.
МНе надо декрементировать какой-либо регистр раз в 1 секунду. И результат дешифрировать на 7 сегм. индикатор.
МНе надо декрементировать какой-либо регистр раз в 1 секунду. И результат дешифрировать на 7 сегм. индикатор.
Не умеешь - не берись, но не взявшись не научишься...
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: Различные мелкие вопросы
Нельзя. Если очень захотеть, можно на 74hc373 или 74hc573, пустив вторую перемычку автоопределения наличия тоже напрямую (всё равно на КМОП-сериях смысла через шинник пропускать нет, это в старой версии на 74LS244 смысл был).Sam__s писал(а):Ребята, подскажите, а то смотрю в даташитах, и что-то не пойму. При сборке программатора ByteBlaster, схему 74HC244 можно заменить 74HC374D?
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.