Внимание! Перед тем как создавать тему на форуме, воспользуйтесь поиском! Пользователь создавший тему, которая уже была, будет немедленно забанен! Читайте правила названия тем. Пользователи создавшие тему с непонятными заголовками, к примеру: "Помогите, Схема, Резистор, Хелп и т.п." также будут заблокированны навсегда. Пользователь создавший тему не по разделу форума будет немедленно забанен! Уважайте форум, и вас также будут уважать!
1)дополнительный транзистор нужен для того, что с микроконтроллера (вывод AGC) идет напряжение ШИМ в пределах до 3.3В. Для того, чтобы усиление тюнера работало на максимуме при 5В необходимо его поднять до 5В. Для этого и ставят транзистор. 2)Питание может быть не более 5В. Иначе сгорит. 3)Пришивку надо менять при 5В. 4)MC3361 - это таже Моторола только в DIP корпусе. 5)ТА2008 - Функциональных аналогов близких нет. Если менять, то это будет уже другой приемник. 6)456 кГц только такой. В elcotel-е же есть его и берите. 7)фильтр 455 кГц только узкаяФМ. АМ нет. 8)10.245 - конечно же этой частоты. Извините опечатался.
Группа: Cоучастник
Сообщений: 1146
Пользователь №: 56261
Регистрация: 21-November 09
Место жительства: Нижний Новгород
QUOTE (victorus @ Jul 16 2012, 07:52 AM)
4)MC3361 - это таже Моторола только в DIP корпусе.
понятно, что ДИП. Но смущает значок на корпусе (фото выше) - вдруг какой нибудь китайский клон? Я так понимаю это старый значок Самсунга...видел такой же на корпусе микры КА22427 в старом приёмнике..а микры серии КА вроде только самсунговские...ну ладно эт мелочи..
Группа: Cоучастник
Сообщений: 1146
Пользователь №: 56261
Регистрация: 21-November 09
Место жительства: Нижний Новгород
а можно как альтернативу запитать приёмник от 3-х пальчиковых акумуляторов? Или ресурс работы от одной зарядки будет мал?...
У аккумулятора сотика, если не ошибаюсь, напряжение в разряженном состоянии ненамного меньше 3,7 вольт, отсюда и его преимущество, ведь так? А от 3,5 вольт тюнер хуже работает...
Группа: Cоучастник
Сообщений: 1146
Пользователь №: 56261
Регистрация: 21-November 09
Место жительства: Нижний Новгород
есть вопрос по поводу программирования атмеги16: На схеме приёмника разъём XS1 очевидно предназначен для программирования. Видна только нумерация разъема.
Но, объясните пожалуйста, куда подключать какие выводы простейшего программатора: (например "пять проводков", я так понял большинство других программаторов AVR тоже имеет пять выводов на выходном разъёме USB, прога есть AVRStudio)
Группа: Автор
Сообщений: 7585
Пользователь №: 35582
Регистрация: 3-August 08
Место жительства: Украина, Харьков
QUOTE (TRANSFORMER @ Jul 15 2012, 01:39 PM)
3) резонатор 456 кГц. В пультах ДУ есть только 455 кГц, как вариант можно конечно подогнать частоту триммером, в пределах нескольких кГц.
На 1 кГц этот резонатор легко подгоняется, так что проблем обычно нет.
--------------------
TDA - The Digital Audio Если плоскогубцы выскользнули из рук, то они обязательно упадут именно в то место, где смогут принести наибольшие потери. Закон Мэрфи.
4)MC3361 - это таже Моторола только в DIP корпусе.
понятно, что ДИП. Но смущает значок на корпусе (фото выше) - вдруг какой нибудь китайский клон? Я так понимаю это старый значок Самсунга...видел такой же на корпусе микры КА22427 в старом приёмнике..а микры серии КА вроде только самсунговские...ну ладно эт мелочи..
Да странноватая микросхема. У меня есть МС3361 в ДИПе, но там эмблема совершенно другая.
а можно как альтернативу запитать приёмник от 3-х пальчиковых акумуляторов? Или ресурс работы от одной зарядки будет мал?...
У аккумулятора сотика, если не ошибаюсь, напряжение в разряженном состоянии ненамного меньше 3,7 вольт, отсюда и его преимущество, ведь так? А от 3,5 вольт тюнер хуже работает...
Запустить можно, но ресурса на долго не хватит. Потребление 150мА. Да начиная с 3.5В приемник уже не работает.
есть вопрос по поводу программирования атмеги16: На схеме приёмника разъём XS1 очевидно предназначен для программирования. Видна только нумерация разъема.
Но, объясните пожалуйста, куда подключать какие выводы простейшего программатора: (например "пять проводков", я так понял большинство других программаторов AVR тоже имеет пять выводов на выходном разъёме USB, прога есть AVRStudio)
1)Да именно такой разъем ISP. 2)Я пользовался самодельным программатором AVRISP mkII. 3)Фьюзы такие идут только под AVRSTUDIO. Потому что там в меню параметры выбираются из списка как видно из фото фьюзов. B галках установленная обозначает что фьюз запрограммирован. Для других сред фьюзы нужно задавать вручную без списка. Но нужно быть внимательным у некоторых сред фьюзы показаны инверсные. То есть если установлен флажок, то считается, чтто фьюз сброшен. А то можно перепутать и залочить процессор. И только параллельный потом поможет. Для установки из других сред нужно, чтобы SPIEN был запрограммирован. Лучше его вообще его не трогать. По умолчанию на заводе он и так установлен. Лучше всего после установки процессор считать фьюзы и: а)сбросить фьюз JTAGEN б)сбросить CKOPT в)установить BODEN г)установить BODLEVEL l)установить все CKSEL д)установить все SEL для задержки
Группа: Cоучастник
Сообщений: 1146
Пользователь №: 56261
Регистрация: 21-November 09
Место жительства: Нижний Новгород
QUOTE (victorus @ Jul 17 2012, 07:45 PM)
Фьюзы такие идут только под AVRSTUDIO. Потому что там в меню параметры выбираются из списка как видно из фото фьюзов. B галках установленная обозначает что фьюз запрограммирован. Для других сред фьюзы нужно задавать вручную без списка.
Т.е. если в наличии есть AVRSTUDIO, программатор AVR под выход USB, то достаточно поменять USB-вилку на ISP и, пользуясь табличкой фьюзов из статьи - можно уже без опаски программировать?
От типа программатора фьюзы и др. настройки в AVRSTUDIO не будут зависеть?
Группа: Cоучастник
Сообщений: 1146
Пользователь №: 56261
Регистрация: 21-November 09
Место жительства: Нижний Новгород
Вот, всем желающим повторить приёмничек, печатная плата! Зачем делал? Исходя из тех типов корпусов микросхем, что были (будут) в наличии. 1) MC34063 (SOIC-8) 2) фильтр 38 МГц - ФП3П9-451 3) TA2008AN (SDIP-24) 4) LC72131 (SDIP-22). Нумерация выводов отличается от LC72131M, на ПП это учтено. 5) 74HC4053 (SOIC-16). В наличии КМОП-аналог HCF4053. 6) TDA7050 (DIP-8) 7) MC3361 (DIP-16) 8) ATMEGA16 (TQFP-44) Контурные Катушки - самодельные, экран нарисован тонкой красной линией.
Вопрос по авторской печ.плате - нижние по схеме выводы R47 и R50 вроде идут на вывод "3,3 вольт". На схеме - к общему проводу. Где ошибка? На схеме? Я в своей ПП поставил на "3,3 вольт"
Плата в формате Sprint Layout 5.0.
Это сообщение отредактировал TRANSFORMER - Jul 17 2012, 09:08 PM
Для простейшего программатора "пять проводков", рулит Понипрог, в свободном доступе она тоже. ISP разъем не нужен , открываем ДШ и подсоединяем прямо к Меге 16 , для дип SCK - 8 MOSI - 6 MISO - 7 RESET - 9 GND - 11 Питание - 10 для соика SCK - 3 MOSI - 1 MISO - 2 RESET - 4 GND - 6 Питание - 5 Запитывать лучше от 5В, на время программирования, от отдельного источника, а не от Li-on батареи т.к. сигналы от "пять проводков" могут превысить напряжение питания, что не даташитово, хоть обычно Мега это переносит.
--------------------
кольт, кольт, каждому мужику по калашу, и уйдем от страны карлика. Страшно как им.
Для простейшего программатора "пять проводков", рулит Понипрог, в свободном доступе она тоже. ISP разъем не нужен , открываем ДШ и подсоединяем прямо к Меге 16 , для дип SCK - 8 MOSI - 6 MISO - 7 RESET - 9 GND - 11 Питание - 10 для соика SCK - 3 MOSI - 1 MISO - 2 RESET - 4 GND - 6 Питание - 5 Запитывать лучше от 5В, на время программирования, от отдельного источника, а не от Li-on батареи т.к. сигналы от "пять проводков" могут превысить напряжение питания, что не даташитово, хоть обычно Мега это переносит.
Вообще то это и есть ISP(внутреннее последовательное программирование). Только среда другая и программирование не через USB, а СОМ порт.
Фьюзы такие идут только под AVRSTUDIO. Потому что там в меню параметры выбираются из списка как видно из фото фьюзов. B галках установленная обозначает что фьюз запрограммирован. Для других сред фьюзы нужно задавать вручную без списка.
Т.е. если в наличии есть AVRSTUDIO, программатор AVR под выход USB, то достаточно поменять USB-вилку на ISP и, пользуясь табличкой фьюзов из статьи - можно уже без опаски программировать?
От типа программатора фьюзы и др. настройки в AVRSTUDIO не будут зависеть?
USB и ISP это разные вещи. Программатор может быть разный и USB, и COM, и LPT, а выход должен быть ISP. Главное чтобы AVRSTUDIA его понимал. А он много разных типов программаторов поддерживает.
Вот, всем желающим повторить приёмничек, печатная плата! Зачем делал? Исходя из тех типов корпусов микросхем, что были (будут) в наличии. 1) MC34063 (SOIC-8) 2) фильтр 38 МГц - ФП3П9-451 3) TA2008AN (SDIP-24) 4) LC72131 (SDIP-22). Нумерация выводов отличается от LC72131M, на ПП это учтено. 5) 74HC4053 (SOIC-16). В наличии КМОП-аналог HCF4053. 6) TDA7050 (DIP-8) 7) MC3361 (DIP-16) 8) ATMEGA16 (TQFP-44) Контурные Катушки - самодельные, экран нарисован тонкой красной линией.
Вопрос по авторской печ.плате - нижние по схеме выводы R47 и R50 вроде идут на вывод "3,3 вольт". На схеме - к общему проводу. Где ошибка? На схеме? Я в своей ПП поставил на "3,3 вольт"
Плата в формате Sprint Layout 5.0.
И R47 и R50 подключаются к Vcc - напрямую к аккумулятору. Не к 3.3В.
Группа: Cоучастник
Сообщений: 1146
Пользователь №: 56261
Регистрация: 21-November 09
Место жительства: Нижний Новгород
По моей печатной плате, забыл добавить - вторая сторона сплошная фольга, подключена к общему проводу, длинные перемычки из тонкого изолированного провода размещаем на стороне сплошной фольги. Отверстия раззенкованы. А как написано в статье - если узел на VT1 и С39 не используется, то 18 ножка ТА2008 и 11 ножка LC72131M тоже не используются?
Группа: Cоучастник
Сообщений: 1146
Пользователь №: 56261
Регистрация: 21-November 09
Место жительства: Нижний Новгород
victorus, добрый вечер, есть идея запитать приёмник через DC-DC конвертор (на микре LM2621MM). Суть в том, что при любом напряжении акумулятора в пределах 2,7 - 5 вольт, получить на выходе стабильное напряжение около 3,7 вольт, к которому подвести питание приёмника.
Это даст возможность запитать приёмник от любого источника на 3...5 вольт.
Но есть подвох - как в этом случае организовать индикатор разряда батареи? Я так понял - через тот же делитель R49-R50 подключать на 31 ножку процессора "плюс" батареи, а схему питать через конвертор ?
victorus, добрый вечер, есть идея запитать приёмник через DC-DC конвертор (на микре LM2621MM). Суть в том, что при любом напряжении акумулятора в пределах 2,7 - 5 вольт, получить на выходе стабильное напряжение около 3,7 вольт, к которому подвести питание приёмника.
Это даст возможность запитать приёмник от любого источника на 3...5 вольт.
Но есть подвох - как в этом случае организовать индикатор разряда батареи? Я так понял - через тот же делитель R49-R50 подключать на 31 ножку процессора "плюс" батареи, а схему питать через конвертор ?
Конечно можно. Только для каждого источника нужна другая прошивка. Я могу сделать в меню выбор типа источника питания и потребуется только одна прошивка, а сохранять буду в ЕЕПРОМ. Да, R49-R50 подключать на 31 ножку процессора "плюс" батареи, а схему питать через конвертор.
Группа: Cоучастник
Сообщений: 1146
Пользователь №: 56261
Регистрация: 21-November 09
Место жительства: Нижний Новгород
Конечно делайте прошивку, заранне спасибо! Предлагаю ввести в меню такие типы источников питания, пределы изменений напряжения 1) 2,8...4 Вольт (три пальчиковых аккумулятора NI-MH или NI-CD) 2) 2,5...4,6 Вольт (три пальчиковых батарейки АА) 3) 3,5...4 Вольт (LI-ION от мобильника, фотика или другого девайса на номинальное напряжение 3,7 вольт) Если хотите, добавьте что нибудь ещё...будет только лучше. Главно чтобы это не тормозило процессор!
Группа: Автор
Сообщений: 7585
Пользователь №: 35582
Регистрация: 3-August 08
Место жительства: Украина, Харьков
Там и так тормозит процессор ужас как. Для одной строчки кода выделена функция. Лучше так не делать, для этого есть #define. А для лития напряжение от 3,2 до 4,2 надо. 3,5 это ещё в нём остается около 30%.
Это сообщение отредактировал vitalik_b - Jul 24 2012, 05:27 PM
--------------------
TDA - The Digital Audio Если плоскогубцы выскользнули из рук, то они обязательно упадут именно в то место, где смогут принести наибольшие потери. Закон Мэрфи.
Группа: Автор
Сообщений: 7585
Пользователь №: 35582
Регистрация: 3-August 08
Место жительства: Украина, Харьков
Это освободит память программы, но на быстроту повлияет не сильно. И что за извращение использовать для ОДНОГО ФЛАГА по одной переменной? Можно же создать переменную типа Flags. Там поместится 8 флагов. Обращаться к ним просто. В #define пишем названия флага и соответствующий номер этого флага (от 0 до 8). А для обращения к флагам напишем простой макрос: #define SetFlag(Flag,Bit) Flag |= (1<<Bit) #define ClrFlag(Flag,Bit) Flag &= ~(1<<Bit)
Второе. Зачем в прерываниях повторно разрешать, запрещать прерывания? Они аппаратно запрещаются контроллером по выходу в прерывание, а по выходу из прерывания автоматически разрешаются. И обратно в прерывании для одной строчки(запрещение, разрешение прерываний) использована функция...
Третье. Не большой ли обработчик прерывания для скана ДВУХ кнопок? И Почему бы не совместить чтение энкодера с чтением кнопок?
Синтезатор можно подключить прямо параллельно дисплею т.е. к аппаратному SPI. Сэкономим 4 ножки. Когда устанавливаем частоту синтезатором просто перенастраиваем настройки аппаратного SPI.
В общем программу можно оптимизировать на 50% с таким же увеличением быстродействия. Да и схему тоже можно оптимизировать.
CODE
while(bit_is_set(EECR,EEWE)) { Nop(); }
Зачем ноп?
EEPROM пожалуй самое тормозное место программы. На запись одной ячейки уходит 10мс. А у вас там много данных надо писать. В EEPROM есть своё прерывание. Запихайте данные в буфер, разрешаете прерывание и вуаля. Всё запишется само и само себя остановит при завершении передачи. А во время запись в EEPROM можно например в дисплей картинку пхнуть и ещё делать что то полезное, ведь время освобождается полно.
Это сообщение отредактировал vitalik_b - Jul 24 2012, 08:03 PM
--------------------
TDA - The Digital Audio Если плоскогубцы выскользнули из рук, то они обязательно упадут именно в то место, где смогут принести наибольшие потери. Закон Мэрфи.
Это освободит память программы, но на быстроту повлияет не сильно. И что за извращение использовать для ОДНОГО ФЛАГА по одной переменной? Можно же создать переменную типа Flags. Там поместится 8 флагов. Обращаться к ним просто. В #define пишем названия флага и соответствующий номер этого флага (от 0 до 8). А для обращения к флагам напишем простой макрос: #define SetFlag(Flag,Bit) Flag |= (1<<Bit) #define ClrFlag(Flag,Bit) Flag &= ~(1<<Bit)
Ну и что что по флагу используется своя переменная. Памяти и так вагон и маленький прицеп. А так понятно что за что отвечает. Смысл так извращаться?
QUOTE
Второе. Зачем в прерываниях повторно разрешать, запрещать прерывания? Они аппаратно запрещаются контроллером по выходу в прерывание, а по выходу из прерывания автоматически разрешаются. И обратно в прерывании для одной строчки(запрещение, разрешение прерываний) использована функция...
Да про это я забыл.
QUOTE
Третье. Не большой ли обработчик прерывания для скана ДВУХ кнопок? И Почему бы не совместить чтение энкодера с чтением кнопок?
Нормальный обработчик. С функцией антидребезга. Кнопки заведены на прерывания, чтобы можно было аппаратно из сна выводить. Поэтому и прерывания отдельные.
QUOTE
Синтезатор можно подключить прямо параллельно дисплею т.е. к аппаратному SPI. Сэкономим 4 ножки. Когда устанавливаем частоту синтезатором просто перенастраиваем настройки аппаратного SPI.
Можно было конечно, но зачем? Ножки экономить смысла нет они и так свободные остались.
QUOTE
Зачем ноп?
Можно и без него. Это ничего не изменит.
QUOTE
EEPROM пожалуй самое тормозное место программы. На запись одной ячейки уходит 10мс. А у вас там много данных надо писать. В EEPROM есть своё прерывание. Запихайте данные в буфер, разрешаете прерывание и вуаля. Всё запишется само и само себя остановит при завершении передачи. А во время запись в EEPROM можно например в дисплей картинку пхнуть и ещё делать что то полезное, ведь время освобождается полно.
Я знаю. Только мне параллельно ничего делать не нужно. Смысл на прерывание переводить?
Группа: Автор
Сообщений: 7585
Пользователь №: 35582
Регистрация: 3-August 08
Место жительства: Украина, Харьков
Такого ответа я примерно и ожидал. Оптимизировать программу можно на 50%. А тогда освободится куча времени, можно тактовую 16 МГц понизить в два, а то и больше раз, понизив при этом ток потребления МК в столько же раз. А потом, оптимизацией схемы можно применить контроллер подешевле, на меньшее количество ног, например ATMEGA8. В результате должна получится простая, дешёвая конструкция с очень хорошими параметрами. Так что всё ещё в впереди, проект хороший, но требует доработок. Если откинуть то, что программу надо полностью переписывать, то вот пара недостатков:
1. Мало кнопок. Если в главном режиме они выполняют одну функцию, то в меню уже совсем другие. Применения энкодера с кнопкой решит проблему с неудобством интерфейса управления.
2. Графика на дисплее очень сырая. Например я бы значёк батарейки сделал бы зелёным.
Это сообщение отредактировал vitalik_b - Jul 25 2012, 07:04 PM
--------------------
TDA - The Digital Audio Если плоскогубцы выскользнули из рук, то они обязательно упадут именно в то место, где смогут принести наибольшие потери. Закон Мэрфи.
Такого ответа я примерно и ожидал. Оптимизировать программу можно на 50%. А тогда освободится куча времени, можно тактовую 16 МГц понизить в два, а то и больше раз, понизив при этом ток потребления МК в столько же раз. А потом, оптимизацией схемы можно применить контроллер подешевле, на меньшее количество ног, например ATMEGA8. В результате должна получится простая, дешёвая конструкция с очень хорошими параметрами. Так что всё ещё в впереди, проект хороший, но требует доработок. Если откинуть то, что программу надо полностью переписывать, то вот пара недостатков:
1. Мало кнопок. Если в главном режиме они выполняют одну функцию, то в меню уже совсем другие. Применения энкодера с кнопкой решит проблему с неудобством интерфейса управления.
2. Графика на дисплее очень сырая. Например я бы значёк батарейки сделал бы зелёным.
QUOTE
Такого ответа я примерно и ожидал. Оптимизировать программу можно на 50%. А тогда освободится куча времени, можно тактовую 16 МГц понизить в два, а то и больше раз, понизив при этом ток потребления МК в столько же раз
Угу и тактовая частота дисплея тоже понизится - скорость обновления отображения на экране соответственно тоже. И так не фонтан.А оптимизировать согласен можно, но в другом месте и существенно.
QUOTE
А потом, оптимизацией схемы можно применить контроллер подешевле, на меньшее количество ног, например ATMEGA8. В результате должна получится простая, дешёвая конструкция с очень хорошими параметрами. Так что всё ещё в впереди, проект хороший, но требует доработок. Если откинуть то, что программу надо полностью переписывать
Можно, но это уже будет другой приемник. Займись на досуге.
QUOTE
Мало кнопок. Если в главном режиме они выполняют одну функцию, то в меню уже совсем другие. Применения энкодера с кнопкой решит проблему с неудобством интерфейса управления.
к сожалению в моей коробке больше кнопок не влезло.
QUOTE
Графика на дисплее очень сырая. Например я бы значёк батарейки сделал бы зелёным.
Группа: Автор
Сообщений: 7585
Пользователь №: 35582
Регистрация: 3-August 08
Место жительства: Украина, Харьков
QUOTE
Угу и тактовая частота дисплея тоже понизится - скорость обновления отображения на экране соответственно тоже. И так не фонтан.А оптимизировать согласен можно, но в другом месте и существенно.
Не проблема. Настройте SPI на максимальную тактовую Clock/2. И работайте через прерывание. Пока передатчик шлёт данные(например очередной пиксель), вместо того чтобы тупо ожидать флага готовности, можно подготовить следующие данные. Это увеличит быстродействие в два раза
Оптимизация это не только уменьшение размера кода, а и существенное увеличение быстродействия. Я как только вижу мобильный телефон с тормознутым меню, так сразу хочется поубивать разработчиков, вместе с телефоном. Надеюсь в следующей версии прошивки мои пожелания будет учтены.
QUOTE
Да сыровата. Надо обновить.
Я бы сделал так: Контур значка толщиной один пиксель. Цвет белый. А в середине контура три белых квадратика размером 3x2. Естественно от контура отступить на один пиксель чтобы квадратики было видно. Между квадратиками тоже естественно один пиксель отступаем. Когда в батарее осталось меньше 20% остаётся просто контур значка, без квадратиков в середине. Когда идёт заряд количество квадратиков увеличивается. От нуля(нет квадратиков) до трёх(три квадратика), потом цикл обратно повторяется. Задержка между добавлением новых квадратиков 500мс. А когда всё зарядилось значёк станет зелёным с тремя зелёными квадратиками.
Внизу изображение значка
Это сообщение отредактировал vitalik_b - Jul 25 2012, 09:38 PM
Присоединённое изображение
--------------------
TDA - The Digital Audio Если плоскогубцы выскользнули из рук, то они обязательно упадут именно в то место, где смогут принести наибольшие потери. Закон Мэрфи.