The hardware for this project is very simple: ATtiny2313 has 20 pins: pin 1 connects to serial port programming circuitry pin 4 one pin of ceramic resonator pin 5 one pin of ceramic resonator pin 10 ground pin 12 PB0 - visible LED pin 14 OC0A - IR emitter, through a 2N3904 driver (with 120 ohm base resistor) pin 17 connects to serial port programming circuitry pin 18 connects to serial port programming circuitry pin 19 connects to serial port programming circuitry pin 20 +3v All other pins are unused
LG, Samsung, Toshiba, Sony, Panasonic, Sharp, Sanyo, Thomson выключаются надёжно (с прошивкой для меги16). Думаю, этого набора уже достаточно для хорошего веселья в магазине, которое мы вчера с другом устроили.
В общем, запрограммировал фьюзы так: запрограммированы (выключены, стоят галки) SUT1, CKSEL0, CKSEL1, незапрограммировыны (включены, нет галок) SUT1, CKSEL2, CKSEL3, остальные — по умолчанию, и всё заработало.
Во-первых, если я ещё что-то понимаю во фьюзах, CKSEL0 и CKSEL1 запрограммированные в комбинации с CKSEL2 и CKSEL3 незапрограммироваными дадут.... вот и вопрос - что это будет? Табличку всем известную с фьюзами, думаю, все помнят. Там нет такой комбинации впринципе. Есть только 0001 или 0010 или 0000, но нет 0011. (читая справа налево, с CKSEL0 до CKSEL3). Ну а во вторых, зашив фьюзы на внешний кварц у своей меги В ДИП корпусе согласно таблице (только галочка на фьюзе SUT1, выключен, запрограммирован), у меня не заработало. Если посмотреть в камеру от мобильника, есть пара вспышек ИК диодов и на этом всё. А вот светодиод мигает как положено, не совсем равномерно. Правда, монтаж навесной, за полчаса на коленке, может из-за этого... переделаю. Но всё же, непонятно.
Я прошивал с помощью AVRDUDE и программатора USBAsp. Значение фьюзов получил при помощи калькулятора (http://fusecalc.mirmk.net/). Прошивка что была в архиве, просто закачал её и всё. Работать должно так: сначала сигнальный светодиод сначала, после нажатия, даёт одну вспышку, длительностью в 1 секунду, затем гаснет и начинается череда вспышек его и передающих светодиодов с передачей сигнала выключения для разных моделей, длится это около минуты. Затем, когда все команды будут посланы, сигнальный светодиод даёт 3 коротких вспышки и устройство выключается. Если в момент начального секундного горения светодиода нажать кнопку ещё раз, то устройство после этого начинает непрерывно, циклически передавать сигналы выключения разных моделей. Если после этого нажать кнопку три раза, то устройство выключается.
ferrum26, если у тебя работает именно таким образом, то попробуй испытать на практике.
На практике я испытывал в первую очередь, только потом уже с помощью камеры Думаю, программатор и программа-прошивальщик значения не имеют. Вставляю батарейки, происходит, как и написано в файле с исходником -
Цитата:
Fast Flashes + 1 long pulse = Battery Insertion
Нажимаю кнопку, 4 вспышки, не 3, кстати, а 4. Как и написано
Цитата:
1 Click - Blink TV power codes, and blink LED, 4 fast at start/end
Рахница в том, что ИК диод не моргает, а лишь раз вспыхивает и всё. СД после выспышки на 1 секунду вспыхивает несколько раз быстро-быстро (в это же время и вспыхивает ИК диод).... и всё. Больше нет никаких вспышек ни ИК ни СД.
Несколько раз быстро быстро это сколько? Если это в течение минуты продолжается, то всё нормально. Попробуйте поменять регион, если не берёт нужный телек, для этого нужно нажать кнопку 5 раз.
Ну секунд 4-5 моргает СД, не минуту. Да и представляю я как это должно выглядеть - видео же есть в сети, показывающее работу девайса. Попробовал сменить регион, хотя и так понятно, что раз камера не видит, что ИК диод что-то излучает, значит и телек не выключится Конечно, не помогло. Проблема где-то на поверхности.... и хоть я в своей жизни и собирал устройства гораздо сложнее этого, споткнулся на простом. Проверю всё сначала... транзистор поменяю, в конце концов
Вернулся из отпуска, попоробовал ещё раз, оказалось, что тупо питания не хватало. Батарейки, без нагрузки показывающие номинальное напряжение, и от которых нормально прошивался контроллер, под нагрузкой оказались дохлыми. Всё заработало
Собрал данный девайс, но что то работает он не понятно у меня. Когда включаю питание светодиод начинает моргать, а ик диоды не функционируют (проверял и на практике и на камере), иногда даже и светодиод не моргает после включения питания, хз по какому закону у меня работает эта фигня. Кнопка вообще похоже не работает, сколько не нажимай ничего не изменяется. Может кто нибудь сталкивался с такой ситуацией, очень хочется собрать это устройство, первый опыт работы с мк и сразу такая засада(((
Проверьте, правильно ли всё собрано. Если использованы те же детали, что указаны в схеме, то всё должно работать. В этом смысл схем на микроконтроллерах - при правильном повторении всё работает сразу, без настроек
Спасибо, проверю еще раз. Можно еще один не большой вопрос: был первый опыт программирования мк, может в этой процедуре что то не так сделал. Программировал в CodeVision сначала указал файл прошивки, потом прочитал fuse, поставил галочку только на sut1, остальные все снял, затем во вкладке program нажал flash и fuse. Я правильно все сделал, или где то ошибся? спасибо.
C ваших слов, всё верно прошили. Да и мигающий светодиод подтверждает корректность прошивки. Попробуйте подключить пару ИК светодиодов напрямую к выводам контроллера через 300-500ом резистор, устройство и так должно работать, но на меньшем расстоянии.
Только вчера собрал подобное, сунул в лазерную указку - работает отлично))))тока иногда ик-диод странно ведёт себя - тупо горит. Нажимаешь на кнопку - пошёл перебор команд. Так что смотри, может неправильно инфрокрасник собрал
Спасибо всем за помощь, заработало!)) сначала хотел установить ик диоды на одной стороне платы, но потом передумал и впаял с другой, а ножки вдругую сторону загнуть забыл, из-за этого и не работало!))
Хочу собрать под тини2313, компилирую код отсюда http://www.tvbgone.com/mfaire/tvbgone/tvbgone_na.c в АВР студио, ругается, говорит мало памяти. в описании на буржуйском что то про это написано, но никак не пойму что делать
Цитата:
The C compiler creates code that will transfer all constants into RAM when the microcontroller resets. Since this firmware has a table (powerTab) that is too large to transfer into RAM, the C compiler needs to be told to keep it in program memory space. This is accomplished by the macro PROGMEM (this is used, below, in the definition for the powerTab). Since the C compiler assumes that constants are in RAM, rather than in program memory, when accessing the powerTab, we need to use the pgm_read_word() macro, and we need to use the powerTab as an address, i.e., precede it with "&". For example, to access powerTab[3].onTime, which is a word, this is how to do it: pgm_read_word( &powerTab[3].onTime ); And to access powerTab[3].offTime, which is also a word, this is how to do it: pgm_read_word( &powerTab[3].offTime );
The following POWER code table consists of any number of POWER codes that will fit into the 2k flash ROM. Each POWER code consists of any number of codeElements, each of which consists of an onTime and an offTime (both onTime and offTime are expressed as the number of 10 microseconds -- for example, 4110 microseconds would be entered as 411)
*/
Я верно понял, некоторые коды придётся исключить?
И ещё вопрос - каким образом выставить фьюзы в Uniprof для данного девайса?
_________________ Сначала мы тратим здоровье, чтобы заработать денег, а потом тратим деньги, чтобы купить здоровье...
А ещё, нет ли прошивки новой для устройства? Так как не хочет работать с некоторыми телеками - плоскими: плазма или жк не знаю, но с тв на ЭЛТ всё нормально.
Сейчас этот форум просматривают: UB3RBV! и гости: 39
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения