С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/169: Рейтинг темы: голосов - 169, средняя оценка - 4.75
Komoptj2010
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
1

Быстродействие AT24C512

24.02.2012, 21:31. Просмотров 30486. Ответов 48
Метки нет (Все метки)

Да, хорошая микросхема AT24C512, вместительная и нужно всего два вывода контроллера, блеск. Но вот в чём может быть проблема она же всего лишь EEPROM и предназначена (в основном) для хранения данных об настройках или чегото подобного, и поэтому медленная. Медленная я имею в виду то что для сохранения данных необходимо подождать минимум 3 микросекунды, долго. Я собираю диктофон на контроллере и собираюсь хранить данные уровня звука на AT24C512. Всё было бы нормально АЦП меряет уровень, инвертирует и сново меряет и сохраняет на память. Но не тут то было, для минимально нормального звучания надо как минимум 8000 Гц дискретизации, а при сохранении на AT24C512 не хватает времени. Может ктото знает как можно ускорять память или чтото в роде этого, буду признателен.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2012, 21:31
Ответы с готовыми решениями:

ATTiny2313 и микросхема памяти at24c512
Привет знатокам, может кто поможет! Необходимо наладить 2wire интерфейс через...

замена at24c512
Если правильно понял, то память at24c512 сняли с производства. А чем заменили?

Быстродействие
Имеется сервер Lotus Domino 7.0.1 Имеется клиентская часть Lotus Notes 7.0.2...

Быстродействие БД
Добрый день, коллеги. Хотелось бы посоветоваться. Не очень понятно написано в...

Быстродействие
Кто нибудь знает если писать приложение под web и писать к нему агенты что...

48
Komoptj2010
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
26.02.2012, 02:36 21
Цитата Сообщение от DYVOM
2 Komoptj2010;
Сам недавно с этой памятью работал - делал LED125 кубик;
Много парился с памятью и выяснил, что
1)записывать можно массив данных по 127 байт за 1 раз;
2)частота довольно приличная 400кГц;

в твоем случае на дискредитации 8кГц должно хватить, если ADC брать по 8бит, то необходиния скорость записи будет примерно 8*8000 = 64КБайта/сек + старт-стоп биты посылки;

И тебе этой еепромки хватит на... 1сек...
Боюсь вы ошибаетесь, я обясьню почему.
Для записи действительно можно подавать массивы памяти но по 4 байта, после команды стоп необходимо выждать время для внутренних работ памяти ( там происходят процесся заряда битов в блоках ). Эта задержка должна составлять минимум 3 микросекунды, а это уже слишком долго. 1/8000=0.00013 секуды то есть для записи одного бита памяти выделяется 0,13 микросекунды. Даже если я буду записывать массивами то 0,13 *4 =0,52 микросекунды что уже не как не вклинивается. И ещё, вы ещё раз пересмотрите свои расчёты, вы допустили ошибку, вы умножили биты на 8000 и почемуто получили байты :) при этом говорите что памяти хватит на 1 секунду, а если пересчитать то на 8 секунд, но даже и это не правильно. Я собираюсь записявать 4-х битный поток, что позволит и сократить время записи и сэкономить память и вобще стандарт орг предусматривает 2-х и 4-х битные потоки.
0
Komoptj2010
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
26.02.2012, 02:47 22
Цитата Сообщение от Johmmy0007
ещё есть AT45DB161,
а лучше сразу на sd-карточки переходите, и быстодействие достаточное и по spi работать может и объём и цена в норме
Да SD это конечно хорошо но я уже давно не могу её одалеть. С SPI проблем нет, но сама карта.... может быть я с адрессами путаюсь, может быть с командами, но резыльтать всё рано один: в единоборстве SD карты и маленького студента счёт 10:0 :(
0
stt
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
26.02.2012, 09:50 23
Цитата Сообщение от Komoptj2010
... Эта задержка должна составлять минимум 3 микросекунды, а это уже слишком долго. 1/8000=0.00013 секуды то есть для записи одного бита памяти выделяется 0,13 микросекунды. Даже если я буду записывать массивами то 0,13 *4 =0,52 микросекунды что уже не как не вклинивается....
Может я чего-то не понял, но 1/8000=0,000125сек=0,125милисекунда=125микросекунд. Из 125 мкс выделить 3 на запись не проблема, не так ли?!
0
Komoptj2010
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
26.02.2012, 16:19 24
Ой, да, это я перепутал. Задержка для записи длится 0.003 секунды то есть 3 милисекунды. А время выделенное для замера и прелбразования равно 1/8000=0.000125 приблизительно 0.00013. А вот теперь давай обясню свой алгоритм:
Делаем первый замер
Преобразуем 8ми битный сигнал в 4х битный
Сохраняем в памяти контроллера ROM
Повторяем эту операцию 8 раз
Сохраняем полученные результаты из ROM в EEPROM памяти
Продолжаем снова замерять с той же частотой
По окончанию замеров и преобразовании нам необходимо сохранить эти данные в EEPROM, но сохранение не будет производится так как память не успела сохранить пребедущие данные и команду записи будет игнорировать.
В результате получается что сохранено 8 замеров полезного поля, 8*3=24 пропущенно и т д.
При записи может быть проблем то нет, но при воспроизведении получается проблема. Воспроизводится то каждый полубайт с равномерной частотой, а насамом то деле между 4 и 5 должно быть ещё много других, вот в чём проблема.
Задача первоначально заключается в ускорении работы памяти для того чтобы не смещать дискрецию. Меня бы устроило что скорость сохранения была бы равна 125 микросекунды или выше. Но есть и предложения где говорилось об смене модуля памяти на другой работающий по SPI порту, да они действительно намного быстрее и архитектурно не требуют задержки для внутренних процессов.
0
Komoptj2010
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
26.02.2012, 16:28 25
Цитата Сообщение от Гарнист
Цитата Сообщение от Komoptj2010
Да, хорошая микросхема AT24C512, {...} как можно ускорять память или чтото в роде этого, буду признателен.
Поставить две. Микросхема тормозит, пока пишет сектор. Если писать чётный сектор в одну, нечётный - во вторую микросхему, то случится щясте.

Я это уже думал но мне этого всё равно не хватает. Длительность между сохранениями 0.001 секунды. Тогда уже надо ставить 4 микросхемы...., ну это и выкашивание!? И вобще эти данные в дальнейшем надо будет перенести на другие носители. Я не имею в виду что на комп или кудато ещё, эти данные нужно будет вложить в одну микросхему и запаять её на другую плату.
0
mzw
0 / 0 / 0
Регистрация: 19.09.2011
Сообщений: 1,835
26.02.2012, 16:45 26
Ну так и возьми Ramtron -овские FM24 или FM25 - специально для такого случая сделаны.
0
stt
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
26.02.2012, 18:10 27
Цитата Сообщение от Komoptj2010
Задержка для записи длится 0.003 секунды то есть 3 милисекунды. А время выделенное для замера и прелбразования равно 1/8000=0.000125 приблизительно 0.00013. А вот теперь давай обясню свой алгоритм:
Давай, интересно.
Делаем первый замер
Преобразуем 8ми битный сигнал в 4х битный
Не знаю, что, как и зачем, но верю на слово. Согласен.
Сохраняем в памяти контроллера ROM
Повторяем эту операцию 8 раз
1. Нет. Ждем второго замера, преобразовываем в 4-битный, склеиваем тетрады, получаем в одном байте информацию о двух замерах.
2. Не в ROM, а в ROM, но это описка. И так 128 раз.
Сохраняем полученные результаты из ROM в EEPROM памяти
Продолжаем снова замерять с той же частотой
В нашем случае- 128 байт, содержищие инфу о 256 замерах.
но сохранение не будет производится так как память не успела сохранить пребедущие данные и команду записи будет игнорировать.
Пусть переваривает 128 байт, мы тем временем готовим следующие.
Цитата:
В результате получается что сохранено 8 замеров полезного поля, 8*3=24 пропущенно и т д.
Как видим, это не совсем так
Komoptj2010"] Меня бы устроило что скорость сохранения была бы равна 125 микросекунды или выше.[/QUOTE]
Сильно в суть и ДШ не вдавался, но тебя устроит время сохранения, соизмеримое со временем записи в ROM 256 выборок.

Если неправ- поправьте.
0
Komoptj2010
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
26.02.2012, 20:08 28
Странно, мне уже второй человек говорит что в АТ24Схх можно записывать по 128 байт. STT, вы уверены в этом, я не пробывал на АТ24С512 столько за раз писать но АТ24С16 так не может. Если писать более 4х байт за один раз то 5й байт этого масива наложится на 1й и это факт. Это по тому что в микросхеме всего 4 байта внутренней оперативной памяти. В принципи я не думаю что АТ24С512 содержит больше, пусть у АТ24С512 адресация другая более расширинная (целых 2 байта) но архитектура всё таже.
0
stt
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
26.02.2012, 20:11 29
Цитата Сообщение от Komoptj2010
... STT, вы уверены в этом, я не пробывал на АТ24С512 столько за раз писать но АТ24С16 так не может. ...
Дык, о чем пишут первоисточники? http://www.atmel.com/Images/doc1116.pdf
Страница 9: PAGE WRITE: The 512K EEPROM is capable of 128-byte page writes.
0
swk
0 / 0 / 0
Регистрация: 22.10.2015
26.02.2012, 20:16 30
Цитата Сообщение от Komoptj2010
Странно, мне уже второй человек говорит что в АТ24Схх можно записывать по 128 байт.
• 128-byte Page Write Mode (Partial Page Writes Ottowed)

PAGE WRITE: The 512K EEPROM is capable of 128-byte
page writes.
A page write is initiated the same way as a byte write, but
the microsontroller does not send a stop condition after the
first data word is clocked in. Instead, after the EEPROM
acknowtidges receipt of the first data word, the microson-
troller can transmit up to 127 more data words. The
EEPROM will respond wyth a zero after each data word
received. The microsontroller must terminate the page
write sequence wyth a stop condition (refer to Fikure 3).

[249.91 Кб]
0
Komoptj2010
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
26.02.2012, 20:22 31
Ага, да действительно. А вот АТ24С16 может только по 4 бита. Да пожалуй это мой прокол не доглядел, а промежуток для сохранения такой же или нет?
0
Komoptj2010
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
26.02.2012, 20:40 32
Так тогда всё класс. Тогда получится что показание 32х замеров сохраняется на эти 16 байт и записывается. Время на эти замеры выделяется так 32*0.125=4 то есть 0.004 секунды уже больше чем 0.003 и в принципе хватает времени. В даташите нашол что промежуток должен быть 5мс мах. Всёже возможны проколы именно в том что мне необходимо 4мс. Ну я думаю что время записи скорее всего зависит от напряжения, а у меня чётко 5в. Так что проблем не должно быть, да?
0
DYVOM
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 14
26.02.2012, 21:22 33
Komoptj2010 ещё возьми на заметку, что нельзя записывать в одном массиве байты данных если начало и конец этого массива выходит за рамки одной страницы, иначе он просто те, данные, которые перешли за 128байтную границу выдаст за первые. например записываем следующий массив данных с адреса 0x00FA: 01 02 03 04 05 06 07 08 09 0A 0B 0C
тогда данные запишутся примерно так
FA: 01
FB: 02
FC: 03
FD: 04
FE: 05
FF: 06, а далее будет перескок через 128 битную границу и будет записывать так
00: 07
01: 08...
0
swk
0 / 0 / 0
Регистрация: 22.10.2015
26.02.2012, 21:25 34
Цитата Сообщение от Komoptj2010
Ага, да действительно. А вот АТ24С16 может только по 4 бита. Да пожалуй это мой прокол не доглядел, а промежуток для сохранения такой же или нет?
Write Cycle Time 10 ms
0
Komoptj2010
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
26.02.2012, 22:17 35
Цитата Сообщение от DYVOM
Komoptj2010 ещё возьми на заметку, что нельзя записывать в одном массиве байты данных если начало и конец этого массива выходит за рамки одной страницы, иначе он просто те, данные, которые перешли за 128байтную границу выдаст за первые. например записываем следующий массив данных с адреса 0x00FA: 01 02 03 04 05 06 07 08 09 0A 0B 0C
тогда данные запишутся примерно так
FA: 01
FB: 02
FC: 03
FD: 04
FE: 05
FF: 06, а далее будет перескок через 128 битную границу и будет записывать так
00: 07
01: 08...
Да, я в курсе. Та я и сам это уже говорил.
0
Komoptj2010
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
26.02.2012, 22:21 36
Цитата Сообщение от SWK
Цитата Сообщение от Komoptj2010
Ага, да действительно. А вот АТ24С16 может только по 4 бита. Да пожалуй это мой прокол не доглядел, а промежуток для сохранения такой же или нет?
Write Cycle Time 10 ms

Так подожди. Я здесь http://www.atmel.com/Images/doc1116.pdf прочитал что время сохранения данных мах 5мс.
0
stt
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
26.02.2012, 23:32 37
Цитата Сообщение от Komoptj2010
...Я здесь.... прочитал что время сохранения данных мах 5мс.
Страница 5.
The Write Cycle Time of 5 ms only applies to the AT24C512 divices bearing the process letter “A" on the package (the mark
is located in the lower right corner on the top side of the package).
Ищем с буквой "А" и пишем за 5мс.
З.Ы. У SWK ДШ несвежий))
0
swk
0 / 0 / 0
Регистрация: 22.10.2015
27.02.2012, 01:22 38
Цитата Сообщение от STT
Ищем с буквой "А" и пишем за 5мс.
З.Ы. У SWK ДШ несвежий))
Надейся на лучшее, но не забывай и про худшее...
Я предпочитаю не ориентироваться на предельные показатели. Пусть лучше останется запас. Да и не попадались мне с буквой "А". И еще быстродействие от напряжения питания зависит.

Но и при 10мс при записи блоками по 128 байт и промежуточным накоплением результатов в буфере, по моим прикидкам, можно иметь реальную скорость порядка 10 кбайт в секунду.

Сейчас проверил свои - у меня маркировка:
A T M L U 0 1 2
2 F B 2
Что означает AT24C512B 8-PDIP(2.5V) с питанием V = 2.5V to 5.5V, тактовой до 1 МГц,
• Self-timed Write Cycle (5 ms Max)
Согласно вот этому даташиту:
[675.05 Кб]

Так что действительно бывают и на 5мс. Только надо уточнять конкретно те, что уже имеешь. У нас их (24C512) в одном нигазине с десяток разных, и по цене, и по маркировке.
0
Komoptj2010
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
28.02.2012, 14:49 39
Да, я всё понял. Ну я попробую осуществить эту теорию и что получится отзвоньсю. Спасибо всем за полезные советы особенно STT.
0
Komoptj2010
0 / 0 / 0
Регистрация: 26.11.2011
Сообщений: 816
14.03.2012, 02:17 40
Это провал. То что запись получилась, я даже не сомнивался. Да запись получилась но это такой отстой, в 4-х битном режиме вообще как будто голос из унитаза, в 8-ми битном более мение но тоже фигня. Препод по связи говорит что при дискретизации 8000 Гц должно быть всё клас, но чтото практика далека от этого. Я по началу думал что это не запись а воспроизведение хромает но после тогго как переписал на комп получил тоже самое. Так что сомнений нет малодискретный период или сильно шумяший АЦП. Я уже начинаю самниватся об таких малообёмных микросхемах памяти.
А вот есть ещё идейка, нет ни у каого соображений, протокола или текста программы на контроллер для подключение его в режиме помошник. Как мастер у меня всё ОК, а вот как помошник есть маленькие соображения но тоже не очень хорошие. Может ктото сталкивался с такой задачей?
0
14.03.2012, 02:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2012, 02:17

Быстродействие
на рисунке баллон с газом

Быстродействие и БД
Здравствуйте! Пишу программу - библиотеку для работы с электронными книгами (в...

Быстродействие
Здравствуйте у меня случилась вот такая проблема. Играл я в одну игру...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru