...07.06.13 В ближайшее время опишу систему ДУ на базе кода RC-5. Реализован длинный ввод через псевдографику. Всё ещё маюсь с железом.
...25.04.13 Оформился.
...25.04.13 Пока не оформился с выкладкой прошивки, привожу в порядок "список режимов" и "описание функций". Роятся мысли по поводу ШИМ-а: надо будет обязательно делать, т.к. разные кассеты требуют разного усилия подмотки. Есть такие, что после достижения смещения ("-0005", для точного попадания на метку "0000") после перемотки и включения подмотки до нуля, просто останавливаются. Придётся вводить программную настройку через меню (отвёртку в сторону) скорости подмотки до метки, усилия подмотки в воспроизведении, нижнюю планку начала разгона перемоток и шаг достижения максимума преремотки. Можно будет подумать на счёт Cueing-а, но здесь надо вводить отслеживание удержания кнопок. Попутно можно объединить "коммутатор режимов" и "коммутатор магнитов". "Регулятор" можно вынести на ЛПМ уже по месту. "Распределитель" естественно придётся перепахать, но тогда и ГСП попадёт под горячую руку и на будущее ещё и БП, добавить +5В и м.б. +30В. Это позволит отодвинуть платы от ЛПМ и станет возможным навесить приличный движок на привод. Тогда на перемотку образуется запасной движок. Ну или может сразу заменить его модельным бесколлекторным и делать новое управление сразу для него. Возможно придётся ввести программный настраиваемый потолок для перемотки. Тогда встают вопросы:
1) схема на привод, для коллекторного движка, с лучшими хр-ками (обратная связь с датчика маховика)
2) управление скоростью и направлением (м.б. реле) бесколлекторного...
...20.04.13 Отложенное воспроизведение, после перемотки до начала - готово. Сделал, так: в режиме перемотки назад, достаточно включить паузу. Как бы ставим на паузу будущее воспроизведение, на время перемотки. Повторным нажатием можно вернуть режим. Дальше буду подчищать хвосты и чуть позже оформлю архив с прошивкой.
...19.04.13 "REС+STOP+FF" и "REС+STOP+REW" - готовы. И последнее из набора - отложенное воспроизведение, после перемотки до начала... И где-то впереди светит - перемотка до набранного номера, с отложенным воспроизведением или без. Естественно через функцию в меню.
Есть проблемка: подмотка, используемая для точного достижения нуля, не гасит линейный выход. Объясняется это тем, что текущая реализация КР, имеет потолок программной памяти в 1КБ. Что-то изменить, без замены МК на более толстый, уже нельзя. Но дальше буду думать над этим (может ещё и с ШИМом будет). Вообще, идеология управления по шине I2C, позволяет использовать "Коммутатор Режимов" любой "местный" (для своего аппарата), а командовать с текущего "Блока Кнопок", хоть для бобинника.
...17.04.13 Протоптана дорожка: первая из пяти функций, заработала без ошибок и глюков. "REC+FF" - отложенное воспроизведение после перемотки до метки из минуса. Ограничил исполнение из режимов "СТОП" и "ВОСПРОИЗВЕДЕНИЕ". Остальные функции должны пойти легче. Следующая "REС+REW"... Готова. Далее - "REС+STOP+FF" и "REС+STOP+REW", т.е без отложенного воспроизведения...
...14.04.13 Доделал изменение типа индикатора счётчика при удержании "СТОП". Проверено только на ОА. Для проверки ОК надо будет сделать дочернюю плату, сам индикатор куплен. Теперь можно начать делать вкусное: перемотка до метки + остановка, перемотка до метки + воспроизведение и перемотка до начала кассеты + воспроизведение. И кажется пора уже делать меню для настройки некоторых параметров. Только из режима "СТОП", по нажатию "СТОП+ПАУЗА" - должно подойти.
...12.04.13 Изменил оптику на ЛПМ. Чуть позже буду править пост о модификации ЛПМ до актуального состояния. Теперь оптика сидит на дальней от ЛПМ оси, через пассик. Проверил новую идеологию работы с "меткой", вроде косяков не обнаружил. Полный сброс (глобальный, т.е. со сбросом ячейки смещения) по "сброс" в отсутствии кассеты. При "OFF" сохраняется, и значение счётчика и его смещение. Погрешность есть, на 30 минутах набежало "0005", при 20-30 сбросах в разных режимах. При удержании "сброса" вроде как погрешность не вносится. Думаю набежавшее можно списать на энерционность. Нет возможности проверить в системе с крыльчаткой на оси подкассетника. Работает, только толку от такой "метки"? Придётся следующим жестом сделать "REC+FF" и "REС+REW" а-ля Nakamichi, т.е. отложенное воспроизведение по событию. За одно надо продумать перемотку через ноль с остановкой или без.
...01.04.13 Вроде как добил. Теперь счётчик считает набежавшее с ранее сохранённым в ячейке смещения и возвращает значение по "СТОП"+"СБРОС", только из режима стоп. Ввёл параметр настройки вариантов сохранения в EEPROM. Ввёл параметр настройки разрядности младшего значения счётчика. Счётчик распишу после тестов. Естественно без грабель не обошлось, но вроде как что найдено - то поправлено и дело теперь за полной проверкой, коей не сделать без правильной физики: нужно после нескольких сбросов вернуться на ноль. Без кассеты сброс чистит ещё и ячейку смещения, т.е. устанавливает абсолютную точку нуля на ленте. Пришёл к выводу: придётся возвращать пассик, но короткий. Крыльчатку сажать на дальнюю ось + оптику тут же на шасси с разъёмом, аккурат под ПП БК. Думал красиво повесить оптику сразу на плату, но цена переделки велика, плюс риск промахнуться, Геометрия - баба капризная. Перешёл 25% - т.е. более 4 КБайк кода в асме!
...26.03.13 Бьюсь над математикой счётчика. До чего же не удобно работать с десятичными числами. Получается громоздко, хоть конвертируй в двоичную, считай, а после обратно. Так и сделал бы, но значения получатся 16-битные, а свободных регистров уже нет. Сложений и вычитаний - 4-е ветки + доб. функции. В целом не скучно, но муторно. За то потом возьмусь за вкусное!
...21.03.13 Почесал на досуге репу - репе понравилось. Результатом сего жеста стало понимание очередного косяка. Оптика не привязана жёстко к подкасетнику. Придётся придумывать и переделывать. Бьюсь над новой идеологией счётчика: зачем терять значение при обнулении? Можно набежавшее значение прибавлять к буфферу каждый раз при сбросе. А если нужно вернуть, то можно нажать "СТОП+СБРОС". Без кассеты сброс будет обнулять как счётчик так и буффер. При наличии кассеты во время альт. выключения (OFF), в будут сохраняться оба значения. Но возможны варианты. Думаю...
...17.03.13 Всё последнее время бился над ошибкой в скопированном рабочем коде из старого проекта в новый.
Надо было задействовать таймер2 (3-й по счёту) и на его жестах д.б. крутится код. Перепробовал перелопатить все части, а результат: в avr-studio всё пучком, а реале не пашет. Прицепил лог-анализатор, использовал ножку для вывода событий. Нету нужной реакции и всё.
И после долгих дней прозрел - м.б. железо? Поменял местами задачи для таймера2 и таймер0 (благо на нуле сидит задача попроще) - и чудо настигло!
Пробовал нарыть в инет-е глюк в теле, как-то не нашёл. Чуть отдохну, а то думал крыша съедет...
...08.03.13 Нашёл незначительную ошибку в БК, обновил. XS1 был развёрнут на 180 гр.
...04.03.13 Заработала аппаратная версия I2C(TWI). Коду поубавилось. Оказалось, что где-то специально включать не нужно. Теперь можно думать над следующими функциями. Пришла на ум очередная идея: возврат значения счётчика после сброса(ов), по "СТОП"+"СБРОС" из режима "СТОП".
...01.03.13 Как-то оформилось.
...27.02.13 Простуда, кашель и голова (кажется уже без мозгов). Уже начал подотовку к оформлению и тут младшая сестра костлявой с косой, но только с серпом. Чуть полегчает - сделаю.
Нашёл ещё один баг: после расписывания ошибок для вывода на дисплей счётчика, словил одну - постановка в паузу записи из самой записи (из "СТОП" ошибки нет). Оказалось, что отсутсвовало обслуживания этой команды в коммутаторе режимов. Добавил пять строк, ошибка пропала, но каретка становилась не в паузу, а падала в "СТОП". Пришлось расписывать все положения ЭМ всех вокруг режима "ЗАПИСИ". Потратил времени, на всё это, дня два, но нашёл простое решение. Достаточно было раскоментировать одну строчку, закоментированную ранее для сокращения объёма кода. Процент заполнениея кодом памяти =100% (хотя, чуть сократить наверное можно). Видимо для дальнейших функций (добавить ШИМ на перемотку и т.д.), помимо намеченных, придётся менять и коммутатор режимов - что-то вроде Attiny2313+595 в соике + SMD тр-ры и резисторы (SMD дешевле и быстрее). Но пока текущего хватит месяца на 3-4-е.
...22.02.13 По мотивам вчерашнего дня, докопался ещё до одного глюка: после выхода из паузы воспроизведения срабатывал автостоп, сразу же после вызова функции. Был предусмотрен сброс возможных набежавших прерываний (уже был опыт), но как оказалось он не отрабатывал. Замена "sts" на "out" помогла, т.к. сбрасываемый пациент "TIFR1" оказалось сидит в области до 0x3F, это где надо использовать "out". Второй пациент - не отрабатывала функция "сквозной канал" в воспроизведении (т.е. надо отключать режим монитор, что бы что-то услышать с ленты), как-то сам рассосался. Добавлю ещё управление режимами "СК (TAPE) - Монитор (Source)" + блок режимов + блок записи, проверю и буду выкладывать.
...Того же дня, 22-го. Глюки шифруются, т.е. вроде как доделал. Выкладывать буду после праздников, попробую погонять. Может ещё чего добавить успею. Надеюсь на помощь бета-тестеров.
...21.02.13 Хорошо, что не поторопился выложить. Накопал ещё ошибку в железе, поправил ПП и схему. Прицепил к ЛПМ (пришлось перепаивать разъём). Автостоп заработал, но счёт не пошёл. Подобрал по-новой резисторы: на ИК СД 620 ом против 1К3, на ФД по 16к против 15к. Счёт пошёл, логическая единица до +4.5 В, лог. ноль около 0.5 В. Видимо сопротивление входов МК чуть отличается от предыдущего. Есть ещё баги - ловлю. Пираньи светят красиво, но яркость разная, позже подберу. Индикатор CA56-11SRWA - жжёт!
...Того же дня, 21-го. Отловил весьма неприятный баг. Кровушки литра три, сволочь. Речь идёт о сходных по функции командам: "out" и "sts". Компилятор, когда д.б. "sts", а по привычке стоит "out", ругается. Обратно нет, т.к. ошибкой не является. Вот тут и происходит "ЩАСТЬЕ" - что надо не исполняет, а происходит совершенно другое - меняется значение регистра, который зарезервирован и недоступен больше не откуда, кроме как в отведённом для этого месте. Одним словом "чудо". Что не исполняется я знал, но списывал на переименование регистров, думал позже прочитаю где это. Но то, что отрабатывает в др. месте - я не понял совсем. Проще поверить, что это глюк компилятора, др. объяснения не было. Только когда вывел значение на индикатор и получил то же, что и в софте понял, что надо верить и где искать. Функция автоотключения упорно видела значение множителя =1, после смены режима (play+stop) и через 15 секунд получаем исполнение "OFF", при заявленных 20x15сек=5 мин.
Надо думать близок конец проверки и доделки промежуточной версии.
...19.02.13 Проверил. Нашёл ошибку в железе. Поправил на ПП. Попробовал нахрапом портировать код. Мордобой ещё тот был - интерфейсом об тэйбл. Результаты есть, но лучше доделаю всё то, что было реализовано, тогда обновлю БК + индикатор счётчика. Два дня ушло на поиск решения по прерываниям + из новой SRAM перестало читаться (оказалось достаточно убрать статический адрес сегмента) + поиск глюка на 595-ых (не было правильного вывода на дисплей и СДИ) - ловил наводки от руки, загоралось всё что угодно (в запарке один из выводов работал как вход - в инициализации был "0" вместо "1").
...15.02.13 Закончил плату БК и индикатор счётчика. Упарился. Чуть позже выложу, но сначала проверю. После начну вдувать жизнь.
...12.02.13 Добавил лимонной кислоты. Тормоза сморщились - травка пошла реально быстрее! Проверил визуально тонкие места, где надо поправил. Искупал в Розе.
...10.02.13 Отбрил ПП БК. Причесал схему индикатора. Эпиляция схемы БК в процессе. Надо бы не забыть в этот раз добавить лимонной кислоты в зелье.
...09.02.13 Пришёл к финальной реализации ПП индикатора. Резисторы беру 0805, тр-ры то же SMD - SOT-23 (любые биполярные, с током коллектора от 100 мА). Приходится налету править распиновку разъёма, что б лишних перемычек не нагородить.
...07.02.13 Расколбасил разводку ПП индикатора CA-56-11SRWA. Буду менять ПП БК, т.к. отсюда убирается 12 резисторов и 4-е транзистора + надо изменить разъём для индикатора. Обновлю по готовности.
...01.02.13
Мысли об индЮках...
...31.01.13 Пока до дела не дошло, решил разобраться с яркостью индикатора. Может ещё и с удобством подключения ОА и ОК. Поробую взять CA-56-11SRWA, а то BQ-N515RD очень тусклый через стекло.
...30.01.13 Сделал новую схему и ПП блока кнопок. Получилось 13 перемычек, 5 из них тянулись с прошлой версии, остальные вероятно неизбежность. Подумал о совмещении SPI и разъёма ЛПМ - получилось, только SPI будет с другой стороны, т.е. со стороны монтажа. Иначе получается зеркально, тогда развести будет весьма не просто. Исключение же отдельного SPI реально упростило плату и поуменьшило кол-во перемычек. На днях буду обновлять ПП и схему БК, после повторной проверки.
...26.01.13 Плотно посидел за ПП. Чудеса пока есть, перемычек пока минимум - 5. Две на 595-х по питанию + и там же данные и управление. Что будет в конце - ужасаюсь за ранее, но второй слой думаю
не делать по-любому. Перемычки паять проще в разы. %-ов за 50 перевалил.
...25.01.13 Рихтую схему параллельно с возведением медного 2D цветка уже %% на 30 возведённого. Красота страшная и жертв требует, кто она после этого? "Sprint Layout 6.0" покорился, немцы молодцы - исправились, "автозахват" отключаемый. 88 тело ещё в магазе. Ставил второй регулятор - спалил 595-ю на КР, перепаял - ожило с первым. Второй починил - жужжит.
...24.01.13 Выбрал новое тело - Atmega88: можно без проблем перейти на 168, аппаратный I2C(TWI), UART, много прерываний, таймерами не обижен, ножек чуть больше. Схему уже набросал, но ещё не вылизал. Прелесть работы с МК (в отличии от логики) - одновременно с разводкой ПП можно менять периферию. Отказался от динамического опроса кнопок. Беда в том, что заранее не известно какие варианты нажатия потребуются. Отсюда можно получить ложную комбинацию вместо реальной. Совместил SPI-разъём с выводом на 595-е. Иметь отдельно SPI без необходимости, что либо переключать перед прошивками (за день - 10-20) - счастье! Добавлю ещё один разъём I2C - мало ли что ещё подключить захочется? Благо теперь памяти хватит. Индикатор теперь должен загореть поярче - добавление в динамическую индикацию ещё одного сегмента (СД режимов) отъело 1/5-ю общего времени горения.
...23.01.13 Всё. Упёрся - 99.8%. Успел проверить: паузу записи, "9.53" - логическая единица явилась. Один важный момент: динамический опрос кнопок, в данном исполнении, не даёт увидеть одновременный нажим двух кнопок. Т.е. не задействованные ножки 595-ой находящиеся в "лог 0" вносят проблемы в замер. Правильнее подключать к МК и переключать лишние на вход без подтяжки. Но попробовал развести во времени и тогда две функции отработали. Остальные не хотят видимо из-за направления опроса ног. Перехожу на новое тело. Предварительно Atmega8 в TQFP - 32 ноги, 8кБ программной памяти, аппаратный I2C (TWI). Соответственно новая схема БК + плата + работа над ошибками.
...22.01.13 Таймер. Плохой таймер. Долго. Курил инет. Так и не заработал. Пришлось выкручиваться. Сделал на флагах статус режима для делёжки одного таймера по времени. Благо по определению одновременно работать не могут - автостоп или автоотключение. Множитель 15-и секундной задержки живёт в EEPROM. Пока можно править значение в файле от 1 до 255 (естественно в гексах). Подумаю о режиме правки с фейса. Память жутко тает... 87,5%.
...21.01.13 C чем-то разобрался, что-то ещё будет правиться. Заработал вывод альтернатиной ин-фы на дисплей. Теперь могу выводить " OFF" перед выключением от команды не теряя счётчика. Перелопатить пришлось %% 70. Добавил делитель к счётчику. Память заканчивается, возможно придётся переходить на что-то типа Atmega8. Базовый набор + минимум дополнительных функций влезут и в 2313. Проверил обе перемотки.
...20.01.13 Всё ещё наводится порядок и расстановка Ёвых точек для дальнейшего удобства написания кода. Изменил прошивку в коммутаторе режимов. Думаю об поиске по номеру на счётчике, аля "Eumig FL-1000".
...19.01.13 Дальнейшее написание кода упёрлось в наведение порядка среди данных в EEPROM. Как-то не мало оказалось о чём подумать. В том числе и о будущих функциях использующих данные EEPROM.
...18.01.13 Заработал автостоп. Вместе со сбросом набежавшего в таймере, пришлось сбрасывать возможное полученное прерывание от таймера.
Собрал ЛПМ. Отлилеял и отхолил в пасте гои, в ультразвуковой ванне, в спирте и в смазке. Запел!
...17.01.13 Довёл до ума счётчик. Был глюк - при декременте значений типа "xx10, xx20 и т.д" разряд единиц показывал "0xF", т.е. визуально "8.". Переписал функцию "Sub_Count" с нуля. Проверил оптическую пару, резистор, для ИК СД, пришлось ставить 1 кОм (1К3 не нашлось, было 2К7). Веб-камера спасает.
Прицепил оптику на ЛПМ. Распаял кабель на ЛПМ. Сделал сброс. Заработала таки запись значения счётчика в EEPROM.
...16.01.13 Запустил опрос кнопок. Прикольно - пульт (БК) болтается на "мышином" шнуре как проводной пульт ДУ со счётчиком, пока ЛПМ не подключен. Пора уже доделывать железо, браться за автостоп, определитель направления счёта и запускать сам счётчик.
...15.01.13 Реген дисплея пашет. На очереди скан кнопок. В подчинённом нашлась ошибка - вместо буфера с данными был заявлена какая-то другая переменная. Не работала отправка байта, отсюда не было подтверждения. Для счётчика дописал функции инкремента и декремента через ноль. Минус не показываю, можно догадаться есть он или нет. Памяти уже сожрано 48% от 2КБ, правда код пока с мусором. Символы для сегментов и комбинации для СД беруться из EEPROM. Добавил резистор (820 ом) на СД, а то глаз слепит. А для сегментов закоротил R24-27. Счётчик при автоотключении сохраняется, но не всегда. Пока не понял...
...14.01.13 Добивал реген дисплея и добавил работу с EEPROM, что б хранить кое-какие значения при отключении. Словил замыкание на плате - оформил
отдельно.
...13.01.13 Весь день разбирался с таймерами и около-таймерными проблемами. Что-то пришлось проверять на практике. Картина, как всё подружить, вырисовывается.
Проверил функцию отключения от сети по команде. Была проблема в прошивке, устранил - заработала. Поднял частоту шины с 12,5 КГц до 25. После попробую до 50-и и до 100-а КГц. Но у меня пока длинный "мышиный хвост" - не резанный по длине где-то 170 см.
Буду думать над регеном дисплея, тем что он должен отображать и где это должно храниться...
...12.01.13 Ни чего особенного не успел, но пока ехал домой от друзей вспомнил ещё одну причину по которой пришлось ввести оптическую пару на подкассетник и счётчик. В VILME-е применено красивое решение с датчиком автостопа - на плате регулятора находится усилитель пульсаций с двигателя подмотки-перемотки. После, сигнал "АО" через плату распределителя попадает на плату коммутатора режимов, в детектор переменки. Где при наличии пульсаций разряжался кондёр, а при их отсутствии заряжался до порогового уровня и формировался сигнал "СТОП". Всё вроде чудесно, но при небольшом износе пассика (или просто попадает пыль) происходит проскальзывание шкива движка, при полной остановке падкассетников. Следовательно сигнал "СТОП" всей цепочкой не формируется. Выход из ситуации - увеличение натяжения пассика или ослабление усилия подмотки-перемотки. Что не есть хорошо. Выставляю таймеры... Для автостопа думаю 1-й секунды в самый раз.
...11.01.13 Доделал мастера. Дал для теста плей + стоп в цикле. Ошибки четыре наковырял. При чём подчинённый ("коммутатор режимов" на tiny13a) оказался без ошибок. Но это результат прошлых софтовых наработок. Софтового же мастера, я делал впервые. До этого был аппаратный опыт. Добавлю картинок... Исполнил.
...10.01.13 Лопухнулся в копировании шаблона - забыл сменить тело с t2313 на t13. Соответственно 2KB и 1KB памяти программ. Отсюда 45,2%=90,4%. Главные непонятки ушли. Вроде как всё поместилось, с трудом - 98,4% (1011 строк). Отладка и тесты...
...добавочка. Прошёл отладку с проге. Решил отключение отдать главному МК. Пришлось править "коммутатор магнитов". Уложился в 98,4% памяти и 904 строки после чистки. Впереди прошивка 13-ой, после буду гонять КР по квадратной шине.
...09.01.13 Упёрся в потолок памяти. Глупая "AVR Studio" компилила hex, а отладка не шла. Была непонятная ругань (в 4-е одна, в 5-е другая). 5-я, падла, убила труд последних дней, по cancel-у удалила папку мимо корзины. На силу поднял (Restorer 2000 v.2.0). Бьюсь...
...08.01.13 Написал ещё один большой кусок. 45,2% памяти от 1KB памяти ATtiny13a, >900 строк с пробелами и комментариями.
...07.01.13 Написал большой кусок. С выключенным теликом двигается быстрее.
[свернуть]
Социальные закладки