реклама на сайте
подробности

 
 
> Переход Philips->Atmel
serj_obninsk
сообщение Mar 16 2007, 14:14
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 15-05-06
Пользователь №: 17 104



Здравствуйте, господа. Изложу вкратце суть проблемы. Программил я потихоньку на МК LPC210x, и теперь волею судьбы (а точнее, нынешнего работодателя smile.gif ), перехожу на Atmel AT91SAM7S. Первое впечатление - куда я попал?!!! Вроде опыт работы с процом ARM-архитектуры имеется, а всё равно с ходу ничего не понятно. Такими же остались только команды и архитектура регистров общего назначения. Ну да с этим понятно, это и есть архитектура.

Теперь о грустном. ВСЯ периферия другая maniac.gif

Мой вопрос: подскажите, с чего начать осваивать атмелы, где взять примеры кода, есть ли книжка наподобие "Микроконтроллеры LPC2000" Тревора Мартина.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sensor_ua
сообщение Mar 17 2007, 16:56
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Отсутствие FIFO для LSR - нельзя доверять всему содержимому FIFO приёма при, например, FE, т.е. нужно обходить ситуации, когда под конец длинного пакета в линии уже может появиться мусор - самый простой способ, ИМХО, - вырубать это FIFO. Также маразм с TEMT - бит есть, но прерывания не вызывает, а при чтении LSR могут сбрасываться прочитанные биты, т.е. в полудуплексе как-то поллить ещё можно, а в дуплексе (да и в полудуплексе для управления 485-м) конец передачи только таймером выгребать. Я, правда, делал ещё вариант с извратом - там где захотелось проверить флаг, взводил программно запрос прерывания (пришлось на всякий случай для блокированного доступа к VIC в User Mode описывать эту процедурку через SWI-функцию) - ну и тем самым LSR читался только в одном месте. Ну и сам прикол с Interrupt Pending принёс достаточно сексу при отладке полного дуплекса, а в примерах и практически всех поучительно/развлекательных материалах по этому поводу такая чушь...


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 17 2007, 17:48
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(sensor_ua @ Mar 17 2007, 15:56) *
Отсутствие FIFO для LSR - нельзя доверять всему содержимому FIFO приёма при, например, FE,

На практике знание, что в пришедшем фрейме один байтик с Frame Error ни к чему другому, как к перерередаче всего фрейма привести не может sad.gif. Знание того, что ошибка конкретна была в "третьем байте с краю" вполне бесполезно.
Наличие LSR в FIFO имеет некоторый смысл при передаче одиночных (не сгрупиррованных) самодостаточных байтов.
В нормальных линиях ошибок просто НЕТ smile.gif - личный многолетний опыт с логированием ошибок. Для жутких условий - все аппаратные контроли UART вообще нафиг а сэкономленые parity bit-ы использовать для нормального CRC.
Цитата
а при чтении LSR могут сбрасываться прочитанные биты,

Ну написано так, что можно подумать, что биты то сбрасываются когда захотят, то не сбрасываются когда надо smile.gif. На самом деле сбрасываются при чтении те самые биты ошибок...
Любой вариант из двух возможных имеет свои достоинства и недостатки. Если хочется не сбрасываемых, то просто хранится копия LSR, что в большинстве случаев более разумно, чем тратить время на доступ к медленной периферии для "посмотреть" и "сбросить". Я лично предпочитаю сбрасываемые чтением флаги и при необходимости хранение их в памяти.
Цитата
т.е. в полудуплексе как-то поллить ещё можно, а в дуплексе (да и в полудуплексе для управления 485-м) конец передачи только таймером выгребать.

Конец передачи - прерывание по THRE + для тупых 485 применений последующий опрос TEMT.
Хоть в дуплексе, хоть нет.
Цитата
ну и тем самым LSR читался только в одном месте.

Макрос вместо команды прямого чтения LSR и все будет читаться и сохранять флаги "в одном месте".
Цитата
практически всех поучительно/развлекательных материалах по этому поводу такая чушь...

"поучительно/развлекательных" материалы лучше вообще читать sad.gif надо только мельком. Чушь там совершенно обычное дело вне зависимости от фирмы и авторства sad.gif. Думать, пробовать, привлекать собственный опыт и еще раз думать.

P.S.
Я отнюдь не идеализирую '550' - встречал и много-много лучше, но он вполне удачен и сбалансирован, что и обеспечило ему долгую жизнь.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 17 2007, 18:53
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(zltigo @ Mar 17 2007, 16:48) *
Я отнюдь не идеализирую '550' - встречал и много-много лучше, но он вполне удачен и сбалансирован, что и обеспечило ему долгую жизнь.
Но встраивать в новый 32-битный процессор убогий 8-битный(!) уарт разработки 30-летней давности - несколько, гм, странновато.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- serj_obninsk   Переход Philips->Atmel   Mar 16 2007, 14:14
- - SpiritDance   Поздравляю. В свое время тоже попал в такую сетуев...   Mar 16 2007, 15:01
|- - kichkine   Я бы начал с чтения errata, очень полезный докумен...   Mar 16 2007, 15:30
|- - serj_obninsk   Цитата(SpiritDance @ Mar 16 2007, 15:01) ...   Mar 16 2007, 15:33
- - SpiritDance   На сайте атмел например http://atmel.com/dyn/prod...   Mar 16 2007, 16:16
|- - Jurdens   Не понимаю нафиг тебе переходить. Я вот обратно с ...   Mar 16 2007, 16:56
|- - serj_obninsk   ЦитатаНе понимаю нафиг тебе переходить. Я вот обра...   Mar 16 2007, 18:30
- - KostyanPro   http://projects.org.ua/project/arm/AT91SAM7S256_HO...   Mar 16 2007, 19:02
- - Сергей Борщ   Цитата(serj_obninsk @ Mar 16 2007, 13:14)...   Mar 16 2007, 23:57
|- - defunct   Цитата(Сергей Борщ @ Mar 16 2007, 22:57) ...   Mar 17 2007, 00:41
- - Dopler   Примеров там до черта, со всей переферией, с сайта...   Mar 17 2007, 10:16
- - DASM   Ну народ пошел.. Атмель намного приятнее, перефири...   Mar 17 2007, 11:24
|- - klen   Цитата(DASM @ Mar 17 2007, 11:24) Ну наро...   Mar 17 2007, 13:26
|- - zltigo   Цитата(klen @ Mar 17 2007, 12:26) обоснуй...   Mar 17 2007, 15:57
- - DASM   чего обосновывать ? DMA на перефирию нету, тока жр...   Mar 17 2007, 13:49
- - sensor_ua   Внятно о минусах - только плохая (вроде уже у ...   Mar 17 2007, 15:23
- - beer_warrior   ЦитатаLPC - АЦТОЙ !!! C LPC не работал...   Mar 17 2007, 15:37
|- - serj_obninsk   Цитата(beer_warrior @ Mar 17 2007, 16:37)...   Apr 10 2007, 13:55
- - sensor_ua   ЦитатаХарактерная особенность 550 UART, что в нем ...   Mar 17 2007, 16:05
|- - zltigo   Цитата(sensor_ua @ Mar 17 2007, 15:05) Эт...   Mar 17 2007, 16:32
|- - zltigo   Цитата(Сергей Борщ @ Mar 17 2007, 17:53) ...   Mar 17 2007, 20:34
- - DASM   Дядьки, скажите плиз, сколько Пхилипс кушает на 50...   Mar 17 2007, 17:24
- - sensor_ua   ЦитатаВ нормальных линиях ошибок просто НЕТ - лич...   Mar 17 2007, 19:32
- - sensor_ua   ЦитатаА куда его битый? Ещё раз - битый только пос...   Mar 17 2007, 21:05
|- - zltigo   Цитата(sensor_ua @ Mar 17 2007, 20:05) Те...   Mar 17 2007, 22:31
- - sensor_ua   ЦитатаАбсолютно любой описание которого превышает ...   Mar 17 2007, 22:46


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 03:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.02789 секунд с 7
ELECTRONIX ©2004-2016