МедиаХаб
#41
Отправлено 18 Февраль 2005 - 13:41
Спасибо, но схемку я уже набросал, осталось только расчитать, написать прошивку для выбранного МК и отладить... вся проблема в том, что работал я только с PICами, но они мне не очень нравяться
#42
Отправлено 04 Сентябрь 2005 - 08:25
Я сейчас пытаюсь сделать регулятор громкости для самодельного 4-канального усилителя на МК Atmel ATMega8515 + 2 TDA7314 + дисплей 16х2, связанные по I2C. Есть и варианты TDA с селектором входов и с несколькими выходами, но мне это не нужно.
Собрал недавно плату для отладки (МК, дисплей, TDA). К сожалению у TDA и МК разные напряжения питания и логические уровни. Подтянул линии I2c к +5, как видел на одной аналогичной схеме в нете.
Никак не могу разобраться как отправлять в TDA пакет в таком виде, как требуется по даташиту. Использую Codevision C Compiller + I2c. В асме я почти ноль. Если нужно, покажу мою разводку.
Думаю если разберусь с I2c, далее проблем не будет.
На этой базе легко реализуется ваш медиахаб.
Если есть соображения, плиз, поделитесь.
#43
Отправлено 04 Сентябрь 2005 - 09:24
ЗЫ: Применять для задач обработки сигналов AVR нет смысла. Есть же DSP, и всё ограничится одним корпусом (есть же и со встроенным цап/ацп).
#44
Отправлено 04 Сентябрь 2005 - 12:28

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



#48
Отправлено 05 Сентябрь 2005 - 10:00
Зато здесь у нас будут регулировки громкости, баланса, высоких, низких частот, фейдер, жк-дисплей, ИК в перспективе. Ну ещё селектор входов, кому нужен. Минимальный уровень искажений, кстати.

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

#49
Отправлено 05 Сентябрь 2005 - 12:46
А если охота уж юзать микроконтроллер, то (как это обсуждалось выше) нужно цеплять микрухи типа TEA6320, благо требований к качеству особых нет (да и не услышите вы различия с нормальными схемотехническими решениями).
Респект!
#50
Отправлено 05 Сентябрь 2005 - 19:15
Так что лучше уж TDA7314 (7313,7315 и т.д.). Если у кого-то есть разработки на подобных микросхемах (по I2C, не обязательно на AVR), просьба поделиться.
Добавлено спустя 5 часов 30 минут 54 секунды:
Кажется я близок к тому, чтобы эта байда заработала.

Вот кусок даташита. Это формат сообщения от МК к 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();
}
#51
Отправлено 06 Сентябрь 2005 - 05:31
Ага... я всё понял... =)))))))))))
ты мог бы и не объяснять мне, что такое 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 - шестиканальный регулятор громкости.
Респект!
ЗЗЫ:
"Аппноты не нашёл, зато нашёл человека, который уже с этой связкой работал."
чё-то этот человек по-моему, такой же ламер как ты... =)))))))))
#52
Отправлено 06 Сентябрь 2005 - 13:34
На самом деле мой вопрос был скорее в том, будет ли корректно работать тот участок проги на C, который я привёл, и нужно ли как то программно на С отслеживать ACK. Как я понял нет, скоро опробую.
Цитата
Тогда и исходники должны быть наверное.
Цитата
Где я выставил себя спецом? Такие выражения засунь себе в мягкое место! Не в первый раз за тобой замечаю.
Цитата
Вообщето НАЧИНАЮТ ПРОГРАММИРОВАТЬ именно на Си!
Сколько у тебя займёт написание проги для этого девайса на асме? Думаю, раза в 3 дольше, чем на Си. А у меня в 10 раз дольше. У меня была непонятка в одном месте программы, зачем мне тогда все писать на асме?
Цитата
Если это адресовано мне, то я отвечу. Да лучше, несомненно. Но я эту микруху я могу только заказать (ждать месяц), я лучше буду использовать TDA7314. Да и стоит она 1$, и всегда есть под рукой.
Цитата
"Аппноты не нашёл, зато нашёл человека, который уже с этой связкой работал."
Этот человек поможет мне больше, чем ты со своим опытом
Цитата
Это вообще без комментариев. Железная логика
#53
Отправлено 06 Сентябрь 2005 - 14:12
Так я и думал. Очередной щегол... я с такими вообще-то не общаюсь, но для тебя напишу кое-что. в последний раз.
и исходники тоже есть. только на АСМЕ! потому, что нормальные разработчики пишут программы на ассемблере. в крайнем случае, Си с ассемблерными вставками. Писать программы на Си (а тем более начинать программировать на нём) - это моветон! Если хочешь чего-то добиться, тебе с любом случае придётся учить асм.
У тебя же складывается следующая ситуация. Я объясню всё популярно, чтобы ты понял. Возмём математику как пример. Ты начинаешь решать интегралы сразу, без изучения арифметики и математики. И решаешь ты их по примерам, которые видишь в решебнике (читай: исходники других рахработчиков). И встретив неизвестное тебе место, доселе не встречающееся в примерах ты начинаешь гадать: "а может, это так? а вдруг это так!?" вместо того, чтобы открыть учебник и прочитать всё, что нужно. Но учебник ты открыть не сможешь, поскольку ты не изучал математику, и в высшей математике тебе ничего не будет понятно.
Программировать нужно начинать на ассемблере! И на написание проги на асме (а тем более такой простой, как ты хочешь написать) у меня, может, уйдёт чуть больше времени, чем на Си. Но работать она будет как ЧАСЫ, без глюков и прочего. Или тебе больше нравится вариант, когда ты пишешь прогу, СОВЕРШЕННО не осознавая, что она делает... а потом компилируешь её, и потом сидишь и разбираешь код на асме: что же тебе там компилятор Си накомпилировал... и где ты сам написал что не так...
Ты пойми, что Си гораздо более сложен как язык программирования, чем ассемблер. Другое дело, что для программирования на ассемблере нужно знать электронику, т.е. внутренности микроконтроллера.
Я не говорю, что Си - это отстой, я говорю, что Си - это не универсальная волшебная палочка. И ассемблер - не универсален. Но не надо мне с пеной у рта доказывать, что Си лучше, поскольку, во-первых, ты ламер, во-вторых, я работаю на многих платформах и на многих языках программирования, в третьих, я работаю каждый день с микроконтроллерами и микропроцессорами, и в-четвёртых, у меня есть куча друзей и знакомых, которые подтвердят мои слова.
Пойми, что со своим уставом в чужой монастырь не ходят! если ты хочешь работать с микроконтроллерами, то не стоит первому встречному (который, как оказалось, гораздо опытнее тебя) говорить, что он козёл и не прав. Учись и будет тебе счастье!
на это: "Такие выражения засунь себе в мягкое место! Не в первый раз за тобой замечаю" могу сказать лишь одно. Мой ответ на твоё высказывание ты можешь найти здесь: http://www.apatit.ru/center.htm там всё популярно написано. И ещё... Не груби старшим... Пожалуйста... =)))))))))))))))
#54
Отправлено 06 Сентябрь 2005 - 15:05
Насчёт Си и асма в целом согласен. Но мне для одной единственной разработки переходить на асм нет смысла. А этот мой девайс и так будет работать достаточно надёжно.
#55
Отправлено 06 Сентябрь 2005 - 16:07
Dreadatour сказал:
Так я и думал. Очередной щегол... я с такими вообще-то не общаюсь, но для тебя напишу кое-что. в последний раз.
и исходники тоже есть. только на АСМЕ! потому, что нормальные разработчики пишут программы на ассемблере. в крайнем случае, Си с ассемблерными вставками. Писать программы на Си (а тем более начинать программировать на нём) - это моветон! Если хочешь чего-то добиться, тебе с любом случае придётся учить асм.
Вообще, эта тема не для этого раздела. Если есть желание поспорить - предлагаю открыть тему где-нибудь в программном обеспечении.
Помнится, еще лет семь назад, документация по программиированию на ассемблере под UltraSPARC состояла из одной строчки: "Ассемблер мертв". С тех пор все стало только хуже. Писать на ассемблере для современных процессоров нельзя. Вернее можно, но эффективность кода будет крайне низкой.
Dreadatour сказал:
Программировать, нужно учиться не на асме. И не на C. Оптимальные варианты (в зависимости от темперамента) это Smalltalk, Lisp или Forth. Это позволит научиться решать задачи, а не копаться в мелочеах.
Что же касается "что компилятор накомпилировал"... Для современного x86 процессора, как правило, написанный человеком ассемблерный код, медленнее в 4-6 раз. Нужны тебе часы, которые идут в 4 раза медленнее?
С колнтроллерами класса AVR - немного проще, но, ключевое слово здесь "немного". Если же брать не AVR, а, скажем MC68HC908 - простое однострочное сишное выражение легко может развернуться в 200-300 байт кода.
#56
Отправлено 06 Сентябрь 2005 - 18:07
Цитата
#57
Отправлено 06 Сентябрь 2005 - 18:27
приведённые выше мои рассуждения относятся к микроконтроллерам. Не x86, не DSP и т.д. МИРОКОНТРОЛЛЕРЫ.
"скажем MC68HC908 - простое однострочное сишное выражение легко может развернуться в 200-300 байт кода" - это плюс языка Си?! ЛОЛ!
а вообще, лично тебе, listener, ОГРОМНЫЙ респект! =))))))))
2ProniX:
спасибо за поддержку. Не менее огромный РЕСПЕКТ! =)))))))
ЗЫ: предлагаю закрыть эту тему... Надоело на каждом форуме по десять раз обсасывать одно и то же... В конце концов, каждый вибирает то, что хочет.. Только одни прислушиваются к мнению других, а другие наступают на все грабли подряд... =))) Если кто-то не хочет меня слушать, - ну и не надо =))) у меня других дел полно =)))
а всего лишь хотел помочь =)))))))))))))
Всем респект! =)))
2athlon64:
могу поделится исходным кодом для TEA6320 и AVR на ассемблере. Могу поделится исходным кодом для мастера на шину I2C для AVR на Си. Но вообще-то... Ask Google и будет тебе СЧАСТЬЕ! =))))))))
#58
Отправлено 06 Сентябрь 2005 - 18:33
Dreadatour сказал:
#59
Отправлено 06 Сентябрь 2005 - 20:14
Dreadatour сказал:
приведённые выше мои рассуждения относятся к микроконтроллерам. Не x86, не DSP и т.д. МИРОКОНТРОЛЛЕРЫ.
"скажем MC68HC908 - простое однострочное сишное выражение легко может развернуться в 200-300 байт кода" - это плюс языка Си?! ЛОЛ!
Да, плюс. Конкретный пример:
dev_lcd_send_data (mask16_Bh[*data & 0xF]&mask16_Ch[*data >> 4]);
mask16_Xx - два массива по 16 USHORT.
Учитывая, что у HC908 всего два РОН, это разворачивается в полнейшее непотребство.
Так что, молодой человек, учитесь соразмерять цели и средства.
#60
Отправлено 06 Сентябрь 2005 - 22:24
ох... нет слов...
ладно, кончаю этот бред aka вечный спор о Си и асме... всё равно каждый останется при своём мнении.....
ЗЫ: этот пример не показатель!..... Я могу написать на асме выражение, которое, будучи написано на Си будет выполнятся гораздо дольше по времени... а если мы обрабатываем видеоизображение?! там же миллионы циклов... Вот то-то и оно! всему своё место. Перечитайте мои посты внимательно и поймёте, что я не очередной почитатель ассемблера, я изначально писал, что есть асм, а есть Си. и надо юзать что-то в зависимости от задачи... но не нужно искать панацею, ибо её нет!!!
Dixi.
Добавлено спустя 3 минуты 32 секунды:
ЗЫ: вообще, речь шла изначально про AVR, ежели кто не понял..... и P4 тут не при чём =)))))))) и Motorola тоже =)))))))))))))))))
2ProniX:
согласен. НО!.. частенько бывает, что выбирать не приходится =))))) и нужно быть универсалом (в какой-то степени). не универСАЛОМ, а универсалом aka профессионалом =)))))))))