Например TDA7294

Форум РадиоКот :: Просмотр темы - Не могу найти как подключена нога
Форум РадиоКот
https://radiokot.ru/forum/

Не могу найти как подключена нога
https://radiokot.ru/forum/viewtopic.php?f=57&t=133704
Страница 1 из 1

Автор:  74LS00 [ Пт июл 22, 2016 02:30:09 ]
Заголовок сообщения:  Не могу найти как подключена нога

Всё что можно исправить в этой папке https://github.com/tmk/tmk_keyboard/tre ... /hid_liber

Кусок схемы
Изображение

Фишка этих исходников что они используют свой matrix.c и в этом видимо проблема.

Добавляю в led.c один светодиод, а именно дописываю в void
Код:
if (usb_led & (1<<USB_LED_NUM_LOCK))
        PORTB &= ~(1<<7);//port b7 12
    else
        PORTB |= (1<<7);

Фактически указываю ему висеть на 12 ноге, пробовал этот трюк с 8 ногой которая в схеме не подключена, тоже самое.
Проблема в том что светодиод на этой ноге светит в пол силы, мультиметр показывает 1,5в, на остальных 3,5в, резюк наборный 1к, цеплял к разным ногам, но не суть потому как он идёт к корпусу.

Первое что подумал ещё с 12 ногой, что она участвует в опросе матрицы и там лог1 не задерживается, но вот почему и с 8 ногой так, может ошибка в коде.
Пробовал менять сигналы местами, всё равно на этих ногах слабее.
Пялюсь в matrix.c, но нифига не могу найти где указан этот PORTB 7 в понятной форме, ладно бы там одна таблица была, но их там 4 и я не могу понять какая к чему .

Этот файл использует 1 дешифратор вместо двух, в моём случае я использую несколько блоков и городить в каждый по 2 дешифратора както дофига. Да и эта схема далеко не лучшая, потому как мне както нужно инвертировать данные дешифратора, он у меня с инверсией

Автор:  COKPOWEHEU [ Пт июл 22, 2016 08:16:47 ]
Заголовок сообщения:  Re: Не могу найти как подключена нога

Не понял в чем основная задача, особенно удивило это
74LS00 писал(а):
дописываю в void
дописывать что-то в пустоту...
А DDRB7 случайно не забыли настроить?

Автор:  74LS00 [ Пт июл 22, 2016 16:00:45 ]
Заголовок сообщения:  Re: Не могу найти как подключена нога

Потому и спрашиваю что языком не владею.
Так что есть эти самые DDR ? Мне казалось что ноги это PORTB. Тогда что PINB ? Уж очень дофига там всего.

И в самом деле ничего такого в этом файле и не было , дописал
Код:
DDRB |= (1<<7);
светодиод загорелся ярко, причём ярче чем остальные(или он просто повёрнут так), а для них тоже ничего не указано.
Но ониже както работали поэтому и подумал что дело в matrix.c , он видимо кривоват.

Цитата:
#include <avr/io.h>
#include "stdint.h"
#include "led.h"


void led_set(uint8_t usb_led)
{

DDRB |= (1<<7) | (1<<6) | (1<<5);


if (usb_led & (1<<USB_LED_CAPS_LOCK))
PORTB &= ~(1<<5);//port b5 29
else
PORTB |= (1<<5);

if (usb_led & (1<<USB_LED_SCROLL_LOCK))
PORTB &= ~(1<<6);//port b6 30
else
PORTB |= (1<<6);

if (usb_led & (1<<USB_LED_NUM_LOCK))
PORTB &= ~(1<<7);//port b7 12
else
PORTB |= (1<<7);
}

Автор:  74LS00 [ Сб авг 06, 2016 07:33:41 ]
Заголовок сообщения:  Re: Не могу найти как подключена нога

Нашёл другую прошивку.
Может кто подскажет как инвертировать данные на входах ?
https://github.com/74ls00/GameKB/blob/m ... ord_num.py
Думаю выкинуть инверторы, а то места на них не хватает.

Если коротко то возможно гдето тут
Код:
matrix_hardware = [
#     Port mask     Dir mask
    ( 0b10011110 , 0b00001110 ),    # REF_PORTB
    ( 0b11000000 , 0b00000000 ),    # REF_PORTC
    ( 0b11111111 , 0b00000000 ),    # REF_PORTD
    ( 0b00000000 , 0b00000000 ),    # REF_PORTE
    ( 0b11110011 , 0b00000000 )     # REF_PORTF
]

matrix_strobe = [
#     REF_PORTB    REF_PORTC    REF_PORTD    REF_PORTE   REF_PORTF
    ( 0x00       , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ),
    ( 0x02       , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ),
    ( 0x04       , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ),
    ( 0x06       , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ),
    ( 0x08       , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ),
    ( 0x0A       , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ),
    ( 0x0C       , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ),
    ( 0x0E       , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 )
]


Пробовал менять все 0b00000000 на 8 однёрок в matrix_strobe , но ничего не поменялось, видно они не при делах. Поменял местами строки, и они поменялись местами. Похоже не эта кучка.

В matrix_hardware чтото я не просматриваю связи с дешифратором


Есть ещё чтото такое
Код:
bl_modes = [
    ( 0, 0 ),
    ( 1, 1 )
]

Автор:  Аlex [ Сб авг 06, 2016 12:08:04 ]
Заголовок сообщения:  Re: Не могу найти как подключена нога

В программировании, метода тыка не прокатывает.
Учите язык и контроллер, с которым работаете.

Автор:  74LS00 [ Сб авг 06, 2016 19:00:50 ]
Заголовок сообщения:  Re: Не могу найти как подключена нога

Покачто прокатывал, прошивка готовая нужно только подправить под моё железо что я и сделал методом тыка убрав всё лишнее чего у меня нет в железе, потому как оно тыкало куда ненадо и когда ненадо.
Тут другое дело, она написана по 74238, а мне надо под 74138 тоже самое только выходы инверсные, кароче наша 555ид7, дешифратор 3 входа 8 выходов.

Учить C и python слишком круто тем более что всё в одном этом файле.
Да и я ещё недорос чтоб чтото разобрать в С для AVR, нагуглить у меня точно не получается. Чтоб это переварить потребовалось 2 года. Ну раз я один в этой стране (и ещё пара поделок) мне и тащить весь проект.

Наткнулся ещё на такую фигню
Код:
matrix_sense = [
#      Port        Pin mask
    ( REF_PORTB , (1 << 4) ),
    ( REF_PORTC , (1 << 6) ),
    ( REF_PORTC , (1 << 7) ),
    ( REF_PORTD , (1 << 0) ),
    ( REF_PORTD , (1 << 1) ),
    ( REF_PORTD , (1 << 2) ),
    ( REF_PORTD , (1 << 3) ),
    ( REF_PORTD , (1 << 4) ),
    ( REF_PORTD , (1 << 5) ),
    ( REF_PORTD , (1 << 6) ),
    ( REF_PORTD , (1 << 7) ),
    ( REF_PORTF , (1 << 0) ),
    ( REF_PORTF , (1 << 1) ),
    ( REF_PORTF , (1 << 4) ),
    ( REF_PORTF , (1 << 5) ),
    ( REF_PORTF , (1 << 6) ),
    ( REF_PORTF , (1 << 7) )
]
Могу предположить что тут надо перевернуть, но перевернуть надо и гдето ещё, ну гдето опрос точно убивается, гдето в matrix_hardware зарыто, пока непонятно чего 10 если ног 8, а портов уже 17 что не суть , ( PORTB 7) отрезал отдав светодиоду. Если будут ещё лишние тоже отдам, хотя это будет уже трудно (Сейчас я использовал последние 3 ноги что проще).

:beer: и тут фисташки кончились раньше милера.

Сложное это дело от которой даже схемы нет правильной, и программатор встроенный не работает. И в братской теме молчанка, хотя сгодилось бы всё.

Если не найду решения и будет совсем тесно поставлю cd4011 пачку (заслал в дерёвню с китая).
А тож эта самопальная клава и так уже тянет на 7к деревянных денег и писать на этом убожестве уже надоело за 2 года.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/