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

 
 
7 страниц V  « < 2 3 4 5 6 > »   
Reply to this topicStart new topic
> Народ кто имел дело с EP9302, Как оно глюков много
aaarrr
сообщение Sep 23 2006, 15:26
Сообщение #46


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(sff @ Sep 23 2006, 18:55) *
Тоесть считать за глюк и лучше поставить буфер. А как было на старых?

AC97 кодек с DVDD 3.3V.

Цитата(sff @ Sep 23 2006, 18:55) *
Именно pull-up, ведь ds1306 активна по высокому CE. И как написано в datasheet internally pull-down 55kohm?

Тогда можете ничего не ставить. Просто CE лучше держать в неактивном состоянии во время сброса, например.

Цитата(sff @ Sep 23 2006, 18:55) *
А по SFRM я действительно что-то, видно, не понимаю. Нет не одни часики ещё SD/MMC в SPI.
Почитав доку вот что у меня сложилось. Я рассматривал режимы SPI при SPO=1 SPH=1 8 битная передача и SPI в мастере. При этом в момент простоя SCLK будет в HIGH. [начальное состояние CE_DS1306 = 0; CS_SD = 1; ]
Допустим нужно пообщаться с часиками.
Устанавливаю CE_DS1306 = 1; // CS_DS1306 идёт на GPIO
SSPDR=ADDR_SEC; //работаю напрямую с SSPDR записываю адрес (как я понимаю при этом появляется SCLK и по SSPTXD поплыли биты)
SSPDR=NEW_SEC; //так как FIFO глубокий пишу сразу туда и байт данных
while(~(SSPSR & (1 << TFE))); //Дожидаюсь завершения передачи
// после опустошения SCLK переходи в HIGH и остается в нём.
Устанавливаю CE_DS1306 = 0;

При работе с SD
CS_SD = 0;
// для простоты аналогично, хотя собираюсь, конечно, через DMA
CS_SD = 1;

и у меня получилось что для этого случая SFRM мне не нужен. В чём ошибка?

Для работы через polling SFRM действительно не нужен.

SFRM нужен:
- Если используется загрузка по SPI
- Если Вы хотите по-человечески работать на прерываниях

DMA для SPI лучше не использовать, так как придется использовать оба канала M2M DMA.
Учитывая наличие FIFO и низкую скорость, вполне можно обойтись и прерываниями.
Go to the top of the page
 
+Quote Post
sff
сообщение Sep 23 2006, 17:01
Сообщение #47


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404



Цитата(aaarrr @ Sep 23 2006, 19:26) *
AC97 кодек с DVDD 3.3V.

Хмм и операционники тоже от 3.3? Вопрос чисто из любопытства =)

Цитата(aaarrr @ Sep 23 2006, 19:26) *
Просто CE лучше держать в неактивном состоянии во время сброса, например.

Угу

Цитата(aaarrr @ Sep 23 2006, 19:26) *
- Если используется загрузка по SPI

Через SPI DataFlash.. не слишком геморно для этого проца.

Цитата(aaarrr @ Sep 23 2006, 19:26) *
- Если Вы хотите по-человечески работать на прерываниях

А вот про это поподробее, пожалуйста.
Вот нету прерывания на конец передачи нету, что неудобно.
Ну раз зашла речь о перрываниях под overrun interrupt что понимается, когда был принято слово и оно уже не помещается или когда наступил момент, что следущее принятое слово не влезет.
Go to the top of the page
 
+Quote Post
sff
сообщение Sep 23 2006, 17:02
Сообщение #48


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404



случайно 2 одинаковых добавилось

Сообщение отредактировал sff - Sep 23 2006, 17:04
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 23 2006, 17:46
Сообщение #49


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(sff @ Sep 23 2006, 21:01) *
Хмм и операционники тоже от 3.3? Вопрос чисто из любопытства =)

Специально же написал: DVDD smile.gif Аналоговое питание там 5V.

Цитата(sff @ Sep 23 2006, 21:01) *
Через SPI DataFlash.. не слишком геморно для этого проца.

Нет, нормально. Можно, например, небольшой свой загрузчик уложить в 25C256,
а он будет на хост через TFTP ходить.

Цитата(sff @ Sep 23 2006, 21:01) *
А вот про это поподробее, пожалуйста.
Вот нету прерывания на конец передачи нету, что неудобно.
Ну раз зашла речь о перрываниях под overrun interrupt что понимается, когда был принято слово и оно уже не помещается или когда наступил момент, что следущее принятое слово не влезет.

"Нету прерывания на конец передачи" - это не "неудобно", это пойти и удавиться.
Как узнать, когда можно забирать данные, если устройство одно, или менять CS, если их несколько?
Приделывать дополнительный механизм поллинга? А какие тормоза при этом будут?

Под overrun interrupt понимается момент, когда данные уже потеряны sad.gif
Go to the top of the page
 
+Quote Post
sff
сообщение Sep 23 2006, 17:52
Сообщение #50


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404



Цитата(aaarrr @ Sep 23 2006, 21:46) *
Под overrun interrupt понимается момент, когда данные уже потеряны sad.gif

Вот тогда, действительно, удавиться.

А SFRM как выручает? просто на INTx заведено =)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 23 2006, 18:06
Сообщение #51


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(sff @ Sep 23 2006, 21:52) *
А SFRM как выручает? просто на INTx заведено =)

Не на INTx, а на какой-нибудь пин из EGPIO - их можно заставить работать по фронту.
Go to the top of the page
 
+Quote Post
sff
сообщение Sep 23 2006, 20:03
Сообщение #52


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404



Цитата(aaarrr @ Sep 23 2006, 22:06) *
Цитата(sff @ Sep 23 2006, 21:52) *

А SFRM как выручает? просто на INTx заведено =)

Не на INTx, а на какой-нибудь пин из EGPIO - их можно заставить работать по фронту.

Спасибо.

Ну и последний вопрос по прерываниям, на сегодня? который не не дает спокойно спать =)
С разъёма SD/MMC я хочу подать CardDetect на EGPIO (Inserted-High) и сконфигурировать на прерывание по возрастающему фронту (отслеживается ввод карточи).

И чтобы отследить вытаскивание карточки хочу в теле прерывания (когда вставили карточку) переконфигурировать на falling edge и потом записать "1" в GPIOxEOI. Ну и в теле прерывания при вытаскивании опять менять на rising edge.

В этом нет ничего противозаконного?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 23 2006, 20:17
Сообщение #53


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



В железе не проверял, но вроде бы все законно smile.gif
Не уверен правда, что для детектирования наличия карточки стоит использовать прерывания - здесь и десяток-другой миллисекунд ничего не меняет.
Go to the top of the page
 
+Quote Post
asen
сообщение Sep 25 2006, 01:24
Сообщение #54


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



я думаю что дребизг контактов при вводе и извлечении карты вам все испортит при использовании прирываний поэтому думаю что опрос с определенной переодичностью здесь будет более к месту.
Go to the top of the page
 
+Quote Post
MemoryTest
сообщение Sep 25 2006, 08:45
Сообщение #55


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 25-01-05
Из: Мск регион.
Пользователь №: 2 161



Цитата(sff @ Sep 23 2006, 15:23) *
Было решил что со схемой EDB всё ясно, но вот что обнаружилось: в datasheet сказано что все IO ноги по Input' у должны влезать в RVDD+0.3V Tolerance, но в EDB AC97 (CS4271 ) выход SDOUT подключен напрямую к МК, но сама CS4271 запитана от 5V. И как это понимать?

Так RTC подключить возможно или я что-то напутал? Относительно SPI, здесь SFRM учитывать не нужно?
[attachment=7342:attachment]


я на 20 пин тоже сначала завел 3.3в но потом пришлося завести 5в так как ds1306 в моменты переходов с батарейки на основное питание просто в какойто ступор впадала., и из регистров я считывал непонятно что. с 5в все ок.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 25 2006, 12:34
Сообщение #56


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(MemoryTest @ Sep 25 2006, 12:45) *
я на 20 пин тоже сначала завел 3.3в но потом пришлося завести 5в так как ds1306 в моменты переходов с батарейки на основное питание просто в какойто ступор впадала., и из регистров я считывал непонятно что. с 5в все ок.

Тогда проще уж отдельный генератор поставить.
Go to the top of the page
 
+Quote Post
sff
сообщение Sep 25 2006, 13:09
Сообщение #57


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404



Цитата(aaarrr @ Sep 25 2006, 16:34) *
Цитата(MemoryTest @ Sep 25 2006, 12:45) *

я на 20 пин тоже сначала завел 3.3в но потом пришлося завести 5в так как ds1306 в моменты переходов с батарейки на основное питание просто в какойто ступор впадала., и из регистров я считывал непонятно что. с 5в все ок.

Тогда проще уж отдельный генератор поставить.

Зачем сразу так котигорично. MemoryTest, у вас VCCif запитано от 3.3 и только Vcc1 от 5? Тоесть при запитке Vcc1 всё равно все выводные уровни будут в 3.3 в диапазоне?


Цитата(asen @ Sep 25 2006, 05:24) *
я думаю что дребизг контактов при вводе и извлечении карты вам все испортит при использовании прирываний поэтому думаю что опрос с определенной переодичностью здесь будет более к месту.


По крайне мере на бумаге очень красиво говорится про GPIOxDB. Как написано в доке это позволяет устранять дребизг в прерывании (811 страница UserGuide к 9315).

Да, в принципе, это уже мелочи. Если не получится прерыванием сделаю опросом, благо в схеме при этом ничего не меняется.

Сейчас хочется с аппаратной частью максимально разобраться, чтобы потом не пришлось доробатывать топором и напильником ну или хотябы минимально smile.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 25 2006, 13:15
Сообщение #58


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(sff @ Sep 25 2006, 17:09) *
Зачем сразу так котигорично. MemoryTest, у вас VCCif запитано от 3.3 и только Vcc1 от 5? Тоесть при запитке Vcc1 всё равно все выводные уровни будут в 3.3 в диапазоне?

Затем. Перебор явный: 2 питания на одни часы + согласование уровня.

Цитата(sff @ Sep 25 2006, 17:09) *
Сейчас хочется с аппаратной частью максимально разобраться, чтобы потом не пришлось доробатывать топором и напильником ну или хотябы минимально smile.gif

Здесь такой подход более чем оправдан smile.gif
Go to the top of the page
 
+Quote Post
MemoryTest
сообщение Sep 25 2006, 14:07
Сообщение #59


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 25-01-05
Из: Мск регион.
Пользователь №: 2 161



Цитата(aaarrr @ Sep 25 2006, 17:15) *
Цитата(sff @ Sep 25 2006, 17:09) *

Зачем сразу так котигорично. MemoryTest, у вас VCCif запитано от 3.3 и только Vcc1 от 5? Тоесть при запитке Vcc1 всё равно все выводные уровни будут в 3.3 в диапазоне?

Затем. Перебор явный: 2 питания на одни часы + согласование уровня.

Цитата(sff @ Sep 25 2006, 17:09) *
Сейчас хочется с аппаратной частью максимально разобраться, чтобы потом не пришлось доробатывать топором и напильником ну или хотябы минимально smile.gif

Здесь такой подход более чем оправдан smile.gif



я использовал phy cs8952t там мне 5вольт нужны были по любому, поэтому получилося без проблем закинуть их же и на 20 пин rtc ds1306. Да у меня запитан от 5вольт только 20пин часов, VCCif = 3.3в
да все выходные уровни ds1306 3.3в макс.

то aaarrr
Зачем генератор какой отдельный ставить? если еще и часы нужны.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 25 2006, 15:48
Сообщение #60


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(MemoryTest @ Sep 25 2006, 18:07) *
Зачем генератор какой отдельный ставить? если еще и часы нужны.

Просто тогда я смогу поставить любые часы (мне, например, DS1340 нравятся), а генератор запитать от 1.8V. ИМХО, более красивое решение.
Go to the top of the page
 
+Quote Post

7 страниц V  « < 2 3 4 5 6 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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