Передача данных из МК в МК методом SPI AVR

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Передача данных из МК в МК методом SPI AVR

Сообщение ATrosh »

Нужна помощь!!!
Подскажите пожалуйста код с коментарием работы с SPI. :dont_know:
Тоесть из одного МК AVR отправить данные в другой МК AVR с выводом на LСD.
Реклама
Xerion
Встал на лапы
Сообщения: 138
Зарегистрирован: Пн дек 06, 2010 11:11:36

Re: Передача данных из МК в МК методом SPI AVR

Сообщение Xerion »

У Ревича в книге про асм авр был программный SPI с комментариями (код кстати рабочий, я проверял)
Реклама
s64
Потрогал лапой паяльник
Сообщения: 321
Зарегистрирован: Пн окт 18, 2010 21:18:21

Re: Передача данных из МК в МК методом SPI AVR

Сообщение s64 »

пройдись по темам, где обсуждают работу с LCD от мобильников, большинство из стекляшек работает по SPI, там и подсмотришь.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Передача данных из МК в МК методом SPI AVR

Сообщение Jack_A »

s64 писал(а):пройдись по темам, где обсуждают работу с LCD от мобильников, большинство из стекляшек работает по SPI, там и подсмотришь.
Очень полезно бывает чтение даташитов. Вот открыл я первый попавшийся на Атмега32 и
там на стр. 141-142 прямо черным по бумажному :

Assembly Code Example(1)
SPI_MasterInit:
; Set MOSI and SCK output, all others input
ldi r17,(1<<DD_MOSI)|(1<<DD_SCK)
out DDR_SPI,r17
; Enable SPI, Master, set clock rate fck/16
ldi r17,(1<<SPE)|(1<<MSTR)|(1<<SPR0)
out SPCR,r17
ret
SPI_MasterTransmit:
; Start transmission of data (r16)
out SPDR,r16
Wait_Transmit:
; Wait for transmission complete
sbis SPSR,SPIF
rjmp Wait_Transmit
ret


C Code Example(1)
void SPI_MasterInit(void)
{
/* Set MOSI and SCK output, all others input */
DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK);
/* Enable SPI, Master, set clock rate fck/16 */
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
}
void SPI_MasterTransmit(char cData)
{
/* Start transmission */
SPDR = cData;
/* Wait for transmission complete */
while(!(SPSR & (1<<SPIF)))
;
}



Assembly Code Example(1)
SPI_SlaveInit:
; Set MISO output, all others input
ldi r17,(1<<DD_MISO)
out DDR_SPI,r17
; Enable SPI
ldi r17,(1<<SPE)
out SPCR,r17
ret
SPI_SlaveReceive:
; Wait for reception complete
sbis SPSR,SPIF
rjmp SPI_SlaveReceive
; Read received data and return
in r16,SPDR
ret
C Code Example(1)
void SPI_SlaveInit(void)
{
/* Set MISO output, all others input */
DDR_SPI = (1<<DD_MISO);
/* Enable SPI */
SPCR = (1<<SPE);
}
char SPI_SlaveReceive(void)
{
/* Wait for reception complete */
while(!(SPSR & (1<<SPIF)))
;
/* Return data register */
return SPDR;
}
Реклама
Эиком - электронные компоненты и радиодетали
s64
Потрогал лапой паяльник
Сообщения: 321
Зарегистрирован: Пн окт 18, 2010 21:18:21

Re: Передача данных из МК в МК методом SPI AVR

Сообщение s64 »

чтение даташитов не обсуждается - это по умолчанию. человек спрашивал примеры использования.
Реклама
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Передача данных из МК в МК методом SPI AVR

Сообщение Jack_A »

s64 писал(а):чтение даташитов не обсуждается - это по умолчанию. человек спрашивал примеры использования.
Дык это и есть пример использования. Если я выложу кусок из своего проекта - чем приблизительно такой же код будет лучше ?
Реклама
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Передача данных из МК в МК методом SPI AVR

Сообщение ATrosh »

Спасибо всем! Буду пробовать. Если есть еще примеры буду рад :beer: . С asm там понятно и литература есть, но у меня программатор stk500 для AVR Studio4 еще по почте не подошел. Пробую через Bascom c stk200, но в нелпе не все понятно.
s64
Потрогал лапой паяльник
Сообщения: 321
Зарегистрирован: Пн окт 18, 2010 21:18:21

Re: Передача данных из МК в МК методом SPI AVR

Сообщение s64 »

коментариями на русском он будет лучше. а еще лучше если мы тут совместно напишем ему курсовую или контрольную. очередной студент.
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Передача данных из МК в МК методом SPI AVR

Сообщение ATrosh »

Давно уже не студент 36 год идет! Просто для дела надо. Все старался своей головой, но что-то застопорился да и по образованию зоо-инженер :)
Аватара пользователя
s_black
Мучитель микросхем
Сообщения: 411
Зарегистрирован: Вс авг 10, 2008 19:35:49
Откуда: Евпатория
Контактная информация:

Re: Передача данных из МК в МК методом SPI AVR

Сообщение s_black »

ATrosh писал(а):Нужна помощь!!!
Подскажите пожалуйста код с коментарием работы с SPI. :dont_know:
Тоесть из одного МК AVR отправить данные в другой МК AVR с выводом на LСD.
Подсказываю
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Передача данных из МК в МК методом SPI AVR

Сообщение ATrosh »

s_black спасибо за помощь :lol:
Аватара пользователя
s_black
Мучитель микросхем
Сообщения: 411
Зарегистрирован: Вс авг 10, 2008 19:35:49
Откуда: Евпатория
Контактная информация:

Re: Передача данных из МК в МК методом SPI AVR

Сообщение s_black »

Я рад, что информация оказалась Вам полезной :beer:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»