SPI интерфес

Привет All!

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

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

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

Reply to
Ivan Melnikov
Loading thread data ...

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.

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

Reply to
Andrey Tischenko

Привет 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.

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

Reply to
Ivan Melnikov

Добрый день, 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, а возможно надо было.

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

Reply to
Alex Shungin

Привет 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.

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

Reply to
Ivan Melnikov

Добрый день, 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> Влияют на работу или не принципиально ?

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

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

Reply to
Alex Shungin

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.