Страница 393 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср янв 02, 2013 19:53:37
russo_turisto
Подскажите, правильно ли написал?
Код: Выделить всё
OPTION_REG = (0<T0CS)|(0<PSA)|(1<PS2)|(1<PS1)|(1<PS1); // внутр тактовый генератор ТМРО, предделитель перед ТМРО, 1:256
Понимаю что неправильно. Нулевые биты умножать надо,
как записать?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср янв 02, 2013 20:04:32
ploop
так используйте тогда на последней микросхеме, на нее есть даташит по любому.
И супервизор добавьте. Что-то типа MC33064. Для крутизны самое то.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср янв 02, 2013 20:11:53
ploop
russo_turisto, записи вида (0<T0CS)|(0<PSA) не имеют смысла чуть более, чем полностью. Имена "T0CS" и подобные - просто номера битов, и это выражение просто обычная битовая маска, так что "0" нет смысла писать.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср янв 02, 2013 20:43:30
russo_turisto
Да ведь сдвиг неужен <<
Хотел в одной строке битовую маску наложить нулей и едениц.
OPTION_REG |= (0<<T0CS)|(0<<PSA)|(1<<PS2)|(1<<PS1)|(1<<PS1);
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср янв 02, 2013 20:50:41
ploop
Так установить биты можно просто так: (1<PS2)|(1<PS1)|(1<PS1)
Нули не помешают, а вот почему не работает подсказать не смогу. Надо даташит смотреть.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср янв 02, 2013 20:57:02
russo_turisto
Это получается строку придется на две разбивать?
Для едениц OPTION_REG |= (1<<PS2)|(1<<PS1)|(1<<PS1);
Для нулей OPTION_REG &= (0<<T0CS)|(0<<PSA); //Это надо проверить!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
В одной строке записать не получиться?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср янв 02, 2013 22:15:30
ploop
Нули записывать не надо, они просто игнорируются. Запись вида (1<<PS2)|(1<<PS1) интерпретируется в (1<<5)|(1<<3) и далее в 0b00101000 (установить третий и пятый бит, считая с нуля). И это число пишется в регистр.
3 и 5 я для примера привёл. В оригинале надо смотреть, как объявлены PS1 и PS2
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт янв 03, 2013 00:45:01
vitalik_1984
russo_turisto писал(а):Для нулей OPTION_REG &= (0<<T0CS)|(0<<PSA); //Это надо проверить!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Не правильно возьмите калькулятор и проверьте при сдвиге вдвигаются нули, так что ваша запись не поможет, в отличие от этой:
Так ваши биты точно сбросятся.Можно обойтись и одной строкой, но все равно биты для очистки придется отделять от битов для установки.
Типа такого
Код: Выделить всё
OPTION_REG = (OPTION_REG&~((1<<T0CS)|(1<<PSA)))|(1<<PS2)|(1<<PS1)|(1<<PS1);
Это если остальные биты неохота трогать.Они хоть и перезапишутся, но останутся в том же состоянии, что и до записи. Причем должны записаться одновременно очистка и установка.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт янв 03, 2013 03:28:08
Аlex
vitalik_1984 писал(а):в отличие от этой:
Так ваши биты точно сбросятся.
На сколько мне известно, символ "!" обозначает логическое НЕ, а не инверсию. Для инверсии нужно использовать оператор "~".
russo_turisto, компилятор какой ?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт янв 03, 2013 04:08:32
vitalik_1984
Был не прав

исправил.
russo_turisto Ваш вариант очистит все биты данного регистра.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт янв 03, 2013 17:02:15
russo_turisto
Спасибо за ответы, проверю.
А пока записал так
Код: Выделить всё
T0CS_bit = 0;
PSA_bit = 0;
PS0_bit = 1; //1:64
PS1_bit = 0;
PS2_bit = 1;
Компилятор микроси.
Кстати вопрос по этому компилятору, там нет отладки с помощью пиккит2?
Приходиться отлаживать в протеусе с COFF файлом.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт янв 03, 2013 21:23:57
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;
}
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт янв 04, 2013 01:31:52
black_lizard
Изучал инфу про ПЛИС и возник у меня довольно тривиальный вопрос. Память ПЛИС энергозависимая. Это относится к структуре тригеров и SRAM или только к SRAM?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт янв 04, 2013 10:00:05
Chettuser
И к тому и к другому.
Если FPGA, то конфигурация пишется в отдельное ЗУ. При включении считывается в FPGA, при выключении всё внутри FPGA пропадает.
Если CPLD, то как правило всё пишется во внутреннюю EEPROM память.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт янв 04, 2013 16:36:57
Грендайзер
Уважаемые коты, всех с наступившим 2013 годом... понимаешь! Недавно появилась необходимость поработать с контроллерами AVR. Я в них совсем не спец (нет ну диодиками моргал и всё такое но...). В своё время делал для них программатор LPT однако куда то он делся, да и как то он уже не катит. Посему, хочу сварганить программатор USB, однако разбираться с ним нет времени и желания, посему может кто нибудь посоветует "железный" такой, который сто пудов работает, что б собрать и не думать. А то на какой сайт не залезу так везде написано то это не работает, то то отвалилось и пр. Заранее спасибо.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт янв 04, 2013 17:21:49
vitalik_1984
Нормально можно только купить могу от себя посоветовать AVR Dragon.Все есть за ~3000 рублей.
А если собирать то вот это
AVRISP mkII новый клон (поддерживает XMEGA)
Там вроде не требуется первоначальный программатор все через вложенный интерфейс.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт янв 04, 2013 18:34:07
Грендайзер
Ясно, спасибо
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт янв 04, 2013 21:58:32
black_lizard
Chettuser писал(а):И к тому и к другому.
Если FPGA, то конфигурация пишется в отдельное ЗУ. При включении считывается в FPGA, при выключении всё внутри FPGA пропадает.
Если CPLD, то как правило всё пишется во внутреннюю EEPROM память.
Благодарю за ответ. То есть в FPGA есть какие-то стандартные интерфейсы загрузки прошивки, например, из внешней flash памяти?
Не подскажите какие-нибудь принципиальные схемы для подключения минимальной обвязки плис ALTERA? Конкретно интересует EP3C5E144C8N или EP2C5T144C8N.
В гугле одни только платы без схем.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт янв 04, 2013 23:03:27
Chettuser
Интерфейс по которому загоняется прошивка называется JTAG.
Схему обвязки можете взять
здесь, правда там под другой камень.
По поводу внешней микросхемы для конфигурации точно сказать не смогу - я в основном имел дело с CPLD MAX II, у них всё внутри. И с XILINIX на работе - у той есть маленькая микрушка рядом - это и есть конфигурационная память. общаются по последовательному протоколу, возможно разновидность SPI.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт янв 04, 2013 23:14:18
black_lizard
Chettuser писал(а):Интерфейс по которому загоняется прошивка называется JTAG.
Схему обвязки можете взять
здесь, правда там под другой камень.
По поводу внешней микросхемы для конфигурации точно сказать не смогу - я в основном имел дело с CPLD MAX II, у них всё внутри. И с XILINIX на работе - у той есть маленькая микрушка рядом - это и есть конфигурационная память. общаются по последовательному протоколу, возможно разновидность SPI.
У марсохода я уже рассматривал их схемы, в частности их программатор и собираюсь собирать под неё. Но там схема несколько запутанная для их основной платы.
Там питание разводится, как я понял, отдельно для ядра и отдельно для пинов, на 3.3v и 1.2v соответственно. Не понятно, можно ли подать с одного преобразователя питание и туда и туда? К тому же там стоит преобразователь на 0.8 ампер, подойдёт ли преобразователь на 0.5? В частности LM2937IMP-3.3. И как делится ток между пинами тоже осталось загадкой для меня...
Конфигурационная память в терре нашлась достаточно быстро, хотя я надеялся обойтись обычной flash памятью, чтобы место было с запасом, но, видимо, не получится. Конфигурационная память хранит только соединения триггеров или может хранить и код для SRAM в ПЛИС? Например, программный код для софтварного процессора.