|
Atmel SAM3U4, Различные вопросы |
|
|
|
Jun 26 2011, 18:46
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Доброго времени суток! Начал потихоньку осваивать SAM3U4C, сделал темку, так как возникают различные вопросы, которые хотелось бы обсудить.
В этом камне, не смотря на два банка, RAM можно использовать как единый блок по адресам 0x20078000 - 0x20083FFF.
Можно ли такую же методику применить к флеш? В комплекте с ИАРом идёт флешлоадер, который шьёт сразу два банка по адресам 0x000E0000 - 0x0011FFFF.
Сделал в .icf файле также, посмотрим, как получится на практике, если вместо 0x00080000 везде в программе использовать 0x000E0000.
Ещё хотел спросить про встроенный RTC, если кто им пользовался.
Я так понял, что модифицировать время тут не так просто - надо сначала остановить часы, записать новые значения, запустить их, и подождать около 1 секунды, пока можно будет проводить следующую модификацию. Вот что интересно - после записи и запуска часов сбрасывается ли прескалер секунд? То есть переход на следующую секунду наступит ровно через секунду после запуска, или раньше, в зависимости от значения прескалера?
|
|
|
|
|
 |
Ответов
|
Jul 4 2011, 21:46
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(aaarrr @ Jul 4 2011, 15:22)  Нет, он обязан считать до 47. А вот и нет! На практике оказалось не так! Уже был уверен, после Ваших слов, что глюк с "убеганием" таймера вносит мой софт, но всё же когда пришёл с работы решил прогнать простенький цикл и сохранить значения счётчика TC0 на протяжении его цикла так: Код byte dbuf[4096]; for (int i = 0; i < sizeof(dbuf); i++) { dbuf[i] = (byte)AT_TC0->TC_CV; } то есть считав все его значения на протяжении относительно большого времени. Напомню, конфигурация счётчика была такая: Код AT_TCB0->TCB_TC0.TC_CMR = AT_TC_CLKS_TIMER_DIV32_CLOCK | AT_TC_WAVESEL_UP_AUTO | AT_TC_WAVE | AT_TC_ACPA_SET | AT_TC_ACPC_CLEAR; //| AT_TC_ASWTRG_CLEAR; AT_TCB0->TCB_TC0.TC_RA = 24; AT_TCB0->TCB_TC0.TC_RC = 48; то есть upcounter со сбросом по RC compare, RC = 48(!). И что же получил: Код 00 00 00 01 01 01 01 02 02 02 02 03 03 03 03 04 04 04 04 05 05 05 05 06 06 06 06 06 07 07 07 08 08 08 08 08 09 09 09 09 0a 0a 0a 0a 0b 0b 0b 0b 0c 0c 0c 0c 0d 0d 0d 0d 0e 0e 0e 0e 0e 0f 0f 0f 10 10 10 10 10 11 11 11 11 12 12 12 12 13 13 13 13 14 14 14 14 14 15 15 15 16 16 16 16 16 17 17 17 17 18 18 18 18 19 19 19 19 1a 1a 1a 1a 1b 1b 1b 1b 1c 1c 1c 1c 1c 1d 1d 1d 1e 1e 1e 1e 1e 1f 1f 1f 1f 20 20 20 20 21 21 21 21 22 22 22 22 23 23 23 23 24 24 24 24 25 25 25 25 25 26 26 26 27 27 27 27 27 28 28 28 28 29 29 29 29 2a 2a 2a 2a 2b 2b 2b 2b 2c 2c 2c 2c 2d 2d 2d 2d 2d 2e 2e 2e 2f 2f 2f 2f 2f 00 00 00 то есть прекрасно видно, что значением 48 - 0x30 - и не пахнет! Сброс идёт мгновенно и после 0х2f сразу получается 0! Теперь понятно, почему была такая погрешность. К слову, весьма необычная особенность аппаратуры, первый раз сталкиваюсь с таким поведением  Цитата Так из картинок и текста все в общем-то понятно... А Вы говорите, что всё понятно в мануале. Вот если бы была диаграмма с растактовкой переполнения\сброса\установки (что встречается довольно часто), тогда действительно многих вопросов бы не возникало, и не приходилось бы прибегать к практическим исследованиям, с чём Вы сами соглашаетесь  Цитата(aaarrr @ Jul 4 2011, 16:37)  Если прерывания гарантированно укладываются в 65мс, то не нужно. Хм, да хоть прерывания будут длиться 650 миллисекунд - что изменится? Код считывания таймера такой: Код dword sys_counter() { dword hw, lw; do { hw = AT_TCB0->TCB_TC2.TC_CV; lw = AT_TCB0->TCB_TC1.TC_CV; } while (hw != AT_TCB0->TCB_TC2.TC_CV); return (hw << 16) | lw; } Переполнение 32 битного счётчика возможно за период равный 71 минуте. Всё, что меньше этого периода, внести ошибку не в состоянии, по моему...
|
|
|
|
|
Jul 5 2011, 06:31
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(sonycman @ Jul 5 2011, 01:46)  К слову, весьма необычная особенность аппаратуры, первый раз сталкиваюсь с таким поведением  А Вы говорите, что всё понятно в мануале. Вот если бы была диаграмма с растактовкой переполнения\сброса\установки (что встречается довольно часто), тогда действительно многих вопросов бы не возникало, и не приходилось бы прибегать к практическим исследованиям, с чём Вы сами соглашаетесь  Странно действительно, так как прямо противоречит описанию 36.5.6 Trigger  Посмотрю на досуге. Цитата(sonycman @ Jul 5 2011, 01:46)  Хм, да хоть прерывания будут длиться 650 миллисекунд - что изменится? Да, все правильно. С прерываниями я погорячился.
|
|
|
|
|
Jul 5 2011, 09:37
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(aaarrr @ Jul 5 2011, 13:14)  Надо будет сравнить с SAM7. Описания у них не отличаются. Впрочем, не припоминаю, чтобы мне приходилось использовать UP_RC с малым значением этого самого RC, а 0.01% мог и не заметить, конечно. Да я бы тоже не заметил, в других чипах (от AVR до C-M3 разных производителей) никогда не сверял получаемые клоки, так как не использую их для точных измерений. Только тут, раз уж взялся ковырять модуль и с наскоку заставить заработать как хотелось не удалось, стал проверять всё досконально... Однако в моём случае ошибка в 2% через всего лишь час дала погрешность, легко заметную на глаз  Процессор, кстати, нормально прожорливый - на 96 МГц кушает почти 60 миллиампер, из периферии включены только TC0-TC2 и PIOA-PIOB. Если включить всю остальную периферию (без её конфигурирования) - получается красивая циферка 100 ма
|
|
|
|
Сообщений в этой теме
sonycman Atmel SAM3U4 Jun 26 2011, 18:46 aaarrr Цитата(sonycman @ Jun 26 2011, 22:46) Мож... Jun 26 2011, 19:17 sonycman Цитата(aaarrr @ Jun 26 2011, 23:17) Это т... Jun 26 2011, 21:03  aaarrr Цитата(sonycman @ Jun 27 2011, 01:03) При... Jun 26 2011, 21:07   sonycman Цитата(aaarrr @ Jun 27 2011, 01:07) Конеч... Jun 27 2011, 01:37    aaarrr Цитата(sonycman @ Jun 27 2011, 05:37) Но ... Jun 27 2011, 02:35 sonycman Да, в даташите довольно много ошибок\опечаток... Jun 29 2011, 15:48 aaarrr Цитата(sonycman @ Jun 29 2011, 19:48) Да,... Jun 29 2011, 17:03  sonycman Цитата(aaarrr @ Jun 29 2011, 21:03) Увы, ... Jun 29 2011, 17:13   aaarrr Цитата(sonycman @ Jun 29 2011, 21:13) Кст... Jun 29 2011, 17:31    sonycman Цитата(aaarrr @ Jun 29 2011, 21:31) Это п... Jun 29 2011, 17:41     aaarrr Цитата(sonycman @ Jun 29 2011, 21:41) Вот... Jun 29 2011, 17:46      sonycman Цитата(aaarrr @ Jun 29 2011, 21:46) На са... Jun 29 2011, 17:59       aaarrr Цитата(sonycman @ Jun 29 2011, 21:59) Вот... Jun 29 2011, 18:45 sonycman Из мануала не совсем понятно, в режиме Sleep Mode ... Jul 1 2011, 11:20 aaarrr Цитата(sonycman @ Jul 1 2011, 15:20) Но о... Jul 1 2011, 12:36  sonycman Цитата(aaarrr @ Jul 1 2011, 16:36) Не отн... Jul 1 2011, 13:50   aaarrr Цитата(sonycman @ Jul 1 2011, 17:50) ЗЫ: ... Jul 1 2011, 14:13    sonycman Цитата(aaarrr @ Jul 1 2011, 18:13) В Slee... Jul 1 2011, 14:29     aaarrr Цитата(sonycman @ Jul 1 2011, 18:29) Каки... Jul 1 2011, 14:42 sonycman Провозился вчера весь день с блоком таймеров, реал... Jul 4 2011, 10:10 aaarrr Цитата(sonycman @ Jul 4 2011, 14:10) Приш... Jul 4 2011, 11:22  sonycman Цитата(aaarrr @ Jul 4 2011, 15:22) Не пон... Jul 4 2011, 12:29   aaarrr Цитата(sonycman @ Jul 4 2011, 16:29) Цифр... Jul 4 2011, 12:37 sonycman Кстати, ещё одна фишка по поводу странной работы с... Jul 4 2011, 13:28 aaarrr Цитата(sonycman @ Jul 4 2011, 17:28) Стра... Jul 4 2011, 14:41  sonycman Цитата(aaarrr @ Jul 4 2011, 18:41) В ваше... Jul 4 2011, 16:25 aaarrr Проверил на SAM7: таки да, не доходит до RC, что с... Jul 5 2011, 15:58 sonycman Цитата(aaarrr @ Jul 5 2011, 19:58) То ест... Jul 5 2011, 18:10  aaarrr Цитата(sonycman @ Jul 5 2011, 22:10) И с ... Jul 5 2011, 18:19 singlskv Цитата(aaarrr @ Jul 5 2011, 19:58) Провер... Aug 25 2011, 21:29  sonycman Цитата(singlskv @ Aug 26 2011, 01:29) ну ... Aug 26 2011, 13:27   BurglarInt Здравствуйте, у меня появилась проблема при работе... Aug 30 2011, 12:12  singlskv Цитата(singlskv @ Aug 26 2011, 01:29) то ... Sep 12 2011, 22:03 sonycman Начал разбираться с SDIO (MCI) контроллером.
У не... Aug 9 2011, 15:48 aaarrr При записи может возникнуть только underrun, если ... Aug 9 2011, 16:01 sonycman Понятно, тогда устанавливаю их и забываю про это
... Aug 9 2011, 16:09 aaarrr Цитата(sonycman @ Aug 9 2011, 20:09) Даль... Aug 9 2011, 16:57  sonycman Цитата(aaarrr @ Aug 9 2011, 20:57) А вот ... Aug 9 2011, 17:02   aaarrr Цитата(sonycman @ Aug 9 2011, 21:02) ЗЫ: ... Aug 9 2011, 17:30    sonycman Цитата(aaarrr @ Aug 9 2011, 21:30) Да, то... Aug 9 2011, 18:06 aaarrr Я вводил поддержку SD за пару дней в страшной спеш... Aug 9 2011, 20:40 sonycman Цитата(aaarrr @ Aug 10 2011, 00:40) Я вво... Aug 11 2011, 16:55  aaarrr Цитата(sonycman @ Aug 11 2011, 20:55) За ... Aug 11 2011, 18:02   sonycman Цитата(aaarrr @ Aug 11 2011, 22:02) Что с... Aug 11 2011, 18:26    aaarrr Цитата(sonycman @ Aug 11 2011, 22:26) А н... Aug 11 2011, 19:49 sonycman Что-то не пойму, почему у меня виснет контроллер п... Aug 21 2011, 18:34 aaarrr Цитата(sonycman @ Aug 21 2011, 22:34) Всё... Aug 31 2011, 12:13 sonycman Цитата(aaarrr @ Aug 31 2011, 16:13) Наблю... Aug 31 2011, 21:08 aaarrr Охладить попробуйте - кит у меня зависал после ули... Aug 31 2011, 21:27 aaarrr 1-2. Нет.
3. Каких-либо прямых ограничений не имее... Sep 12 2011, 22:12 singlskv Цитата(aaarrr @ Sep 13 2011, 02:12) 1-2. ... Sep 12 2011, 22:27  aaarrr Цитата(singlskv @ Sep 13 2011, 02:27) А ч... Sep 12 2011, 22:32   singlskv Цитата(aaarrr @ Sep 13 2011, 02:32) Как и... Sep 12 2011, 22:39    aaarrr Цитата(singlskv @ Sep 13 2011, 02:39) то ... Sep 12 2011, 22:51     singlskv Цитата(aaarrr @ Sep 13 2011, 02:51) ообще... Sep 12 2011, 23:22 sonycman Потихоньку пишу инициализацию карты памяти контрол... Sep 22 2011, 18:22 aaarrr Цитата(sonycman @ Sep 22 2011, 22:22) Спр... Sep 22 2011, 19:57  sonycman Цитата(aaarrr @ Sep 22 2011, 23:57) Это н... Sep 23 2011, 01:37 sonycman Инициализация карты у меня получается такая:
Power... Sep 23 2011, 16:29 aaarrr Цитата(sonycman @ Sep 23 2011, 20:29) Ини... Sep 23 2011, 16:52  sonycman Спасибо!
Цитата(aaarrr @ Sep 23 2011, 20... Sep 23 2011, 17:00   aaarrr Цитата(sonycman @ Sep 23 2011, 21:00) А в... Sep 23 2011, 17:22 sonycman Цитата(aaarrr @ Sep 23 2011, 21:21) Можно... Sep 23 2011, 17:25 aaarrr Цитата(sonycman @ Sep 23 2011, 21:25) А в... Sep 23 2011, 17:30  sonycman Цитата(aaarrr @ Sep 23 2011, 21:30) Нет, ... Sep 23 2011, 17:44   aaarrr Цитата(sonycman @ Sep 23 2011, 21:44) То ... Sep 23 2011, 18:14 sonycman Хм, этот HSMCI вообще может корректно обрабатывать... Dec 15 2011, 10:28 aaarrr Цитата(sonycman @ Dec 15 2011, 14:28) Но ... Dec 15 2011, 10:40  sonycman Цитата(aaarrr @ Dec 15 2011, 14:40) Нет. ... Dec 15 2011, 10:43   aaarrr Цитата(sonycman @ Dec 15 2011, 14:43) но ... Dec 15 2011, 10:55    sonycman Цитата(aaarrr @ Dec 15 2011, 14:55) Кстат... Dec 15 2011, 11:00 aaarrr Ну, на CMD7(DESELECT) ответа и не должно быть.
Сд... Dec 15 2011, 11:14 sonycman Цитата(aaarrr @ Dec 15 2011, 15:14) Ну, н... Dec 15 2011, 11:19 sonycman Ну вот, вроде сделал чтение сектора, теперь надо б... Dec 15 2011, 15:05 aaarrr Цитата(sonycman @ Dec 15 2011, 15:19) Впр... Dec 15 2011, 16:15 sonycman Цитата(aaarrr @ Dec 15 2011, 20:15) Может... Dec 15 2011, 18:59  aaarrr Цитата(sonycman @ Dec 15 2011, 22:59) Что... Dec 15 2011, 19:10   sonycman Цитата(aaarrr @ Dec 15 2011, 20:15) Теоре... Dec 15 2011, 19:22    aaarrr Цитата(sonycman @ Dec 15 2011, 23:22) Но ... Dec 15 2011, 20:30     sonycman Цитата(aaarrr @ Dec 16 2011, 00:30) Упс. ... Dec 16 2011, 01:41      aaarrr Цитата(sonycman @ Dec 16 2011, 05:41) Поч... Dec 16 2011, 02:08       sonycman Цитата(aaarrr @ Dec 16 2011, 06:08) Так н... Dec 16 2011, 06:46        aaarrr Цитата(sonycman @ Dec 16 2011, 10:46) Инт... Dec 16 2011, 20:47         sonycman Цитата(aaarrr @ Dec 17 2011, 00:47) Карта... Dec 17 2011, 01:39          aaarrr Цитата(sonycman @ Dec 17 2011, 05:39) То ... Dec 19 2011, 08:12 sonycman Эмм... дошёл до конфигурирования DMA применительно... Dec 20 2011, 10:30 aaarrr Цитата(sonycman @ Dec 20 2011, 14:30) Наш... Dec 20 2011, 13:34  sonycman Цитата(aaarrr @ Dec 20 2011, 17:34) Табли... Dec 20 2011, 14:12 sonycman В мануале в примерах программирования DMA под HSMC... Dec 20 2011, 21:40 aaarrr Цитата(sonycman @ Dec 21 2011, 01:40) Оче... Dec 20 2011, 22:13 sonycman Попробовал запрограммировать DMAC на чтение из HSM... Dec 20 2011, 23:37 sonycman По поводу мультисекторной записи - в примерах в ма... Dec 22 2011, 12:05 aaarrr Мутный момент. Я смотрю DMADONE при чтении и BLKE ... Dec 22 2011, 12:14 sonycman Цитата(aaarrr @ Dec 22 2011, 16:14) XFRDO... Dec 22 2011, 12:41
2 страниц
1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|