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

 
 
23 страниц V  « < 12 13 14 15 16 > »   
Closed TopicStart new topic
> ATxmega
V_G
сообщение Dec 12 2009, 11:41
Сообщение #196


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

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(Склихасовский @ Dec 12 2009, 17:34) *
да получается, что предварительно стереть нужно

Стирать не нужно, NVM сам сотрет только обновляемые ячейки на странице (насколько помню).
Вообще есть соотв AppNote, там все подробно объяснено, я сделал по нему, и все работает без проблем. На ассемблере, правда. Использовал заполнения страничного буфера как обычное копирование данных (с контролем перехода за границы страницы) и Atomic Write.

А не в memory mapped - используйте старые алгоритмы и пишите по байту, изменений особых нет.
Новый режим экономичней, если писать более одного байта.

Сообщение отредактировал V_G - Dec 12 2009, 11:44
Go to the top of the page
 
+Quote Post
MDD
сообщение Dec 12 2009, 16:26
Сообщение #197


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

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



Цитата
используйте старые алгоритмы


"Старые алгоритмы" недоступны, теперь в любом случае пишется только через буфер страницы. Только в первом случае (I/O-mapped) доступ к нему через NVM контроллер, во втором он мапится в память.
Запутал Атмел невнятным описанием этого своего страничного доступа. Значит получается, что во время Atomic Write на странице трутся только "потревоженные" в буфере ячейки, а не тупо вся страница. Типа, хочешь - пиши одной командой один байт, хочешь сразу всю страницу. А ведь первое впечатление было такое - раз очистил перед записью буфер, значит будет чиститься и страница...

Сейчас проверил через I/O-mapped доступ - действительно это так! Соседние, ранее записанные ячейки, не трет...
Значит все совсем неплохо smile.gif

Сообщение отредактировал MDD - Dec 12 2009, 16:35
Go to the top of the page
 
+Quote Post
Склихасовский
сообщение Dec 12 2009, 16:32
Сообщение #198


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

Группа: Участник
Сообщений: 77
Регистрация: 29-11-06
Пользователь №: 22 912



Цитата(V_G @ Dec 12 2009, 14:41) *
Стирать не нужно, NVM сам сотрет только обновляемые ячейки на странице (насколько помню).
Вообще есть соотв AppNote, там все подробно объяснено, я сделал по нему, и все работает без проблем. На ассемблере, правда. Использовал заполнения страничного буфера как обычное копирование данных (с контролем перехода за границы страницы) и Atomic Write.

если не сложно можно взглянуть на исходники ASM?

Цитата(MDD @ Dec 12 2009, 19:26) *
Сейчас проверил через I/O-mapped доступ - действительно это так! Соседние, ранее записанные ячейки, не трет...
Значит не все совсем неплохо smile.gif


а если переписать ячейку тогда как? например было $00 нужно $FF
---
И так я все таки не вкурил доконца...
требуется записать область маппед с адреса $1020-103f
1. копирую из основной памяти эти 32 байта в маппед область с адреса $1020
2. выставляю команду NVM контроллеру (если не ошибаюсь $35)
3. регистр адреса NVM определяю как 1 страница
4. даю команду на выполнение.
Правильно? (а то проверить смогу тока в понедельник)

Сообщение отредактировал Склихасовский - Dec 12 2009, 16:37
Go to the top of the page
 
+Quote Post
MDD
сообщение Dec 12 2009, 18:12
Сообщение #199


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

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



Цитата(Склихасовский @ Dec 12 2009, 18:32) *
а если переписать ячейку тогда как? например было $00 нужно $FF

Сейчас специально проверил конкретно этот случай - все работает.
Т.е. допустим в первой ячейке страницы был 0.
Дальше очищаем буфер страницы. Казалось бы, что после этой команды во всем буфере должны сидеть $ff (или $00).
В этом и было мое главное заблуждение. Надо считать, что это абстрактно пустой буфер.
Дальше, в первую ячейку буфера пишем $ff(или любое другое число). Остальные ячейки не трогаем.
И даем команду Atomic Write.
После этого будет стерта и записана новым значением только первая ячейка страницы.
Если бы загрузили сразу несколько любых ячеек буфера, они бы тоже были переписаны в соответствующее ячейки страницы во время действия этой команды.
Т.е. резюме такое - "пустые ячейки" буфера никуда не пишутся (не портят содержимого страницы).

PS.На счет memory-mapped режима не подскажу, еще не разбирался.
Go to the top of the page
 
+Quote Post
Склихасовский
сообщение Dec 24 2009, 18:45
Сообщение #200


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

Группа: Участник
Сообщений: 77
Регистрация: 29-11-06
Пользователь №: 22 912



ещё одна небольшая непонятка.
Модуль TWI...
режим ведущий приемник
требуется при приеме последнего байта передать NASK.
И как то он не хочет передаваться
бит Bit 2 - ACKACT: Acknowledge Action установлен в 1, после чего подается команда xx10 (Execute Acknowledge Action succeeded by a byte receive)
но ничего не передается - не принимается...
Ещё прошу обяснить что за режим SMEN: Smart Mode Enable.
может из за него NASK не работает?

Сообщение отредактировал Склихасовский - Dec 24 2009, 18:47
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Dec 25 2009, 07:38
Сообщение #201


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



Цитата(Склихасовский @ Dec 24 2009, 21:45) *
бит Bit 2 - ACKACT: Acknowledge Action установлен в 1, после чего подается команда xx10 (Execute Acknowledge Action succeeded by a byte receive)
но ничего не передается - не принимается...

Юзайте команду 0bxxxxxx11.


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
Serj78
сообщение Dec 27 2009, 18:37
Сообщение #202


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



Цитата(ZVA @ Nov 14 2009, 16:01) *
2. Проверены собственные шумы АЦП в таком режиме для двух вариантов:
- выводы АЦП в диф. включении были замкнуты между собой резистором 2К и никуда не подключались, АЦП крутился в free run режиме и значения считывались асинхронно и передавались по RS485 в PC. Кроме этого в прерываниях от таймера формировалась пила на ЦАПе и моргал тестовый светодиод. Кроме собственно значений АЦП в RS485 передавались значения после фильтрации. Фильтр экспоненциальный(две строчки на С), я его обычно использую во всех задачах измерения постоянных сигналов.
Результаты без коментариев даны на рис.1

Выводы, плохой камень или нет, делайте сами.


Если вас не затруднит, испытайте пожалуйста, шумы ацп в не дифферециальном включении от хорошего опорника. с rc фильтром.
Я думаю, общественности будет интересно.

Я делал такие измерения для STM32F103R8 , для анализа линейности оверсемлинга, результатом остался доволен.
Из массива полученных данных я строю диаграмму в экселе- распределение вероятности.
По вертикальной оси сколько раз значение встречается в процентах от всей выборки, по горизонтальной оси- сами значения. При "правильной" работе АЦП должно получаться гауссовское распределение.

Я строил такие диаграммы для разных настроек ацп- частоты и времени выборки.
Как ни странно высокая(12Мгц) частота и малое время выборки (3мкс) ацп давала самые малошумящие значения, всего +-1 разряд на выборку из 3000 значений.
Но для увеличения линейности оверсемплинга лучше было уменьшать частоту до 9 Мгц и немного поднимать время выборки- - тогда значения размазывались на +-3, и после фильтрации линейность возрастала.
Шум (dithering) специально не подмешивал.
Go to the top of the page
 
+Quote Post
vitek101
сообщение Dec 28 2009, 08:45
Сообщение #203


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 013



Подскажите, пожалуйста... Область памяти, которая называется таблицей приложения. В даташите написано, что если не хранить в ней данные, то ее можно использовать под приложение. Так вот, как узнать, использую ли я ее для хранения данных? Другими словами, чтоб хранить в ней данные надо это каким-то особенным образом объявить? А если я этого не знаю, то я ее и не использую? И если я правильно понимаю все вышесказанное, то приложение можно расширить до 136КБ? А из бутлоадера эта область доступна?

Или эта таблица входит в 128КБ памяти программ?
Go to the top of the page
 
+Quote Post
Duhas
сообщение Dec 29 2009, 05:50
Сообщение #204


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 13-04-07
Пользователь №: 27 018



по идее входит в 128 )
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Jan 2 2010, 20:03
Сообщение #205


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

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Почитал на досуге еррату на ATxmega32A4 и ужаснулся: использовать ревизию А с такими ошибками и недоработками просто стремно, плюс еще скока вылезет неожиданно... Вроде ревизий позднее А еще нет и не скоро будет...
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 2 2010, 22:15
Сообщение #206


Любитель
*****

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



Цитата(ivainc1789 @ Jan 3 2010, 00:03) *
Почитал на досуге еррату на ATxmega32A4 и ужаснулся: использовать ревизию А с такими ошибками и недоработками просто стремно, плюс еще скока вылезет неожиданно... Вроде ревизий позднее А еще нет и не скоро будет...

ЧТо-же там такого страшного?
Можно например?
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Jan 2 2010, 23:01
Сообщение #207


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

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(sonycman @ Jan 3 2010, 01:15) *
ЧТо-же там такого страшного?
Можно например?
Так там же все написано. Просто вложили крутую периферию и тут же ее "ограничили". Особенно удручают ошибки в ADC, DAC и BOD. Ну как можно было выпускать кристалл, у которого ADC "не умеет" работать выше 2.4V, а дифф входы вообще имеют диапазон обратно пропорциональный усилению??? Это выглядит даже как-то несерьезно, что ли... Лучше бы задержали релиз на пару месяцев, не позорились...
Go to the top of the page
 
+Quote Post
MDD
сообщение Jan 3 2010, 10:31
Сообщение #208


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

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



Цитата(ivainc1789 @ Jan 3 2010, 01:01) *
ADC "не умеет" работать выше 2.4V, а дифф входы вообще имеют диапазон обратно пропорциональный усилению???


А как Вы хотели иначе с диапазоном диффвходов? Там имеется ввиду дифференциальное напряжение. Естественно чем больше усиление, тем меньше допустимый максимальный сигнал на входе. Кстати, здесь в теме кто-то проверял синфазное напряжение, вроде работает до тех же 2.4В.
А вот померить Vсс напрямую похоже уже никогда не удастся. В последней версии даташита появилось максимальное значение для Vref=Vcc-0.6V. Это конечно неудобно.
А вообще, даже с такой ерратой жить можно. Многие обещанные фичи там весьма приятны и сделаны изначально прямо smile.gif
Go to the top of the page
 
+Quote Post
MDD
сообщение Jan 28 2010, 13:11
Сообщение #209


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

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



А не пробовал ли кто-нибудь встроенный температурный сенсор? Не скажу, что много от него хотел бы. Но в качестве показометра не помешал бы. В даташитах этот сенсор описан крайне скупо. В атмеловском сапорте на вопрос о типовых характеристиках молчат как партизаны.
Попробовал включить "втемную" - намеряет напряжение около 0.6В. Можно было бы предположить, что это обычный диод. Но вот незадача - при изменении температуры с +20 до -10 показания практически не меняются. При этом в калибровочных байтах что-то записано, причем значения разные для разных чипов. Может я что-нибудь упустил...
Go to the top of the page
 
+Quote Post
Spider
сообщение Jan 28 2010, 13:50
Сообщение #210


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Цитата
An internal temperature reference is available. Measuring the voltage on this will give an ADC
result representing the current temperature in the microcontroller. The temperature, T, is given
as:
T = TBD ⋅ ADCRESULT + TBD

А вот кто такой TBD я что-то не понял...
Go to the top of the page
 
+Quote Post

23 страниц V  « < 12 13 14 15 16 > » 
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 05:30
Рейтинг@Mail.ru


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