Уф, с помощью Влада - затикали, но как быть с годом...
---------- Post added at 10:59 ---------- Previous post was at 10:58 ----------
Доделаем год и напишу простенькую оболочку для ввода времени.
Вид для печати
Уф, с помощью Влада - затикали, но как быть с годом...
---------- Post added at 10:59 ---------- Previous post was at 10:58 ----------
Доделаем год и напишу простенькую оболочку для ввода времени.
Error404, бинарник файла, 70 байт. Как выдрать текст из аласма - вопрос суровый :)
Проще дизасмить, тем более там пяток команд всего используется.
Снял скриншоты - на что сил хватило.
Вот здесь уже jik файл с ромом в конфигурационке.
Я что-то пропустил?
Ага!. Часы не тикающие.
И неработающие тесты.
Тесты запустились ("пробой" или окисление конденсатора у пина RST). Процессорный сброс сидел на земле. Ты не глицерин-гидразином платы паяешь?
Часы молчат. Менял кварц, менял PCF. Прозванивал цепи от часов до альтеры. Звонил на "сопли" и обрывы. Пока ничего не накопал. Питание микросхемы в порядке. Под конец уже заменил конденсатор на кварце на 6.8п. Не помогает. Я пока в растерянности...
Да, запись в память часов работает прекрасно. Но они стоят. Питание обнулял полностью (дабы сбросить нулевую ячейку).
В аласме команда волшебная есть eXport, это для тех кому файл из асм->txt
Для коррекции запускаем с метки CORКод:; I2C PCF8583 SetTime version 0.2 Written By MVV Rev.20110221
;Port #8C W/R
; bit7-0 = DATA
;Port #9C W
; bit1-0 = 00:IDLE; 01:START; 10:NSTART; 11:STOP
;Port #9C R
; bit1 = ERROR
; bit0 = BUSY
;BCD FORMAT
SECOND EQU #00 ;7-0=SECOND
MINUTES EQU #22 ;7-0=MINUTES
HOURS EQU %00010110 ;7=FORMAT; 6=FLAG; 5-0=HOURS
YEAR_DATE EQU %01100000 ;7-6=YEAR; 5-0=DAYS
WEEK_MONTH EQU %11100010 ;7-5=WEEKDAYS; 4-0=MONTHS
ORG 30000
DI
;---------------------------------------------------------------
; JP COR ; CORRECTION YEAR
;---------------------------------------------------------------
LD A,%11111101 ;START
OUT (#9C),A
LD A,%10100000 ;SLAVE ADDRESS W
OUT (#8C),A
CALL W1
LD A,%11111100 ;IDLE
OUT (#9C),A
LD A,#02 ;WORD ADDRESS
OUT (#8C),A
CALL W1
LD A,SECOND
OUT (#8C),A
CALL W1
LD A,MINUTES
OUT (#8C),A
CALL W1
LD A,HOURS
OUT (#8C),A
CALL W1
LD A,YEAR_DATE
OUT (#8C),A
CALL W1
LD A,%11111111 ;STOP
OUT (#9C),A
LD A,WEEK_MONTH
OUT (#8C),A
CALL W1
COR LD A,%11111101 ;START
OUT (#9C),A
LD A,%10100000 ;SLAVE ADDRESS W
OUT (#8C),A
CALL W1
LD A,%11111100 ;IDLE
OUT (#9C),A
LD A,#10 ;WORD ADDRESS
OUT (#8C),A
CALL W1
LD A,%11111111 ;STOP
OUT (#9C),A
LD A,#10 ;YEAR CORRECTION
OUT (#8C),A
CALL W1
RET
;WAIT ACKNOWLEDGEMENT
W1 IN A,(#9C)
RRCA
JR C,W1
RRCA
RET
---------- Post added at 22:25 ---------- Previous post was at 22:16 ----------
1) отключи питание платы
2) вынь батарейку
3) разряди кондер батарейки С29
4) подключи шлейф программера и т.д.
5) залей тест, RTC_INT# должно меняться с "0" на "1" с частотой 1Гц.
---------- Post added at 22:34 ---------- Previous post was at 22:25 ----------
Аккуратней с подключением к JP1 (Reset/GPI). И не спеши все распаивать...
Часы устанавливаются с ревизии 20110220
Доработал конфигурацию.
! исправлен скан матрицы клавиатуры
! коррекция дня недели
! правильное отображение года (в ячейке #10 PCF записывается поправка)
Проверить часы можно вольтметром, щуп на вывод 7, после сброса PCF, там частота 1Гц.
Не меняется.
Это чем обосновано?
---------- Post added at 08:58 ---------- Previous post was at 08:26 ----------
Нашел косяк. Непротрав между контактными площадками конденсатора у кварца. Причем не короткое, а имеет сопротивление. Прорезал скальпелем, часы пошли.
А как это объяснить? Если есть вторая PCF, подключи к ней кварц, кондер, питание и вольтметром проверь вывод 7. Если на нем нет изменений, тогда это не PCF8583.
---------- Post added at 08:04 ---------- Previous post was at 08:02 ----------
Так бы раньше, а то уже начали волноваться :)
Как с годом? Есть предложение при считывании в буте банально прибавлять 10 лет. В даташите вроде как значится что PCF работает с 4-х годичным циклом.
Уже так и сделал в ревизии 20110221.
---------- Post added at 08:31 ---------- Previous post was at 08:28 ----------
Обновить нужно этим
---------- Post added at 08:34 ---------- Previous post was at 08:31 ----------
Не совсем так, в ячейке #10 PCF записывается число (для года 2010-2013 это #10)
---------- Post added at 08:38 ---------- Previous post was at 08:34 ----------
Как быть если значения в виртуальном RTC изменились? Проверять CRC? и если не совпадает перезаписывать ячейки #11... PCF, ячейками #0E.. MC146818A?
Влад, я тут уже моск сломал пытаясь решить вопрос с конфликтом пина 11. Ты давал ссылку на иносранный форум с решением, я так понимаю что ответ здесь:
"one good solution is set PIN11 "I/O Maximum Toggle Rate" to "0" by Assignment Editor."
Но я не могу найти эту опцию пина. Уже всё перерыл, так и не нашел.
1) клик по Assignment Editor
2) двойной клик в поле Assignment Name (Location) в строке DCLK Location PIN_12 Yes
3) в открывшемся списке выбрать I/O Maximum Toggle Rate
---------- Post added at 11:27 ---------- Previous post was at 11:26 ----------
4) 0 MHz
---------- Post added at 11:38 ---------- Previous post was at 11:27 ----------
Прикручиваю текстовый режим 1024x768 @ 60Hz (матрица 128 x 48 символов, символ 8 х 16 точек, цвет символа x_x_pR_pG_pB_iR_iG_iB, где x_x - возможно будут еще 4-ре дополнительных знакогенератора; p - цвет бумаги; i - цвет чернил)
---------- Post added at 11:40 ---------- Previous post was at 11:38 ----------
6144 байт символов + 6144 байт атрибутов
---------- Post added at 11:44 ---------- Previous post was at 11:40 ----------
распределение: #4000 символ (0-255), #4001 атрибут (0-255) и так дальше...
---------- Post added at 11:46 ---------- Previous post was at 11:44 ----------
Размер знакогенератора 4096 байт
---------- Post added at 11:52 ---------- Previous post was at 11:46 ----------
Если будет желание сделаю загрузчик конфигурации, jic/sof -> M25
#10 надо заменить на #0E.
Так как 2011 год последний в четвётке и в часах он должен быть - 3, следующий будит 0 (2012), то есть для часов високосный. (и для нас тож)
---------- Post added at 19:21 ---------- Previous post was at 19:18 ----------
Ewgeny7, Зайди, плиз в аську.
Тема подчищена, как я и предупреждал.
Пост №666 остался за Блэк Кэтом, это символично.
Просьба всем остановить флудильню и концептуальню.
Соавторы будут делать то, что посчитают нужным.
Аминь.
За продолжение флуда дам по шапкам. Себе тоже :)
Спасибо Женя, что удалил оба мои предложения - по монолитной архитектуре и по текстовому разрешению 768х512! Удаляй и дальше всё, что тебе не нравится :) . Но есть более радикальный способ затыкать рот - удалить неугодного тебе юзера :) Удачи!
Ewgeny7, скидываю на ящик последнюю стабильную ревизию и вплотную берусь за FDС. По поводу текстового режима, из-за частотной зависимости PLL, частота 65МГц (1024х768 @ 60Гц) провинчиваться пока напряжно, мешает с2 56МГц. Пока без проблем удалось запустить (800х600 @ 60Гц) 40МГц. Оставлю для второй версии, чтоб был интерес :).
vlad, спасибо :)
По поводу 56Мгц (память сканера) - можешь изменить этот клок, главное чтобы он был кратен 14Мгц. Т.е. должно работать и на 70, и на 84Мгц.
Выложил новую конфигурацию Rev.20110225
vlad, диапазон значений фильтра в модуле клавиатуры какой? Я пока безуспешно пытаюсь заставить работу клавиатуры с твоим модулем.
---------- Post added at 14:17 ---------- Previous post was at 12:24 ----------
Не удается запустить клавиатуру. :(
Вставил свой модуль.
Привинтил ТВ-RGB выход, переключаю по кнопочке F7. Стало удобно работать, не нужно перетыкать шнур монитора то в ПЦ, то в u9 :) Завел сигналы на ТВ-тюнер и смотрю картинку в окне тюнера.
Не знаю, но по каким то неизвестным мне причинам у меня все работает :(
Попробуй увеличить/уменьшить в два раза значение clockFilter или ticksPerUsec. Светодиоды на клавиатуре хоть работают? Нужно знать причину отказа клавиатуры, я просто не уверен, что и твой модуль работает на других клавиатурах, согласен? Мышь работает?
Схемка сопряжения имеется? А то аналогичная ситуация с передергиванием шнура :)
Пробовал значения фильтра от 8 до 16. Неа :(
Конечно нет, клава ведь не коннектится.
Тут фишка в том, что головной модуль у меня используется фирменный, от Альтеры. Здесь статистика уже измеряется тысячами, куда его только не пихали :) Жалоб небыло.
Заработала после привинчивания моего модуля клавы.
Нормальную схему рассчитаю за выходные. Сейчас тупо три резистора на цвет (1к, 470е, 220е) и 13 вывод с синхросмесью. Картинка разумеется на 3+ :) Надо рассчитать резисторы с учетом имеющихся на плате и синхру подвести через транзисторный ключик.
Вот картинко с тюнера, чтоб было наглядно.
Интересует поведение вг при подачи (других комбинаций бит не входящих в таблицу) команд второго и третьего типа.
lisica, ты собираешься со всех ламерсих журналов схемки прикручивать? :) Подскажу где их много: http://zxdn.narod.ru/ ..могу представить какой в итоге будет глюкодром.. ;)
Самая корректная схема соунддрайва здесь: SoundDrive v.1.6 :)