Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить

Re: Создание контроллера для ноутбучной клавиатуры

Ср май 13, 2020 22:43:15

Мурик, Вам бы в школу, читать поучиться. Я даже цитировал:
Код:
USB ports must be capable of withstanding continuous exposure to the waveforms shown in Figure 7-2 while in any drive state.

А про "безошибочный обмен информацией" Вам приснилось :)))

P.S. А мешает мне Ваше ЧСВ прущее в каждом сообщении. И думаю, я в этом не одинок. Еще раз, я Вам ничего не должен и ничем не обязан. Тем более, после попыток взять на "слабо" и клеветы.

Re: Создание контроллера для ноутбучной клавиатуры

Ср май 13, 2020 23:19:12

Тогда зачем вообще было упоминать про напряжение 4.6 вольт? Ведь обмен при этом напряжении не гарантирован.

И повторю вопрос. Вы упоминали что AVR может питаться от USB (5В) без стабилизатора. Каким образом получите при этом напряжение в пределах 2.8 - 3.6В на линиях данных USB?

ПростоНуб писал(а):Тем более, после попыток взять на "слабо" и клеветы.
Никакой клеветы не было. Я написал что раз нет ссылок на спецификацию, вероятно ваши слова не являются правдой.
Что вам мешало сразу дать ссылку https://usb.org/document-library/usb-20-specification и написать что следует скачать архив usb_20_20190524.zip в котором посмотреть страницы 123 и 124 документа usb_20.pdf?
Понимаете что всего этого разговора не было бы? И не было бы ваших обвинений что я якобы клевещу на вас!

Re: Создание контроллера для ноутбучной клавиатуры

Чт май 14, 2020 00:05:14

Вы упоминали что AVR может питаться от USB (5В) без стабилизатора. Каким образом получите при этом напряжение в пределах 2.8 - 3.6В на линиях данных USB?

Если бы мне нужно было решить данную задачу именно на AVR, я бы использовал ATmega8U2-MU, в котором электрическая часть USB аппаратно уже реализована. Но честно: с супрессорами с +D/-D на землю, дросселем для подавления помех по питанию, предохранителем (возможно самовосстанавливающимся) на питании от USB и т.п. У USB судьба такая - под ногами болтаться, удары статики получать и лежа на включенной СВЧ печи работать. :)
В общем так же, как это делается в нормальной аппаратуре, в том числе и на любимом Вами STM32.

Если бы меня не ограничивали в выборе МК, то проще было бы взять вышеупомянутый MTP805 на базе 8051, который под USB клавиатуры уже заточен и прошивки для которого есть уже готовые.

Добавлено after 3 minutes 58 seconds:
вероятно ваши слова не являются правдой

Никаких "вероятно" не было. Было утверждение:
Мурик писал(а):вы написали неправду

Re: Создание контроллера для ноутбучной клавиатуры

Чт май 14, 2020 00:32:45

ПростоНуб писал(а):Если бы мне нужно было решить данную задачу именно на AVR я бы использовал ATmega8U2-MU
Вы предлагали использовать V-USB и питать МК от 5В без стабилизатора. https://radiokot.ru/forum/viewtopic.php ... 3#p3839423
То есть про аппаратный USB речь не идет (иначе не спрашивал бы).

ПростоНуб писал(а):Но честно: с супрессорами с +D/-D на землю, дросселем для подавления помех по питанию
То есть экономим на стабилизаторе и решаем проблему другим способом причем таким что лучше бы использовать стабилизатор...

ПростоНуб писал(а):то проще было бы взять вышеупомянутый MTP805 на базе 8051, который под USB клавиатуры уже заточен и прошивки для которого есть уже готовые.
Вопрос в том найдется ли прошивка под обсуждаемую клавиатуру? А если писать свою, может оказаться проще использовать другой контроллер который лучше знаешь.

ПростоНуб писал(а):Никаких "вероятно" не было. Было утверждение:
Это только часть фразы. Полная звучала немного по другому.
Значит делаем вывод - вы написали неправду, раз доказать не можете свою правоту.
Я это написал только лишь потому что на тот момент доказательств не было. Дали бы сразу ссылку, этого обсуждения не было бы.

Re: Создание контроллера для ноутбучной клавиатуры

Чт май 14, 2020 09:47:40

ПростоНуб писал(а):Но честно: с супрессорами с +D/-D на землю, дросселем для подавления помех по питанию
То есть экономим на стабилизаторе и решаем проблему другим способом причем таким что лучше бы использовать стабилизатор...

Вы сами поняли, что написали? Какая связь между стабилизатором и защитой? Первое никак не отменяет второе.

Re: Создание контроллера для ноутбучной клавиатуры

Чт май 14, 2020 10:52:40

ПростоНуб, Мурик, ваш спор увлекателен, но всё-таки мне бы очень хотелось чтобы мне ответили на вопрос по шлейфу, по-этому прошу вас не забивать это сообщение в дальние ряди. Всё-же мой ноут живой и я не могу с него отпаять разьем.

Повторюсь. Есть такой шлейф, подскажите пожалуйста название разьема, кто знает, или есть предположения.
Изображение Изображение
Заранее благодарен.

Добавлено after 7 minutes 27 seconds:
Хотя можно не спешить, так-ка для того чтобы прозвонить всё понадобится около 60000 попыток в худшем случае)

Добавлено after 31 second:
А ко мне еще даже клава не приехала...

Re: Создание контроллера для ноутбучной клавиатуры

Чт май 14, 2020 12:03:46

ПростоНуб писал(а):Какая связь между стабилизатором и защитой?
Напряжение на выводах не должно быть не выше 3.6В, а МК питается от 5В. Поскольку стабилитрон подключен к выводам МК, он будет уменьшать напряжение на них, создавая дополнительную нагрузку на транзисторы внутри МК. Несмотря на то что выводы МК защищены от КЗ, это не лучшим образом сказывается на стабильности и надежности и приводит к разогреву кристалла МК и лишнему потреблению тока. Это примерно тоже что подключать светодиоды к МК без токоограничительных резисторов.

Re: Создание контроллера для ноутбучной клавиатуры

Чт май 14, 2020 12:44:22

Мурик, Вы не ответили на вопрос.
Я не понимаю, какое отношение к стаблизации питания и защите имеет Ваш опус о придуманом Вами решении для согласования логических уровней.
Или Вы надумали здесь обсуждать еще и эту тему? Я против. Заводите свою тему и там обсуждайте. Различных решений для двунаправленного согласования логических уровней немеряно. И предлагаемое Вами решение со стабилитронами - совсем не лучшее из них.

Re: Создание контроллера для ноутбучной клавиатуры

Чт май 14, 2020 13:46:47

ПростоНуб писал(а):Я не понимаю, какое отношение к стаблизации питания и защите имеет Ваш опус о придуманом Вами решении для согласования логических уровней.
Решение придумано не мной. Видите стабилитроны на линиях данных USB? https://www.fischl.de/usbasp/
Что будет без них при питании напрямую от USB как вы предложили решив сэкономить на стабилизаторе?

ПростоНуб писал(а):Или Вы надумали здесь обсуждать еще и эту тему? Я против. Заводите свою тему и там обсуждайте.
Вы начали эту тему предложив питать МК от 5В без стабилизатора. https://radiokot.ru/forum/viewtopic.php ... 3#p3839423

ПростоНуб писал(а):И предлагаемое Вами решение со стабилитронами - совсем не лучшее из них.
Согласен не лучшее и не я его предложил. Повторюсь, вы предложили питать МК от 5В. Как собираетесь обеспечить номинальное напряжение на линиях данных USB, без исползования стабилитронов?

Re: Создание контроллера для ноутбучной клавиатуры

Пт май 15, 2020 15:31:32

ПростоНуб писал(а):дешифратор 74HC138


Если не сложно, то обясните ка с нима работать, ибо пары по комплогике я успешно прогулял

Re: Создание контроллера для ноутбучной клавиатуры

Пт май 15, 2020 21:10:57

Frojd00, Начнем тогда с того, как работает сканирование клавиатуры. Любая клавиатура есть матрица N*M кнопок, в которой N строк и M столбцов. Кнопки расположены на пересечении строк и столбцов. Для того, чтобы узнать, какая кнопка нажата, последовательно циклически выставляют, например, низкий уровень на каждую из N строк по очереди. Это называется сканированием строк клавиатуры. При каждом сканировании опрашиваются, уже параллельно, все M столбцов входами, подтянутыми к высокому уровню. Если при сканировании k-ой строки обнаруживается низкий уровнь на m столбце, то значит клавиша, находящаяся на пересечении строки k и столбца m нажата. Распознавание более двух одновременно нажатых нескольких клавиш мы пока опустим. Это отдельный вопрос для обсуждения. Но следует не забывать, что чем больше строк относительно количества столбцов - тем меньше вероятность конфлитов нескольких одновременно нажатых клавиш.

Отсюда получается, что при сканировании строк матрицы в каждый конкретный момент времени нам нужно выставить низкий уровень только на одной из N строк. Остальные могут оставаться в высоком уровне.
Сначала рассмотрим упрощенную задачу. Пусть у нас 8 строк и 16 столбцов. Со столбцами все понятно - нам нужно 16 пинов на вход. А вот со строками все не так однозначно. Решая задачу в лоб, мы можем использовать 8 пинов на вывод и последовательно только на одном из них выставлять низкий уровень сканирования строки, устанавливая остальные 7 пинов в высокий уровень.
Но можно решать задачу на в лоб, а воспользоваться дешифратором. В нашем случе 74HC138.
Изображение
В нашем простейшем случае вход CS1 мы подключим к питанию (желательно, через резистор), а входы CS2 и CS3 - к земле. То бишь, в таблице истинности нас теперь интересуют только строки, начинающиеся с H L L (H - высокий уровень, L - низкий). Теперь смотрим на зависимость выходов Y0..Y7 от входов A0..A2. Как мы видим, перебирая все 8 возможных комбинаций уровней A0..A2 мы получаем нужное нам сканирование 8 строк. Ведь как раз только на одном из выходов Y0..Y7 устанавливается низкий уровень.
А значит, вместо 8 пинов на вывод для сканирования строк нам нужно только три! То бишь, пять пинов мы так сэкономили.

Усложним задачу. Пусть у нас 16 строк и 8 столбцов. На самом деле мы взяли ту же самую матрицу, просто для себя поменяли местами строки и столбцы :)
Со столбцами у нас опять все понятно - нужно 8 пинов на вход. А со строками мы поступим подобным образом, но уже с двумя дешифраторами 74HC138.
Обратите внимание, что если на входах CS1..CS3 любая комбинация, кроме H L L, то все 8 выходов Y0..Y7 имеют высокий уровень.
Поэтому мы возьмем один пин МК и подключим его к первой 74HC138 ко входу CS1 (CS2 и CS3 у нее оставим на земле) и, одновременно, ко входу CS2 второй 74HC138 (CS1 оставим на питании, CS3 - на земле). Тогда, если на этом пине будет высокий уровень, то выбрана будет первая 74HC138, а если низкий - вторая.
Теперь возьмем три пина на выход МК и подключим к обоим дешифраторам. Первый пин к A0 обоих, второй - к A1, третий - к А2.
Теперь перебирая уже 16 возможных комбинаций на 4 задействованных пинах мы можем последовательно сканировать все 16 строк! Так мы сэкономили уже 12(!) пинов МК. То есть, с двумя дешифраторами 74HC138 для сканирования матрицы 16*8 (128 кнопок) нам нужно всего лишь 12 (4+8) пинов.

Re: Создание контроллера для ноутбучной клавиатуры

Чт май 28, 2020 09:17:42

...Есть такой шлейф, подскажите пожалуйста название разьема, кто знает, или есть предположения....


Я без разъема с подобный шлейф использовал. На плате вытравливаются контактные площадки с нужным шагом. Лудить их лучше сплавом Розе, чтобы на площадках получилась ровная поверхность, без бугров. Сам шлейф через кусок тонкой резины прижимается к плате прижимной пластиной и закрепляется винтами. Шаг ламелей у Вас не очень мелкий, судя по фото, должно получиться. Тип разъема точно можно узнать только по электрической схеме, найти которую, наверное, проблематично.
Ответить