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

IgnatiusF

Members
  • Постов

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

  • Посещение

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

  1. Ну вот проверю это на железе, тогда и переделаю. Если дело только в частоте, то можно и сглаживание поставить. Или придумать что-либо ещё. Вам даже не показалось возможным, что кому-то легче учиться, имея наглядные примеры? Я и вправду неохотно воспринимаю информацию без наглядного представления что и зачем. С МК я работать уже умею, точнее изучил все основные принципы, и уже запрограммировал один из них на некотором уровне. С точки зрения ДШ уже тоже все, что хотел прочитал. Теперь мне хочется сделать для себя образовательную плату, на которой будет все нужное для работы, и уже дальше практиковать все это, ничего не отсоединял и не присоединяя. Дал питание, вставил провод в компьютер, и программирует на свое счастье сколько душе угодно. Может и ошибусь при разводке платы, но сильно боком мне это не выйдет, изучу проблему, переразведу и закажу новую исправленную. Немного денег уйдет, но дело того стоит. Да ничего не мешает, уже взял. Один на 100 ног, и в связку с ним ещё на 64. Для полного счастья. Скорее всего косяки будут, но мой путь "джедая" начнется с первого боя. Плохой опыт - на мой взгляд ни чуть не хуже, чем хороший, должно быть и то и то. Я изучаю гораздо быстрее, когда я заинтересован в информации и уже имею не абстрактное представление об изучаемом. И я очень долго и не спешно усваиваю информацию, когда плохо представляю конечный результат. Так что долго - понятие относительное. Я старательный в плане творчества, все успею. Но, конечно же, никому я подобный путь не предлагаю, тут все зависит от человека.
  2. Даст мне удовлетвориться его работой. К тому же не просто тупо горящий, а только во время передачи данных. Тут по большей части все просто - светодиод горит постоянно - что-то не работает А чтобы не горел постоянно из-за косяков подключения, нужно правильно выполнить подключение,. Чтобы светодиоды горели только когда шина прижатом к земле состоянии. Поэтому я и задал вопрос. Микросхема использует место на плате. То самое, которое я лучше бы сэкономил для размещения всех остальных компонентов. Разводка потребуется для расширителей портов, потому что я располагаю в непосредственной близости самих шин. Если они будут мигать гирляндочкой где-то с краю платы в одной кучке, это будет не так удобно, как расположенные вблизи шин. Вот это и будет требовать дополнительной разводки. Лишний геморой. Ну нафиг мне не нужны готовые платы. Ну вот честно. Я практикуюсь создавать собственное устройство. Обычное программирование мне вообще никак не вканывает. А если делать что-то самостоятельно, то максимально качественно и удобно, но опять же, для себя удобно, а не для кого-то другого. "Мозхи не ипу", сижу библиотеки кастомные для платы рисую, попутно уже все решив со схемотехникой благодаря этой теме уже постов 10 назад.
  3. Ну, что на счет этого, то и понятно, что биполярный pnp или полевой pn брать надо, как раз эту схему и представлял наверху. И светодиоды если подключать катодом к шине, то загораться они будут только в момент опускания шины к земле, то есть во время передачи
  4. Во-первых, на это уйдет слишком большое количество портов обоих микроконтроллеров, или еще хуже, поставить несколько микросхем расширителей на SPI или I2C. Место, разводка, деньги. Во-вторых, что мне даст эта "программная мигалка" в случае, если будет косяк в программе и шина на самом деле просто работать не будет? Порт, тактирование, настройка I2C, dma и т.п? Я все-таки начинающий программист МК, ошибки будут. Так что эта идея мне кажется даже более бредовой. А почему бы и нет? Хочу видеть, что шина работает, и не по программным проверкам-перепроверкам, а на самом деле. Все таки, мне скорее нужен индикатор состояния. В случае с SPI шиной MOSI MISO могут оставаться как в высоком состоянии, так и в низком после передачи. Как говорится, мелочь, а приятно наблюдать. Вам-то может - более опытным электронщикам это и не особо интересно, а мне как начинающему видеть эти мелочи хочется, чисто для собственного представления. Вот вы знаете, как это будет выглядеть, я вот нет. Мой первый проект был вообще без единого средства индикации чего либо, и об этом я пожалеть успел уже в самом начале работы с ним. Теперь желаю все видеть. Без хотелок ничего не делается.
  5. Да, выразился, видимо, не правильно. Под "Наблюдать "в живую" работу всех шин" я подразумевал наблюдение того, какие шины, коих в проекте как минимум штук 12, когда и как часто работают. То есть как конкретно эти светодиодики мигают мне до лампочки Ну тут, думаю, не особо много разницы полевой или биполярный ставить. Хотя на полевой можно и резистор даже не ставить, так что, скорее всего, я буду смотреть в его сторону, либо в сторону светодиодов через резисторы с необходимым номиналом. Но это, опять же, надо проверить как будет работать
  6. Частота, допустим, будет 100 кГц. Сделал бы в железе, но железа пока не хватает даже для таких простых вещей. Точнее может и хватает, но с имеющимся будет проблемно это проверить Анализатор это круто и использовать, конечно, буду, но задача в другом. Наблюдать "в живую" работу всех шин. Через резистор - ну вот даже не знаю, рекомендуемый номинал резисторов для I2C вообще 20 кОм (где-то прочитал), а при токе потребления светодиода 1 мА надо резистор тогда 800 Ом. Может работать как-то и будет, но так сильно нарушать установленные рекомендации я не хочу. + на светодиодах будет сильное падение напряжения, так что обязательно придется ставить доп. резисторы, что повлечет еще большее уменьшение общего сопротивления. (Хотя, при падении 2.5 В может быть даже особо не повлияет на работу шины?) Одновибратор - звучит интересно, только не 555АГ3 - она же все место займет со своими-то габаритами. Ну, и как я понял, на каждые 2 провода придется по 1 микросхеме. Многовато, да и нет задачи видоизменять сигнал. Пусть светодиод моргает как есть. Ну, в общем решил так - как-нибудь умудрюсь проверить работу с резисторами, благо есть stm32 на переходнике с двумя i2c. Чтоб отдать и принять. Осталось только взять где-нибудь из под левой пятки 3.3 В для питания.
  7. А, ну да, нагрузку переместить к стоку, спасибо
  8. Всем привет! Делаю образовательную плату для собственной практики, и захотелось мне сделать наглядную визуализацию работу интерфейсов на плате при помощи светодиодов. Чтобы на каждую линию. Из идей (для I2C): 1. Помимо подтяжки резисторами добавить светодиоды, присоединенные катодами в линиям. 2. Сделать это при помощи биполярного транзистора или полевого. Первый вариант, по моим ощущениям, как надо работать не будет. Если использовать резисторы (при напряжении 3.3 В и падении 2.5 В) больше кОма, то явно ничего видно не будет на светодиоде, а в случае малого номинала будет долгий спад сигнала. А второй попробовать решил и нарисовал вот такой вариант: Однако, этот вариант будет малость громоздким, учитывая количество использованных интерфейсов. Помогите выбрать оптимальный вариант подключения светодиодов Всем спасибо!
  9. Да все работает уже, даже как надо, без глюков и прочих приколов. Регистры вернул в прежнее состояние, то есть в то, которое сам выставлял. Байты идут в обе стороны, прерывания работают, тактирование тактирует исправно. 20 МГц, МК F107, а не 103. То есть почти вся "неработа" заключалась в не настроенном переходнике MOXA usb - rs-485
  10. Мозг мой из соломы, uPort 1150 еще и настраивается. А я, блин, все это время сидел с обычным rs-232 и воображал, что это rs-485 4w.
  11. Ну вот и опять не работает Прерывание приема работает очень странно. Если присылать данные - то прерывание не вылазит, а если сделать простое подключение через терминал, то есть нажать кнопочку "Connect", то прерывание срабатывает, и выплевывает в терминал 0. Помогите пожалуйста, столько нервов убил, а результат все тот же. Пробовал RX настраивать на floating, pull-up и pull-down, все равно одно и тоже Еще странность какая-то с MOXA uport 1150. Подключал по мануалу, TX+ к RX+, RX- к TX- и так далее, однако пришлось в итоге подключать с точностью до наоборот, TX к TX, минус к плюсу, и только тогда прием работает.
  12. Содрал временно состояния этих регистров: RCC->CR = 0x30035A83; USART2->CR1 = 0x0000200C; RCC->CFGR = 0x04000005; Работает.
  13. Бодрейт HAL'ом ставится такой же. Попробую завтра на SPL запустить. Посмотрим, что выйдет. RCC_CR все таки прочитался, значения тоже завтра проанализирую. А сейчас скопировал значение регистра с HAL в мой пример - фига. Однако, если кому понадобится, вот такие значения получились: 0x30035A83 или 0b0011.0000.0000.0011.0101.1010.1000.0011.
  14. STM32F107RCT6. Из "анализаторов" лишь терминал и светодиоды. Иного не дано. Тактирование стабильное, если про железо, проблема, возможно, в его конфигурации, ведь с HAL проблем нет. Отладчик тоже нема - только: Бедненько, да. А разве не надо еще на 16 делить?
  15. Ой, ахаха, простите, смотрю в книгу, вижу...: Кстати, почему-то регистр RCC->CR у меня содержит все нули, проверяю вот так: str[8] = RCC->CR>>24; str[9] = RCC->CR>>16; str[10] = RCC->CR>>8; str[11] = RCC->CR; HAL_UART_Transmit(&huart2,str,12,0xFFF); Не может же такого быть, верно?
  16. Вот только вся проблема в том, что писать в регистры я вполне умею, но все равно что-то идет не так. Хотел посмотреть что HAL выставляет в BRR, однако, судя по дадашиту, чтение этого регистра запрещено. А очень жаль( А вот в SPL я не заглядывал еще. Надеюсь, увижу там что ищу
  17. Простите за откровенное вранье с моей стороны, быстро собирался перед написанием поста и кое-что подкорректировал. Запускаю я не USART1, а USART2, и для него не расписано прерывание, поэтому перед отправкой откорретировал вопрос. А так прерывание работает, оказывается. Однако работа все равно идет странным образом. UART1, подключенный через USBtoTTL на клоке 20 МГц при посылке сплошных единиц результат такой: (E0 F0 F0 E0 E0 E0 F0 F0 F8 F8 E0 F0 E0 E0 F0 F0 F0). Возможно это помехи, идут одним двухжильным проводом. Однако всего-то 10 см с пайкой. Через UART2, подключенный через MOXA по RS-485 (4w), при посылке сплошных единиц идет: (FE FE FE FE FE FE)
  18. Насколько я знаю, это не обязательно, они же и так разрешены, не верно? SysTick тикает и без этого. В любом случае самое важное - бодрейт и тактирование, с ними реально что-то не так. По UART идет совсем не то, что нужно, точно не помехи и пр. т.к. это подключается вообще через MOXA по RS-485 и работает с HAL. При включении битов SW в 01 (HSE SysCLK) UART вообще ничего кроме нулей не отправляет
  19. Не удается проинициализировать работу UART2 на скорость 19200 бод. Не вызывается прервание совсем, отсылаются постоянно нули на всех скоростях, если ставить System clock switch в 01 (HSE). При работе от RC генератора выдает уже просто не то, что нужно. Кварц рабочий, и вообще все работает, при использовании библиотек HAL. SysTick выключил потому, что были подозрения на конлфикт приоритетов. Внизу представлена именно та часть кода программы, которая не работает, то есть сам UART. Проект скоро сдавать, а использовать готовую библиотеку HAL не хочется совсем, уже несколько дней парюсь и не могу найти проблему. Попробовал разобраться что пишет в регистры HAL, однако не смог т.к. не хватает знаний, значения регистров все такие же, кроме PLL (не используется) и RCC_CR1 (в HAL почему-то полностью равен 0). Проверял передачей данных по UART. Регистр BRR не удалось считать т.к. он только для записи. У меня записано так: USART1->BRR = 0x412; //20MHz/16/19200 = 65,104. Где искать следует ошибку?
  20. Не могли бы вы, люди добрые, объяснить отличия четырех-проводного RS-485 и RS-422? Можно ли к одному четырех-проводному RS-485 подключить множество устройств приемопередатчиков? Заказал в интернет-магазине микросхему ADM488ARZ, в ДШ описывается как "Full-Duplex, Low-Power, Slew Rate Limited, EIA RS-485 Transceivers". Является ли эта микросхема полноценным четырех-проводным RS-485 приемопередатчиком с возможностью подключения нескольких устройств, или под дуплексным режимом понимается использование RS-422?
  21. Oxford, вот тут вы зря. У меня данный проект уже полностью готов на микроконтроллере от Atmel, и вопрос состоит в том, чтобы перенести его на более продвинутый STM32. Что до отладки, мне уже предложили воспользоваться отладочной платой с STM32 для отладки программы, пока печатная плата устройства будет ехать их Китая.
  22. Вот с этим - то и проблема, он еще не приехал)
  23. Судя по тому, что я понял - работать с этим битом требуется только при использовании самописного бутлоадера, а при использовании аппаратного он выставляется автоматически?
  24. Контроллер STM32F378RTC6. Без платы, имеется ввиду, если что. BOOT0 я на распиновке вижу, а где находится BOOT1? Я ни в одном документе его не видел, ни на одной схеме, однако на отладочных он присутствует. А в N2606 вообще пишут, что это бит, а не пин для F378. Можете немного разъяснить? UPD: Ясно, после ресета BOOT1 работает на ноге PB2 на F103, однако в моем варианте после ресета такого нет.
  25. К сожалению выбора нет. Устройство должно быть уже готово меньше чем через месяц. Так что придется дергать бут и делать ресет. Вот вопрос, ндаа... Толи понял, то ли ничего не понял. Читаю AN2606 на счет того, где этот boot1 находится, увидел что в таблице это не пин, а бит, и теперь не понимаю где выставляется. И еще какой интерфейс (UART, I2C, SPI, 1,2,3...) используется для программирования. Нашел блок схему: То есть притягиваем boot0 к питанию (Pattern2 | Boot0(pin) = 1 and nBoot1(bit) = 1), жмем RESET, и через любой USART передаем прошивку? Простите если туплю и не понимаю, для меня это и вправду не очевидно...
×
×
  • Создать...