mmor
Участник-
Постов
58 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о mmor
-
Звание
Участник
- День рождения 02.08.1982
Контакты
-
Сайт
Array
-
ICQ
Array
Посетители профиля
-
Волновое сопротивление линии
mmor ответил mmor тема в RF & Microwave Design
Для аналитического расчета мне предложили воспользоваться таким способом: пусть надо рассчитать волновое сопротивление между двумя полосками близкой ширины. Между полосками - диэлектрик высотой h. Делим диэлектрик пополам и в середину размещаем воображаемую проводящую бесконечную плоскость. Считаем сопротивления каждого полоска относительно этой бесконечной плоскости. Затем полученные сопротивления складываем (последовательное соединение полосок). Воображаемую проводящую бесконечную плоскость убираем, так как она эквипотенциальная к обеим полоскам. Интересно было бы посмотреть на результаты моделирования такой схемы в HFSS например. Старые учебники не учитывают наличие защитной маски на ПП. Поэтому мне порекомендовали программу Polar Si8000-Si9000 PCB Transmission Line Field Solver. считает различные полоски, с учетом маски. К этой программе полезно почитать PCBtech_структура_МПП_impedance.pdf. Не знаю где взять. Какой изгиб полоска лучше? С радиусом, прямой с скосом, или прямой угол скругленный? В книге Изюмова, Свиридова написано что лучше всего прямой угол со скосом. Скругленный тоже хорошо, но КСВ на 0,04 хуже. С радиусом КСВ 1,2, при просто прямом угле - КСВ = 2. Как расчитать скос? -
Волновое сопротивление линии
mmor ответил mmor тема в RF & Microwave Design
спасибо. Стал считать МПЛ по книге "Справочник по расчету и конструированию СВЧ полосковых устройств" Вольман. проводник 2 мм, высота подложки 1 мм. импеданс 64,76 Ом. TXLINE дает результат 64,78 Ом. В MWO ставлю порт 50 Ом. MLIN на подложке MSUB. Соответственно задаю такие же значения ширины полоски и высоты подложки. Результат - резонанс на на 5,64 ГГц и импеданс 83,8 Ом. Моделирование EMStructures дает такой же примерно результат. Вопрос: почему такая разница. Что я не так делаю или не так понимаю? Расчеты делаю чисто умозрительно, без привязки к конкретному изделию. -
Волновое сопротивление линии
mmor ответил mmor тема в RF & Microwave Design
Как Вы посчитали? TXLINE в расчетах принимает площадь основания бесконечную. В моем же случае площадь основания ограниченная и ненамного больше ширины проводника. -
Волновое сопротивление линии
mmor опубликовал тема в RF & Microwave Design
Требуется рассчитать волновое сопротивление микрополосковой линии. Особенность линии в том, что проводник должен быть ненамного уже заземленого основания. Подложка - фторопласт. Требуется подобрать или толщину подложки или ширину проводника, чтобы получить волновое сопротивление 12,5 Ом. Причем изменять ширину дорожки можно немного. Ширина основания 7 мм. Дорожка должна быть не уже 4 мм. Толщина дорожки 0,1 мм. Подскажите литературу или любой источник, где упоминаются такие линии. -
Программирование ATtiny13А
mmor ответил v-vovchek тема в В помощь начинающему
Да, теперь все работает правильно. Спасибо! -
Программирование ATtiny13А
mmor ответил v-vovchek тема в В помощь начинающему
Вот полный код на настоящий момент. прерывание 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 у меня как раз таймер дергает! -
Программирование ATtiny13А
mmor ответил v-vovchek тема в В помощь начинающему
Прошу прощения. Вчера что то так неважно себя чувствовал сам не понял что написал. Код привел ошибочный. Прерывание INT0 это я потом запретил после экспериментов. Так конечно должно быть: ldi r16, (1<<INT0)|(1<<PCIE);//01 out GIMSK, r16; Выводы PB0 и PB2 подтянуты к питания через резистор 10кОм. Еще я пробовал включатьбит PUD В регистре MCUCR. Это никак не влияет. INT0 срабатывает постоянно. Установка вывода PB0 на вход или выход так же никак не влияет. -
Программирование ATtiny13А
mmor ответил v-vovchek тема в В помощь начинающему
Есть проблемка с 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; -
Собственно на UC3843 и буду делать. Вернее разрабатывать схему и макет. а вот буду ли применять в машине не уверен еще. Волнует вопрос надежности и качества таких преобразователей. Имеет ли преобразователь на основе инвертора - трансформатора - выпрямителя преимущества, в часности для применения именно для питания ноутбука от бортсети авто? И вопрос насчет скорости нарастания импульсов (фронтов) и как на это реагируют полевики остался открытым. Хотя вот смотрю к UC3843 цепляют полевик напрямую.
-
Вопрос собсвенно и был в том, чему верить больше, расчетам или графикам. Сжечь ноут неохота, потому от применения этой микросхемы уже отказался. И вообще думаю отказатся от Step-Up и сделать что нибудь с гальванической развязкой. Есть ли в этом смысл? Или в данном применении без разницы и хорошо сделаный Step-Up будет работать не хуже? Насчет времения: где то читал что у этой микросхемы фронты импульсов слишком маленькие для применения с полевым транзистором, вроде как из-за этого транзистор будет сильно грется или не будет работать вообще. Поэтому ставят драйвер или простой биполярник. Для увеличения тока и уменьшения фронтов импульсов. Так ли это?
-
подскажите по микросхеме 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. Т е разница на порядок. Что я не так понимаю? И еще подскажите, как это время переключения будет влиять на работу полевого транзистора, если я его подключу для получения большей мощности?
-
MEGA8 и SPI EEPROM
mmor ответил Amon-Ra тема в В помощь начинающему
Сам себе и отвечу. //Запись в 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, и на сайте можно скачать русский даташит. -
MEGA8 и SPI EEPROM
mmor ответил Amon-Ra тема в В помощь начинающему
команда MEM_ON - SS = 0 MEM_OFF - SS = 1 а все таки как протеус реагировать должен на запись eeprom. Должен ли он бинарник, прошитый в eeprom заполнять входящими данными или нет? -
MEGA8 и SPI EEPROM
mmor ответил Amon-Ra тема в В помощь начинающему
MOSI для записи данных в память. Программа примерно такая: счетчик считает от 0 до 2047 (к примеру) и каждое число записывается в ЕЕПРОМ по линии MOSI. А затем в другом цикле эти числа считываются обратно по линии MISO. Вообще изначально идея была попробывать SPI ПЗУ, но в библиотеках протеуса такого нет, вот я и поставил за место него ЕЕПРОМ. -
MEGA8 и SPI EEPROM
mmor ответил Amon-Ra тема в В помощь начинающему
получились танцы с бубном. заработало только после того, что сначала отправляю в еепром (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 для такой памяти сделать?