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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 20140
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Чой-то я туплю...
Наши выпускают кварцы (НС-49U) L и S — с нагрузочной ёмкостью и без неё. Какой мне нужен для тактирования МК и почему?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Мучитель микросхем
Сообщения: 436
Зарегистрирован: Сб апр 10, 2010 16:46:26

Сообщение murzila »

Нашел вот старую тему на хоботе. В принципе, должны работать оба, хотя для те же PICов, например, изготовитель рекомендует с параллельным резонансом. В случае применения кварца с последовательным резонансом, генерируемая частота может отличаться от паспортной. Я сейчас использую в основном Geyer-овские кварцы KX-3H, KX-K и KX-9A.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

если кто либо из многоуважаемой публики юзает mikroC PRO for AVR подскажите пожалуйста: имеется ли в данной проге генератор кода ?
Tell Me The Truth
Друг Кота
Аватара пользователя
Сообщения: 20140
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

murzila писал(а):Нашел вот старую тему на хоботе.
В общем, ничего не почерпнул. Тогда другой вопрос: импортные кварцы — больше похожи на S или L?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Сообщения: 436
Зарегистрирован: Сб апр 10, 2010 16:46:26

Сообщение murzila »

Ну, поскольку в даташитах явно указан параметр «Load capacitance», то осмелюсь предположить, что скорее «L». Если есть контакты в Компэле, можете уточнить у них, они являются официальным дистрибьютором Geyer Electronic.
Реклама
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Пн ноя 21, 2011 15:41:23

Сообщение Drinker »

Добрый день, кто подскажет какие галочки нужно поставить в PonyProg для ATMEGA8A если автор прошивки указал,что для Avreal должны быть "Ext = 0xFF; High = 0xDD; Lo = 0xFF. Чуть что есть фьюз доктор - можно ошибиться =)
Реклама
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

Drinker писал(а):Добрый день, кто подскажет какие галочки нужно поставить в PonyProg для ATMEGA8A если автор прошивки указал,что для Avreal должны быть "Ext = 0xFF; High = 0xDD; Lo = 0xFF.
Можете все сделать сами пользуясь http://fusecalc.mirmk.net/ На значение Ext не обращайте внимания. Поиском по Гуглу можно найти еще несколько версий того же предмета...
С уважением,
Виктор.
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Пн ноя 21, 2011 15:41:23

Сообщение Drinker »

Ну у меня вышло галки на SPIEN и BOOTSZ0, верно?
Встал на лапы
Сообщения: 119
Зарегистрирован: Чт май 10, 2012 21:56:27
Откуда: Львов

Сообщение DrHlus »

Доброго вечера!
Вопрос по УГО микроконтроллеров. Какой правильный порядок выводов (в т.ч. питания) должен быть по ГОСТам?
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

как известно у AVR есть 32 РОН
значит я могу в своей проге создать только 32 переменные ?
Tell Me The Truth
Вымогатель припоя
Аватара пользователя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Сообщение zero648 »

FreshMan писал(а):как известно у AVR есть 32 РОН
значит я могу в своей проге создать только 32 переменные ?
Ешо в оперативке можно целую кучу переменных создать, когда оперативка кончится тогда всё :))
Друг Кота
Аватара пользователя
Сообщения: 3874
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

zero648 писал(а):когда оперативка кончится тогда всё :))
Не все! Можно использовать некоторые неиспользуемые регистры ввода/вывода, например OCR таймеров...
Друг Кота
Аватара пользователя
Сообщения: 6349
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

... И не забыть ЕЕРRОМ . Хотя если пмс`ать на С, то фиг с два.
Друг Кота
Аватара пользователя
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск

Сообщение Леонид Иванович »

Почему фиг?

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

__eeprom int  Var1;
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 6349
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Ну если только для редких обращений, а то тормозит да и память быстро убьется.
Друг Кота
Аватара пользователя
Сообщения: 20140
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Никто не отменял внешнюю память :)))
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Сообщение спящий »

Подскажите что за ерунда,подсоединил микроСД и тут же программатор,для проверки вывожу букву 'A' на комп,чтобы смотреть где процесс остановился,при подсоединенном программаторе выводит,если только карта то нет(проблемма наверно в SPI) почему,и надоли устанавливать фьюзы для SPI?


Спойлер/íàñòðîéêà SPI
SPCR=0b01011100;
SPSR=0x00;


//ïîäàåì 74 èìïóëüñà
PORTB.2=1;
PORTB.3=1;
for(i=0;i<80;i++)
{

data(0xff)
}
PORTB.2=0;
delay_ms(1);



//CMD0


data(0x40);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x15);
putchar('b');
while (temp!=0x01)
{temp= SPDR;
data(0xff);


if (i>50)
{data(0x40);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x15);
i=0;
}
i++;
}
putchar('A');
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Чет не пойму что это за код?Это в основном цикле или что?
И где включение USART?

Неплохо было бы добавить нормальные комментарии вместо кракозябры.
Контактная информация:
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Сообщение спящий »

Просто я думал дело не в коде)
Спойлер#define _IO_BITS_DEFINITIONS_
#include <stdio.h>
#include <mega48.h>
#include <delay.h>
#include <string.h>
#include <io.h>
#include <spi.h>
#define data(x) SPDR=x; while (!( SPSR&(1<<7)));

void main() {
int i,temp;
char array[100] ;
DDRD.2=0;
DDRB=0b11101111;
DDRC=255;

// 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
UCSR0A=0x00;
UCSR0B=0x18;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x33;

// настройка шим

TCCR1A=0b10000001;
TCCR1B=0b00001001;
TIMSK1=0b01000000;





//настройка SPI
SPCR=0b01011100;
SPSR=0x00;


//подаем 74 импульса
PORTB.2=1;
PORTB.3=1;
for(i=0;i<80;i++)
{

data(0xff)
}
PORTB.2=0;
delay_ms(1);



//CMD0


data(0x40);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x15);
putchar('b');
while (temp!=0x01)
{temp= SPDR;
data(0xff);


if (i>50)
{data(0x40);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x15);
i=0;
}
i++;
}



putchar('A');

//CMD1
data(0x41);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x95);
while (temp!=0x00)
{temp= SPDR;
data(0xff)
}
putchar('b');
//CMD17 чтение байтов
data(0x52);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x95);

while (temp!=0xfe)
{temp= SPDR;
data(0xff);
putchar(SPDR);
}


while(1){

for (i=0;i<100;i++)
{
data(0xff);
array=SPDR ;
}



for (i=0;i<100;i++)
{
OCR1AL=array;
delay_us(1);
putchar(array) ;
}
}

}


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

Сообщение vitalik_1984 »

А вы случайно не забыли дергать ногой slave select?Слышал, что часто на этом запарываются начинающие.В коде я этого не увидел.Карта просто засыпает если этого не делать.

Если вы думаете, что дело не в коде, зачем тогда сюда его кидаете?

Короче код какой то мутный непонятно что там для чего делается.Что значит посылаем 74 импульса?И почему в цикле 80?

Это вы читаете из карты памяти и отправляете на шим так я понял?
объясните как работает этот участок кода

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

 for (i=0;i<100;i++)
{ 
SPDR=0xff; while (!( SPSR&(1<<7))); 
array[i]=SPDR ; 
}
 
Контактная информация:
Ответить

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