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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Встал на лапы
Сообщения: 125
Зарегистрирован: Вс мар 01, 2009 20:41:19

Сообщение xVekx »

Что то подобное получается ?

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

#define DDR_SPI DDRB
#define DD_SCK DDB5
#define DD_MISO DDB4
#define DD_MOSI DDB3
#define DD_SS DDB2


uchar SPI_TransmitReceive (uchar pack)
{
SETBIT(DDR_SPI,DD_MOSI);
SETBIT(DDR_SPI,DD_SCK);
SETBIT(DDR_SPI,DD_SS);
SETBIT(PORTB,DD_MISO); 
  
SETBIT(SPCR,SPE);
SETBIT(SPCR,MSTR);

SPDR=pack;
while(!(SPSR & (1<<SPIF))); 

return SPDR;}

Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

Да. Я, например, так делаю:

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

//----------------Инициализация SPI---------------------
void SPI_init(void)
{
DDRB|=(1<<5)|(1<<3)|(1<<0)|(1<<2);
SPCR=(1<<SPE)|(1<<MSTR);
}
//------------------------------------------------------

//---------Передача/приём одного байта по SPI-----------
char SPI(char cData)
{
SPDR=cData;
while(!(SPSR & (1<<SPIF)));
SPSR&=~(1<<SPIF);
return(SPDR);
}
//------------------------------------------------------
Контактная информация:
Реклама
Встал на лапы
Сообщения: 125
Зарегистрирован: Вс мар 01, 2009 20:41:19

Сообщение xVekx »

Спасибо за ответы!!!
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

ValBag писал(а): Надеюсь, что правильно сбрасывали флаг запроса прерывания - записью в него логической еденицы.
наверное не правильно, записывал туда ноль. надо попробовать :)
Реклама
Эиком - электронные компоненты и радиодетали
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

ValBag писал(а):Надеюсь, что правильно сбрасывали флаг запроса прерывания - записью в него логической еденицы.
ValBag Спасибо за помощь помогло :oops: Дело было не в бабине рас.... сидел в кабине! :))
Реклама
Встал на лапы
Сообщения: 125
Зарегистрирован: Вс мар 01, 2009 20:41:19

Сообщение xVekx »

Подскажите, а возможно ли перепрошивать какой нибудь простенький микроконтроллер (типо atmega8 atmega16 atmega48 и т.п. ) используя USART. Например имеем связку комп->usb->cp2101(USB TO UART BRIDGE)->USART->Микроконтроллер. Т.е. идея пере прошивать микроконтроллер не используя спец. программатор.???? Вот например используя FT4232H возможно такое используя интерфейс SPI который встроен в FT4232H.
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1138
Зарегистрирован: Сб апр 03, 2010 08:57:35

Сообщение Modest »

Можно. Есть такая штука как бутлоадер, с помощью него можно прошивать avr через любую переферию контроллера I2c, CPI, USART и т. п. Но нужен программатор чтобы прошить этот бутлоадер :))) :)))
А вообще почему не хотите использовать "спец программатор", есть очень много конструкций, на LPT
USART (COM PORT), USB, и многие из них сосем даже не сложные, неговоря уже о "5 проводах" дляя LPT и его аналоге для COM.
Последний раз редактировалось Modest Ср июл 14, 2010 07:43:11, всего редактировалось 1 раз.
[img]http://i053.radikal.ru/1102/71/0a0346d3a067.gif[/img]
[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
Мучитель микросхем
Аватара пользователя
Сообщения: 438
Зарегистрирован: Вт сен 25, 2007 19:40:26
Откуда: Челябинск

Сообщение mr.Kirill »

xVekx писал(а):Подскажите, а возможно ли перепрошивать какой нибудь простенький микроконтроллер (типо atmega8 atmega16 atmega48 и т.п. ) используя USART. Например имеем связку комп->usb->cp2101(USB TO UART BRIDGE)->USART->Микроконтроллер. Т.е. идея пере прошивать микроконтроллер не используя спец. программатор.???? Вот например используя FT4232H возможно такое используя интерфейс SPI который встроен в FT4232H.
Ответ: Можно.
Прежде чем задать следующий вопрос: а как? Советую почитать в интернете (или на форуме) информацию по теме Bootloader.
[color=#0000BF]"Какой тоской душа не сражена - быть твердым заставляют времена"© "Король Лир" У.Шекспир.[/color]
Мучитель микросхем
Аватара пользователя
Сообщения: 490
Зарегистрирован: Вт фев 03, 2009 11:06:33

Сообщение jumbo »

Ребята кто может реально помочь, нужно подправить исходник термостата так чтобы при срабатывани термостата начинал мигать весь индикатор, а при отключении термостатирования, переставал мигать. На сайте есть исходник: http://hardlock.org.ua/mc/tiny/termostat_v2/index.html
нужно не только знать, но и уметь это объяснить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2022
Зарегистрирован: Вт фев 09, 2010 02:04:53
Откуда: Санкт-Петербург

Сообщение Гефестион »

Понадобилось мне подключить к шине I2C, по которой обмениваются данными какие-либо устройства, микроконтроллер (Mega 16) в режиме slave receiver. Но проблема в том, что этот микроконтроллер должен остаться незамеченным для остальных устройств, т.е. он не должен отправлять сигнал подтверждения после принятого байта. Однако модуль I2С по умолчанию отправляет бит подтверждения. Вот думаю, как решить эту проблему. Реализовывать интерфейс I2C программно мне совсем не хочется, тем более что в программировании опыт у меня небольшой. В описании этого интерфейса в даташите на Mega 16 прочитал, что если в регистре TWCR не устанавливать бит TWEA (TWI Enable Acknowledge), то устройство не будет выдавать подтверждение. Но там написано также, что таким образом устройство "виртуально отключается от шины".
Собственно вопрос: если не устанавливать бит TWEA, будет ли модуль I2C принимать информацию?
Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Гефестион писал(а):"виртуально отключается от шины".
Может, это как раз и значит, что его не будет видно другим устройствам? :)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Chettuser

Сообщение Chettuser »

Народ. А как запустить Timing Analizer в Qurtus II?
Пишет: "Error: MAX7000B Device family is not supported by the TimeQuest Timing Analyzer."
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Ср авг 26, 2009 17:04:34
Откуда: СПБ

Сообщение truebest »

Уважаемые подскажите в контроллере ARM (AT91SAM7A3) выводы которые предназначены для ЦАПА (ADC0_AD0 - ADC0_AD7, ADC1_AD0 - ADC1_AD7) можно использовать как логические? Как вывод и как ввод?

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

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

truebest писал(а):можно использовать как логические? Как вывод и как ввод?
RTFD
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Ср авг 26, 2009 17:04:34
Откуда: СПБ

Сообщение truebest »

Gudd-Head писал(а):truebest писал(а):
можно использовать как логические? Как вывод и как ввод?

RTFD
А по кошачьи можно? :))
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

truebest писал(а):А по кошачьи можно? :))
Аналогично RTFM (в гугле найдёте =), заменив M на D (Datasheet).
Если можно, то можно. Если нет — то нет. (не можете сами понять даташит — хотя бы дайте сцылку на него)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Chettuser

Сообщение Chettuser »

Кто в Quartus II разбирается?

Как запустить Timing Analizer в Qurtus II?
Пишет: "Error: MAX7000B Device family is not supported by the TimeQuest Timing Analyzer."

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

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

После стирания или в новом чипе (AVR) вся память заполнена "FFFF", причём команды с кодом "FFFF" нет (по кр. мере, AVR Studio не знает), но счётчик команд исправно продолжает считать. Отсюда получаются два вывода:
1) команда с кодом "FFFF" аналогична команде nop с кодом "0000"?
2) при подаче питания на чистый контроллер он ничего не делает, но счётчик команд у него работает (при условии соответствующего тактирования)?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

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

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

ibiza11 писал(а):Зачем Вам это?
Просто вдруг задумался, что происходит с кристаллом, когда на него подано напряжение питания (и есть такты).
Допустим, МК не используется, но он есть на плате (кварца нет и не предвидится) и к нему подведено питание. Выходит, для снижения энергопотребления стоит написать коротенькую программку, чтобы переводить его в Power Down, а не оставлять его с чистым флэшем?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

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