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

Misha_Traktorist

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

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

  • Посещение

Репутация

0 Обычный

Информация о Misha_Traktorist

  • Звание
    Участник
    Участник

Посетители профиля

995 просмотров профиля
  1. Кому надо, делается это вот так: // Составляем IP заголовок ICMPBUF->vhl = 0x45; ICMPBUF->tos = 0; uint16_t len = sizeof(struct uip_icmpip_hdr); // длина будет равна заголовку ip + icmp ICMPBUF->len[0] = len >> 8; ICMPBUF->len[1] = len & 0xff; uint16_t ipid = 0; ICMPBUF->ipid[0] = ipid >> 8; ICMPBUF->ipid[1] = ipid & 0xff; ICMPBUF->ipoffset[0] = ICMPBUF->ipoffset[1] = 0; ICMPBUF->ttl = UIP_TTL; ICMPBUF->proto = UIP_PROTO_ICMP; // указываем свой ip и ip удаленного устройства. uip_gethostaddr(ICMPBUF->srcipaddr); uip_ipaddr(&ICMPBUF->destipaddr, 192,168,1,101); ICMPBUF->ipchksum = 0; ICMPBUF->ipchksum = ~(uip_ipchksum()); ICMPBUF->type = ICMP_ECHO; ICMPBUF->icode = 0; ICMPBUF->icmpchksum = 0; ICMPBUF->icmpchksum = uip_chksum((uint16_t*)&ICMPBUF->type, 8); ICMPBUF->icmpchksum = ~((ICMPBUF->icmpchksum == 0) ? 0xffff : ICMPBUF->icmpchksum); printf("type %d, code %d, icmpchksum %d\r\n", ICMPBUF->type, ICMPBUF->icode, ICMPBUF->icmpchksum); uip_len = UIP_IPH_LEN + 8; // длина равна заголовку ip + заголовку icmp uip_arp_out(); enc28j60_send_packet((uint8_t *) uip_buf, uip_len); Данный код подходит как для пинга внутренней сети, так и внешней.
  2. Не могли бы поделиться кодом? Тоже надо сделать пинг с девайса)))
  3. Здравствуйте! Устройство питается через стабилизатор 34063 (на выходе ~5.2V), присутствует atmega32 и память at24c64. Посмотрел осцилом, а там по питанию вот что: Здесь скачки в пределах 60мв и частотой больше 1,5мгц. Являются ли такие скачки опасными для работы микронтроллера или они вполне допустимые?
  4. Может и действительно дешевле. Но опять же, микросхема высокочастотная, много трудностей в разводке. L5973 - $0.58 на али. Миша, не экономьте буквы. Нет такого слова "микра". И что такое "али" тоже не обязано быть всем понятным.
  5. Мужики, действительно, с разводкой я сильно затупил. Посмотерл на старую плату - там разводка практический такая же, как в ДШ (хотя плата односторонняя), поэтому на ней и работало нормально. Всё таки, решил от неё отказаться. lm2576 тоже отпадает, так как сильно большая (и дроссель её нужен большой). Буду пока что ориентироваться на L5973.
  6. Доброго времени суток! Есть плата GSM модуля на базе SIM900, для питания которого используется ST1S10. MINISMDC110F-2 - самовостанавливающиеся предохранители на 1,1А. SMAJ5 - сапресор на 5В. В инете читал, что когда ST1S10 сгорает то вместе с ней сгорает всё, что она питает, поэтому предусмотрел такую защиту. Плата: Выделил саму микру и резисторы, задающие напряжение. Там ещё на выходе питания с микры подпаян электролит Low esr на 3300мкф/6,3В, на схеме и плате нет. Сначала, припаял всё кроме sim900 - на выходе было нужное напряжение, припаял sim900, немного поработало и ST1S10 сгорела (не помню, через какое время). Припаял другую ST1S10 - тоже сгорела. Раньше использовал эту же микру и таким же дросселем и по такой же схеме, ничего не сгорело. Но там даже плата была односторонняя, из-за чего не передавала тепло на обратную сторону, при этом работало нормально. Подскажите, пожалуйста, где я ошибся? Файлы DipTrace прикрепил. Плата заводская. Если отпаять микру и после дросселя подключить источник питания 4,2В, то SIM900 работает. GSM_GPRS_module.rar
  7. Вобщем, разобрался с токовым трансформатором и виртуальной землей, ампертмер готов))) Всем спасибо!
  8. Да, можно использовать 2 АЦП, но зачем, если можно использовать один? Резистором на 30К будет подстраиваться напряжение, которое должно быть равно напряжению падения на диоде. В результате на CUR_OUT будет напряжение от 0 до максимума, в зависимости от тока на первычке. Вчера пробовал это в реале, пропускал примерно 10А и 5А, линейность была отличная.
  9. Ребят, прошу прощения. Я думал, что при отсутсвии тока, напряжение на выходе (перед АЦП) будет 2,5В, а при наличии тока напряжение будет от 0 до максимума. Вчера только понял, что при наличии тока напряжение на выходе будет от 2,5 до максимума. В результате, как и написал Herz, не должно быть никаких резистивных делителей, чтобы начальной точкой было не 2,5, а 0. Но в реале нужно учитывать падение на диоде перед АЦП, поэтому резистивный делитель ставить нужно, но его выходное напряжение должно быть равно напряжению падения на диоде, или же, лучше поставить ИОН с таким же выходным напряжением.
  10. Есть проблемка. Когда на первичной обмотки нет тока (полностью разомкнута), постоянный ток с резистивного делителя просто проходит через вторичную обмотку и шунтирующий резистор напрямую ко входу АЦП, в результате при отсутствии тока на первычке, на ацп всегда попадает 2,5В. Можно ли как-то детектировать отсутствие тока на первичке?
  11. Постараюсь завтра документацию достать (так как не знаю даже как транс называется). Вообще, на сколько знаю, реактивное сопротивление можно узнать исходя из индуктивности.
  12. Пообщался со знающим человеком по поводу данного вопроса. Оказывается, шунтирующий резистор ставится не абы-какой, его сопротивление должно соответствовать реактивному сопротивлению трансформатора, только при этом можно получить максимальноую линейность. А так, первая схема вполне подходит, но между микроконтроллером и трансформатором нужно поставить диод и параллельно кондер.
  13. Если не вдаваться в подробности, то это просто источник переменного тока. Разве я не прав?
  14. А как его выпрямить? Если делаю на диодах шотки, то переменное напряжение перед диодом не пропорционально постоянную после. А вот если просто поцепить резистор параллельно трансу и измерять на нем переменное напряжение, то оно как раз изменяется пропорционально силе тока. Осталось в постоянку преобразовать)))
  15. Прямо по вершине измерять не нужно. Это просто устройство которое будет стоить в ящике на din рейке и отображать текущий ток.
×
×
  • Создать...