Последняя редакция схем/плат версии 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В в любое удобное переходное отверстие.
Я уже отписался, но сегодня воскресенье буду ждать до завтра. Думаю поменяют, куда они денутся
Quote (Fox)
Я, конечно, мог бы и не собирать, но мне интересно собрать и настроить, потому, что есть такое понятие - хобби. И в конце концов он у меня заработает как осциллограф, а не полуфабрикат с 50Ом входного сопротивления и 2В максимального входного напряжения.
Ну вот значит моя так сказать задача выполнена я подвиг Вас на сборку и наладку, а также на сборку аналога. Доведете до "ума" поделитесь результатом, думаю многим пригодится, да и мне будет не безынтересно посмотреть и поверьте если Вы сделаете что то лучше я с этим тут же соглашусь и признаю свои ошибки
Quote (Муха)
Про аналоговую часть было оговорено сразу, что каждый собирает так как ему нравится, а управление будет через I2C.
Quote (Тридцатый)
Именно это я и имел ввиду, когда говорил про I2C. Но от меня это звучит как полная чушь, а от Вас как здравое рассуждение ! Говоря Вашим театральным жаргоном, не верю !!!
Не знаю что Вы имели виду, но написали Вы следующее:
Quote (Пробегающий мимо)
Опять врете. Вы даже не знаете для чего в протоколе используется бит ACK, иначе бы так не говорили !!! И дело совсем не в DS1085, там такой же протокол. Внимательнее читайте мануалы !!!
Quote (Тридцатый)
А добавление ЛЮБОЙ аналоговой части неизменно повлечет переделку цифровой !
Неправда, изменения могут быть только программными.
Quote (Тридцатый)
Абсолютно с Вами согласен !!! Потому и затронул тему доведения разработки до конца, а не распыляться на никому ненужные навороты.
Напомню как Вы ее затронули:
Quote (Пробегающий мимо)
В очередной раз нагло врете. Ни у одного человека данный прибор полностью не собран и не работает !!! А про работу отдельно цифровой части говорить не стоит, т.к. практической ценности она сама по себе не составляет да и не доведена до ума. А аналоговую часть Вы сами говорили, что не собирали, а все красивые осциллограммы фальсифицировали, взяв их из эмулятора !!!
Отличная помощь, ничего не скажешь... Просьба прекращайте флудить.
Ну вот значит моя так сказать задача выполнена я подвиг Вас на сборку и наладку, а также на сборку аналога. Доведете до "ума" поделитесь результатом, думаю многим пригодится, да и мне будет не безынтересно посмотреть
Я так понял не угодные автору посты удаляются. Повторю свой вопрос:- Вам не интересно довести до "ума" свой проект? Или позиция исключительно такая:- "кому что не нравится, сами сделайте лучше"?
Я Вам уже отвечал, естественно интересно, но во первых я могу это делать только когда мне позволяет свободное время и во вторых мне не интересно вместо конкретных предложений, указаний на ошибки и т. д. выслушивать ничем не подкрепленные обвинения во лжи и фальсификациях...
Если у Вас есть какие либо по существу замечания/предложения/доработки всегда рад их обсудить.
чтобы избежать зацикливания, нужно еще поставить счетчик ошибок и при превышении лимита взводить флаг ошибки и только потом передавать ошибку на хост.
Единственного чего не происходит это передачи на хост. Для таймаута выделен таймер,без этого при выборе неправильного адреса осцилл зацикливался бы вечно на передачи пакета. Прошу не только Вас больше не писать голословных обвинений во лжи, так как раньше Вы утверждали что я вообще понятия не имею про бит АСК... ---
Извините, что вмешиваюсь ! Посмотрел на досуге, Влад, Ваш код. А ведь действительно без COUNT_BYTE=0 не обойтись: пакет-то, в случае ошибки ACK, должен быть передан заново, т.е. с НАЧАЛА. Хотя Вам виднее.
COUNT_BYTE естественно сбрасывается. С I2C вообще не должно быть проблем, но как Вы писали глючок все же есть(хотя и не конкретизировали), так вот глючок может быть по разным причинам и пока симптомы мне не известны сказать ничего не могу.
Вообще раз пошло обсуждение тех. деталей, то лучше перейти на основную ветку, так как может кому нибуть пригодится, эту ветку скорее всего закрою и буду только скидывать флуд и т. п., если нужна ветка для свободного общения открою без проблем...
---
Нет войне!
Сообщение отредактировал LeftRadio - Среда, 24.11.2010, 21:21
Посмотрел, да действительно, сброс есть только по таймауту и по престарту передачи...
Code
//----------------------------------------------------------------------------- // SMBus Interrupt Service Routine (ISR) //----------------------------------------------------------------------------- // void SMBus_ISR (void) interrupt 7 { bit FAIL = 0; // Used by the ISR to flag failed
if (ARBLOST == 0) // Check for errors { // Normal operation switch (SMB0CN & 0xF0) // Status vector { // Master Transmitter/Receiver: START condition transmitted. case SMB_MTSTA:
SMB0DAT = (ADRESS << 1); // Load address of the target slave SMB0DAT &= 0xFE; // Clear the LSB of the address for the // R/W bit SMB0DAT |= R_W; // Load R/W bit
STA = 0; // Manually clear START bit
break;
// Master Transmitter: Data byte transmitted case SMB_MTDB:
В связи с удалением постов и репрессиями, пишу как пробегающий мимо !
Влад, можете ничего не исправлять в коде, если не хотите ! Но хотелось бы прояснить некоторые технические детали, которые, как Вы сказали выше, может кому нибуть пригодится. Я, как и разработчики фирмы Philips, считаю, что настоящий осциллограф должен надежно работать в условиях помех, будь-то работающий рядом сотовый телефон, система зажигания автомобиля или плохо работающая лампа дневного света и т.д. В приведенном коде в условиях помех зацикливания осцилла не происходит, но есть гораздо страшнее последствия. Если получен NACK после передачи REGISTER, то во вновь формируемом пакете, после START-условия, адрес устройства уже будет SMB_LSB, а в поле данных будет мусор. То же будет и при получении NACK после передачи второго байта, но адрес уже будет SMB_MSB+мусор. Сами понимаете к чему это может привести !!! Добавлении сброса COUNT_BYTE позволит правильно передать весь пакет сначала, но возникает опасность зацикливания. Тут, на мой взгляд, гибче использовать счетчит ошибок, но можно использовать и таймаут по таймеру, как у Вас сделано.
P.S. Ваше поведение по этому вопросу, как минимум, непрофессионально.
Надеюсь, что кто-нибудь успеет это прочитать, пока снесут, и подчерпнет для себя полезное, как делать НЕ НАДО.
Не знаю где какая собака зарыта я глючков не наблюдал...
Влад, неужели у Вас всегда четко происходит переключение разверток. У меня, например, не всегда. В меню развертка переключилась, а по факту осцилл. остается на предидущей.
Если получен NACK после передачи REGISTER, то во вновь формируемом пакете, после START-условия, адрес устройства уже будет SMB_LSB, а в поле данных будет мусор. То же будет и при получении NACK после передачи второго байта, но адрес уже будет SMB_MSB+мусор. Сами понимаете к чему это может привести !!!
Мда.. если получен NACK, то при повторном старте адрес останется на своем месте, так как переменная ADRESS не изменятся, другие данные конечно перепутаются, а вот с чего Вы взяли что вместо адреса загрузится SMB_LSB непонятно...
Quote (Пробегающий мимо)
Я, как и разработчики фирмы Philips, считаю, что настоящий осциллограф должен надежно работать в условиях помех, будь-то работающий рядом сотовый телефон, система зажигания автомобиля или плохо работающая лампа дневного света и т.д.
Сомневаюсь что разработчикам от Philips есть какое то дело до данного осцилла , а осциллограф и так достаточно устойчив к внешним помехам, если не верите проверте.
Quote (Fox)
Влад, неужели у Вас всегда четко происходит переключение разверток. У меня, например, не всегда. В меню развертка переключилась, а по факту осцилл. остается на предидущей.
Проверю еще раз, спасибо, но если и возникает какой то глюк, то не обязательно из-за неправильной организации передачи по I2C...
Мда.. если получен NACK, то при повторном старте адрес останется на своем месте, так как переменная ADRESS не изменятся, другие данные конечно перепутаются, а вот с чего Вы взяли что вместо адреса загрузится SMB_LSB непонятно...
Спасибо, что уточнили. И хотя я написал сумбурно(сильно отвлекали по работе), но про переменную ADRESS я не сказал ни слова. И речь совсем не про нее. Главное, что Вы меня поняли. Но, на всякий случай, привожу выдержку из доки на DS-ку: DAC WORD (Address 08h) OFFSET BYTE (Address 0Eh) MUX WORD (Address 02h) DIV WORD (N) (Address 01h) ADDR BYTE (Address 0Dh) RANGE REGISTER (Address 37h)
Дело в том, что у DS-ки адрес регистра и команда - это одно и то же. Но Вы, наверное, это знаете и просто прикалываетесь, задавая подобные вопросы.
Quote (LeftRadio)
Сомневаюсь что разработчикам от Philips есть какое то дело до данного осцилла
Не надо ерничать ! Вы прекрасно поняли, что разговор шел про помехоустойчивость шины I2C и рекомендациях разработчиков этого протокола(именно для повышения достоверности доставки данных был введен бит ACK). Если есть спецификации, то нужно им следовать !
Quote (LeftRadio)
осциллограф и так достаточно устойчив к внешним помехам, если не верите проверте.
Я уже говорил, что если бы не проверял, то и не было бы всего этого обсуждения.
Quote (LeftRadio)
Проверю еще раз, спасибо, но если и возникает какой то глюк, то не обязательно из-за неправильной организации передачи по I2C...
Вполне возможно, т.к. в прошивке есть еще, как минимум, две некритичные(?) ошибки.
Quote (LeftRadio)
Вот, добавил сброс COUNT_BYTE.
Влад, если откровенно, это стоило того, что произошло на форуме за последнее время ??? И продолжает происходить ! Как Вы думаете не отпугнет ли это в будущем других людей от сотрудничества ???
thirtieth, Ну что мне с вами делать , ладно не буду банить новый ник, отвечу.
Quote (Пробегающий мимо)
адрес устройства уже будет SMB_LSB
Quote (thirtieth)
но про переменную ADRESS я не сказал ни слова.
Именно переменная ADRESS задает адрес устройства к которому идет обращение.
Quote (thirtieth)
Я уже говорил, что если бы не проверял, то и не было бы всего этого обсуждения.
Факты в студию, я тоже проверял.
Quote (thirtieth)
Вполне возможно, т.к. в прошивке есть еще, как минимум, две некритичные(?) ошибки.
Какие, в сотый раз прошу конкретики?
Quote (thirtieth)
Влад, если откровенно, это стоило того, что произошло на форуме за последнее время ??? И продолжает происходить ! Как Вы думаете не отпугнет ли это в будущем других людей от сотрудничества ???
Вы ведь согласны, что вместо обвинений во лжи и фальсификациях, можно было начать с того что Вы нашли какие либо ошибки и конкретизировать их? Мне намного проще было бы их оперативно исправить чем вести с Вами долгие и нудные споры чтобы добраться до сути... Прошу еще раз, пожалуйста без оскорблений и обвинений, я никого сознательно не обманываю, я всего лишь человек и могу ошибаться и с этим никогда не спорил.... ---
Хотелось бы подчеркнуть, что как мы все видим многоуважаемый Fox не спешит делится результатом, видимо ему достаточно того что он себе сделал то что хотел и больше ничего не надо... Что кстати очень хорошо согласуется с Вашими высказываниями по поводу вылезания из нор и деланья для себя любимых, печально это...
Так как в той ветке, где Вы, Влад это написали отвечать не возможно, то отвечу здесь. Считаю, что делиться результатами с людьми можно тогда, когда эти результаты на 100 процентов проверены. Вот когда я все же у себя доделаю осциллограф с аналоговой частью версии 2.0, которую Вы даже удалили из архива, и у меня (а не у Lazi Cat) осциллограф адекватно заработает, тогда и выложу все результаты, фотки и скины. Вам почему-то не печально, что по факту анонсированый Вами проект, собраный по приведенной Вами схеме "как есть" адекватно сразу не заработает НИКОГДА, а потребует все же доделок и пересчета номиналов. А я считаю, что уж если человек решится повторить Ваше устройство, потратит на комплектующие 150 американских денег (именно столько получилось у меня без щупов и корпуса) то его мытарства в доводке до рабочего состояния должны быть сведены к минимуму. Не все желающие повторить Ваше устройство сильны в схемотехнике и программировании.
Считаю, что делиться результатами с людьми можно тогда, когда эти результаты на 100 процентов проверены. Вот когда я все же у себя доделаю осциллограф с аналоговой частью версии 2.0
Похвально, однако я и позиционировал свой осцилл как не законченный и приглашал всех кто пожелает поучаствовать в его доводке, сейчас он работает достаточно стабильно и цифра никакой наладки не требует кроме подстройки одного резистора RV1. К тому же все же предполагается что человек собирающий данный осциллограф имеет хотя бы начальные знания цифровой и аналоговой электроники и сможет понять что не нужно выпаивать МАХ9113 когда работает DS1085(это не к Вам, был просто тут подобный вопрос)
Quote (Fox)
собраный по приведенной Вами схеме "как есть" адекватно сразу не заработает НИКОГДА
Заработает, правда только та часть которая сейчас в архиве, почему и удалил аналог, ведь я сразу написал что не проверял аналог и не тестировал. ---
Берем и собираем ту цифровую часть, которая в архиве. Пусть даже мы везучие и DSка у нас проинициализировалась с первого раза (как правило с первого раза "заводится" если снять галочку autosave eeprom). Мало того сразу подстроечником добились противофазных сигналов на выходе МАХ9313. Закорачиваем входы и устанавливаем лучи в 0. "Раскорачиваем" входы и видим, что оба луча ушли от 0 почти на клетку. Естесственно, что без какой-либо аналоговой части эту "пляску" 0 мы и будем наблюдать и не "поборем" ее - собравшие цифровую часть могут проверить сами. Ну, и все же для того, чтобы поучаствовать в доводке осциллографа, его надо как минимум собрать, иначе только созерцая демо программу в доводке можно участвовать только теоретически. А всегда номиналы на просчитанной и реальной схеме будут отличаться.
Пусть даже мы везучие и DSка у нас проинициализировалась с первого раза (как правило с первого раза "заводится" если снять галочку autosave eeprom).
Во первых инициализация это программная часть, а во вторых у меня инициализируется с первого раза и только иногда проскакивали непонятные глюки причину которых я так и не смог найти...
Quote (Fox)
Мало того сразу подстроечником добились противофазных сигналов на выходе МАХ9313.
Ничего сложного здесь нет, я не думаю что запуск прибора так сложен из-за необходимости подкрутить один подстроечник...
Quote (Fox)
Закорачиваем входы и устанавливаем лучи в 0. "Раскорачиваем" входы и видим, что оба луча ушли от 0 почти на клетку. Естесственно, что без какой-либо аналоговой части эту "пляску" 0 мы и будем наблюдать и не "поборем" ее - собравшие цифровую часть могут проверить сами.
Как Вы и написали это естественно, я никогда не утверждал обратного, аналоговая часть необходима, но в тысячный раз повторятся не хочется.
Quote (Fox)
Ну, и все же для того, чтобы поучаствовать в доводке осциллографа, его надо как минимум собрать,
А как по другому Вы себе представляете совместную работу над доводкой прибора? ---
Обновил схему/плату ЖК на предмет замены стаб., теперь стоит стаб. в корпусе SOT89-3 типа MCP1703, я поставил себе стаб. в таком же корпусе и с такой же распиновкой, только неизвестного производителя выпаянный из компьютерного барахла. Стаб. естественно должен быть на 3.3В.
---
Нет войне!
Сообщение отредактировал LeftRadio - Воскресенье, 28.11.2010, 22:06
Если нет высокочастотного осцилла, то можно поставить самую медл. развертку в NS и смотреть хоть звуковой картой после МАХ9113, там должно быть около 6.25кГц.
Ничего не получилось. Решил посмотреть сигналы от процессора к DS, а на выводах пусто, только высокий уровень. Нигде никаких сигналов нет, только от U5 к процессору что-то проскакивает в момент нажатия на кнопку VERIFY и никаких движений. Думаю проц не прошил нормально. Как проверить можно прошит или нет?
Судя по скрину DS прошилась правильно и только бит авто записи не прошел проверки, уберите галку с auto write to EEPROM и попробуйте еще раз. Кстати а в полях MUX, DAC и т. д. остаются нули, после конфигурации, или нет?
При прошивке МК программа должна была сама проверить правильность прошивки.
LeftRadio : Если нет высокочастотного осцилла, то можно поставить самую медл. развертку в NS и смотреть хоть звуковой картой после МАХ9113, там должно быть около 6.25кГц. Здравствуйте LeftRadio! измерил после МАХ9113, частота примерно 500 Гц
Это очень мало... Из-за такой низкой частоты такта АЦП и глючит, попробуйте измерте при разных развертках, результаты выложите. Если рез. будут не такими как надо и при этом DS правильно сконфигурирована(Load&Verify OK), тогда да c DS что то не так. ---
Это очень мало... Из-за такой низкой частоты такта АЦП и глючит, попробуйте измерте при разных развертках, результаты выложите. Если рез. будут не такими как надо и при этом DS правильно сконфигурирована(Load&Verify OK), тогда да c DS что то не так.
DS всегда ругается, не разу не дал Load&Verify OK результат
DS всегда ругается, не разу не дал Load&Verify OK результат
По умолчанию у DS1085 I2C адрес равен 88, однако попадаются исключения, попробуйте по другим адресам провести конфигурацию в диапазоне 88-95.
Quote (Alex73)
Сбрасывал, но ошибка все равно вылазит. Может какие параметры поменять?
Попробуйте сконфигурировать на другой оффсет, например OS+1 и выставить 50МГц. Адрес у Вас судя из скриншота правильный так как данные с ДС программа считывает, но данные не правильны. ---