Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

SPI в контроллере без интерфейса

Непрочитано 06.02.2010, 16:52  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию SPI в контроллере без интерфейса

Всем привет!
Есть микросхема с интерфейсом SPI.
Хочу получать от неё данные и обрабатывать их.
Контроллер РИС16Ф84А
Но ведь в нём этот интерфейс(да и вообще никакой) не реализованы.
Поэтому его нужно или самому писать или велосипед не изобретать, а обратиться сюда.
Может у кого уже есть готовые функции:
spi_setup
spi_data_is_in
spi_read
spi_write
Или как быть, не меняя МК ?
Реклама:
yellow87 вне форума  
Непрочитано 06.02.2010, 16:59  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Сообщение от yellow87 Посмотреть сообщение
Всем привет! Есть микросхема с интерфейсом SPI. Хочу получать от неё данные и обрабатывать их.
Контроллер РИС16Ф84А
Даже если в МК есть модуль SPI, всё равно придётся писать програмную его поддержку.. сам по себе он не заработает.
И он проще чем I2C. Писать не так уж и много...
picavr вне форума  
Непрочитано 06.02.2010, 17:02  
RY723
Заблокирован
 
Регистрация: 08.08.2007
Сообщений: 2,820
Сказал спасибо: 375
Сказали Спасибо 1,364 раз(а) в 744 сообщении(ях)
RY723 на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Сообщение от yellow87 Посмотреть сообщение
Всем привет!
Есть микросхема с интерфейсом SPI.
Хочу получать от неё данные и обрабатывать их.
Контроллер РИС16Ф84А
Но ведь в нём этот интерфейс(да и вообще никакой) не реализованы.
Поэтому его нужно или самому писать или велосипед не изобретать, а обратиться сюда.
Может у кого уже есть готовые функции:
spi_setup
spi_data_is_in
spi_read
spi_write
Или как быть, не меняя МК ?
Реализовать програмно. Прочитать даташит на SPI. Сходить по ссылке:
http://www.gaw.ru/html.cgi/txt/interface/spi/index.htm
Если нет готового, делать самому или отказаться от этой затеи. SPI штука синхронная, поэтому можно делать на произвольной скорости.
RY723 вне форума  
Непрочитано 06.02.2010, 17:17  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Сообщение от yellow87 Посмотреть сообщение
Есть микросхема с интерфейсом SPI.
Какая? Какие режимы SPI поддерживает?

Цитата:
Хочу получать от неё данные и обрабатывать их.
Контроллер РИС16Ф84А
Всё зависит от задачи обработки, если обработки много, то лучше взять с DMA, типа PIC18F46J11, PIC18F46J50 и т.д.
st_1 вне форума  
Непрочитано 06.02.2010, 18:39  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

1. Я уже давно читал ту страницу. (ссылка на описание)
2. Обработки - минимум.
3. Микросхема без разницы какая: поддерживает все режимы SPI
4. Я и так насроился писать сам, а не менять МК.
5. А вот чтоб не писать самому, я и прошу готовый код инициализации, чтения и записи.
---------------------------------
Если у кого есть готовый модуль функций, пожалуйста поделитесь
: - )
yellow87 вне форума  
Непрочитано 06.02.2010, 18:44  
urry
Почётный гражданин KAZUS.RUN
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Код:
// описываем выходы 

#define cs 0
#define clk 1
#define data 2
//описываем входы
#define doo RA3
#define mmc_dis() BITSET(porta,cs); PORTA=porta;
#define mmc_en() BITCLR(porta,cs); PORTA=porta;
#define d_1() BITSET(PORTA,data); 
#define d_0() BITCLR(PORTA,data); 
#define clk_1() BITSET(PORTA,clk);
#define clk_0() BITCLR(PORTA,clk); 

void mmc_write_byte (unsigned char Byte1)
{
unsigned char mask=0x80;	
do {
		if ((Byte1&mask))
				{
				d_1(); //Set Output High
				}
			else
				{
				d_0(); //Set Output Low
				}	
		clk_0();	
		mask ›› =1;
		clk_1(); 
	}while (mask != 0);
	d_1();	
}
//-------------------------------------------
unsigned char mmc_read_byte (void)
{
unsigned char Byte = 0;
unsigned char mask=0x80;
do {
				clk_0();
				if (doo)
				{
			 	Byte+=mask;
				}
				clk_1(); 
				mask››=1;		
} while (mask!=0);
return (Byte);
}
__________________
warez

Последний раз редактировалось urry; 06.02.2010 в 18:54.
urry вне форума  
Непрочитано 06.02.2010, 18:49  
innovator_king
Прописка
 
Аватар для innovator_king
 
Регистрация: 12.05.2009
Сообщений: 230
Сказал спасибо: 56
Сказали Спасибо 43 раз(а) в 35 сообщении(ях)
innovator_king на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Обычно микросхемы с SPI не в режиме master. Т.е. ты задаёшь (читай контроллер) тактовую частоту (импульсы). Тактовую частоту лучше генератором не делать (это вообще может быть не частота,а произвольный момент времени перехода уровня сигнала (если микросхема-slave позволяет)), просто поднимаешь или опускаешь сигнал на выводе контроллера. А в промежутках тактовых импульсов читаешь бит-сигнал от slave-микросхемы. Это я объяснил 2 сигнала SPI. А третьим ещё проще))) Тупо на время обращения к slave микросхеме опускаешь уровень в ноль и всё. А когда закончил читать данные и микросхема-slave уже не нужна, поднимаешь уровень в верх. Вот тебе и алгоритм работы с трёх выводным SPI (такой SPI самый применяемый).
innovator_king вне форума  
Непрочитано 06.02.2010, 18:54  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Спасибо, urry.
А как же прерывание на поступление новых данных организовать?
Неужели mmc_read_byte в while(1) затолкать?

P.S.
А что это за абревиатуры такие:doo, mmc ?
yellow87 вне форума  
Непрочитано 06.02.2010, 19:00  
urry
Почётный гражданин KAZUS.RUN
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

в режиме мастера сам выбираешь, когда читать данные, прерывание не используется. А аббревиатура - ммс - это я с карточки этим читал
__________________
warez
urry вне форума  
Непрочитано 06.02.2010, 19:11  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

А, ну да, точно!
(Хочу каждую секунду буду читать, хочу каждую минуту)
Я ещё не до конца понял эту систему. Точнее только начал знакомиться.
Поэтому не понял "алгоритм работы с трёх выводным SPI"
Ну вроде для начала хватит. Буду пробовать
yellow87 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Однокристальные трансиверы TRC101 от RFM... Panchiks Автоматика и аппаратура связи 340 15.05.2017 21:10
Простейший программатор SPI EEPROM dimmich Микроконтроллеры, АЦП, память и т.д 6 09.08.2010 23:08
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


Часовой пояс GMT +4, время: 17:38.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.