Перейти к содержанию
    

LexsLavrov

Участник
  • Постов

    39
  • Зарегистрирован

  • Посещение

Весь контент LexsLavrov


  1. В меге можно сделать любой режим SPI. Я на этом не зацикливался - сразу поставил тот, что указан в описании W5100 - поэтому не помню какой :) О! Нарыл дома! ;### CONFIGURE SPI ############################################# sbi PORTB,4 ;set SS sbi SPCR,SPE ;enable SPI cbi SPCR,DORD ;MSB transmitted first sbi SPCR,MSTR ;set SPI master mode cbi SPCR,CPOL ;set SPI mode0 cbi SPCR,CPHA ;set SPI mode0 sbi SPCR,SPR1 ;| cbi SPCR,SPR0 ;| cbi SPSR,SPI2X ;|set SPI clock 1/64 Вот как сразу поставил этот режим - ни разу больше к этому месту кода не возвращался.
  2. Очевидно подключение осцилла делает ногу MISO не болтающейся в воздухе, а все-таки с какой-то емкостью на землю. Нога меги MISO сконфигурирована как вход? а, вижу... Ну мож пулап такой-нить присандалить, или пуллдаун. Хотя у меня все работало четко без пуллов.
  3. Нашел на флешке более-менее годные бэкапы одного проекта с W5100. Вот так должна выглядеть схема http://yadi.sk/d/NlbnEe8i8rnh8. Обратите внимание на разъемы Х2 и Х3 - это как раз к ним и подключается модуль с W5100. Этот проект еще под WIZ811MJ. Теперь я уже сделал собственный такой же - мне просто возможно понадобится принудительно работать на 10 Mbit. У вас 4 и 7 ноги на разъеме Х3, который стыкуется с J2 на WIZ811MJ - неправильно: 4 надо повесить на PB2 т.е. SS, и соединить с 7. Кстати параллельно с W5100 на SPI ничего не висит часом? У меня не висит, но я читал что там не все по стандарту.
  4. Ну вобщем можно... У меня вообще проект под мега16, но вроде бы она от мега8 не особенно отличается...
  5. Если бы я еще знал что такое ИАР... :) Проект написан на avr assembler. В понедельник могу дать т.к. оно на работе лежит. А насчет "то есть пинг, то нет" - это либо не проблема меги а именно W5100 дурит сама, либо мега что-то не то (или не тогда когда надо) делает с W5100. Ну например где-то какая-то ошибка в коде заставляет мегу сбрасываться и постоянно сбрасывать и загружать W5100. Пока W5100 сбрасывается и загружается - она ессно не пингуется, а потом пингуется и т.д. по кольцу. Обычно такие вещи случаются когда где-нибудь стоит reti, на который код попадает не через call/rcall.
  6. 1) Седал плату на базе ATmega16 для работы с w5100, использовал заводской модуль wiz811mj Rev1.0. Написал прошивку (асм) - все работает: пинги, UDP, никаких претензий. 2) На плате ATmega16 разъемы для подключения wiz811mj поставил шире, развел и изготовил (изготовление заводское, с маской и шелкографией) собственный модуль типа wiz811mj, но только со светодиодами Tx, Rx, Col, Spd. Схема - все содрано с wiz811mj практически полностью. Схема изменена только в том смысле что предполагается работа только с SPI - адресные ноги на землю все, ноги данных и RD, WR - болтаются в воздухе. А вот тут начались чудеса... Когда втыкаю свой модуль - загорается FDX, Link моргает, причем когда Link гаснет - Rx - загорается. Spd горит непрерывно. Из чего делаю вывод - W5100 проинициализировалась и какие-то данные в ее регистры записались. Если просто подать питание на модуль, но не грузить ничего в нее - молчит, не мигает. НО передача данных и пинг НЕ РАБОТАЮТ! Сколхозил переходник и воткнул wiz811mj в свою плату с широко стоящими разъемами - ВСЕ РАБОТАЕТ. Значит дело не в управляющей плате и не в коде! Собрал еще три платы своих модулей, все одинаковое. И не работают они тоже одинаково - дело не в сборке. Воткнул осциллограф - все нормально, за исключением того что на MISO такой сигнал как будто он болтается в воздухе - очень зашумлен, но в целом повторяет MOSI. Звонил - все звонится от ноги контроллера до ноги W5100, щупом касаюсь непосредственно самого вывода W5100. W5100 греется, но вроде не больше обычного. Даже навесил сверху на проводах инвертор как на схеме wiz811mj - все то же. MAG JACK - LU1T516-43LF вроде бы полный аналог того что на wiz811mj - RDA-125BAG1A. Электролиты танталовые 3.3 и 10 мкФ. Индуктивности 1 мкГн. Между аналоговой и цифровой землями - бусина ферритовая. Кварц 25 МГц, при нем кондеры 13 пФ, 1 МОм - все как по схеме wiz811mj. Куда копать - ума не приложу! Еще важная информация: ATmega питается от 5В, W5100 от преобразователя из 5В в 3.3В. Каких-либо согласующих элементов по сигналам SPI нет. Тем временем градус неадэквата растет - если закоротить между собой MOSI и MISO и проинициализировать W5100 то начинают идти пинги. Т.е. MAG JACK работает исправно. При этом моргают Tx и Rx. Т.е. Вроде все работает в W5100, но на SPI все равно каша. Вобщем последний эксперимнт как раз и натолкнул меня на верную мысль - я перепутал при разводке MISO и MOSI! Перепаял их обратно - все заработало, пинги идут с самого начала, UDP на 100 Мбит бегает без проблем! Даже как-то чувствую что зря тему писал :)
  7. Ну вобщем она и от 3.3 светится приемлемо, но можно и от 5, или DC/DC конвертер 3.3 -> 5, если тока не жалко :) Хотя я у себя дома принципиально оставлю на 5В - посмотрю сколько проживет :) Хотя что-то мне кажется что проживет он столько, что я уж и забуду куда писать сколько прожил :)
  8. Проще будет запитать все от 3.3В - контроллеру и дисплею все равно что 5 что 3.3, только подсветка слабее.
  9. Тогда циферки будут вверху :) Но так или иначе - если циферки будут, и под них будет отводится строка - они точно будут мешать. см. http://electronix.ru/forum/index.php?showt...st&p=958889 Хотя такие моменты бывают редко, и ненадолго. Для их преодоления приедтся в последний раз напрячься и дописать чтобы при выходе графика за экран просто ничего не рисовалось, или какое-нибудь специальное обозначение. Правда ничего кроме линии в два пиксела по краю экрана я предложить не могу... Можно конечно на время перебора сдвигать весь экран вверх или вниз, но тогда решение с линией нормального давления (1013) на наклейке - работать не будет. Да, кстати новый дисплей - больше, пиксель квадратный, подсветка ярче, и не свистит генератор для электролюминесцентной подсветки. И еще одно - начиналось-то все с вопроса про 3.3 Вольта, а я что-то вот только сейчас обратил внимание что датчик у меня нагло запитан от 5 Вольт :) И ничего ему не делается. Даже не греется - пробовал от 3.3В (т.к. все остальное прекрасно работает и на 3.3В) - температура та же, давление то же. Оно конечно понятно, что не хорошо делать против того что в инструкции написано, но, видимо, иногда все же можно, если осторожно ;) А ничё... Зима будет. Эт я вам обещаю! :)
  10. Ну вот и дождался давления ниже шкалы :) Вообще ниже еще ничего - график уходит на цифры и они его переписывают - выхода за пределы экрана нет. Заодно еще сделал наклейку на дисплей с метками времени и нормального давления.
  11. Ой-Ой! :) Если у вас барометр с таким шумом - выкиньте его нафик!
  12. Да чего там? В нынешний-то век компьютеров и кварцевых резонаторов... BMP бошевский стоит недорого, контроллер подойдет любой копеечный. Та же mega16 по-моему вообще даже не 100р. стоит, а меньше. Плюс max232. Деталек там ... ну штук 10-15 - можно спаять на самопальной платке, или на слепыше. А дальше - берете комп, пишете программульку на чем умеете чтобы данные с датчика раз в сколько-то нибудь минут в файлик складывал... Ну и оставляете это на сколько надо времени :). А потом обрабатываете данные.
  13. Никто и не утверждал обратного. Я привел цитату - в ней довольно понятно объясняется почему период 27,5 суток. Или торсионщики в эксцентриситет орбиты не верят? ;) Шум шумом... Кварцевые резонаторы - это все тоже очень хорошо и забавно, на них тамагочики работают... Но чёто я не замечал чтобы на новую луну тамагочики чаще срали... И не читал об этом... Также для меня является бооооольшой загадкой как связаны кварцевые резонаторы, торсионщики, то что они говорят и атмосферное давление. Особенно если учесть что торсионщики обычно всякий бред несут ;) Ну 30 лет - это вы загнули... Я там выше ссылочку кинул - нам с 1999 т.е. 12 лет считай в кармане. Остается 18 лет - ИМХО пустячок. Вам только надо раздобыть православный ртутный барометр, шоб без кварца. Ато на кварц луна влияет - нехорошо. Еще понядобятся карандаши и бумага... а лучше - гвоздик и восковые доски... Ато компьютеры - это не православно... они из одних можно сказать кварцев и состоят! (Это я вам как кандидат наук говорю!) Так что Луна таки может навлиять и результат будет нерепрезентативным. Вообще, для чистоты эксперимента, надо самому 30 лет отнаблюдать... Но я думаю за оставшиеся 18 лет вы втянетесь! Удачи! PS: если понадобятся официальные консультации по орбитам Луны, Земли и всяких остальных небесных тел - пишите. Санкт-Петербург, набережная Кутузова 10, Институт прикладной астрономии РАН, зам. зав. ЛРПУ, Алексею Лаврову. Буду рад помочь полезным начинаниям! Очень хорошо когда науку поддерживают любители-энтузиасты!
  14. Приливно-отливные явления из-за Луны? Атмосфера тоже должна быть им подвержена, как и океан. "Лунное параллактическое неравенство. Период колебаний высот приливов, возникающий за счет лунного параллакса, составляет 27 и 1/2 суток. Причина этого неравенства состоит в изменении расстояния Луны от Земли в процессе вращения последней. Из-за эллиптической формы лунной орбиты приливообразующая сила Луны в перигее на 40% выше, чем в апогее. Этот расчет справедлив для порта Нью-Йорк, где эффект пребывания Луны в апогее или перигее обычно запаздывает примерно на 11/2 суток относительно соответствующей фазы Луны. Для порта Сан-Франциско разница в высотах приливов, обусловленная нахождением Луны в перигее или апогее, составляет только 32%, и они следуют за соответствующими фазами Луны с запаздыванием на двое суток. " (Лунное параллактическое неравенство)
  15. Э-э-э... Нормальное давление на уровне моря это 760 мм.рт.ст. на уровне моря. 762 мм.рт.ст. это нормальное +2. Всего лишь. Это при том что у меня барометр стоит на втором этаже дома, который на набережной т.е. ну метров 10 - это минус 2 мБар. Так что повышенное - может быть, но бешенное - ни разу. Вот когда в прошлом январе было 1049 мБар (786 мм.рт.ст) - вот это бешеное!!! Я так и подумал :) но вы уж сильно на буквы пожалничали :) Вчера собрал второй такой же барометр, залил прошивку. Показывает примерно на 0.8 мБар больше чем первый. В инструкции было сказано что может быть погрешность из-за напряжений, оставшихся в кристалле после пайки. Не соврали. :)
  16. Если вы о картинке - то это за прошлый ГОД Если о цифре - то 762 мм.рт.ст. (кстати в пользу мБар - миллибары пишутся короче ;) ) то ничего бешенного не вижу в ней. И не меняется особо. Фраза не закончена?
  17. http://www.pitermeteo.ru/archive.php лучше - сразу скачивается xls, а там на разных вкладках - месяцы. Несколько измерений в день. На картинке график давления за прошлый год, Питер. Кстати - обратил внимания что рекорды активно ведутся для обзепонятных величин: температура, осадки, скорость ветра. А для давления - как-то не ведутся совсем. А влажность вообще мало кого интересует :) Миллибары... да как-то удобнее т.к. барометр в часах (Casio Pro Trek) и этот анероид - они в миллибарах. А пересчитать недолго. Вообще самые извратные единицы это PSI и дюймы ртутного столба :) Да, про грозы/ураганы - я давно уже заметил что даже на Casio с их одним измерением в 2 часа это хорошо бывает видно. А если мерять раз в 5-10 минут - то эффективность должна только возрасти. Хотя в инете бытует мнение что если внатуре пипец, то такая система даст только минут 10-15 на то чтобы спрятиться/приготовиться к смерти :)
  18. Он-то он :) только хотелось каких-то марок, типов, инструкций и описаний, но видно не судьба :) Ихотелось это потому что будучи извлеченным из коробки он показывал ну совсем не то... Там есть регулировки - под одну из них дырка в корпусе. Эта регулировка аналогична просто повороту шкалы - она просто блок анероидных коробок двигает туда-сюда. Она помогла. А вторая... может она и не регулировка вовсе... Кстати, если это аналог БАММ-1, то рабочее положение прибора - только лёжа, циферблатом вверх. Еще забавно что поступательное движение рыгача преобразуется во вращательное стрелки с помощью... ЦЕПИ!!! Такая цепь как велосипедная, но только в масштабах 1/2 миллиметра - наматывается/разматывается на подпружиненный ролик, который на оси стрелки. Из-за этого наверное он не требует постукивания перед считыванием показаний. А прошивка-то работает :). Целую ночь выстояла, не глюкнуло ни в самом устройстве, ни связь с компом не отвалилась :). Еще задумался - наверное диапазон графика 986 - 1041 мБар - это многовато? При условии что юзается на уровне моря почти. Ато как-то скучно наблюдать абсолютно ровный график. Надо наверное погодные экстремумы для Питера порыть :)
  19. Выгреб еще кучку глюков. Самый убойный - это в одном месте поставлена не метка перехода, а оставлен адрес который вписал компилятор. Самые веселые - это то что при считывании данных с датчика в память они переносились очень забавно :). Самое веселое из веселого это то что крайние байты давления пишутся верно, а средний - почему-то заменялся каким-то постоянным значением. Очень весело: давление при повышении температуры рисует "пилу". После выпиливания глюков все... как-то подозрительно даже... заработало... И даже связь с компом 6 часов подряд не отваливалась при опросе раз в 5 минут. Также проводились короткие сеансы с опросом раз в две секунды - тоже работает. Кстати перелопатил в лаборатории склад - нашел барометр. Никто не подскажет что за тип? (Корпус был снят для выяснения внутреннего устройства :) )
  20. У меня графдисплей, так что символов он не мыслит - только кучки пикселей :). А в цикле - в цикле ставится начальный адрес памяти, из него грузится код символа (цифры), вызывается подпрограмма, которая выплевывает на дисплей кучку пикселов, которая соответствует коду символа, а потом указатель памяти +1. Цикл выполняется до тех пор, пока известное количество символов не будет выведено на экран. Т.е. это мелкий цикл локального значения. И выполняется он раз в 11.25 минут :)
  21. Да, Боши со скобками сурово обошлись, это точно. Но я так формулы не записываю в принципе. Я пишу так: x1 = ac3 * b6 x1 = x1 / 2^13 И все везде записано только так. Ибо нефиг компилятору думать. А в конце - долго и нудно переводим в десятичную систему и заодно добавляем... сколько там до кода символа с цифрой? 30? или 0х30? :) И складываем это в кучку переменных типа char, а потом сразу из этой области памяти - на экран, да в цикле... Вот мож потому и много кода. Но зато он понятен. Вобщем сама-то последовательность вычислений вообще тривиальна, а вот подпрограммы деления/умножения - те посложнее, особливо для меня. Я математикой вообще крайне мало занимаюсь - у меня в основном ченить по-тупее :)
  22. Дык я и не претендую на мало :). Вообще там еще много чего можно хорошенько оптимизировать, но все лень как-то. Кстати текущая версия все равно получилась глючной - непредсказуемо перестает реагировать на запросы с компьютера и иногда делает ошибки в вычислениях. Иногда все вроде работает, но гаснет LCD. Надо копать...
  23. У меня была вроде бы такая же заморочка - немного подвирало в какую-то сторону. Правда я не заметил влияния порога "выше 25С", но просто потому что в последнее время у меня на работе всегда выше 25С :). Я отловил это путем вывода промежуточных значений различных констант и сравнения их со значениями, считаемыми на компьютере (Эксель). Вот к сожалению файлик-то на работе... Не помню на каком конкретно шаге вылезало. Вылечилось тем что в одном месте вызов подпрограммы которая множит unsigned был заменен на умножение signed.
  24. В документе, ссылку на который я привел, одна из служебных констант, которая необходима для термокомпенсации значения давления, определяется как s = T - 25. Не трудно догадаться, что Т - истинное значение температуры. Причем надо полагать что эти формулы - они составлены с тем же СМЫСЛОМ, что и те что в DS. Т.е. физический смысл формул - сохранен. Вообще довольно типична ситуация, когда что-то высчитывается для 25 С, а потом дается поправка на разницу 25 С и текущей температуры. Возвратимся к вашей беде - после 25С что-то не так... Если опять же - смотреть на s = T - 25 то при превышении 25С s изменит свой знак. Других изменений нет. Значит - вероятно что ваш код как-то неверно реагирует на изменение знака поправки. Например, воспринимает значение как unsigned, хотя на самом деле оно совсем даже signed. Внимательно посмотрите PDF - там объясняется откуда берется эта s.
  25. А что это там у вас в комментариях про ошибку в DS написано? Нет никаких ошибок. Считать надо так, как указано в DS. Еще есть в зарубежном инете некий pdf (я ща в отпуске, а ссылки все на работе), где один человек очень обстоятельно перевел все эти формулы для вычисления в float - типа точнее выходит. Формулы выглядят совершенно по-другому и для вычислений на контроллере не пригодны. Но как альтернативный способ вычисления на компе (для проверки) как раз самое то. Помнится мне что яндексом я его искал недолго, по каким-то весьма очевидным запросам. А вот собственно и ссылочка http://wmrx00.sourceforge.net/Arduino/BMP085-Calcs.pdf
×
×
  • Создать...