Форумы Modlabs.net: МедиаХаб - Форумы Modlabs.net

Перейти к содержимому

  • (4 Страниц)
  • +
  • 1
  • 2
  • 3
  • 4
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

МедиаХаб

#41 Пользователь офлайн   AntY 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 126
  • Регистрация: 02 Январь 05

Отправлено 18 Февраль 2005 - 13:41

Drakon
Спасибо, но схемку я уже набросал, осталось только расчитать, написать прошивку для выбранного МК и отладить... вся проблема в том, что работал я только с PICами, но они мне не очень нравяться
0

#42 Пользователь офлайн   athlon64 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 04 Сентябрь 05

Отправлено 04 Сентябрь 2005 - 08:25

Привет. Зарегился только из-за этой темы.
Я сейчас пытаюсь сделать регулятор громкости для самодельного 4-канального усилителя на МК Atmel ATMega8515 + 2 TDA7314 + дисплей 16х2, связанные по I2C. Есть и варианты TDA с селектором входов и с несколькими выходами, но мне это не нужно.
Собрал недавно плату для отладки (МК, дисплей, TDA). К сожалению у TDA и МК разные напряжения питания и логические уровни. Подтянул линии I2c к +5, как видел на одной аналогичной схеме в нете.
Никак не могу разобраться как отправлять в TDA пакет в таком виде, как требуется по даташиту. Использую Codevision C Compiller + I2c. В асме я почти ноль. Если нужно, покажу мою разводку.
Думаю если разберусь с I2c, далее проблем не будет.
На этой базе легко реализуется ваш медиахаб.
Если есть соображения, плиз, поделитесь.
0

#43 Пользователь офлайн   ProniX 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 1 744
  • Регистрация: 25 Ноябрь 03

Отправлено 04 Сентябрь 2005 - 09:24

I2C я всегда реализовывал вставкой на асме - так удобнее.

ЗЫ: Применять для задач обработки сигналов AVR нет смысла. Есть же DSP, и всё ограничится одним корпусом (есть же и со встроенным цап/ацп).
0

#44 Пользователь офлайн   .koval 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 528
  • Регистрация: 25 Февраль 04

Отправлено 04 Сентябрь 2005 - 12:28

люди, простите за невежество и наивность, но почему для переключения линии с наушников на колонки недостаточно всего лишь одного переключателя? :lol: допустим даже, многоконтактного?
0

#45 Пользователь офлайн   athlon64 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 04 Сентябрь 05

Отправлено 04 Сентябрь 2005 - 13:54

ProniX
Буду благодарен за разъяснения по I2c
0

#46 Пользователь офлайн   ProniX 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 1 744
  • Регистрация: 25 Ноябрь 03

Отправлено 04 Сентябрь 2005 - 14:02

Смотри на сайте атмела, там отличные аппноты по и2с, даже на си вроде были.
0

#47 Пользователь офлайн   Corvair 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 98
  • Регистрация: 04 Август 03

Отправлено 05 Сентябрь 2005 - 05:51

Ничего себе навернули! :puke: Здесь можно было обойтись потенциометром и кнопочками с фиксацией :(. И все дела - а то "прошивка для регулятора громкости" - страшновато как-то :(.
0

#48 Пользователь офлайн   athlon64 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 04 Сентябрь 05

Отправлено 05 Сентябрь 2005 - 10:00

Corvair
Зато здесь у нас будут регулировки громкости, баланса, высоких, низких частот, фейдер, жк-дисплей, ИК в перспективе. Ну ещё селектор входов, кому нужен. Минимальный уровень искажений, кстати. :puke:

ProniX
Аппноты не нашёл, зато нашёл человека, который уже с этой связкой работал. :(
0

#49 Пользователь офлайн   Dreadatour 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 121
  • Регистрация: 14 Март 05

Отправлено 05 Сентябрь 2005 - 12:46

Целиком и полностью согласен с ProniX'ом - нет смысла мутить сложные схемы там, где можно сделать всё гораздо проще.

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

Респект!
0

#50 Пользователь офлайн   athlon64 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 04 Сентябрь 05

Отправлено 05 Сентябрь 2005 - 19:15

TEA6320 - тот же TDA7314. Только у TEA6320 есть селектор входов. При этом она в 4 раза дороже TDA7314 (по крайней мере у нас). Да и для 5.1 системы всё равно придётся задействовать их несколько, поскольку она не многоканальная. Просто стерео-сигнал с селектора раскладывает на 4 канала (при этом учитывает фейдер).

Так что лучше уж TDA7314 (7313,7315 и т.д.). Если у кого-то есть разработки на подобных микросхемах (по I2C, не обязательно на AVR), просьба поделиться.

Добавлено спустя 5 часов 30 минут 54 секунды:

Кажется я близок к тому, чтобы эта байда заработала.:puke:
Вот кусок даташита. Это формат сообщения от МК к TDA7314:

S = Start
First byte:10001000
ACK = Acknowledge
DATA
ACK = Acknowledge
DATA
ACK = Acknowledge
P = Stop

10001000 - фиксированный адрес TDA7314

Может кто подскажет, что такое Acknowledge, который разделяет байты. Есть версия, что это задержка 10ms. По другой версии это просто промежуток между байтами (изменение уровня на SDA), который сам сабой появляется в такой программе между записываемыми байтами:

Процедура:

void i2c_write(unsigned char data1, unsigned char data2) {
i2c_start();
i2c_write(0x88);
i2c_write(data1);
i2c_write(data2);
i2c_stop();
}
0

#51 Пользователь офлайн   Dreadatour 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 121
  • Регистрация: 14 Март 05

Отправлено 06 Сентябрь 2005 - 05:31

2athlon64:
Ага... я всё понял... =)))))))))))

ты мог бы и не объяснять мне, что такое TEA6320, и что такое TDA7314, поскольку у меня в этом деле опыта поболе будет... (ГОРАЗДО больше... =)))

ЛОЛ... рассмешил... тоже мне, спец... =))))))))

Про I2C... блин... народ! ну когда же вы научитась юзать Google?! Есть же куча информации... Зашёл в Google, набрал "I2C ack" и практически первая же ссылка: http://www.esacademy...ts/i2cgetak.htm

Вот описание шины I2C: http://mbouget.club.fr/i2c-faq.html

Вот описание шины I2C на русском: http://www.gaw.ru/ht.../interface/iic/

Короче, учитесь юзать Google!

я с вас фигею... "есть версия..." "другая версия..." да кто ж так электроникой занимается?! сидит, гадает, вместо того, чтобы элементарно даташит почитать...

И ещё... есть такая замечательная вещь, называется "Application Notes". Зайди на сайт Atmel'а и скачай аппноты для шины I2C. (там, правда, асм, но кто ж на Си программировать начинает?! кто программирует на Си не зная асма? только ламеры, я вам скажу.....)

ЗЫ: По поводу регулировки громкости для системы 5.1, могу сказать, что если охота уж юзать микросхемы, то лучше всего использовать микросхему SSM2160 - шестиканальный регулятор громкости.

Респект!

ЗЗЫ:
"Аппноты не нашёл, зато нашёл человека, который уже с этой связкой работал."
чё-то этот человек по-моему, такой же ламер как ты... =)))))))))
0

#52 Пользователь офлайн   athlon64 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 04 Сентябрь 05

Отправлено 06 Сентябрь 2005 - 13:34

Dreadatour Насчёт TEA6320 и TDA7314: это вообще-то не тебе было адресовано! Я лишь объяснил, почему TDA7314 лучше.

На самом деле мой вопрос был скорее в том, будет ли корректно работать тот участок проги на C, который я привёл, и нужно ли как то программно на С отслеживать ACK. Как я понял нет, скоро опробую.

Цитата

у меня в этом деле опыта поболе будет

Тогда и исходники должны быть наверное.

Цитата

ЛОЛ... рассмешил... тоже мне, спец... =))))))))

Где я выставил себя спецом? Такие выражения засунь себе в мягкое место! Не в первый раз за тобой замечаю.

Цитата

И ещё... есть такая замечательная вещь, называется "Application Notes". Зайди на сайт Atmel'а и скачай аппноты для шины I2C. (там, правда, асм, но кто ж на Си программировать начинает?! кто программирует на Си не зная асма? только ламеры, я вам скажу.....)

Вообщето НАЧИНАЮТ ПРОГРАММИРОВАТЬ именно на Си!
Сколько у тебя займёт написание проги для этого девайса на асме? Думаю, раза в 3 дольше, чем на Си. А у меня в 10 раз дольше. У меня была непонятка в одном месте программы, зачем мне тогда все писать на асме?

Цитата

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

Если это адресовано мне, то я отвечу. Да лучше, несомненно. Но я эту микруху я могу только заказать (ждать месяц), я лучше буду использовать TDA7314. Да и стоит она 1$, и всегда есть под рукой.

Цитата

ЗЗЫ:
"Аппноты не нашёл, зато нашёл человека, который уже с этой связкой работал."


Этот человек поможет мне больше, чем ты со своим опытом

Цитата

чё-то этот человек по-моему, такой же ламер как ты... =)))))))))

Это вообще без комментариев. Железная логика
0

#53 Пользователь офлайн   Dreadatour 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 121
  • Регистрация: 14 Март 05

Отправлено 06 Сентябрь 2005 - 14:12

2athlon64:
Так я и думал. Очередной щегол... я с такими вообще-то не общаюсь, но для тебя напишу кое-что. в последний раз.

и исходники тоже есть. только на АСМЕ! потому, что нормальные разработчики пишут программы на ассемблере. в крайнем случае, Си с ассемблерными вставками. Писать программы на Си (а тем более начинать программировать на нём) - это моветон! Если хочешь чего-то добиться, тебе с любом случае придётся учить асм.

У тебя же складывается следующая ситуация. Я объясню всё популярно, чтобы ты понял. Возмём математику как пример. Ты начинаешь решать интегралы сразу, без изучения арифметики и математики. И решаешь ты их по примерам, которые видишь в решебнике (читай: исходники других рахработчиков). И встретив неизвестное тебе место, доселе не встречающееся в примерах ты начинаешь гадать: "а может, это так? а вдруг это так!?" вместо того, чтобы открыть учебник и прочитать всё, что нужно. Но учебник ты открыть не сможешь, поскольку ты не изучал математику, и в высшей математике тебе ничего не будет понятно.

Программировать нужно начинать на ассемблере! И на написание проги на асме (а тем более такой простой, как ты хочешь написать) у меня, может, уйдёт чуть больше времени, чем на Си. Но работать она будет как ЧАСЫ, без глюков и прочего. Или тебе больше нравится вариант, когда ты пишешь прогу, СОВЕРШЕННО не осознавая, что она делает... а потом компилируешь её, и потом сидишь и разбираешь код на асме: что же тебе там компилятор Си накомпилировал... и где ты сам написал что не так...

Ты пойми, что Си гораздо более сложен как язык программирования, чем ассемблер. Другое дело, что для программирования на ассемблере нужно знать электронику, т.е. внутренности микроконтроллера.

Я не говорю, что Си - это отстой, я говорю, что Си - это не универсальная волшебная палочка. И ассемблер - не универсален. Но не надо мне с пеной у рта доказывать, что Си лучше, поскольку, во-первых, ты ламер, во-вторых, я работаю на многих платформах и на многих языках программирования, в третьих, я работаю каждый день с микроконтроллерами и микропроцессорами, и в-четвёртых, у меня есть куча друзей и знакомых, которые подтвердят мои слова.

Пойми, что со своим уставом в чужой монастырь не ходят! если ты хочешь работать с микроконтроллерами, то не стоит первому встречному (который, как оказалось, гораздо опытнее тебя) говорить, что он козёл и не прав. Учись и будет тебе счастье!

на это: "Такие выражения засунь себе в мягкое место! Не в первый раз за тобой замечаю" могу сказать лишь одно. Мой ответ на твоё высказывание ты можешь найти здесь: http://www.apatit.ru/center.htm там всё популярно написано. И ещё... Не груби старшим... Пожалуйста... =)))))))))))))))
0

#54 Пользователь офлайн   athlon64 

  • Junior
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 04 Сентябрь 05

Отправлено 06 Сентябрь 2005 - 15:05

Про твой бОльший опыт не спорю, просто нервирует, что это упоминается тобой слишком часто и сопровождается словами "ламер", "щегол" и тд. и не только в мой адрес. Вот и всё! Грубить бы не стал если бы ты сам не начал грубить. Забыли. Впредь по сабжу.

Насчёт Си и асма в целом согласен. Но мне для одной единственной разработки переходить на асм нет смысла. А этот мой девайс и так будет работать достаточно надёжно.
0

#55 Пользователь офлайн   listener 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 618
  • Регистрация: 08 Май 03

Отправлено 06 Сентябрь 2005 - 16:07

Dreadatour сказал:

2athlon64:
Так я и думал. Очередной щегол... я с такими вообще-то не общаюсь, но для тебя напишу кое-что. в последний раз.

и исходники тоже есть. только на АСМЕ! потому, что нормальные разработчики пишут программы на ассемблере. в крайнем случае, Си с ассемблерными вставками. Писать программы на Си (а тем более начинать программировать на нём) - это моветон! Если хочешь чего-то добиться, тебе с любом случае придётся учить асм.


Вообще, эта тема не для этого раздела. Если есть желание поспорить - предлагаю открыть тему где-нибудь в программном обеспечении.

Помнится, еще лет семь назад, документация по программиированию на ассемблере под UltraSPARC состояла из одной строчки: "Ассемблер мертв". С тех пор все стало только хуже. Писать на ассемблере для современных процессоров нельзя. Вернее можно, но эффективность кода будет крайне низкой.

Dreadatour сказал:

Программировать нужно начинать на ассемблере! И на написание проги на асме (а тем более такой простой, как ты хочешь написать) у меня, может, уйдёт чуть больше времени, чем на Си. Но работать она будет как ЧАСЫ, без глюков и прочего. Или тебе больше нравится вариант, когда ты пишешь прогу, СОВЕРШЕННО не осознавая, что она делает... а потом компилируешь её, и потом сидишь и разбираешь код на асме: что же тебе там компилятор Си накомпилировал... и где ты сам написал что не так...


Программировать, нужно учиться не на асме. И не на C. Оптимальные варианты (в зависимости от темперамента) это Smalltalk, Lisp или Forth. Это позволит научиться решать задачи, а не копаться в мелочеах.

Что же касается "что компилятор накомпилировал"... Для современного x86 процессора, как правило, написанный человеком ассемблерный код, медленнее в 4-6 раз. Нужны тебе часы, которые идут в 4 раза медленнее?

С колнтроллерами класса AVR - немного проще, но, ключевое слово здесь "немного". Если же брать не AVR, а, скажем MC68HC908 - простое однострочное сишное выражение легко может развернуться в 200-300 байт кода.
0

#56 Пользователь офлайн   ProniX 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 1 744
  • Регистрация: 25 Ноябрь 03

Отправлено 06 Сентябрь 2005 - 18:07

Ёпть! Опять двадцать пять! Ассемблер - не панацея. Си - тем более. Я с микроконтроллерами каждый день общаюсь. Для AVR, разумеется, начинать писать нужно на ассемблере. Хотя бы потому, что для программирования микроконтроллеров нужно знать его архитектуру. И потому, что сишные компиляторы там работают чуть ли не построчным методом. Ну нет там большой разницы между Си и асмом. Зато на последнем тайминги проще рассчитывать. А вот для DSP, напротив, я бы посоветовал писать на Си, потому что главная задача сигнальных процессоров - это не мигнуть светодиодом, а производить довольно сложные вычисления. Си просто УСКОРЯЕТ разработку, что экономически выгодно. Пример с интегралами, приведенный выше, здесь не подходит. Впрочем, ассемблерные вставки часто очень помогают в любом случае.

Цитата

Для современного x86 процессора, как правило, написанный человеком ассемблерный код, медленнее в 4-6 раз.
Полнейший бред.
0

#57 Пользователь офлайн   Dreadatour 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 121
  • Регистрация: 14 Март 05

Отправлено 06 Сентябрь 2005 - 18:27

2listener:
приведённые выше мои рассуждения относятся к микроконтроллерам. Не x86, не DSP и т.д. МИРОКОНТРОЛЛЕРЫ.

"скажем MC68HC908 - простое однострочное сишное выражение легко может развернуться в 200-300 байт кода" - это плюс языка Си?! ЛОЛ!

а вообще, лично тебе, listener, ОГРОМНЫЙ респект! =))))))))

2ProniX:
спасибо за поддержку. Не менее огромный РЕСПЕКТ! =)))))))

ЗЫ: предлагаю закрыть эту тему... Надоело на каждом форуме по десять раз обсасывать одно и то же... В конце концов, каждый вибирает то, что хочет.. Только одни прислушиваются к мнению других, а другие наступают на все грабли подряд... =))) Если кто-то не хочет меня слушать, - ну и не надо =))) у меня других дел полно =)))

а всего лишь хотел помочь =)))))))))))))

Всем респект! =)))

2athlon64:
могу поделится исходным кодом для TEA6320 и AVR на ассемблере. Могу поделится исходным кодом для мастера на шину I2C для AVR на Си. Но вообще-то... Ask Google и будет тебе СЧАСТЬЕ! =))))))))
0

#58 Пользователь офлайн   ProniX 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 1 744
  • Регистрация: 25 Ноябрь 03

Отправлено 06 Сентябрь 2005 - 18:33

Dreadatour сказал:

приведённые выше мои рассуждения относятся к микроконтроллерам. Не x86, не DSP и т.д. МИРОКОНТРОЛЛЕРЫ.
Вообще-то, есть DSP - микроконтроллеры, я только их и юзаю, ибо удобно :)
0

#59 Пользователь офлайн   listener 

  • Advanced Member
  • PipPipPipPipPipPipPip
  • Группа: Пользователи
  • Сообщений: 618
  • Регистрация: 08 Май 03

Отправлено 06 Сентябрь 2005 - 20:14

Dreadatour сказал:

2listener:
приведённые выше мои рассуждения относятся к микроконтроллерам. Не x86, не DSP и т.д. МИРОКОНТРОЛЛЕРЫ.

"скажем MC68HC908 - простое однострочное сишное выражение легко может развернуться в 200-300 байт кода" - это плюс языка Си?! ЛОЛ!


Да, плюс. Конкретный пример:
dev_lcd_send_data (mask16_Bh[*data & 0xF]&mask16_Ch[*data >> 4]);


mask16_Xx - два массива по 16 USHORT.

Учитывая, что у HC908 всего два РОН, это разворачивается в полнейшее непотребство.

Так что, молодой человек, учитесь соразмерять цели и средства.
0

#60 Пользователь офлайн   Dreadatour 

  • Member
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 121
  • Регистрация: 14 Март 05

Отправлено 06 Сентябрь 2005 - 22:24

2listener:
ох... нет слов...

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

ЗЫ: этот пример не показатель!..... Я могу написать на асме выражение, которое, будучи написано на Си будет выполнятся гораздо дольше по времени... а если мы обрабатываем видеоизображение?! там же миллионы циклов... Вот то-то и оно! всему своё место. Перечитайте мои посты внимательно и поймёте, что я не очередной почитатель ассемблера, я изначально писал, что есть асм, а есть Си. и надо юзать что-то в зависимости от задачи... но не нужно искать панацею, ибо её нет!!!

Dixi.

Добавлено спустя 3 минуты 32 секунды:

ЗЫ: вообще, речь шла изначально про AVR, ежели кто не понял..... и P4 тут не при чём =)))))))) и Motorola тоже =)))))))))))))))))

2ProniX:
согласен. НО!.. частенько бывает, что выбирать не приходится =))))) и нужно быть универсалом (в какой-то степени). не универСАЛОМ, а универсалом aka профессионалом =)))))))))
0

Поделиться темой:


  • (4 Страниц)
  • +
  • 1
  • 2
  • 3
  • 4
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

4 человек читают эту тему
0 members, 4 guests, 0 anonymous users