Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
02.12.2010, 10:31
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Самодельный цифровой осциллограф
Сообщение от Alex9797
|
Я бы начал с того, что распараллелил. Немного сложнее, но зато надежнее. А когда все заработает, тогда можно при желании помаленьку разгонять на более высокие частоты. Хотя я думаю, что такой необходимости не возникнет. Если уж повышать частоту - то сразу в разы, а не по капельке.
|
Что-то я с распараллеливанием пока не могу сообразить. Частоту смены адреса получаем делением тактовой на два, сигнал записи СЕ, WE за одно значение адреса - полный период, подаем на одну SRAM, а его же проинвертированный на вторую SRAM. Но глядя в даташит на память вижу правило №14, и понимаю, что такой вариант не подходит. Например для первой памяти оно выполняется, а для второй не будет выполняться, т.к. проинвертированный CE, WE в момент смены адреса будет в нуле. Еще также не совсем пойму правило №16
14. Address valid prior to or coincident with CE transition LOW.
15. Data I/O is high impedance if OE = VIH.
16. If CE goes HIGH simultaneously with WE HIGH, the output remains in a high-impedance state.
Подскажите пожалуйста, как будет правильнее сделать распараллеливание?
|
|
|
|
02.12.2010, 11:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Самодельный цифровой осциллограф
roma9112, заранее извиняюсь, если что не так напишу. Дело в том, что схему я сейчас открыть не могу, на работе не установлены эти проги, а по памяти ее не запоминал. Поэтому могу только догадываться, что проблема с распараллеливанием возникла потому, что данные из АЦП двухбайтовые, а память однобайтовая. Конечно, если писать два байта друг за другом в одну память, то это более чем вдвое дольше, чем писать два байта параллельно в две микросхемы памяти. Для этого ничего из управляющих сигналов инвертировать не нужно. Одноименные адресные выводы обеих микросхем соединяются вместе. Шины данных - каждая сама по себе, и образуют одну сплошную 16-разрядную шину. На нее поступают данные с выхода АЦП. Одноименные управляющие выводы WE, CE и OE можно объединить.
При записи в память проблем не возникает. OE переключается на ввод (=1), оба CE активны ( =0 ), выставляется очередной адрес, на шине данных уже данные АЦП, на WE подается короткий строб, и все, дальше - переход к следующему адресу.
А вот при чтении могут быть проблемы. Конечно, можно и читать два байта сразу, если количество ног процессора позволяет. Зато это резко упрощает управление. А если читать по одному байту, то понадобится внешний мультиплексор для данных ОЗУ.
|
|
|
|
02.12.2010, 12:38
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Самодельный цифровой осциллограф
Нет, проблема немного не в этом. Шина данных 8-ми битная, просто тактовая частота 80МГц, а самые скоростные микросхемы памяти в наличии есть только 10-ти нановые и длительность импульса записи в них не менее 7нС. И вроде как получается мне нужно будет объединить шины адресов и поочередно подавать импульсы записи на каждую из них. Получится каждая будет работать на 40МГц.
И все таки как понять это сообщение?
16. If CE goes HIGH simultaneously with WE HIGH, the output remains in a high-impedance state.
Последний раз редактировалось roma9112; 02.12.2010 в 12:50.
|
|
|
|
02.12.2010, 14:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Самодельный цифровой осциллограф
Я правильно понял, что данные АЦП 8-разрядные? Это несколько меняет дело.
И не усложняет, и не упрощает, просто перераспределяется сложность из одного места в другое.
Если поочередно записывать в две микросхемы, то выигрыша никакого не получится. Ведь данные все равно должны поступать со скоростью 80МГц. Поэтому мало того, что каждую запись все равно надо успевать делать так же быстро, как побайтово, так еще будет тратиться время на переключение с одной микросхемы на другую.
В общем, чтобы выиграть время, нужно данные из АЦП загонять в параллельные регистры. Не могу сейчас сказать с полной уверенностью, голова забита работой, но пока мне кажется, что понадобится четыре восьмиразрядных регистра. Может и удастся сократить их количество, если хорошо подумать. В общем, два таких регистра должны стоять друг за другом, и сдвигать данные АЦП. То есть, данные АЦП подаются на входы первого, а его выходы - на входы второго. И за каждым измерением первый запоминает текущее измерение, ипо эстафете передает следующему регистру предыдущее измерение.
В то же время выходы обоих этих регистров подключены к входам двух остальных регистров. И каждое второе измерение они защелкивают данные с первых двух регистров. Таким образом, на их выходах в течение двух измерений будут удерживаться два байта, которые не спеша можно записать одновременно в две микросхемы памяти. Вот на этом и выигрывается время. И такой ценой.
Если в качестве этих регистров использовать внешние микросхемы, то они займут кучу места, и загадят всю плату своими корпусами и дорожками. Да и таких скоростных еще поискать. Поэтому единственный выход - использовать внутренности ПЛИС.
|
|
|
|
02.12.2010, 14:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Самодельный цифровой осциллограф
Сообщение от roma9112
|
16. If CE goes HIGH simultaneously with WE HIGH, the output remains in a high-impedance state.
|
Если на CE подается высокий уровень одновременно с высоким уровнем на WE, то выход останется в высокоимпедансном состоянии
|
|
|
|
02.12.2010, 14:15
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Самодельный цифровой осциллограф
Сообщение от Alex9797
|
Если на CE подается высокий уровень одновременно с высоким уровнем на WE, то выход останется в высокоимпедансном состоянии
|
Т.е. имеются ввиду именно выходы памяти? Мне то при записи нужно, чтобы действовали входы, значит если такой случай и произойдет при записи - то ничего страшного не произойдет получается...
Спасибо, насчет регистров, надо пораздумать.
|
|
|
|
02.12.2010, 14:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Самодельный цифровой осциллограф
Сообщение от roma9112
|
если такой случай и произойдет при записи - то ничего страшного не произойдет получается...
Спасибо, насчет регистров, надо пораздумать.
|
Страшного - ничего. Просто ничего в память не запишется. И запись, и чтение, возможны только при низком уровне на СЕ.
|
|
|
|
02.12.2010, 15:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Самодельный цифровой осциллограф
Сообщение от roma9112
|
Спасибо, насчет регистров, надо пораздумать.
|
Да, это расплата за скорость. Если в ПЛИСке место для них есть, и выводы от них наружу - то все классно, жить будет. А если нет - то скорее всего придется убавить аппетит, и работать на меньшей скорости. Зато надежно.
|
|
|
|
02.12.2010, 15:36
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Самодельный цифровой осциллограф
На скорую руку попробовал соорудить схему, правда с двумя регистрами, проанализировал в Максе вроде бы получилось, но если не трудно гляньте... В ней соответственно 1-й регистр и we1 на первую память, а второй на вторую. Если что я файлы Макса выложу.
|
|
|
|
02.12.2010, 17:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Самодельный цифровой осциллограф
Сообщение от roma9112
|
Если что я файлы Макса выложу.
|
Хорошо. А я к тому времени буду уже дома, и смогу их подправить. Потому что эта схема неверная. Если две памяти писать параллельно, то смена адреса должна происходить не по каждому измерению АЦП, а через одно. То есть, нужен делитель на два. Кроме того, инвертировать управляющие сигналы не требуется. Ну, и между собой регистры не так должны соединяться.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:18.
|
|