SPI интерфес

Oct 08, 2003 5 Replies

Привет All!



Пытаюсь запустить сабж на Atmele AT82LS8252, передача получается, а вот прием с приемом никак. Кто-нибудь сабж использовал? Hадо кодек проинициализировать с с помощью сабжа. Интересует порядок инициализации сабжа и т.д.



С уважением, Ivan Melnikov Среда Октябрь 08 2003 21:17.


... "Хозяйство вести - не ... флагом трясти."


Hi Ivan!

Wednesday October 08 2003, Ivan Melnikov wrote to All:

IM> Пытаюсь запустить сабж на Atmele AT82LS8252, передача получается, а вот IM> прием с приемом никак. Кто-нибудь сабж использовал? Hадо кодек

знакомые грабли :) когда я столкнулся с подобой проблемой в at90s8515, выяснил что SCLK дергается только при передаче. поэтому нужно сначала делать запись в регистр данных любого байта, а только потом читать из него.

IM> С уважением, Ivan Melnikov Среда Октябрь 08 2003 21:17.

Всего доброго.

Привет Andrey!

Четверг Октябрь 09 2003 15:24, Andrey Tischenko -> Ivan Melnikov:

IM>> Пытаюсь запустить сабж на Atmele AT82LS8252, передача получается, IM>> а вот прием с приемом никак. Кто-нибудь сабж использовал? Hадо IM>> кодек AT> знакомые грабли :)

Для меня нет. :(

AT> когда я столкнулся с подобой проблемой в at90s8515, выяснил что SCLK AT> дергается только при передаче. поэтому нужно сначала делать запись в AT> регистр данных любого байта, а только потом читать из него. AT>

Интересно... Попробую...

С уважением, Ivan Melnikov Суббота Октябрь 11 2003 14:23.

... "Пусть ХАЛЯВА будет вечной"

Добрый день, Ivan!

IM> Пытаюсь запустить сабж на Atmele AT82LS8252, передача получается, а вот IM> прием с приемом никак. Кто-нибудь сабж использовал? Hадо кодек IM> проинициализировать с с помощью сабжа. Интересует порядок инициализации IM> сабжа и т.д.

Я использовал SPI в AT89S8252 в режиме Slave для связи с PC. Сначала тоже были проблемы с приёмом, контроллер возвращал обратно переданное к нему значение пока не написал вот так: mov a,spsr ;запрос состояния SPI mov SPDR,@r0 ;данные на передачу anl a,#080h ;проверка приема jz m003 ;если принят байт mov a,SPDR ;то в аккумулятор...

Это кусок не в обработчике прерывания от SPI, а в основном цикле, поэтому получается, что данные в каждом цикле программы записываются в SPDR независимо от того принят байт или нет.Как то некрасиво получилось, но заработало. А также я не поверял бит WCOL(Write Collision Flag) при записи в SPDR, а возможно надо было.

С уважением. Шуньгин Александр г. Новодвинск Архангельской губернии

Привет Alex!

Воскресенье Октябрь 12 2003 16:40, Alex Shungin -> Ivan Melnikov:

IM>> Пытаюсь запустить сабж на Atmele AT82LS8252, передача получается, IM>> а вот прием с приемом никак. Кто-нибудь сабж использовал? Hадо IM>> кодек проинициализировать с с помощью сабжа. Интересует порядок IM>> инициализации сабжа и т.д. AS>

AS> Я использовал SPI в AT89S8252 в режиме Slave для связи с PC. Сначала

А в этом режиме атмел выдавал частоту или PC ?

AS> тоже были проблемы с приёмом, контроллер возвращал обратно переданное AS> к нему значение пока не написал вот так:

[... пропущено ...]

AS> Это кусок не в обработчике прерывания от SPI, а в основном цикле,

Я тоже обрабатываю не в обработчике прерывания

AS> поэтому получается, что данные в каждом цикле программы записываются AS> в SPDR независимо от того принят байт или нет. AS> Как то некрасиво получилось, но заработало.

Почему ? Главное работает...

AS> А также я не поверял бит WCOL(Write Collision Flag) при записи в

Я его тоже не проверяю.

AS> SPDR, а возможно надо было. AS>

Зачем ? Ты какой установки в SPCR прописал ? Ты пробовал их менять ? Влияют на работу или не принципиально ?

С уважением, Ivan Melnikov Вторник Октябрь 14 2003 22:05.

... "Прежде чем говорить что думаешь, думай,что говоришь."

Добрый день, Ivan! 14 oct 03 17:43 Ivan Melnikov wrote to Alex Shungin

IM>>> Пытаюсь запустить сабж на Atmele AT82LS8252, передача получается, IM>>> а вот прием с приемом никак. Кто-нибудь сабж использовал? Hадо IM>>> кодек проинициализировать с с помощью сабжа. Интересует порядок IM>>> инициализации сабжа и т.д.

AS>> Я использовал SPI в AT89S8252 в режиме Slave для связи с PC.

IM> А в этом режиме атмел выдавал частоту или PC ?

Контроллер как Slave поэтому РС выдавал синхронизацию.

AS>> тоже были проблемы с приёмом, контроллер возвращал обратно AS>> переданное к нему значение пока не написал вот так:

[... пропущено ...]

AS>> Это кусок не в обработчике прерывания от SPI, а в основном цикле,

IM> Я тоже обрабатываю не в обработчике прерывания

Если делать в прерывании, такая запись не сработает - не факт, что данные запишутся в SPDR сразу. Думаю именно для того чтобы убедится в записи данных для передачи и нужен бит WCOL(Write Collision Flag).

AS>> поэтому получается, что данные в каждом цикле программы AS>> записываются в SPDR независимо от того принят байт или нет. AS>> Как то некрасиво получилось, но заработало.

IM> Почему ? Главное работает...

Плохо когда не понимаешь, что конкретно происходит. В какой момент происходит запись в регистр не понятно.

AS>> А также я не поверял бит WCOL(Write Collision Flag) при записи в

IM> Я его тоже не проверяю.

AS>> SPDR, а возможно надо было.

IM> Зачем ?

Чтобы убедится прошла запись в SPDR или нет.

IM> Ты какой установки в SPCR прописал ?

mov SPCR,#040h

IM> Ты пробовал их менять ? IM> Влияют на работу или не принципиально ?

Пока нет времени разбираться, с рабочего проекта рассказываю, он работает.

С уважением. Шуньгин Александр г. Новодвинск Архангельской губернии

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required