Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прием на работу
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > Образование в области электроники
Страницы: 1, 2, 3, 4, 5
вредитель
Добрый день!

Долго думал куда поместить тему. Думаю здесь ей место.

Интересно услышать, какие нетривиальные вопросы задают на собеседованиях при приеме на работу в области разработки электроники.
Для старта: есть 8-ми выводной микроконтроллер (2 ноги питание, 2 -кварц). Как организовать на оставшихся 4 выводах работу 16-ти кнопок и одного светодиода?
ArtemDement
Дополнительные микросхемы логики можно использовать ?
GefarD
Резисторы и конденсаторы замеряем задержу
Резисторы и ацп
вредитель
Цитата(ArtemDement @ Jun 10 2011, 20:19) *
Дополнительные микросхемы логики можно использовать ?

Можно.

Хотелось бы слышать не только ответы, но и вопросы sm.gif
yakub_EZ
Цитата(вредитель @ Jun 10 2011, 22:50) *
Хотелось бы слышать не только ответы, но и вопросы sm.gif

Аналоговый перемножитель,
Чем померить индуктивность рассеяния,
влияет ли немагнитный зазор на индуктивность рассеяния
как помогает устройство по экономии мощности их рекламы экономить мощность
Чем померить траффик по UTP кабелю.. да много чего можно каверзного вспомнить lol.gif
ArtemDement
Цитата(вредитель @ Jun 10 2011, 22:50) *
Можно.


Тогда, такой вариант.
yakub_EZ
Цитата(ArtemDement @ Jun 11 2011, 22:16) *
Тогда, такой вариант.

Я б вас на работу за такое не взял laughing.gif
Если предполагается срабатывание только одной кнопки, то можно их посадить на линейку одинаковых последовательно включенных резисторов, и с помошью 4-х старших данных АЦП можно определить кнопку.
Или реализовать свой АЦП по времени задержки разряда RC цепи. В общем все то, что предложил GefarD
Марик
А не проще поставить сдвиговый регистр? На одну ногу микроконтроллера принимать последовательный сигнал, а с другой клок давать. Для надежности можно еще CS воткнуть, тогда получится что-то типа SPI. В таком случае как раз останется 1 нога для светодиода, о котором почему-то забыли sm.gif

Кстати, если есть условие, что одновременно может быть нажата только одна кнопка, можно подключить их матричным способом, правда тогда получится не 16, а 15, но в этом случае можно обойтись без дополнительной логики.
tAmega
Цитата(yakub_EZ @ Jun 11 2011, 22:46) *
Я б вас на работу за такое не взял laughing.gif
Если предполагается срабатывание только одной кнопки, то можно их посадить на линейку одинаковых последовательно включенных резисторов, и с помошью 4-х старших данных АЦП можно определить кнопку.
Или реализовать свой АЦП по времени задержки разряда RC цепи. В общем все то, что предложил GefarD


Насчет "на работу не взял" сказано круто... Можно просто пожелать удачи такому работодателю. Удачи.
ArtemDement
Цитата(yakub_EZ @ Jun 11 2011, 23:46) *
Я б вас на работу за такое не взял laughing.gif


Вы не поняли идею, за это я бы к вам и не пошел.
rolleyes.gif

Цитата(yakub_EZ @ Jun 11 2011, 23:46) *
Если предполагается срабатывание только одной кнопки, то можно их посадить на линейку одинаковых последовательно включенных резисторов, и с помошью 4-х старших данных АЦП можно определить кнопку.


Предполагается последовательный опрос состояния кнопок с довольно высокой частотой опроса, что позволяет получить информацию о одновременном нажатии.
Если нажимать будет человек пальцем. Такой метод применяется в джойстиках Dendy, так что все ок.
biggrin.gif

Цитата(Марик @ Jun 12 2011, 01:06) *
Кстати, если есть условие, что одновременно может быть нажата только одна кнопка, можно подключить их матричным способом, правда тогда получится не 16, а 15, но в этом случае можно обойтись без дополнительной логики.


Как сделать 15 кнопок матричным методом на 3 выводах, если учесть, что еще один нужен для управления светодиодом ? Что-то не могу себе это представить.
Марик
Цитата(ArtemDement @ Jun 12 2011, 18:51) *
Как сделать 15 кнопок матричным методом на 3 выводах, если учесть, что еще один нужен для управления светодиодом ? Что-то не могу себе это представить.

На 3 никак, я на 4 имел в виду.
ArtemDement
Хорошо, как на четырех ?
Марик
По принципу шифратора. 4 линии изначально подтянуты к нулю. Замыкается первая кнопка, выставляет 1 на первую линию, остальные в нуле (0001). 10 кнопка замыкает на Vcc 4 и 2 линии (1010), 15 кнопка выставит 1111 и так далее. Не очень удобно, зато никакой лишней логики, только соединения, ну и 4 резистора.
ArtemDement
Можно схему в студию ?

Что-то пока не очень понял.
Марик
Как-то так.
xemul
Цитата(Марик @ Jun 13 2011, 19:44) *
Как-то так.

Вы, вероятно, предполагали, что точки в матрице клавы обозначают диоды (а ни в коем случае не соединения двух шнурков), но забыли об этом упомянуть.
32 диода, "зато никакой лишней логики".
Марик
Ну да, простите. Совсем забыл. Логику хотел показать просто. В реальной схеме конечно нужно диоды включать, чтобы не пожечь выводы микроконтроллера. А еще на всякий включают резисторы последовательно с каждой ногой, чтобы когда нерадивый программер зашьет на порты выходы опять-таки ноги не сжечь.
Mikle Klinkovsky
Цитата(вредитель @ Jun 10 2011, 16:18) *
Для старта: есть 8-ми выводной микроконтроллер (2 ноги питание, 2 -кварц). Как организовать на оставшихся 4 выводах работу 16-ти кнопок и одного светодиода?

Прикинуть стоимость деталек, работу по их монтажу, стоимость ПП и заменить микроконтроллер на более подходящий... wink.gif
MrYuran
Цитата(Марик @ Jun 14 2011, 00:39) *
Ну да, простите. Совсем забыл. Логику хотел показать просто. В реальной схеме конечно нужно диоды включать, чтобы не пожечь выводы микроконтроллера.

Да нет, совсем по другой причине.
Иначе все линии просто закорочены вместе и нажатие на любую кнопку вызовет срабатывание всех 4-х линий.

##
Сколько байт в ёбибайте? (это типа каверзный вопрос - потенциальным работодателям на заметку sm.gif )
Марик
Цитата(MrYuran @ Jun 15 2011, 13:27) *
Да нет, совсем по другой причине.
Иначе все линии просто закорочены вместе и нажатие на любую кнопку вызовет срабатывание всех 4-х линий.

Надо завязывать по ночам на форуме сидеть. sm.gif
zzzzzzzz
В нынешней ситуации контрольным "выстрелом" вполне может быть закон Ома.
Если ответ положителен, то рассказ на тему "как работает транзистор" будет более чем достаточен, - по стилю изложения станет ясно всё.
MrYuran
Цитата(zzzzzzzz @ Jun 15 2011, 13:51) *
рассказ на тему "как работает транзистор" будет более чем достаточен

Каким током управляется полевой транзистор - базовым или коллекторным?
sm.gif

На одном из собеседований меня попросили написать функцию вычисления факториала.
Что вы думаете - засыпался... laughing.gif
Да не очень-то и хотелось - контора какая-то мутная, банковские системы, да ещё и пилить через весь город...
вредитель
Цитата(Mikle Klinkovsky @ Jun 15 2011, 13:02) *
Прикинуть стоимость деталек, работу по их монтажу, стоимость ПП и заменить микроконтроллер на более подходящий... wink.gif

Резисторы стоят копейки, их установка тоже, плата под них не в счет, так как под бОльший МК уйдет почти это же место. Предложите МК на 8 и на 24 ноги сравнимый по стоимости.
MrYuran
Цитата(вредитель @ Jun 15 2011, 14:00) *
Резисторы стоят копейки, их установка тоже, плата под них не в счет,

Ой ли?
Как бы не оказалась пайка десятка резисторов дороже приличного контроллера...
Mikle Klinkovsky
Цитата(вредитель @ Jun 15 2011, 14:00) *
Резисторы стоят копейки, их установка тоже, плата под них не в счет, так как под бОльший МК уйдет почти это же место. Предложите МК на 8 и на 24 ноги сравнимый по стоимости.

Первое что нашлось в большом корпусе и в наличии:
http://catalog.compel.ru/mcu/info/AT89S52-24AU%20%28ATMEL%29
Думаю если поискать, то можно и не Атмеловское чего подобрать, Тот же MSP430, какой-нить, заодно и жрать будет поменьше...
А когда проводники ходят свободно не перекрещиваясь, плату вообще можно сделать одностроронней...
вредитель
Цитата(MrYuran @ Jun 15 2011, 14:06) *
Ой ли?
Как бы не оказалась пайка десятка резисторов дороже приличного контроллера...

В условиях мелкой серии и бережливого производство понятно будет не копейки)

Цитата(Mikle Klinkovsky @ Jun 15 2011, 14:48) *
Первое что нашлось в большом корпусе и в наличии:
http://catalog.compel.ru/mcu/info/AT89S52-24AU%20%28ATMEL%29
Думаю если поискать, то можно и не Атмеловское чего подобрать, Тот же MSP430, какой-нить, заодно и жрать будет поменьше...
А когда проводники ходят свободно не перекрещиваясь, плату вообще можно сделать одностроронней...

Спасиб wink.gif
ArtemDement
Цитата(Mikle Klinkovsky @ Jun 15 2011, 14:48) *
Первое что нашлось в большом корпусе и в наличии:
http://catalog.compel.ru/mcu/info/AT89S52-24AU%20%28ATMEL%29
Думаю если поискать, то можно и не Атмеловское чего подобрать, Тот же MSP430, какой-нить, заодно и жрать будет поменьше...
А когда проводники ходят свободно не перекрещиваясь, плату вообще можно сделать одностроронней...


Так теперь 32-битники можно дешевле купить:


http://catalog.compel.ru/blog/2011/03/25/a...m3-po-cene-099/
Mikle Klinkovsky
Цитата(ArtemDement @ Jun 15 2011, 20:35) *
Так теперь 32-битники можно дешевле купить:


http://catalog.compel.ru/blog/2011/03/25/a...m3-po-cene-099/

Ну у STM'а можно и подешевле найти - ST7FOXK2T6.
Только вот как там дела со средствами разработки обстоят? Их стоимость тоже надо бы учитывать... wink.gif
arttab
еще как вариант использовать I2C расширитель. дороговаты правда они (около 5$ были), но место экономят. а на рассыпухи матрицы и сдвиговые регистры.
Буратино
Я бы спросил что такое электрический ток, что такое сила тока, что такое напряжение и почему конденсатор проводит ток.
vitan
Меня тут спросили, как на плисине сделать приемник\десериализатор, у которого единицы принимаются в виде перепадов на одной линии, а нули - на другой. Клоков нет, частота не известна и плавает.
Ниасилил... crying.gif
nikolascha
Цитата(vitan @ Jun 16 2011, 10:03) *
Меня тут спросили, как на плисине сделать приемник\десериализатор, у которого единицы принимаются в виде перепадов на одной линии, а нули - на другой. Клоков нет, частота не известна и плавает.
Ниасилил... crying.gif
Популярный вопросик...
vitan
Цитата(nikolascha @ Jun 16 2011, 12:50) *
Популярный вопросик...

Да? Давно не занимался вплотную плисами... А ответ же какой?
nikolascha
Цитата(vitan @ Jun 16 2011, 11:59) *
Да? Давно не занимался вплотную плисами... А ответ же какой?
Ответов много, т.к. задача сформулирована не точно, поэтому правильный ответ не знает только автор вопроса...
vitan
Цитата(nikolascha @ Jun 16 2011, 13:08) *
Ответов много, т.к. задача сформулирована не точно, поэтому правильный ответ не знает только автор вопроса...

Вот и у меня такое же впечатление сложилось. Я им сделал проектик, в котором был клок, но не со стороны приемной линии (где эти два сигнала), а со стороны десериализатора. Ну разве будет кто-то совсем без клока-то работать? Не понравилось... Аж зацепило, блин. Ночами не сплю теперь, перепады мерещатся... sm.gif
Или там суть, что перепады могут быть только одного направления, например, из 0 в 1? Я-то делал для двух сразу...
Буратино
Цитата(vitan @ Jun 16 2011, 10:03) *
Меня тут спросили, как на плисине сделать приемник\десериализатор, у которого единицы принимаются в виде перепадов на одной линии, а нули - на другой. Клоков нет, частота не известна и плавает.
Ниасилил... crying.gif


Может быть выделить переходы (ну что-то типа прерывания по фронту спадающему/нарастающему должно же быть в этих плисах), в моменты переходов формировать короткие импульсы, которые подавать на входы R и S асинхронного RS триггера. Я слышал что в плисах есть такое дело.
Допустим коротким импульсом на S входе перебрасываем триггер в единичное состояние, и храним. Коротким импульсом на R входе перебрасываем в нулевое состояние и храним. Храним - это когда на обоих входах лог. 0 например.
На выходе будет сигнал у которого единицы принимаются в виде перепадов на одной линии, а нули - на другой.
Сформированные перепады и тип логики триггера, должны быть так выбраны, чтоб не допускать неопределенного состояния триггера.
vitan
Цитата(Буратино @ Jun 16 2011, 15:42) *
Сформированные перепады и тип логики триггера, должны быть так выбраны, чтоб не допускать неопределенного состояния триггера.

Ага, в этом есть некоторые трудности. sm.gif
Точнее, трудности не в том, чтобы не подавать одновременно на входы S и R (это можно искусственно заблокировать дополнительной логикой), а в том, откуда брать эти самые "короткие" импульсы. Вот пришел перепад 0-1, вот подали его на S, а сбросить само S обратно как? Это же надо успеть сделать до прихода следующего перепада.
Хотя... Если, допустим, его не сбрасывать, а держать до появления события во второй линии... И сбрасывать только после этого... И дополнительной логикой блокировать состояние, когда R и S оба равны 1... Но тогда получается, что можно пропустить первый бит в линии (если исходное состояние обеих линий равно 1, то логика будет блокировать работу триггера). В общем, ниасилить без клоков че-то... crying.gif Да и надо ли? sm.gif
Буратино
Цитата(vitan @ Jun 16 2011, 15:50) *
Ага, в этом есть некоторые трудности. sm.gif
Точнее, трудности не в том, чтобы не подавать одновременно на входы S и R (это можно искусственно заблокировать дополнительной логикой), а в том, откуда брать эти самые "короткие" импульсы. Вот пришел перепад 0-1, вот подали его на S, а сбросить само S обратно как? Это же надо успеть сделать до прихода следующего перепада.
Хотя... Если, допустим, его не сбрасывать, а держать до появления события во второй линии... И сбрасывать только после этого... И дополнительной логикой блокировать состояние, когда R и S оба равны 1... Но тогда получается, что можно пропустить первый бит в линии (если исходное состояние обеих линий равно 1, то логика будет блокировать работу триггера). В общем, ниасилить без клоков че-то... crying.gif Да и надо ли? sm.gif


Ну я с ПЛИС к сож. не имел дела, но просто на логике можно построить такое дело.
vitan
Цитата(Буратино @ Jun 16 2011, 17:05) *
Ну я с ПЛИС к сож. не имел дела, но просто на логике можно построить такое дело.

Дык ПЛИС это логика и есть. Как строить будете? Эти короткие импульсы формировать на задержках на десяти инверторах? Это не наш метод. Хотя, может быть в этом и был тайный смысл задачи? Типа посмотреть, а может ли человек путем всяко-разных техник мануального расположения ячеек в плисине и задания констрейнов создавать полностью асинхронные проекты. Это что, ныне считается верхом мастерства?
Буратино
Цитата(vitan @ Jun 16 2011, 16:08) *
Дык ПЛИС это логика и есть. Как строить будете? Эти короткие импульсы формировать на задержках на десяти инверторах? Это не наш метод.


Если в целом вариант принять за основу, то можно и не на 10ти инверторах. Как вариант можно задействовать одновибратор с запуском по фронту.
Но это усложняет решение, мне кажется можно и нужно проще.
vitan
Цитата(Буратино @ Jun 16 2011, 17:15) *
Если в целом вариант принять за основу, то можно и не на 10ти инверторах. Как вариант можно задействовать одновибратор с запуском по фронту.
Но это усложняет решение, мне кажется можно и нужно проще.

Ха, так ведь этот одновибратор должен как-то мерять время, не так ли? Припоминаю, что, например, в 555 используются конденсаторы и компараторы. Но в ПЛИС конденсатор не вставишь, это правда.
В общем, я хочу сказать, что предлагаемое Вами решение основано на измерении интервала времени, меньшего, чем интервал между двумя перепадами на одной линии. Я поступил точно так же, только вместо вибратора использовал внешний клок. По сути это то же самое, согласитесь. Получилось ровно 6 триггеров (это с учетов, что на двух реализован еще и передатчик).
Mikle Klinkovsky
Нажмите для просмотра прикрепленного файла
но есть ошибка в выходной части wink.gif
vitan
Цитата(Mikle Klinkovsky @ Jun 16 2011, 17:45) *
но есть ошибка в выходной части wink.gif

А что это за элемент такой большой с четырьмя входами? XOR? И что за ошибка?
Mikle Klinkovsky
Цитата(vitan @ Jun 16 2011, 17:55) *
А что это за элемент такой большой с четырьмя входами? XOR?

Да XOR (элемент считает чётность).

вариант без ошибки:
Нажмите для просмотра прикрепленного файла
sm.gif
vitan
Цитата(Mikle Klinkovsky @ Jun 16 2011, 18:05) *
Да XOR (элемент считает чётность).

Это, в смысле, три XOR-а? Четыре входа - как-то многовато...
Вообще, идея понятна, и о подобном я тоже думал, но не стал пытаться реализовать, т.к. уверен, что будет глючить. Как бы телега впереди лошади. Я тоже использовал восстановление клока в линии по XOR (внизу), но мне не удалось обойтись без формирования этих пресловутых коротких импульсов. А для этого понадобился внешний сигнал, для простоты я его сделал периодическим, т.е. клок.

А вариант без ошибки - это как? Зачем нам два выхода?
тау
Цитата(vitan @ Jun 16 2011, 17:08) *
Как строить будете? Эти короткие импульсы формировать на задержках на десяти инверторах? Это не наш метод. Хотя, может быть в этом и был тайный смысл задачи?

возможно тайный.
наверное хотели что-то такое от Вас.
vitan
Цитата(тау @ Jun 16 2011, 18:22) *
возможно тайный.
наверное хотели что-то такое от Вас.

Это уже интереснее. Однако, я сразу для себя отмел варианты с перекрещивающимися гейтами, т.к. еще на заре юности эти вещи, будучи реализованными в плисине, сильно допекали. С тех пор я это никогда не использовал. А, видимо, сейчас так уже можно делать? Надо бы помоделировать. Вы сами не пробовали?
тау
Цитата(vitan @ Jun 16 2011, 18:29) *
А, видимо, сейчас так уже можно делать? Надо бы помоделировать. Вы сами не пробовали?

не знаю. не моделировал, лень матушка. условие одно и простое - задержка NOR должна быть меньше ХОR+ D
vitan
Цитата(тау @ Jun 16 2011, 18:45) *
не знаю. не моделировал, лень матушка. условие одно и простое - задержка NOR должна быть меньше ХОR+ D

ну вот опять все на задержках. ну не то это... если только это не тайный смысл, опять же.
тау
Цитата(vitan @ Jun 16 2011, 18:48) *
ну вот опять все на задержках.

задержки , это не больно. в любом D триггере они есть основа . без них "жить нельзя на свете - нет".
а тактирующие клоки по условиям отсутствуют, их использовать нельзя.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.