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

mmor

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

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

  • Посещение

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


  1. Для аналитического расчета мне предложили воспользоваться таким способом: пусть надо рассчитать волновое сопротивление между двумя полосками близкой ширины. Между полосками - диэлектрик высотой h. Делим диэлектрик пополам и в середину размещаем воображаемую проводящую бесконечную плоскость. Считаем сопротивления каждого полоска относительно этой бесконечной плоскости. Затем полученные сопротивления складываем (последовательное соединение полосок). Воображаемую проводящую бесконечную плоскость убираем, так как она эквипотенциальная к обеим полоскам. Интересно было бы посмотреть на результаты моделирования такой схемы в HFSS например. Старые учебники не учитывают наличие защитной маски на ПП. Поэтому мне порекомендовали программу Polar Si8000-Si9000 PCB Transmission Line Field Solver. считает различные полоски, с учетом маски. К этой программе полезно почитать PCBtech_структура_МПП_impedance.pdf. Не знаю где взять. Какой изгиб полоска лучше? С радиусом, прямой с скосом, или прямой угол скругленный? В книге Изюмова, Свиридова написано что лучше всего прямой угол со скосом. Скругленный тоже хорошо, но КСВ на 0,04 хуже. С радиусом КСВ 1,2, при просто прямом угле - КСВ = 2. Как расчитать скос?
  2. спасибо. Стал считать МПЛ по книге "Справочник по расчету и конструированию СВЧ полосковых устройств" Вольман. проводник 2 мм, высота подложки 1 мм. импеданс 64,76 Ом. TXLINE дает результат 64,78 Ом. В MWO ставлю порт 50 Ом. MLIN на подложке MSUB. Соответственно задаю такие же значения ширины полоски и высоты подложки. Результат - резонанс на на 5,64 ГГц и импеданс 83,8 Ом. Моделирование EMStructures дает такой же примерно результат. Вопрос: почему такая разница. Что я не так делаю или не так понимаю? Расчеты делаю чисто умозрительно, без привязки к конкретному изделию.
  3. Как Вы посчитали? TXLINE в расчетах принимает площадь основания бесконечную. В моем же случае площадь основания ограниченная и ненамного больше ширины проводника.
  4. Требуется рассчитать волновое сопротивление микрополосковой линии. Особенность линии в том, что проводник должен быть ненамного уже заземленого основания. Подложка - фторопласт. Требуется подобрать или толщину подложки или ширину проводника, чтобы получить волновое сопротивление 12,5 Ом. Причем изменять ширину дорожки можно немного. Ширина основания 7 мм. Дорожка должна быть не уже 4 мм. Толщина дорожки 0,1 мм. Подскажите литературу или любой источник, где упоминаются такие линии.
  5. Да, теперь все работает правильно. Спасибо!
  6. Вот полный код на настоящий момент. прерывание INT0 срабатывает постоянно в симулинке в AVR. программа вобщем ничего не делает, просто пытаюсь на ассемблере запустить прерывания по инт0. Прерывания от порта PB2 стал делать в качестве альтернативы, отключив прерывание по инт0. Без инт0 прерывание от PB2 срабатывает нормально. Пробовал и в протеусе, и в симулинке установкой и снятием третьего бита (бит 2 если от нуля). Схема самая простая в протеусе. Контроллер, на вывода PB0 И PB2 через резисторы 10 кОм подведено питание 5 В. И на эти же выводы по кнопке button. Нажал кнопку - на выводе 0. Отжал - лог. 1. .include "tn13def.inc" .org 0 rjmp init .org 1 rjmp INT0_vect .org 2 rjmp PCI0_vect init: //--------------------------------------------------------------------- //установка вершины стека ldi r16,$DF ; загружаем константу в регистр общего пользования r16 out SPL,r16 ; указываем верхнюю границу стэка //--------------------------------------------------------------------- //инициализация выводов //--------------------------------------------------------------------- //направление вывода "ног": 1 - вывод, 0 - ввод ldi r16, (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0); out DDRB, r16; ldi r16, (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0); out PORTB, r16; //--------------------------------------------------------------------- //инициализация таймера ldi r16, $00; out TCNT0, r16; ldi r16, $15; out OCR0A, r16 ldi r16, $5; out OCR0B, r16 ldi r16, $12; out TCCR0A, r16; ldi r16, $03; //$04 out TCCR0B, r16; //--------------------------------------------------------------------- //инициализация прерываний ldi r16, (1<<PUD)|(0<<SE)|(0<<SM1)|(0<<SM0)|(0<<ISC01)|(0<<ISC00);//01 out MCUCR, r16; ldi r16, (1<<INT0)|(1<<PCIE);//01 out GIMSK, r16; ldi r16, (0<<PCINT5)|(0<<PCINT4)|(0<<PCINT3)|(1<<PCINT2)|(0<<PCINT1)|(0<<PCINT0);//04 out PCMSK, r16; //--------------------------------------------------------------------- //разрешаем прерывания ldi r16, $80; out SREG, r16; main: ; тело цикла nop; ; команда, которая ничего не делает nop; rjmp main; ; переход на метку main //--------------------------------------------------------------------- //прерывание INT0 INT0_vect: nop reti; //--------------------------------------------------------------------- //прерывание PCIN4 PCI0_vect: nop reti; еще не понял почему INT0 - это PB1? И ведь правда PB1!!!! только сейчас разглядел!!! Вот что значит замыленный взгляд. Привык тчо на атмегах это 0-й пин. Звиняйте за беспокойство, сейчас буду переделывать! а PB1 у меня как раз таймер дергает!
  7. Прошу прощения. Вчера что то так неважно себя чувствовал сам не понял что написал. Код привел ошибочный. Прерывание INT0 это я потом запретил после экспериментов. Так конечно должно быть: ldi r16, (1<<INT0)|(1<<PCIE);//01 out GIMSK, r16; Выводы PB0 и PB2 подтянуты к питания через резистор 10кОм. Еще я пробовал включатьбит PUD В регистре MCUCR. Это никак не влияет. INT0 срабатывает постоянно. Установка вывода PB0 на вход или выход так же никак не влияет.
  8. Есть проблемка с Attiny13. Стал пробывать сделать прерывание от INT0, прерывание должно срабатывать от низкого уровня на ножке. Программа на ассемблере в AVR Studio 4.16. При симуляции в Simulator 2 прерывание INT0 срабатывает постоянно. Независимо от того что на выводе. В моделировании в протеусе таже беда. Переписал программу на СИ, тоже самое. живьем микросхемы пока нет. Подскажите что это может быть, ошибка в коде, глюк AVR. Будет ли нормально работать на железе. Вот кусочек кода: ldi r16, (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(1<<1)|(0<<0); out DDRB, r16; ldi r16, (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(1<<1)|(1<<0); out PORTB, r16; .... //инициализация прерываний ldi r16, (0<<PUD)|(0<<SE)|(0<<SM1)|(0<<SM0)|(0<<ISC01)|(0<<ISC00); out MCUCR, r16; ldi r16, (0<<INT0)|(1<<PCIE);//01 out GIMSK, r16; ldi r16, (0<<PCINT5)|(0<<PCINT4)|(0<<PCINT3)|(1<<PCINT2)|(0<<PCINT1)|(0<<PCINT0); out PCMSK, r16; ..... //прерывание INT0 INT0_vect: nop reti;
  9. Собственно на UC3843 и буду делать. Вернее разрабатывать схему и макет. а вот буду ли применять в машине не уверен еще. Волнует вопрос надежности и качества таких преобразователей. Имеет ли преобразователь на основе инвертора - трансформатора - выпрямителя преимущества, в часности для применения именно для питания ноутбука от бортсети авто? И вопрос насчет скорости нарастания импульсов (фронтов) и как на это реагируют полевики остался открытым. Хотя вот смотрю к UC3843 цепляют полевик напрямую.
  10. Вопрос собсвенно и был в том, чему верить больше, расчетам или графикам. Сжечь ноут неохота, потому от применения этой микросхемы уже отказался. И вообще думаю отказатся от Step-Up и сделать что нибудь с гальванической развязкой. Есть ли в этом смысл? Или в данном применении без разницы и хорошо сделаный Step-Up будет работать не хуже? Насчет времения: где то читал что у этой микросхемы фронты импульсов слишком маленькие для применения с полевым транзистором, вроде как из-за этого транзистор будет сильно грется или не будет работать вообще. Поэтому ставят драйвер или простой биполярник. Для увеличения тока и уменьшения фронтов импульсов. Так ли это?
  11. подскажите по микросхеме MC34063. Считаю по формулам из даташита ton/toff. Vinmin=10V, Vout=19V, I=0.1A, F=50kHz, Vsat=1, Vf=0.6 По рассчетам получаю ton=10.3 us toff=9.67us Там же в даташите есть график Figure3 Oscillator Frequence. При частоте 50 кГц емкость Ct получается примерно 490-500 пФ, ton = 20us, toff <2 us. Т е разница на порядок. Что я не так понимаю? И еще подскажите, как это время переключения будет влиять на работу полевого транзистора, если я его подключу для получения большей мощности?
  12. Сам себе и отвечу. //Запись в EEPROM // инициализация EEPROM CS_L; CS_H; //1. Разрешаем запись. Отправляем команду WREN CS_L; SPDR = 0x06; while(!(SPSR & (1<<SPIF))); CS_H; //2. Пишем данные WRITE CS_L; SPDR = 0x02; while(!(SPSR & (1<<SPIF))); SPDR = 0; //адрес 0 while(!(SPSR & (1<<SPIF))); SPDR = 0x05; //данные while(!(SPSR & (1<<SPIF))); PORTD = 0x05; // CS_H; /* //Чтение статуса CS_L; SPDR = 0x05; //читаем регистр статуса while(!(SPSR & (1<<SPIF))); SPDR = 0xff; //заглушка while(!(SPSR & (1<<SPIF))); PORTD = SPDR; // считанные данные CS_H; */ _delay_us(10); //3. Чтение данных CS_L; SPDR = 0x03; //READ while(!(SPSR & (1<<SPIF))); SPDR = 0; // Адресс while(!(SPSR & (1<<SPIF))); SPDR = 0xff; //заглушка while(!(SPSR & (1<<SPIF))); PORTD = SPDR; // считанные данные CS_H; CS_L - low CS_H - hight Данные в EEPROM действительно пишутся в протеусе, но бинарник не меняется. Для того, что бы проще было смотреть, выставил время записи 2us. Как раз попробую EEPROM в качестве ОЗУ с малым временем записи. EEPROM 25AA020А. Фмрма Интеграл выпускает полные аналоги этого EEPROM, и на сайте можно скачать русский даташит.
  13. команда MEM_ON - SS = 0 MEM_OFF - SS = 1 а все таки как протеус реагировать должен на запись eeprom. Должен ли он бинарник, прошитый в eeprom заполнять входящими данными или нет?
  14. MOSI для записи данных в память. Программа примерно такая: счетчик считает от 0 до 2047 (к примеру) и каждое число записывается в ЕЕПРОМ по линии MOSI. А затем в другом цикле эти числа считываются обратно по линии MISO. Вообще изначально идея была попробывать SPI ПЗУ, но в библиотеках протеуса такого нет, вот я и поставил за место него ЕЕПРОМ.
  15. получились танцы с бубном. заработало только после того, что сначала отправляю в еепром (25АА256) команду 0000 0001 (Write STATUS register) после этого команду записи (потом данные) а после этого команду чтения. файл для еепром создал в hex редакторе и считываю с него данные. А вот по записи не знаю как реализовано в протеусе. Должен ли он переписывать файл для чипа еепром. По крайней мере у меня этот файл не меняется. Или я неправильно записываю данные в еепром, или это такая фишка протеуса. пример кода: //Запись MEM_ON; //CS SPDR= 0x01; //wrsr while(!(SPSR & (1<<SPIF))); SPDR=0x02; // write while(!(SPSR & (1<<SPIF))); SPDR=0; //adressH while(!(SPSR & (1<<SPIF))); SPDR=0; // adressL while(!(SPSR & (1<<SPIF))); SPDR=Data; // данные while(!(SPSR & (1<<SPIF))); MEM_OFF; //Чтение MEM_ON; SPDR=0x03; //Read while(!(SPSR & (1<<SPIF))); SPDR=0; while(!(SPSR & (1<<SPIF))); SPDR=0; while(!(SPSR & (1<<SPIF))); SPDR = 0xff; while(!(SPSR & (1<<SPIF))); Data = SPDR; MEM_OFF; Думаю делаю неправильно. Надо более подробно читать даташит. Получается что моя команда write становится как бы регистром статуса для команды wrsr. В регистре SPCR бит DWORD = 0; Как режим Slave для такой памяти сделать?
  16. А если еще и читать внимательно, то вообще все хорошо будет. Какой контроллер и память вполне должно быть понятно из названия темы. В первом же сообщении было сказано про моделирование в протеусе. SPI Debugger - инструмент протеуса. Какое имеет значение какие данные я отправляю в память? вот ей не все равно что хранить? ну а причем тут SPI при обмене между контроллером и EEPROM с интерфейсом SPI я даже не знаю что ответить. Читайте внимательнее тему. В любом случае вопрос решен, обмен идет.
  17. Чем закончилось то? Сейчас хожу по тем же граблям. Между двумя контроллерами по SPI - все отлично и туда и обратно. Между контроллером и SPI дебагером - тоже все работает. Между контроллером и EEPROM - только в одну сторону!!! Глюк протеуса или что то не так делаю? А когда отправляю в память данные, они должны дописыватся в файл .bin (прошивка для чипа памяти)?
  18. да, напутал. уже разобрался в принципе умножения. как всегда все весьма просто)
  19. а насчет целочисленного умножения что нибудь подскажете?
  20. Раз уж про умножение задам сюда же вопрос. микроконтроллер AT90USB128. Среда программирования JAR 4.10. Язык С++. есть необходимость помножить целое чесло на число с точкой. Задаю тип переменной double - компилятор комплирует программу, и даже результат умножения близок к истинному. Вот только сомнения меня гложут можно ли такую программу в контроллер зашивать? будет ли работать. Поэтому все переменные оставил int, но умножаю на число с точкой. Например:B = A*0.8; Пусть A = 25000 Тогда B получается 20000. Т. е. вычисляется вполне точно. Стал смотреть дизасемблер, а там какой то сложный итеративный процесс идет. Может кто нибудь на словах объяснить что контроллер делает при умножении на число с точкой? Ну и еще вопрос по умножению целого на целое. скажем 0A0Bh x 000Ch = 7884h. При этом дизасемблер показывает, что умножение происходит по такому алгоритму: (00x0B)+(0Cx0A) - это младший байт (0Сx0B) - старший байт результата умножения. Может кто объяснить откуда такой алгоритм взялся?
  21. Написал там с ошибками jZ в н.у. получится 49,01+j6,964, а КСВ правильно написал
  22. мда....что то я затупил. А ведь действительно, все просто вполне. плохая привычка искать сложные решения там, где надо искать простые. Cтал считать: индуктивность L=28 мкГн, на частоте 2 МГц получается j351 Ом. Шунтирует 50 ОМ вход получается jZ = j43,78 Ом. Считаем коэффициент отражения, Ку=(R-jZ)/(R+jZ), отсюда КСВ=(1+|Ку|)/(1-|Ку|) = 1,15. При снижении в климатике индуктивности до 15 мкГн считаем так же получаем КСВ=1,3. И дальше следующий вопрос: а как влияет цепь вторичной обмотки? Надо ли ее тоже пересчитывать во входной КСВ или можно игнорировать?
  23. Усилитель тут не причем. Для упрощения можно считать что трансформатор нагружен на активное сопротивление 50 Ом, и имеет соотношение витков 1:1. Собственно именно так я и моделировал в MWO. Тема с четырехполюсником пожалуй уже близко, только может надо S - параметры, что бы отражние то считать?
  24. Ситуация такая, на входе усилителя есть трансформатор, первичная обмотка которого 28 мкГн. КСВ по входу на 2 МГц 1,2. Далее, замораживаем усилитель, индуктивность первичной трансформатора снижается до 15 мкГн (мерял отдельно еще трансформатор). КСВ при этом становится 1,4. Моделирование в MWO дает такие же результаты. Вопрос собвственно такой, как посчитать такой эффект аналитически? По формулам что бы.
  25. Раньше этот трансформатор применялся в другом усилителе, но вторичная обмотка содержала три витка. И таких проблем, насколько знаю,не возникало. То есть врядли это из-за транзисторов так?
×
×
  • Создать...