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

tronix286

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

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

  • Посещение

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


  1. Спасибо, правда корпуса не очень удобные для пайки на DIP-макетку, ну ничего, раскорячу как-нибудь -) А насчет подтяжки - оторву все резисторы от ног, к которым подходит порт B. У порта B буду сам управлять подтяжкой, таким образом я думаю что смогу отличать однотипные микросхемы с открытыми коллекторами и без. Попробую.
  2. Мда... Не весело, хотелось обойтись малыми жертвами... Второй контроллер, 18 диодов.... Пожалуй, пусть подтяжка будет все время включена, черт с ней. Что я теряю? Невозможность отличить однотипные микросхемы, например 7406 (открытые коллекторы) и 7404.... Невозможность тестирования hi-z состояния выводов.. То же не критично, если остальная логика работает... А какой мосфет посоветуете? Я в них не разбираюсь вообще. По идее нужен низковольтный 5V, с током до 150-200mA. В запасах есть какие-то полевики типа КП301Б, КП103 - не пойдут? Или лучше закопать обратно в чулан и купить нормальный?
  3. Добрый день. В схемотехнике совсем нуб, поэтому заранее прошу сильно не пинать. Делаю домашнюю безделушку - тестер микросхем логики типа 74xx (к155, к555) одновременно с тестером динамической памяти типа 565РУ5, 565РУ7. Тестируемая микросхема вставляется в панельку (потом может в ZIF-сокет), и желательно, что-бы напряжение питания подавалось на нее только перед началом теста, а в конце - снималось, что бы можно было безбоязненно вытащить - вставить другую. Это один вопрос. Второй вопрос: Многие микросхемы имеют выходы с открытым коллектором (например 155ЛН3) или могут при тестировании переходить в высокоимпедальное состояние (например 555АП6). Всю конструкцию делаю на PIC18F2550, у которого есть pull-up только на порту B (семь ног). Этого недостаточно, так как тестироваться могут микросхемы в корпусах DIP14, DIP16, DIP18 и DIP20. Поэтому нужна внешняя подтяжка, желательно управляемая. Пока собрал управление питанием микросхемы через такой ключ: Но, если на выходе пина микроконтроллера 4,9V, то после этого ключа ~4,2V. Сойдет конечно, но хотелось-бы все-таки поближе к 5V. Плюс ток - планирую еще в будущем читать древние ПЗУ типа 556РТ4 или 556РЕ3, а они могут отжирать до 150мА. Мосфет ставить? И подтяжка - сейчас от каждого пина тестовой панельки идет резистор на 10кОм. Другим концом смотрит на эмитер ключа на 2222а. Таким образом включается питание микросхемы - включается подтяжка на всех ногах. В принципе, работает, но хочется управлять этой подтяжкой - включать/отключать по желанию. Сделать еще один ключ в таком же духе, как и первый и туда подключить? А может быть вообще напрямую на ногу МК?
  4. Обязанности: Ремонт РЭА Сборка РЭА Монтаж и демонтаж выводных и поверхностных радиокомпонентов Механическая обработка корпусных изделий Контроль качества, тестирование, загрузка ПО в РЭА Требования: Устойчивые навыки монтажа и демонтажа радиокомпонентов при помощи паяльника и термовоздушной паяльной станциии обязательны! Умение работать с принципиальной схемой устройства и сборочным чертежом печатной платы обязательны! Умение работать с измерительными приборами Навыки диагностики и устранения неисправностей в РЭА Желательны опыт разработки РЭА, радиолюбительские навыки, быстрая обучаемость Условия: Оплата сдельная, по объему выполненных работ График свободный, можно приезжать в любое удобное время по рабочим дням с 8 до 19 часов Все материалы и инструмент предоставляются работодателем Мастерская на территории завода ЗИЛ, между станциями метро Автозаводская и Тульская, пропускной режим В этой же мастерской работают разработчики РЭА, готовые ответить на любые вопросы и оказать помощь В мастерской бесплатные чай, кофе и сладости Тип занятости Частичная занятость, гибкий график Контакты: Заинтересовавшимся просьба скинуть свои контакты в ЛС. Я передам информацию техническому директору.
  5. Спасибо за такой развернутый ответ со схемой, я даже не ожидал :) Да, все примерно так я себе и представлял, спасибо. Наверное нужно было сразу сказать, что за устройство хочется собрать. Все просто - хочу повторить старую звуковуху Creative Music System. В основе - два чипа звуковых генераторов Philips SAA 1099 , которые торчат на шине данных. Ну и усилок небольшой, но это мелочи. Вся эта свистопляска с записью-чтением нужна только для автодетекта карты, так как SAA1099 сами ничего не умеют отправлять, только слушают. Поэтому игры определяют карту таким вот способом. Ретро, так сказать ;) Да, конечно, какой-нибудь древней EPM7064 хватило бы с лихвой. Но хочется именно DIP-корпуса, так как все-таки ретро-девайс копируется. Насчет сигнала о записи байт - такого не нужно, ибо ISA-8 шина.
  6. Хм, не думал, что так можно... А какую именно микросхему использозвать - ир23 или ир22? Что бы читать с порта 0x2X4 всегда 0x7f думаю поставить 555ап5 и набрать резисторами 7 штук на питание, 1 на землю.
  7. Добрый день. Значение пишется в порты 0x2X6 или 0x2X7. Затем читается с портов 0x2XA или 0x2XB. Прочитанное значение должно быть равно тому, что записали в порты 0x2X6 или 0x2X7. Плюс с порта 0x2X4 читаться должно всегда 0x7f. Дешифратор ладно, сделаю на чем-нибудь, или нагорожу 555ид7 , или вообще рт4 поставлю. У меня вопрос собственно насчет памяти в один байт. Чувствую, что можно воспользоваться регистрами-защелками типа 555ир23 или 555ир22. Но не соображу схему. Вот, к примеру, можно ли двумя концами (D и одновременно Q) повесить такой регистр на D0-D7?
  8. Ну, просто выразился я не правильно. Под SPI-Flash подразумевал serial flash, навроде 25df161, w25q64... За "правильные" запросы в гугл спасибо, изучаемс.. Данные разные. Какие-то было бы проще всего писать в одно и то же место. Это некоторые флаги, в том числе об предыдущем состоянии устройства и счетчики. Некоторые можно писать линейно, "по кругу", так как если не успели обработать последние, то первые уже теряют актуальность. Я понимаю, что писать нужно не в одно место, я про это говорил в первом посте. Менять железо - не вариант. Нужно просто продумать алгоритм, при котором устройство бы продолжало нормально функционировать даже при ~80% битой памяти у флеши (но сигнализировало бы о том, что не плохо было бы при случае пройти ремонт). Я просто думал, что есть уже какие-то open-source решения, что бы можно было бы хотя-бы от чего то оттолкнуться. Но видимо ничего нет, и впереди меня ждет увлекательный путь велосипедостроения...
  9. Привет, Есть обычная SPI флешка 64 мбита (8 Mb), на которую постоянно, фактически ежеминутно, пишутся данные. Соответственно часто происходят операции очистки (erase) и программирования секторов. Я склонен к тому, что при такой интенсивной работе не исключено появление через год-два "битых" страниц. Поэтому хотел узнать, кто как решает эту проблему? Довольно странно, но гугль на тему "SPI flash defect list", "spi flash ecc" и подобных запросов толком ничего не знает. Сделать дефект-лист, куда заносить номера дефектных страниц? А если запорится страница, в котором лежит этот самый дефект-лист? Сделать в начале каждой страницы флажек - исправна страница или нет? А если я не смогу записать флажек, что вот эта страница не исправна, потому что она не исправна и не пишется в нее ничего? Такой вот простой, но внезапно не имеющий решений в лоб вопрос у меня.
  10. А мы занимаемся По работе плотно сижу на NXP и STM32. Но, честно говоря, нет какого-то ментального единения с железом. Вроде те же микроконтроллеры, но без души они. Все эти тонны прослоек, библиотеки, можно писать задней левой ногой, не думая о размере памяти или флеша. Короче, как будто на бейсике под винду пишешь, разницы мало. А душа просит брейнфака, чтоб 8 бит, 10-15 команд на все про все и тд. Чем хуже, тем лучше Чтоб думать надо было, когда пишешь. Да дело в том, что я всю логику практически снял с платы, там на этот ASIC защелка была 74HC374, я ее тоже снял, так что фактически он сейчас отключен от общей шины. Оставил только обвязку проца в основном. С портами там не все так просто. Плата - многослойка, поэтому срисовывается плохо. Светодиоды заходят на 74HC74, а вот к каким ногам проца она идет - пока не вызвонил. А ноги UART в воздухе у проца висели, поэтому подумал что проще всего таки с них начать общение. Ну и вообще, если поднимется терминал, то это ж считай дело сделано - туда можно всю отладочную инфу необходимую выводить. А без терминала очень трудно отлаживать. Ну не знаю, сомневаюсь что если я ему 1Гц буду подавать, он вообще стартанет. У него же свои внутренние регистры есть, кто знает как они тактуются внутри.. Я больше склоняюсь к тому, что можно какими-то сигналами типа HOLD удерживать шину на некоторое время, но не разобрался..
  11. Привет, Значит попала ко мне плата от какого-то старого принт-сервера с тремя LPT-портами. Выглядит так: Большая фотка без рекламы без СМС Железка сама по себе мертвая, не интересная в текущих реалиях, со следами ковыряния в районе стаба питания. На железке срама 611024 две штуки, под срамой две флехи 29F002. В этом же районе две защелки 74HC373 и самое интересное - камень Am186em-40, то есть 40MHz. Он в левом верхнем углу. Дальше там по середине неведомый чип EK10A002 SC001/58200001 и в правом верхнем углу PHY-ethernet DM9102F. И рассыпуха везде по мелочи. Сначала хотел просто сраму и флехи повыдирать, остальное в утиль. Но так как с 8086 у меня дружеские отношения (кодил давно в детстве на ассемблере) захотелось чего-то запустить железяку. Ностальгия что-ли давит, не знаю. Ну починил конечно питание, 5V там везде на плате, просто все. Адски грелась DM9102F, снял ее. Запаял панельки под EEPROM, чтоб удобнее шить было. Считал оригинальную прошивку, по ней выходит, что принт-сервер вроде как от фирмы SerComm. Выложил на всякий случай сюда: https://dl.dropboxusercontent.com/u/3318932...rint_server.rar И дальше стал искать, чего бы собственно прошить. Набрел на некий E86MON от самой AMD, еле нашел. Гуглится по названию архива ck000901.zip , скачивается с сайта datasheetsarchive (я удивился, что у них не только PDF хранятся, но и ZIP). Ну скачал, поднял виртуалку с досом и win3.11, поставил Microsoft C какой-то древний, MASM. Скомпилял, разделил на две половины чет/нечет, прошился. К процу подпаялся на ноги RX/TX. Включил - ничего не выводит в терминал. Ладно, беру китай-клон Saleae восьмиканальный, паяюсь на шину AD0-AD7: Смотрю - движуха какая-то есть: Причем похоже вроде на старт - там в прошивке идет первая команда перехода jpm far (0xEA), потом F8 - начало адреса сегмента. Между ними проскакивает сами адреса. Шина 16-ти битная, каналов всего 8 у анализатора - не могу всю картину увидеть. Но вроде движется что-то куда-то. Значит проц живой по идее. Ладно, лезу в исходники того самого E86MON, хочу практически сразу после старта начать валить в UART какой-нибудь символ, пускай "2". Оставляю настройку UMCS и LMCS: mov ax, CS_UMCS_512K+CS_WAIT3+CS_IGXRDY+CS_UMCS_RESERVED ;ПЗУ-хи out dx,al ; setup LMCS register to cover entire RAM area at 0 wait states ; mov dx, CS_LMCS ;срама mov ax, CS_LMCS_512K+CS_WAIT0+CS_IGXRDY out dx,al Дальше там прыжок на определение размера срамы, оставил его, и сразу после этого вставляю свой говнокодес: serial_init: mov ax,64 ; 19200 @40MHz mov dx,0FF88h out dx,al mov ax,12 ; mode 1 asynchronous 8 N 1 mov dx,0FF80h out dx,ax forever: mov al,'2' call cout jmp forever ; send 8-bit character in al to terminal ; entry: al cout: push ax mov dx,0FF82h cout1: in al,dx test al,40h; test TXE jz cout1; wait until TXE = 1 pop ax mov dx,0FF84h out dx,al ret Включаю - в терминале молчек. Смотрю в лог анализатор - на шине что-то молотит, но если сначала визуально идут разные команды, то спустя какое-то время визуально начинается повторяющийся паттерн - возможно крутит какой-то цикл, возможно мой цикл. Но в терминале - не але. Руководствуюсь в основном вот этим документом: http://support.amd.com/TechDocs/19713.pdf Вдруг кто работал с этими камнями: Достаточно ли для того, чтобы заработал UART сконфигурировать его так, как это сделал я, или нужно еще что-то где-то предварительно настроить? Мож ноги ему явно указать как-то надо, или не знаю, прерывания явно запретить? Можно ли как-то "пошагово" выполнять опкоды? Чтоб я хоть полностью шину данных мог посмотреть. Спасибо.
  12. Хотя да, если верить какому-то даташиту на 8051, который нашел, то простая команда у него при 12Мгц выполняется за 1мкс. По спецификации USB 1.1 low speed один бит передается за 666,7нс. То есть даже не успеет бит обработать, не говоря уже о том, что бы еще параллельно поймать конец пакета (когда D+ и D- в нуле). В принципе, конец пакета можно и не ловить, а разбирать с начала пакета, скажем первые 88 бит, а дальше переходить уже на декодинг... Но, черт возьми, действительно не укладывается даже на декодинг одного бита по времени. Действительно, проект по первой ссылке, кажется теперь и мне сомнительным. Хотя, может у 89C51 какой-нибудь множитель можно x2 включить, или время выполнения команд другое. Не могу на него нормальный даташит найти, попадается только краткий. Да хотя какое - другое, ну максимум что сделали - однотактовые команды все, то есть та же микросекунда на все про все. Возможно в схеме ошибка, и камень тактуется от 24MHz кварца - тут уже разговор другой.
  13. Молодое может быть и не знает истории, но хотя-бы интересуется. Согласитесь, что уже хотя бы это (интерес) не плохо. Ну промахнулся я с 90-ми, но позвольте, и вы тоже с лампами тогда промазали, причем похлеще меня. 4Кб кода незнакомой архитектуры - да, мне кажется много. Даже для родного и близкого мне x86 ассемблера - это прилично, хотя читать (а когда то, давным-давно, и писать) могу без словаря. Чем вас так задела эта тема? Я прекрасно понимаю, что практического применения у сабжа нет. Я же написал, что интерес чисто спортивной, вашими словами - цифровая археология. Примерно такие матерые дедушки эмбедеры тоже лет 7-8 назад твердили, что на PIC16F не может быть USB потому что такого быть не может, и что система команд ущербная, и частота никакая, и практически ваши слова один в один повторяли. А потом чувак взял и сделал, принял вызов, так сказать. Конечно пришлось идти на кучу ухищрений и не стандартных решений, разгона частоты с дефолтных 20МГц до 24МГц. Но сделал, и оно прекрасно работает. Вот я сам на прошлой неделе нашел у себя давно валявшийся PIC16F628A и сделал на нем музыкальную USB-безделушку за пару вечеров. Чисто для себя, ради забавы. Все работает, песенки поет и теплыми ламповыми DIP-корпусами поблескивает. Конечно, находясь в здравом рассудке, никуда в продакшен я такое не потащу. Конечно там ARMы. Конечно там USB3. Разве я с этим спорю?
  14. Как вы правильно и заметили, чисто из спортивного интереса. Всерьез конечно использоваться такое решение не будет. Ну и немножко в учебных целях Классический, это хотя бы тот флеш атмеловеский AT80C51, который в статье. Я не очень с 8051, поэтому собственно и обратился в этот раздел к людям, работающих с этими камнями. Вдруг во времена нелегких советско-российских 90-хх кто-то тоже поднимал на сабжах USB, так как выбора не было? Дизассемблить 4кб кода - мне кажется слишком трудно.
  15. Привет, Ну все знают, что есть софтовый USB для AVR (V-USB). Есть аналог и для PIC16F (16fusb). Есть попытки и для MSP430 (Mecrimus-B ). А вот не попадалось ли кому такое же решение для "классического" 8051? В смысле, исходников. То, что принципиально такое возможно, косвено можно судить по этому проекту: http://www.cqham.ru/usb-hdd.htm (к сожалению, без исходных кодов).
  16. Итак, прям щаз ради интереса запаял обратно 050 на плату - и... и работает на PA2, PA3.. Действительно, хоть и в грубой форме, но HHIMERA оказался прав. Первый раз я видимо что-то не так заинициализил, ибо программер из меня тот еще..., и торопился... В общем, в даташите есть ошибка, на практике оказалась верна первая таблица. USART у stm32f050f4p6 находится реально на PA2, PA3. На всякий случай кусок говнокодеса инициализации, который работает и на 030f4 и на 050f4: /* NVIC configuration */ /* Enable the USARTx Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); /* Writes data to the specified GPIO data port */ GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_1); /* Connect PXx to USARTx_Rx */ GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_1); /* Configure USART Tx and Rx as alternate function push-pull */ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIO_Speed_Level_3; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_Init(GPIOA, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = 1200; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); //GPIO_ResetBits(GPIOF, GPIO_Pin_0); USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); USART_ITConfig(USART1, USART_IT_TXE, DISABLE); USART_ITConfig(USART1, USART_IT_ORE, ENABLE); USART_ITConfig(USART1, USART_IT_NE, ENABLE); USART_ITConfig(USART1, USART_IT_FE, ENABLE); /* Enable USART */ USART_Cmd(USART1, ENABLE);
  17. От перестановки мест слагаемое не поменялось - прям на сайте для STM32F031F4 эррата девственно чиста, в даташите точно такое-же несоответствие таблиц, что и у 050f4p6. http://www.st.com/web/catalog/mmc/FM141/SC...74/LN7/PF259776 PS: Заменил седня на STM32F030F4P6 - полет нормальный, уарт завелся на PA2 и PA3, даже без изменения прошивки - влил просто ту, которая не работала на 050. Такие дела...
  18. Да, решили просто поменять контроллер на stm32f030f4p6, потому что все остальные ноги тоже заняты и резать дороги и паять МГТФ просто некуда. Можно было конечно программный УАРТ завести, почитал - это действительно очень просто, но решили не костылить и делать по феншую до конца. Спасибо всем участникам, я просто хотел лишний раз убедиться, что это не я глючу, а реальный баг даташита.
  19. Не знаю, почему. А почему? По первой таблице из даташита - да, должно так и быть. А вот по второй таблице, где ремап пинов на альтернативные функции - уже не так. И на практике у меня так, как в таблице с ремапом.
  20. Смотрю в даташит на похожий контроллер stm32f030f4p6, вроде как позиционируется как замена сабжу, и вижу в первой таблице и потом дальше Все, как и должно было бы быть у stm32f050f4p6, судя по первой таблице из его даташита. Вот только на практике оказалась верна вторая таблица из его же даташита, где PA1 - TX, PA2 - RX: Что я смотрю не так и куда мне смотреть?
  21. Обратил. В сноске написано: "This alternate feature is available on standard dies only". Честно говоря я не знаю, что это значит. Ну, даже допустим, что они имели ввиду разные маркировки. Но все равно, табличка номер один не сходится с табличкой номер два из одного и того же даташита. Зачем мне что-то выдумывать?
  22. Не знаю, видимо снят с производства, хотя в китае продается по рублю за мешок до сих пор. Да и в России купить не проблема. Плохо, что в errat'е ни слова про несоответствие ног USART. Я ведь и ее читал тоже. Как я понимаю, его новый аналог STM32F030F4P6, все то же самое, только в даташите уже нет несоответствий. Просто не ожидал от ST такого, тем более камень древний, дешевый, должно было все тыщу раз на форумах обсудится. Так даже не нашел упоминание о проблеме в инете...
  23. Прошу прощения, промахнулся при печати. Камень конечно stm32f050f4p6 Даташит: http://www.st.com/web/en/resource/technica.../DM00065136.pdf
  24. STM32F050F5P6 и USART на ногах PA2-PA3

    Доброго дня. Смотрю в даташит на сабж: PA2 - USART1_TX PA3 - USART1_RX Смотрю дальше: Вопрос - это как так? По серии экспериментов получается, что USART1 реально находится на PA1 и PA2. Но устройство уже готово, ибо смотрел я ессно в первую табличку. Никто не видел каких-нибудь "софтварных" реализаций UART, скорость то вообщем-то нужна никакая - 1200 бит, можно и самому ногами подергать, но так не хочется велосипед с нуля писать. Печаль...
×
×
  • Создать...