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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Dmittry , вы, видимо, изготавливаете устройство для военной приемки, раз тратите столько времени на один редко используемый вывод.
Вам же написали, что достаточно одного внешнего резистора, можно еще для надежности поставить конденсатор как на одной из ваших картинок.
Вообще если посмотрите в даташите на свой контроллер схему Reset logic то наверняка увидите там внутренний подтягивающий резистор на Reset!
Но он слабоват и ставят внешний.
Контактная информация:
Реклама
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Ср сен 07, 2011 19:39:04

Сообщение Dmittry »

у меня передатчик РЛС со сложным фазоманипульрованным сигналом :)) курсач
нужна схема сброса, просто "цепочка" не прокатывает.
Реклама
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Сообщение SmarTrunk »

А обязательно ручной сброс? Для параноиков (типа меня, например) полно внешних "мониторов питания". Иногда с тремя ногами, иногда ног больше. С выходом ОК или КМОП, на разные пороговые напряжения...
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

так используйте тогда на последней микросхеме, на нее есть даташит по любому.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср окт 07, 2009 06:45:38
Откуда: Astana KZ

Сообщение russo_turisto »

Подскажите, правильно ли написал?

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

OPTION_REG = (0<T0CS)|(0<PSA)|(1<PS2)|(1<PS1)|(1<PS1);                  // внутр тактовый генератор ТМРО, предделитель перед ТМРО, 1:256
Понимаю что неправильно. Нулевые биты умножать надо,
как записать?
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

так используйте тогда на последней микросхеме, на нее есть даташит по любому.
И супервизор добавьте. Что-то типа MC33064. Для крутизны самое то.
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

russo_turisto, записи вида (0<T0CS)|(0<PSA) не имеют смысла чуть более, чем полностью. Имена "T0CS" и подобные - просто номера битов, и это выражение просто обычная битовая маска, так что "0" нет смысла писать.
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср окт 07, 2009 06:45:38
Откуда: Astana KZ

Сообщение russo_turisto »

Да ведь сдвиг неужен <<

Хотел в одной строке битовую маску наложить нулей и едениц.

OPTION_REG |= (0<<T0CS)|(0<<PSA)|(1<<PS2)|(1<<PS1)|(1<<PS1);
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Так установить биты можно просто так: (1<PS2)|(1<PS1)|(1<PS1)
Нули не помешают, а вот почему не работает подсказать не смогу. Надо даташит смотреть.
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср окт 07, 2009 06:45:38
Откуда: Astana KZ

Сообщение russo_turisto »

Это получается строку придется на две разбивать?

Для едениц OPTION_REG |= (1<<PS2)|(1<<PS1)|(1<<PS1);

Для нулей OPTION_REG &= (0<<T0CS)|(0<<PSA); //Это надо проверить!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

В одной строке записать не получиться?
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Нули записывать не надо, они просто игнорируются. Запись вида (1<<PS2)|(1<<PS1) интерпретируется в (1<<5)|(1<<3) и далее в 0b00101000 (установить третий и пятый бит, считая с нуля). И это число пишется в регистр.
3 и 5 я для примера привёл. В оригинале надо смотреть, как объявлены PS1 и PS2
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

russo_turisto писал(а):Для нулей OPTION_REG &= (0<<T0CS)|(0<<PSA); //Это надо проверить!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Не правильно возьмите калькулятор и проверьте при сдвиге вдвигаются нули, так что ваша запись не поможет, в отличие от этой:

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

OPTION_REG &= ~((1<<T0CS)|(1<<PSA)); 
Так ваши биты точно сбросятся.Можно обойтись и одной строкой, но все равно биты для очистки придется отделять от битов для установки.
Типа такого

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

 OPTION_REG = (OPTION_REG&~((1<<T0CS)|(1<<PSA)))|(1<<PS2)|(1<<PS1)|(1<<PS1); 
Это если остальные биты неохота трогать.Они хоть и перезапишутся, но останутся в том же состоянии, что и до записи. Причем должны записаться одновременно очистка и установка.
Последний раз редактировалось vitalik_1984 Чт янв 03, 2013 04:07:35, всего редактировалось 1 раз.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4618
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

vitalik_1984 писал(а):в отличие от этой:

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

OPTION_REG &= !((1<<T0CS)|(1<<PSA)); 
Так ваши биты точно сбросятся.
На сколько мне известно, символ "!" обозначает логическое НЕ, а не инверсию. Для инверсии нужно использовать оператор "~". :roll:
russo_turisto, компилятор какой ?
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Был не прав :) исправил.
russo_turisto Ваш вариант очистит все биты данного регистра.
Контактная информация:
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср окт 07, 2009 06:45:38
Откуда: Astana KZ

Сообщение russo_turisto »

Спасибо за ответы, проверю.

А пока записал так

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

T0CS_bit = 0;
  PSA_bit = 0;
  PS0_bit = 1;                    //1:64
  PS1_bit = 0;
  PS2_bit = 1;
Компилятор микроси.

Кстати вопрос по этому компилятору, там нет отладки с помощью пиккит2?

Приходиться отлаживать в протеусе с COFF файлом.
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Сб авг 25, 2007 22:02:05
Откуда: Германия, Viernheim

Сообщение unalex »

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

typedef enum {TOGGLE, SET, CLEAR}eBITCHANGES;

unsigned char changeBit(unsigned char byte, unsigned char bitNr,
		eBITCHANGES how)
{
	if (how == TOGGLE)
		byte ^= 1 << bitNr;
	else if (how == SET)
		byte |= 1 << bitNr;
	else if (how == CLEAR)
		byte &= ~(1 << bitNr);

	return byte;
}
Коктейль "Рекурсивный": 20% спирта, 30% воды, 50% коктейля "Рекурсивный"...
Встал на лапы
Аватара пользователя
Сообщения: 132
Зарегистрирован: Вс сен 23, 2012 05:51:35

Сообщение black_lizard »

Изучал инфу про ПЛИС и возник у меня довольно тривиальный вопрос. Память ПЛИС энергозависимая. Это относится к структуре тригеров и SRAM или только к SRAM?
Собираю самопальный мини-компьютер
Chettuser

Сообщение Chettuser »

И к тому и к другому.
Если FPGA, то конфигурация пишется в отдельное ЗУ. При включении считывается в FPGA, при выключении всё внутри FPGA пропадает.
Если CPLD, то как правило всё пишется во внутреннюю EEPROM память.
Мучитель микросхем
Аватара пользователя
Сообщения: 479
Зарегистрирован: Вт июн 02, 2009 22:38:40
Откуда: Город-герой Москва

Сообщение Грендайзер »

Уважаемые коты, всех с наступившим 2013 годом... понимаешь! Недавно появилась необходимость поработать с контроллерами AVR. Я в них совсем не спец (нет ну диодиками моргал и всё такое но...). В своё время делал для них программатор LPT однако куда то он делся, да и как то он уже не катит. Посему, хочу сварганить программатор USB, однако разбираться с ним нет времени и желания, посему может кто нибудь посоветует "железный" такой, который сто пудов работает, что б собрать и не думать. А то на какой сайт не залезу так везде написано то это не работает, то то отвалилось и пр. Заранее спасибо.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Нормально можно только купить могу от себя посоветовать AVR Dragon.Все есть за ~3000 рублей.
А если собирать то вот это AVRISP mkII новый клон (поддерживает XMEGA)
Там вроде не требуется первоначальный программатор все через вложенный интерфейс.
Контактная информация:
Ответить

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