Последняя редакция схем/плат версии 2.0 - NS_V2_0_rev3_7
Прошивка для 2.0 - NS_V2_0_rev1_7E_Firmware Вкл./Отк. каналов А/В происходит по нажатию соотв. кнопок когда ни одно меню не выбрано, при выборе меню Sync эти кнопки перекл. источник синхронизации.
Для конфигурации DS1085 прошить соответствующей прошивкой МК, передернуть питание, подождать некоторое время пока на экране ЖК не выведется надпись об успешном завершении и выключить осцилл. Адрес DS1085 устанавливается равным 0x59 (89 по десятичной системе).
Данная прошивка просто делает автоматом то что можно сделать вручную из программы на ПК и если настраивать вручную из программы то она не нужна.
Внимание! При конфигурации к I2C не должно быть подключено ничего кроме DS1085.
Схема ревизия 3.2 - NS_3.0_rev_3.2.pdf Схема соединения ЖК с 16-ти битной шиной(только для ревизий ниже 3.2, в 3.2 HC573 уже есть на основной плате) - NS_3.0_HC573.pdf BOM(список компонентов) - BOM_NS3_rev3_2.htm
//---------------------------------------------------------------------------------------------------------- Прошивальщик МК (автор Ильдар) - NSFlashLoader2. Утилита для перепрошивки СР2102 VID/PID под NeilScope3 (автор Ильдар) - NSCP2102Utilite2.rar. Использование данных VID/PID для перепрошивки СР2102 под другие устройства категорически запрещено, они были получены по запросу у Silicon Laboratories Inc. и предназначены для использования только с NeilScope3 или другими версиями NeilScope.
Утилита для теста осциллографа - ns_test_util. Для запуска нужно скачать и установить Python 3.4 и PyQt5, при установке добавляем переменные окружения. Распаковать архив куда нибудь и набрать из этой папки в консоли - "python main.py"
Для последующих обновлений просто запускаем NSFlashLoader, и обновляемся. Джампер при этом трогать уже не нужно.
//---------------------------------------------------------------------------------------------------------- . . . Важные замечания по сборке
На плате не указана перемычка с 10-го вывода(INTRL) 74НС4052(U15) на вывод SWDIO МК, можно и просто подпаять пока на +3.3В в любое удобное переходное отверстие.
Я понимаю что интересно, а стоит-ли это того, ведь выходит что в этом приборе он вряд ли нужен. В NS-3 он ещё подходил, а здесь в улучшенном варианте сомнительно, тем более со смещением, а для меня, с моими знаниями в программировании (точнее незнаниями) тем более, где то ещё бесспорно. Да на ней, так ведь я и пишу что ничего по управляющим шинам не происходит ни чего По поводу EEPROM, ошибся.
В NS-3 он ещё подходил, а здесь в улучшенном варианте сомнительно
Алгоритм вывода текста может быть в двух вариантах - выводить каждую точку с указанием её координаты, как сейчас для вывода текста с прозрачным фоном, и указать облать вывода для всего символа и просто выводить точки последовательно. Так вот второй способ с Вашим экраном работает не корректно. Но можно использовать только первый способ, хотя для ИЛИ9481 он очень не оптимальный из-за отсутствия отдельной команды для позиционироания точки. Я вчера оптимизировал алгоритм вывода символа для прозрачного фона, но всё равно он не такой оптимальный, как хотелось бы. Но наши экраны имеют ещё и дополнительные проблемы, а их решать на много сложнее. Тем более мне это реально не нужно, так как в приборе уже используется другой экран.
Цитатаhohlovalehan ()
тем более со смещением
Я думаю, что если экран перевернуть, то смещение пропадёт. При текущем расположении экрана нулевая точка попадает на обрезанную часть экрана, а после разворота получится в нужном месте в видимой области.
Так что? Вы тоже считаете что в данном приборе можно забить на этот экран и не мучиться с ним, а заняться более нужными делами? Согласен. А вот по поводу переворота, а как это сделать? для меня это пока не ясно, только начал разбираться. И если есть возможность, подскажите, что лучше почитать по данной тематике, по вашему мнению?
Добавлено (19.10.2018, 10:22) --------------------------------------------- PS. и если есть возможность подскажите как сделать инверсию цвета?
Если самому крутить экран, то параметр LANDSCAPE_L закоментироать в defines.h. Инверсия - в файле LCD.c в блоке инициализвции для ILI9481 найти две строчки про инверсию и нужную раскоментировать, не нужную закоментировать.
Цитатаhohlovalehan ()
Вы тоже считаете что в данном приборе можно забить на этот экран и не мучиться с ним, а заняться более нужными делами?
В своём я с цветопередачей не разобрался. С Вашим по интернету скорее всего тоже не разберусь. А так, если забить на плавность цветовых переходов и получить не обрезанную картинку, то пользоваться можно будет. Но если будет нормальный экран с родным разрешением, то лучше его и использовать , а этот потом пристроить для другой задачи.
Спасибо за подсказки. А как на счёт литературы, в инете ничего подходящего не нашёл.
Добавлено (19.10.2018, 18:57) --------------------------------------------- serj_k4852 Вы давали прошивку без инициализации ПЛИС, а можно ли её исходник? Всё таки хочется поковыряться в программе и посмотреть где, что , меняет, а именно в ней уже есть рабочее окно.
Вот последняя версия исходников. Последние изменения фактически только в выводе текста с прозрачным фоном. Чтобы обойти проверку ПЛИС на старте я просто комментировал строчку EPM570_Init(); в init.c в External_Peripheral_Init(void). Так как на Вашем экране вывод простого текста происходит с искажением, рекомендую в процедурах начального тестирования железа в строчках, где вызывается LCD_PutColorStrig или LCD_PutStrig третий параметр с 0 заменить на 1. Будет вывод текста с прозрачным фоном, а он на Вашем экране выводится нормально. Так как фон при старте чёрный, то разницы не будет. Ну и в defines.h нужное повыбираете. По литературе не подскажу. Когда я начинал осваивать С, то делал это по бумажным книгам. В принципе из книг можно для начала основы языка почитать, а дальше по реальным примерам лучше разбираться. Разберитесь с вариантами адресации и формой их записи, я по началу путался.
В пошаговой отладке программа крутится в цикле (показано на картинке) и из него не выходит. Почему так происходит? Неисправна SRAM? Это подпрограмма записи в память, а не чтения. Здесь анализируется только факт завершения цикла записи. А он завершится, если генератор будет работать И сработает триггер. Выделенная на картинке проверка как раз это и проверяет. Возможно, что-то из этого не произошло. Если не работает генератор, то можно поставить для проверки не на 100МГц, а меньше, просто будет время/деление другое. Чтение из регистров ПЛИС и памяти происходит по тактам от контроллера, а не от генератора, поэтому тест чтения регистров прошёл.
Спасибо большое за помощь. Действительно генератор 100 МГц был неисправен. Китайские запчасти, это кот в мешке, шлют много брака. Теперь займусь сборкой аналоговой части.
Добавлено (20.10.2018, 10:57) --------------------------------------------- Вот кстати 100% рабочий экран с этим осциллографом. https://item.taobao.com/item.ht....#detail
serj_k4852 несколько вопросов по вашей схеме: 1.Я так и не понял замена FM24CL64 на 24CL64E возможна без вмешательства в прошивку? А то уже запаял последнюю и вот думаю а не поторопился ли я. 2.Если в вашей схеме задрать напряжение питания до 3 или 3.3 вольт это кроме как на электро потребление повлияет на что то еще? Просто на случай если какая либо из микросхем не будет нормально функционировать от 2.7 (в голову пришло только то что смещение второго оу может маленько сдвинутся так как амплитуда импульсов шим увеличиться но думаю там не сильно критично) 3.Не пойму роль диода D22 он для чего? впаял вместо него 1n4148. преобразователь для питания аналога запустился, напруги есть, нагрузку держат но вот не уверен с эти диодом, 4148 слабее все же. D2 думаю замена не критична там чисто для развязки схемы включения. 4.Не подскажите как отличить феритовые бусины от индуктивности? Просто почитал про них пишут как резистор только черный без маркировки, на мамках от ноутов и еще на каких то платах искал, ну много таких похожих элементов но искал именно по обозначению на плате и в основном обозначены как L, попадались редко LA, LB. Это все не то? должно быть "B" написано?
1. Прошивку нужно пересобрать с параметром EEPROM_NO_FRAM. А в чём проблема? Будет нужно - пересоберу. 2. Поднять конечно можно, но неверное не более 3В, так как питание аналогового тракта выполнено на повышающем преобразователе и как он будет работать при малой разнице между входным и выходным напряжением при имеющемся малом токе потребления я не знаю. Сам преобразователь на малых токах нагрузки работает не очень хорошо, переходит с ШИМ на ЧИМ, а там помехи сильно увеличиваются и может возникнуть перекос положительного и отрицательного напряжений. 3. D22 нужен только для уверенного запуска преобразователя, так как в типовой схеме его включения напряжение ОС через резисторы и дроссель подано всегда, а в моей схеме стоит разделительный конденсатор. 4. От катушек они точно отличаются визуально, выглядят как конденсаторы., по омическому сопротивлению почти 0 Ом. Как их на платах кто-то другой маркирует мне без разницы. У себя обозвал В, чтобы от катушек отличить. Я практически уже закончил статью по прибору, но нужно ещё её дополнить. Скоро будет. В ней в том числе как раз про повышающий преобразователь и написано было.
Вчера и сегодня занялся оптимизацией в функциях вывода на экран с целью повышения скорости вывода. Не знаю, на сколько в процентах будет быстрее, но быстрее будет точно.
serj_k4852 Решил попробовать сместить картинку немного вверх и ни чего не получается, дело в том что при перевороте окно снова начинается с 1 го пикселя. При попытке сместить, картинка просто в зеркалке. Если не трудно подскажите где копать?
Если смотреть фотку с предыдущей старницы, то там нет строки с нижним меню, а сверху точек остаётся меньше, чем 320-240, на глаз примерно разрешение экрана примерно 280 точек. Из этого я предполагал, что физически экран имеет меньше 320 точек. При таком раскладе, если начальная точка в нижнем левом углу попадает в отрезанную часть экрана, то при перевороте картинки она должна попасть в видимую часть. Для переворота нужно только закоментировать LANDSCAPE_L. Если это не помогает, то я не знаю что делать с таким экраном. Чтобы вывести на него всю картинку нужно перелопатить всю прошивку, так как гафика интерфейса привязана к нулевым координатам. Я этим точно не буду заниматься. Проще дождаться нормальный экран, без проблем с отображением.
Сообщение отредактировал serj_k4852 - Понедельник, 22.10.2018, 16:25
Я вообще-то так и предполагал, но думал что вдруг что-то может можно сделать, ну коли так, то пёс с ним, хоть потренируюсь. А так буду ждать нормальный дисплей.
serj_k4852 спасибо за ответы. С нетерпением жду статью очень интересно будет почитать. По поводу прошивки, я так понимаю будет ещё финальная версия и если не затруднит можно было бы ее сделать с версией под 24lc64, думаю не только мне бы она пригодилась.
По поводу прошивки, я так понимаю будет ещё финальная версия и если не затруднит можно было бы ее сделать с версией под 24lc64, думаю не только мне бы она пригодилась.
Ну, последняя или нет - не скажу. Если будут находиться косяки, то нужно будет исправлять. Вот прямо в выходные один нашёл - Вольты/деление менялись в противоположную сторону - исправил. А по функционалу в принципе уже нечего делать. С учётом наличия разных экранов с разной шиной, разной ориентацией и может разным использованием портов контроллера, разным типом памяти, количество возможных прошивок ну очень большое. Заколупаюсь собирать все варианты. Раз-другой то можно, но лучше поставить себе Кокос и компилятор и просто пересобрать под свои нужды. Здесь даже умение программирования не нужно, просто нужные строки раскоментировать /закоментировать. Статью закончу скорее всего на этих выходных, выложу на Радиокоте.
serj_k4852 Добрый день. Разбирался с перезапуском контролера и столкнулся с таким эффектом, комментирую одну строку и всё запускается и кварц тоже, но..... через пару секунд прибор выключается. Что не так?
serj_k4852 приветствую. Поставил кокос и компилятор, взял ваш последний исходник который выкладывали скомпилировал все получилось, перевернул экран, обошол проверку Плис, все ок заодно и энкодеры хоть проверит смог тоже все ок. Но вот что делать с EEPROM_NO_FRAM так и не понял, можно хоть в двух словах? И в догонку вопрос а если на другую частоту кварц поставить это весь исходник придется перелопатить или это не сложно и где то в одном месте правится?
Попробую я за него ответить. В исходниках в папке eeprom. файл eeprom_WR_RD есть строка (см фото вверху страницы), закоментируйте её и ещё одну ниже. Попробуйте.
Был в командировке. Выкладываю последнюю на данный момент версию исходников с исправлением обработки энкодеров в V/Div и добавлением EEPROM_NO_FRAM в defines.h. Поэтому EEPROM_NO_FRAM можно просто раскоментировать и пересобрать прошивку. Можно было и#ifdef и #endif убрать, но это не универсальный вариант.
Цитатаmax64 ()
И в догонку вопрос а если на другую частоту кварц поставить это весь исходник придется перелопатить или это не сложно и где то в одном месте правится?
Как минимум нужно будет поменять текст для всех значений T/Div пропорционально уменьшению частоты. Это если не трогать измерительную часть, где частота и длительности вычисляются. Сейчас по памяти больше не скажу, а глубоко копать пока нет времени. hohlovalehan, не знаю, какие у Вас исходники, но в моих сейчас и уже давно
Код
PLD_CTRL_GPIO->FIOCLR = PLD_WR | PLD_RD | PLD_RS;
. Если убирание символа "|" перед "=" помогает, то в этом дело. Но и строка
Код
regInit = EPM570_Registers_Init();
должна быть раскоментирована. В процедуре EPM570_Registers_Init() проверяются 2 регистра после их записи и если происходит ошибка, то прибор выдаёт соответствующее текстовое сообщение и начинает мигать и пищать, но выключаться НЕ ДОЛЖЕН. Может происходит просадка питания? Тогда в ExHardware_Init_ERROR(); можно закоментировать строчки внутри цикла и посмотреть, что будет. Если бузер не работает, может там КЗ, так как подсветка работает? На сегодня у меня всё, нужно кое-какую работу сделать.
hohlovalehan пробовал комментировать их не помогло. serj_k4852 прошил вашу последнюю прошивку ну во первых об энкодерах, на предыдущей все работали и ни чего не зависало ну до момента когда эпром ошибку выдаст и V/Div менялось нормально ( я кстати не понял в чем был глюк ) а вот на последней развертка меню работают но стоит только крутнуть V/Div как прибор намертво виснет. По поводу епром фрам, комментировал и раскоментировал эту строку все равно эпром не работает, правда есть изменения на предыдущей прошивке при загрузке снизу пишет param000 failed, erased и так до 037 по-моему последний был, все красное было и мог глазом уловить, а сейчас только вот 000 красный а остальные до 37 быстро промелькивают и зелёные я так понимаю это мк из эпром пытается прочитать и должны быть все зелёным.
serj_k4852 такая вот проблема с записью в FRAM, при включении работает таймер автовыключения 1 min, отключаю его и записываю в память, выключаю и снова включаю, таймер на месте т.е. он не записывается, все остальные настройки работают нормально, искал в исходниках где это и не нашёл.
У меня сегодня завал, поэтому отвечу только по энкодерам - раньше при вращении V/div по часовой стрелке увеличивались сами В/дел, а чувствительность соответственно уменьшалась. Это наоборот относительно обычных осциллографов. Это я и поменял. Больше в энкодерной части ничего не трогал. Причём это не к энкодерам непосредственно относится, а к их обработке. Поменял местами инкремент и декремент. Бывает, что сам энкодер "залипает", тогда остальные тоже не работают. Тогда нужно покрутить его, чтобы стал в нормальное положение на трещотке.
Добавлено (26.10.2018, 19:03) --------------------------------------------- Все функции по работе с параметрами во внешней памяти находятся в файле Settings.c, расположение самих параметров описано в файле SettingsParams.h.
Цитатаmax64 ()
По поводу епром фрам, комментировал и раскоментировал эту строку все равно эпром не работает, правда есть изменения на предыдущей прошивке при загрузке снизу пишет param000 failed, erased и так до 037 по-моему последний был, все красное было и мог глазом уловить, а сейчас только вот 000 красный а остальные до 37 быстро промелькивают и зелёные я так понимаю это мк из эпром пытается прочитать и должны быть все зелёным.
При чтении корректных значений текст должен быть зелёным. Если он красный с ошибкой, то или записалось не правильно или прочиталось не правильно. У меня ЕЕПРОМ на 3В нету для проверки. В принципе по логике работы проблем не должно быть - после каждого записанного байта данных пауза на 10мс. Так и в авторской версии. Фактически это единственное отличие от ФРАМ, протокол обмена одинаковый. Нулевой параметр в памяти это значения коррекции нуля для всех пределов канала А. По идее можно попробовать провести процедуру автокоррекции для сохранения реальных значений и посмотреть, что будет. Если не поможет, то попробовать в файле SettingsParams.h поменять начальный адрес (0х00) для этих значений на значение больше 0х81. Так же можно попробовать увеличить паузу, например в 2 раза и посмотреть на результат. Может есть битые ячейки. В принципе если нет ошибок по I2C шине с сообщением из группы I2C BUS Error:, то сам обмен с микросхемой проходит нормально.
Цитатаhohlovalehan ()
такая вот проблема с записью в FRAM, при включении работает таймер автовыключения 1 min, отключаю его и записываю в память, выключаю и снова включаю, таймер на месте т.е. он не записывается, все остальные настройки работают нормально, искал в исходниках где это и не нашёл.
Аналогично, если битая ячейка - попробовать поменять адрес для Param_AutoOff_Timer на больший, чем 0х81. У меня всё сохраняется нормально и при выключении и принудительно через меню.
Сообщение отредактировал serj_k4852 - Пятница, 26.10.2018, 19:05
Поймал таки глюк на энкодерах V/Div, исправил. Надо было не инкремент/декремент местами менять, а привязку к направлению вращения. Так же увидел, что можно ещё улучшить - при использовании щупов с делителем на 10 отображать правильную чувствительность в 10 раз меньше. Это сделаю позже, главное не забыть.
serj_k4852 подскажите пожалуйста после включения осциллографа происходит небольшой нагрев АЦП, AD8129, контроллера LPC1758 до 29 градусов, это нормально? Остальные элементы схемы холодные. И еще вопрос можно-ли в обвязке энкодеров поставить конденсаторы 10nf вместо 1nf?
У меня АЦП не греется, но он у меня "белый" из старых запасов, контроллер греется совсем чуть-чуть. Именно из за достаточно большого тока потребления и нагрева контроллера я и решил снизить напряжение питания цифровой части. Если напряжение питания больше 2.7В, то это может и есть причина. Конденсаторы можно попробовать 10нФ, просто крутить энкодеры нужно будет не быстро.
hohlovalehan а у вас eeprom или fram? serj_k4852 Ну вот с последней прошивкой энкодеры нормально работают ни чего не виснет. Правда направление вращения не привычное стало но это дело привычки. А вот с eeprom так и не вяжется у меня. Видать в прошлый раз пока в исходнике ковырялся ну или я не знаю как так вышло но эпром один раз записалась после чего при загрузке стало почти все загружаемые параметры зеленые но после загрузки прибора при обращении к эпром вылазила ошибка I2C BUS Error: slaw+nack. Решил заменить микросхему на всякий случай. Снял старую ради интереса включил при загрузке медленно перебирает с 000 по 037 все красные. Запаял новую перебирает их быстрее но все ровно все красные. Уже двухканальным осцилом встал на scl и sda так и не понял где пауза должна быть. Ну да ладно еще помучаюсь если не получится буду заказывать framm.
Добавлено (28.10.2018, 00:55) --------------------------------------------- Вот осциллограмма в момент сохранения в эпром после чего ошибка. scl жёлтый sda синий, не знаю скажет она о чем то.
Он не в папке, он в файле SettingsParams.h, это если его расположение в памяти поправить. Если просто, то открыть файл Settings.c, вверху будет #include "SettingsParams.h". Нажать Ctrl и клацнуть по нему мышкой - откроется в другой вкладке.
Цитатаmax64 ()
Правда направление вращения не привычное стало но это дело привычки.
Оно стало правильным - при вращении по часовой стрелке увеличивается чувствительность.
Цитатаmax64 ()
Запаял новую перебирает их быстрее но все ровно все красные.
На новой так по идее и должно быть, так как сами параметры левые. Можно попробовать пропустить загрузку параметров, нажав на Меню, а потом после загрузки сохранить. Ошибка I2C BUS Error: slaw+nack говорит о том, что после передачи адреса самой микросхемы для последующей записи микросхема не подтвердила его приём. После этого в неё в принципе ничего не записывается, то есть до программной задержки дело не доходит. Начальный адрес выбирается тремя адресными ножками микросхемы, в данной схеме они должны быт на земле, адрес должен быть 0xA0. Может включена защита от записи? Проверьте 7 ножку, на сколько помню по доке она должна быть или не подключена или на земле. У меня она не подключена, может её принудительно посадить на землю? По осциллограмме вроде всё нормально, короткие пики на линии данных на фронты строба не попадают и не влияют.
Сообщение отредактировал serj_k4852 - Воскресенье, 28.10.2018, 08:52
Если что, можно попробовать работать от встроенного генератора на 4МГц, но его стабильность и точность естественно хуже. Это МОЖЕТ повлиять при работе с ПК, но не должно сказываться при автономной работе. Если интересно - сделаю такую возможность. Лично я поставил кварц, так как он у меня был.
serj_k4852 из того что Вы посоветовали, сделал, но хватает на несколько включений выключений и я решил её просто заменить на другую, пока работает, а там видно будет, может быть поменяю на EEPROM.