Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь. |
02.06.2008, 21:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 09.12.2007
Адрес: Новосибирск
Сообщений: 1,021
Сказал спасибо: 10
Сказали Спасибо 70 раз(а) в 63 сообщении(ях)
|
А почему 40x64 , в шрифте Брайля 2х3?
__________________
И на камнях растут деревья!
|
|
|
|
03.06.2008, 11:14
|
|
Заблокирован
Регистрация: 31.03.2007
Сообщений: 129
Сказал спасибо: 6
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Отвлекаясь от конкретного применения и привязываясь только к теме - сделать много входов/выходов для ATmega могу предложить вариант с ПЛИС типа ATF1508xx-xx100. У меня часто возникает задача принимать до 150 входов и управлять до 200 выходов, причем входа и выхода в матрицу организовать нельзя - для этого в ПЛИС серии ATF1508xx я создал структуру шинного мультиплексора 8[8]х1[8] (восемь восьмибитных шин на входе и одна восьмибитная на выходе) - это входная ПЛИС. Выходная ПЛИС организована как шинный демультиплексор 1[8]х8[8]. Входные и выходные ПЛИС подключаются к любой AVR, имеющей параллельный индерфейс и являются для AVR как ячейки внешней памяти, то есть возможно принимать и управлять примерно до 64536х8=516288 входов/выходов (теоретически, практически столько и не нужно никогда) с максимальной скоростью AVR (самые медленные ATF1508 запросто работают на скоростях › 40МГц). Таким образом достигается независимое статическое управление любым входом/выходом (когда нельзя применить динамический способ управления на сдвигающих регистрах) огромного количества объектов на самых высоких для AVR скоростях. Для данной задачи потребуется 640/(8х =10 ПЛИС типа ATF1508xx-xx100 или 640/(8х6)=‹14 ATF1508xx-xx84. Ценовой расчет для 10 шт. ATF1508xx-xx100 при стоимости 6$ дает примерно 10 центов на бит. Если заинтересует - отпишусь подробнее.
|
|
|
|
04.06.2008, 01:42
|
|
Временная регистрация
Регистрация: 03.02.2008
Сообщений: 54
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
прально вы сударь заметили - сдвиговые регистры рулят
я вот только посоветовал бы 74нс595.
и сдвиг и защелка и третье состояние.
в принципе тошиба кажется раньше делала подобные сдвиговые регистры - в 40 ножковых корпусах
а вам лучше модульную конструкцию механики табло продумать чтобы секции были кратны некому колву регистров. а дальше уже тока времена и длины линий
будут вас лимитировать либо последовательно либо сегментно-последовательно наращивать кол-во регистров.
|
|
|
|
05.06.2008, 19:05
|
|
Вид на жительство
Регистрация: 05.01.2007
Адрес: Украина, г. Макеевка
Сообщений: 408
Сказал спасибо: 229
Сказали Спасибо 62 раз(а) в 52 сообщении(ях)
|
Сообщение от zelen536
|
Отвлекаясь от конкретного применения и привязываясь только к теме - сделать много входов/выходов для ATmega могу предложить вариант с ПЛИС типа ATF1508xx-xx100. У меня часто возникает задача принимать до 150 входов и управлять до 200 выходов, причем входа и выхода в матрицу организовать нельзя - для этого в ПЛИС серии ATF1508xx я создал структуру шинного мультиплексора 8[8]х1[8] (восемь восьмибитных шин на входе и одна восьмибитная на выходе) - это входная ПЛИС. Выходная ПЛИС организована как шинный демультиплексор 1[8]х8[8]. Входные и выходные ПЛИС подключаются к любой AVR, имеющей параллельный индерфейс и являются для AVR как ячейки внешней памяти, то есть возможно принимать и управлять примерно до 64536х8=516288 входов/выходов (теоретически, практически столько и не нужно никогда) с максимальной скоростью AVR (самые медленные ATF1508 запросто работают на скоростях › 40МГц). Таким образом достигается независимое статическое управление любым входом/выходом (когда нельзя применить динамический способ управления на сдвигающих регистрах) огромного количества объектов на самых высоких для AVR скоростях. Для данной задачи потребуется 640/(8х=10 ПЛИС типа ATF1508xx-xx100 или 640/(8х6)=‹14 ATF1508xx-xx84. Ценовой расчет для 10 шт. ATF1508xx-xx100 при стоимости 6$ дает примерно 10 центов на бит. Если заинтересует - отпишусь подробнее.
|
Очень интересно, но я некогда раньше не работал с ПЛИС, я то и с Мегами только сейчас стал тесно разбираться. Но очень заинтересовало Ваше предложение, если не затруднит, то можно по подробней или ссылочку где можно почитать. А то я даже представления не имею как они конфигурируются или программируются.
|
|
|
|
05.06.2008, 19:07
|
|
Вид на жительство
Регистрация: 05.01.2007
Адрес: Украина, г. Макеевка
Сообщений: 408
Сказал спасибо: 229
Сказали Спасибо 62 раз(а) в 52 сообщении(ях)
|
Сообщение от domowoj
|
А почему 40x64 , в шрифте Брайля 2х3?
|
Если честно, то я понятия не имею, передомной была поставлена задача придумать схему, а техническая реализация за моим товарищем, но я все же поинтересуюсь и отпишусь на днях.
|
|
|
|
05.06.2008, 21:47
|
|
Гражданин KAZUS.RU
Регистрация: 16.12.2004
Сообщений: 587
Сказал спасибо: 13
Сказали Спасибо 23 раз(а) в 9 сообщении(ях)
|
Начните с исполнительных механизмов! Истину говорю!
|
|
|
|
06.06.2008, 10:21
|
|
Заблокирован
Регистрация: 31.03.2007
Сообщений: 129
Сказал спасибо: 6
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Цитата:
|
ник. N_i_k_o_p_o_l
Очень интересно, но я некогда раньше не работал с ПЛИС, я то и с Мегами только сейчас стал тесно разбираться. Но очень заинтересовало Ваше предложение, если не затруднит, то можно по подробней или ссылочку где можно почитать. А то я даже представления не имею как они конфигурируются или программируются.
|
Ничего сложного там нет - в MAX PLUS II V10.2 или QUARTUS II (обе проги от ALTERA, бери MAX PLUS II V10.2 - она меньше по объему, есть лекарство на нее, тебе хватит ее возможностей выше крыше, если не найдешь с креком - отпиши, вышлю) рисуешь как обычную схему на логических элементах (там есть библиотеки) - И, НЕ, регистры, счетчики и т. д., соединяешь как тебе надо и компилируешь одним кликом. Прямо там можно просимулировать работу схемы и посмотреть ее правильность, подавая там же входные сигналы и смотря на промежуточные и выходные.
Затем идешь на сайт Atmel и качаешь там две маленькие проги - одна Pof2jed.exe - перекодирует файл компиляции с расширением .pof, который получается после MAX PLUS II V10.2 и делает из него файл с расширение .jed для второй программки AtmelISP.exe, которая зашьет твою схему в ПЛИСку ATF1508. Схема программатора проще пареной репы - один буффер типа АП5, ищи на сайте Atmel, не найдешь - отпишись, выставлю . Работа с ПЛИСкой удобна не только тем, что в ней можно создать все что хочешь, но еще и тем, что можешь назначить входа/выхода на любые ножки как тебе удобней для разводки, можно многократно переписывать конфигурацию прямо в плате и есть биты секретности от несанкционированного копирования. На ПЛИС можешь создать и параллельное (для него я и создал свои ПЛИСки, писал в посте выше) и последовательное управление, т. е. увеличить количество ног до бесконечности (условно говоря) самого слабенького по количеству ног микроконтроллера.
Увеличить количество ног МК можно и старенькой доброй 580ВВ55 (8255 выпускается фирмами до сих пор) - там тоже параллельное управление, но на ПЛИСке эта задача решается гораздо лучше.
Что не ясно - пиши в после, постараюсь помочь.
|
|
|
|
06.06.2008, 11:51
|
|
Временная регистрация
Регистрация: 03.02.2008
Сообщений: 54
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
ни в коей мере не пытаюсь уменьшить достоинства плис.
у самого на столе лежит платка с мах7064.
но это ус-во для PCI шины.
я бы поднял вопрос об адекватности тех решений.
как человек занимавшийся табло - утверждаю - что я предложил самый оптимальный путь.
доводы
1 табло очень медленная периферия - скорость которая обеспечивается плис ему вовсе не нужна
2 сдвиговые регистры с защелкой для подобных вещей и применяются.
3 доставабельность простой логики и плис не сравнимы
вопрос - каков ток включения катушечки ?
|
|
|
|
06.06.2008, 12:05
|
|
Временная регистрация
Регистрация: 03.02.2008
Сообщений: 54
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от N_i_k_o_p_o_l
|
Очень интересно, но я некогда раньше не работал с ПЛИС, я то и с Мегами только сейчас стал тесно разбираться. Но очень заинтересовало Ваше предложение, если не затруднит, то можно по подробней или ссылочку где можно почитать. А то я даже представления не имею как они конфигурируются или программируются.
|
если так - то очень не рекомендую хвататся за все сразу.
разберитесь с с мегой получше.
например наводка - у меги есть последовательный интерфейс SPI. посмотрите какие у него сигналы.
посмотрите что такое шина I2C.
посмотрите примеры ее применения.
и вообще общее правило проектирования цифровых устройств.
скорость нужна там где она нужна .
там где она не нужна - работает программа.
у вас почти статика.
поэтому сосредоточтесь на минимуме аппаратного и максимуме программного - потом спасибо скажите.
помучаетесь с программой - зато потом одним нажатием прошивать будете а собирать девайс быстро - поверьте это многого стоит
|
|
|
|
06.06.2008, 15:05
|
|
Заблокирован
Регистрация: 31.03.2007
Сообщений: 129
Сказал спасибо: 6
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Параллельное и последовательное управление многими исполнительными устройствами или принятия сигналов с многих входов - это как правая и левая рука - ни та ни другая ничем в общем не лучше, но в каждом конкретном случае лучше правая или левая. Так и с параллельным и последовательными способами увеличения входов/выходов микроконтроллера - сначала необходимо определить а можно ли применить матричное соединенте входов (выходов) (в клавиатуре, табло или бегущей строке можно и нужно, сам так делаю), но есть куча задач где нельзя - каждый вход (выход) должен быть отдельным. В таких задачах часто и обычные регистры, соединенные последовательно применять нельзя (не буду объяснять, долго писать). Я писал об способе увеличить в/в с помощью ПЛИС, сидящих на параллельной шине МК, который замечательно работает и на медленных процессах, а на счет скорости - так это написано к тому, что МК сможет ОБРАЩАТЬСЯ к ПЛИС БЕЗ дополнительных циклов ожидания (для 8255 или 580ВВ55 нужны циклы ожидания, там граница 2МГц)
Цитата:
|
#define pin_OUT_PLIS PORTB.6 // Вывод МК на включение выходов OUT_ПЛИС
#define pin_on_OUT_PLIS (pin_OUT_PLIS = 0) // Разрешить выхода OUT_ПЛИС
#define pin_off_OUT_PLIS (pin_OUT_PLIS = 1) // Запретить выхода OUT_ПЛИС
#define IN_PA *((char*)0xF0FF) // Адрес во внешней памяти входного порта IN_ПЛИС
#define IN_PB *((char*)0xF1FF) // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
#define IN_PC *((char*)0xF2FF) // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
#define IN_PD *((char*)0xF3FF) // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
#define IN_PE *((char*)0xF4FF) // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
#define IN_PF *((char*)0xF5FF) // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
#define OUT_PA *((char*)0xE8FF) // Адрес во внешней памяти выходного порта OUT_ПЛИС
#define OUT_PB *((char*)0xE9FF) // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
#define OUT_PC *((char*)0xEAFF) // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
#define OUT_PD *((char*)0xEBFF) // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
#define OUT_PE *((char*)0xECFF) // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
#define OUT_PF *((char*)0xEDFF) // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
void main(void)
{
char AA, SS, DD;
// ---------------------------------------------------------------------
OUT_PA = 0xFF; // Выключить выходные за-ПЛИС-овые ключи
OUT_PB = 0xFF; // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
OUT_PC = 0xFF; // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
OUT_PD = 0xFF; // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
OUT_PE = 0xFF; // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
OUT_PF = 0xFF; // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
AA = IN_PA; // Опрос входов входной ПЛИС
SS = IN_PB; // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
DD = IN_PC; // -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-
}
|
нет нужды человеку разбираться ни с SPI ни с I2C - все просто, быстро, дешего, надежно.
Цитата:
|
у самого на столе лежит платка с мах7064.
но это ус-во для PCI шины.
|
Передо мной лежит партия ПЛИСок и партия плат - последний из выполненных заказов - четырехпроцессорная + 2хПЛИС система управления пласставтоматом, где МК связываются друг с другом по SPI, RS-485, с EEPROM по I2C, но с входными 56 устройствами через входную ПЛИС и управляют 64 выходными (симмисторами, золотниками, пускателями и тому подобное) через выходную ПЛИС - прогу писать для такого управления одно удовольствие - кинул на адрес ПЛИСКи что надо - и забыл, спросил с другого адреса ПЛИСки - и получай входной байт.
Не доказываю что такой способ лучше (читай начало поста), обращаю внимание задавшего тему ветки, как можно решить задачу увеличения в/в МК - а выберать - это уж от задачи зависит.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:30.
|
|