Jump to content
mazzi

Arduino на Atmega32A не работает Serial

Recommended Posts

Друзья, сделал плату на Atmega32A и решил запрограммировать её из оболочки Arduino. Подкинул файлики в среду разработки, прописал всё как советовали в интернетах, написал проверочную программку и подёргал ножками - всё работает. Стал писать код обмена последовательными данными с помощью Serial и оказалось, что шлёт он мне только 0x00 и 0x80 в хаотическом порядке. Продолбавшись некоторое время без толку, решил, что проблема в железе, написал проверочную программу в другой среде - всё прекрасно работает. Выходит, что неправильно работает Serial.

Теперь вопрос - где рыть, для устранения данного бага? Что нужно сделать мне, друзья? Выручайте.


Пока ты жив, надежда есть.

Share this post


Link to post
Share on other sites

Правильно. На обычной ардуине скетч работает, на atmege32 не работает.


Пока ты жив, надежда есть.

Share this post


Link to post
Share on other sites

Взаимодействие устройств IoT от Microchip с облаком Google

Благодаря облачным технологиям появилась возможность реализовать сложные проекты на базе микроконтроллера путем перераспределения вычислительной нагрузки между микроконтроллером и облаком. Простые в использовании отладочные платы, такие как AVR- и PIC-IoT WG, позволяют выполнять ресурсоемкие вычисления, передавая их в облако.
Подробнее

Приглашаем на вебинар «Умный и безопасный дом от STMicroelectronics – строим вмеSTе!» (23.06.2021)

Приглашаем 23/06/2021 всех желающих принять участие в вебинаре, посвященном проектированию и разработке систем умного дома на базе компонентов STMicroelectronics. Предлагаемые ST ресурсы позволят разработчику легко построить каркас системы и быстро создать прототип своего приложения. На вебинаре также расскажем о беспроводных интерфейсах – ведь благодаря поддержке стандартов BLE и ZigBee разработчики смогут при необходимости интегрировать устройства сторонних производителей и создавать открытые системы.

Подробнее

Это мне VPN сделал, три раза показывал, что нет доступа к URL, а потом форум мне сообщал, что "тема не может быть создана, попробуйте ещё раз через 42 секунды".

Edited by mazzi
ошибка

Пока ты жив, надежда есть.

Share this post


Link to post
Share on other sites

LDH-25/65 – новые серии повышающих DC/DC LED-драйверов от Mean Well

Компания Mean Well расширила семейство популярных повышающих DC/DC LED-драйверов LDH двумя новыми сериями меньшей и большей мощности – LDH-25 и LDH-65, соответственно. Новые серии, обладая высоким КПД, применимы для изготовления экономичных светодиодных светильников с питанием от автономных источников тока, в том числе – на транспорте. Конструктивно драйверы выпускаются в двух различных вариантах.
Подробнее

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Когда в универе учился, у нас компания была (еще 7 человек). Тоже радиолюбы, ИТшники. Когда мы толпой собирались, народ даже не пытался с нами общаться. "О, смотри! Басурманы идут!"
    • И какой смысл тогда использовать микрокомпьютер? То что вы перечислили, с успехом на ESP32 можно реализовать. Лично меня больше интересуют цифровые фильтры. Но я никогда с ними дела не имел и даже не знаю, с какой стороны подступиться. Пришлось делать аналоговые фильтры, а это место на плате...
    • Читал, читал ленту и ... утомился. Буду без личностей, ибо я не есть суд в последней инстанции. Буду только констатировать факты. СОЦИАЛЬНЫЙ БЛОК: 1. пришло другое поколение детей/подростков, оно не хуже и не лучше старого, оно просто другое. 2. мы, как вид живых и почти разумных, находимся на стадии рождения новой формации общества (социальной и технической). 3. нет четко выверенных и выставленных (кем???) маяков развития. ОБРАЗОВАТЕЛЬНЫЙ БЛОК: 1. на фоне увеличения числа одарённых детей наблюдается резкое снижение интеллектуального уровня общества в целом за счёт снижения прослойки между "дурачок" и "талантлив". 2. снижение "серой" прослойки от "дурачок" до "талантлив" ставит педагогов в кризис - на какой уровень образованности опираться, ведь одним будет уже запредельно  не понятно, а другим нудно и не актуально. 3. снижение "серой прослойки" приводит к деформации промежуточных звеньев образования. Уже нет средне специального образования, стагнирует  и дополнительное образование призванное, по априори,  выполнять функцию предпрофильной подготовки МОРАЛИЗИРОВАННЫЙ БЛОК А мне всё напоминает анекдот: "...Петька прибегает к Василий Ивановичу...Василий Иванович, а скока стоит ядрённа бомба? ... так радуйся, Василий Иванович, ОНО к нам в огород летит!..."
    • Это поучительная история о пользе знания сленговых выражений в общении с простыми смертными, кои компьютер видели лишь по TV... Итак, иду по улице, подходит группа молодых людей, лет 17-18 от роду, просят закурить... Я, как человек давно курящий, отказать не могу, а посему уделяю им парочку Camel-ов... Далее просят спичку... Щелкаю Zippo-ой... Просят денег на дорогу до дома 8-(..) (Они) - Ты, в натуре, чо, денег дашь? (Я) - А зачем вам деньги ? (О) - Ты чо, в натуре, Вася, оборзел? (Я) - Ты кого за мастдай юзаешь, ламер виснутый? (О) - лица вытягиваются... (Я) - Вы же меня анноите, сукси... (О) - Ну ты чего, мужик, офигел? (Я) - Я ведь сейчас Фариду нетмейл кину, вы ведь все в пожизненный даун осыпетесь, как девяносто пятый... (О) - Не, братан, давай разберемся, кто ты такой? 8-() (Я) - Мальчики, я ФИДОшный поинт, а вы даже на блевавщиков не тянете, только скрипите чего-то на две четыреста без коррекции... (О) - Чего делаем 8-(.............) (Я) - Скрипите, причем без намека на коннект... (О) - Ты чего, крутой? (Я) - Схэнг-апнись, бага... Твое место - за тысячной Амигой... (О) - Не, ну ты чо? Нет денег, так и скажи, а чо наезжать-то???? (Я) - А еще раз увижу вас здесь, комплейн напишу NEC-y, и про вас и поинты ваши забудут... Тискайте альт-аш и рвите отседа....... Не скажу, что убежали, но двигались не в пример шустрее, нежели ко мне... Так что учите спец. словечки, круто, в натуре... :))))) Комментарий: А если отдельные фразы сопровождать точным ударом в репу слушателя, то эффект просто потрясающий.
    • да CEC то включен. И все прекрасно управляется пультом в том числе и от от телека. Только цель то не в этом была
    • Приборы в продаже. Скидки не исключены.
  • Similar Content

    • By snake1122a
      Недавно купил свои первые три ESP32 устройства - Wemos Lolin32 . Попробовал загрузить первый тестовый скетч - сканирование доступных wi-fi соединений, включенный в состав прмеров Arduino IDE.
      Вначале были проблемы с прошивкой, пока не поставил резистор между GPIO 0 и общим проводом. После этого прошивка проходит практический без проблем. Но не совсем понятно, нужно ли отключать резистор после прошивки, и если да, то когда.
      Результаты тестирования различаются при выводе на монитор порта (serial). Только один из контроллеров после загрузки скетча показывает все сообщения из функции инициализации на мониторе, а затем повторяющиеся сообщения из основного цикла, который и производит сканирования wi-fi соединений. Со вторым устройством проблема такая, что он он выводит только часть сообщений функции инициализации, а после вызова функции инициализации вай-фая последующие сообщения не выводятся. Не выводятся также сообщения из цикла, но если перезапустить устройство кнопкой сброса, то сообщения из цикла выводятся нормально, хотя сообщений инициализации нет. Аналогичная ситуация и с третьим устройством, причем это повторяется стабильно при каждой перепрошивке и перезапуске.
      В целях тестирования я переписал скетч так, чтобы в нём не было команд вывода на монитор. После сканирования wi-fi соединений скетч просто моргает столько раз, сколько соединений было обнаружено. Такой скетч работает стабильно и одинаково, без проблем, на всех трех устройствах. 
      Кроме проблемы вывода на монитор, второе и третье устройство после прошивки не получается просто прошить ещё раз, выдаются сообщения:
      could not open port
      A device attached to the system is not functioning
      Failed to execute script esptool
      does not exist or your board is not connected
      Чтобы прописать ещё раз, приходится каждый раз переинсталлировать USB драйвер. Вообще, сразу после загрузки скетча раздается звук Windows, сообщающий об отключении USB устройства. Устройство №1 перепрошивается без проблем.
      Напрашивается вывод, что проблема во втором и третьем устройстве не в самой микросхеме esp32 а в микросхеме контроллера UART/USB CP2104. Скорость обмена с монитором выставлена одинаково в программе и в окне монитора: 115200 бодов. Есть ли еще какие настройки или варианты проверки?
       
      #include "WiFi.h" void setup() {     Serial.begin(115200);     delay(1000);     Serial.println("Start setup");     // Set WiFi to station mode and disconnect from an AP if it was previously connected     WiFi.mode(WIFI_STA);     WiFi.disconnect();     Serial.println("Setup done"); } void loop() {     Serial.println("scan start");     // WiFi.scanNetworks will return the number of networks found     int n = WiFi.scanNetworks();     Serial.println("scan done");     if (n == 0) {         Serial.println("no networks found");     } else {         Serial.print(n);         Serial.println(" networks found");         for (int i = 0; i < n; ++i) {             // Print SSID and RSSI for each network found             Serial.print(i + 1);             Serial.print(": ");             Serial.print(WiFi.SSID(i));             Serial.print(" (");             Serial.print(WiFi.RSSI(i));             Serial.print(")");             Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN)?" ":"*");             delay(10);         }     }     Serial.println("");     // Wait a bit before scanning again     delay(7000); }  
    • By Kirill Lubinets
      При работe с РЕАЛЬНЫМ последовательным интерфейсом RS485 в виртуальной машине, виртуальная машина глохнет через пару секунд.
      В чем может быть причина? Как разрешить эту проблему?
    • By Инженер!Туленков
      Добрый вечер форумчане! Создавая некий проект на Arduino и Raspberry возникла интересная ситуация.
      Были закуплены 10 Arduino Nano v3 и подключены к raspberry. По незнанию и не сталкиванию ранее с данной темой увидел что Vendor ID Product ID одинаковые на всех ардуинах и Serial (код) вовсе отсутствует у всех ардуин.
      В проекте необходимо что бы каждая ардуина была уникальная хоть в чем то.
      Далее каждая уникальная ардуина будет привязана естественно к своему COM порту символьными ссылками для использования.
      Каким образом можно придать уникальности каждой ардуине? Как изменить информацию? Возможно ли это осуществить через ch430?
      Общий процесс я представляю. Интересует конкретное ПО или примеры из опыта.
    • By awpe01
      Здравствуйте,
      да, здесь уже было про 74hc165, и поиск тому подтверждение, но у меня не получилось просто взять схему из интернета и воткнуть "лишь бы заработало", и такая элементарная (для кого то) задача вызвала кучу вопросов:
      есть блок на 16 кнопок, 74hc165 и МК (16Мгц),
      нужно последовательно получить состояние всех кнопок, при этом нужно иметь ввиду, что в предыдущем цикле могли быть считаны не все 16, а например, 13 кнопок, поэтому нужно при каждом чтении заново записывать данные в параллельные регистры. Количество управляющих сигналов надо свести к минимуму.
      1) Читаю документацию по 74hc165 от NXP - "When the parallel load (!PL) input is LOW, parallel data from the D0 to D7 inputs are loaded into the register asynchronously.", я это понимаю так, что когда на !PL низкий уровень, то что есть на входах D0-D7 то и будет на внутреннем регистре вне зависимости от других сигналов типа !CE или CP. Далее пишут "When !PL is HIGH, data enters the register serially at the DS input and shifts one place to the right (Q0 -> Q1 -> Q2, etc.) with each positive-going clock transition." т.е. когда на !PL высокий уровень, с каждым нарастающим фронтом на CP данные во внутреннем регистре будут сдвигаться на 1 позицию, при этом в первый D триггер будет записано значение из DS. Тут не ошибся?
      2) "The clock input is a gated-OR structure which allows one input to be used as an active LOW clock enable (!CE) input. The pin assignment for the CP and !CE inputs is arbitrary and can be reversed for layout convenience." - !CE и CP подключены через лог. вентиль типа ИЛИ, и несмотря на названия, их можно менять местами ?
      3) "The LOW-to-HIGH transition of input !CE should only take place while CP HIGH for predictable operation." - т.е. если 2 верно, то для того чтобы один использовать для чтения строба, на втором должен быть высокий уровень?
      4) "Either the CP or the !CE should be HIGH before the LOW-to-HIGH transition of !PL to prevent shifting the data when !PL is activated." - если на выбраном (выше) !CE будет низкий сигнал, то при переключении !PL с низкого на высокий уровень произойдёт сдвиг?
      5)(длинный ) :
      Сначала решил соединить так:
      74hc165#1 DS -> GND
      74hc165#1 Q7 -> 74hc165#2 DS
      74hc165#1 !CE -> 74hc165#2 !CE -> GND
      74hc165#1 !PL -> 74hc165#2 !PL -> MCU
      74hc165#1 CP -> 74hc165#2 CP -> MCU
      74hc165#2 Q7 -> MCU
      D0-D7 каждого к кнопкам (между кнопками и регистрами стоят max6818 (время устранения дребезга 60мс))
      название, номер пина, описание
      !PL 1 asynchronous parallel load input (active LOW)
      CP 2 clock input (LOW-to-HIGH edge-triggered)
      !Q7 7 complementary output from the last stage
      GND 8 ground (0 V)
      Q7 9 serial output from the last stage
      DS 10 serial data input
      D0 to D7 11, 12, 13, 14, 3, 4, 5, 6 parallel data inputs (also referred to as Dn)
      !CE 15 clock enable input (active LOW)
      VCC 16 positive supply voltage
      Управление 2мя сигналами - !PL, CP, данные - Q7 второго регистра. на !CE всегда низкий уровень
      Алгоритм:
      1. вначале подаём низкий уровень на !PL
      2. ждём 139нс (по документации "input transition rise and fall rate, VCC = 4.5V, Max=139ns" что кстати ограничивает частоту загрузки данных в каждый регистр до ~7Мгц, это так?), данные записываются во внутренний регистр, читаем первый из 16 бит с Q7 (на второй МС)
      3. подаём высокий уровень на !PL
      4. ждём 139нс чтобы дать время на запись Q7 первой микросхемы в DS второй
      5. начинаем в цикле (16-1 итераций) подавать на CP импульсы, здесь нужна задержка между фронтами импульса ? (МК работает на 16Мгц, можно ли здесь иставить две инструкции установки нужного бита порта в 0 и 1 подряд или нужна задержка?)
      6. после каждого импульса CP читаем бит из Q7 второй микросхемы. (нужна ли задержка ?)
      7. конец
      Ну и как бы всё нормально, так как алгоритм начинается с подачи низкого уровня на !PL то не важно что было до этого во внутренних регистрах.
      6) Однако на просторах интернета было обнаружено предложение соединить !PL и CP и управлять с помощью одного сигнала, это возможно? Какой будет алгоритм?
      Заранее благодарен.
      P.S. Несмотря на то что период max6818=60мс, читать надо на макс. возможной скорости, так чтение состояния кнопок и вывод данных на светодиоды это основная программа, а критические части имеют свои кнопки с прерываниями.
    • By Arthur
      Объясните пожалуйста, для чайников, про протокол передачи данных Universal Serial Bus - просто хочу организовать, общение компьютера с микроконтроллером.
      ну например, ввожу на компьютере число 120 и компьютер по средством USB передает микроконтроллеру это число и микроконтроллер записывает в переменную X число 120.
      это я просто для примера программу.
      соответственно из этого у меня вытекают следующие вопросы
      1) в какой программе написать программу для компьютера и общения с мк?
      2) как организовать этот USB протокол, и как он работает
      3) когда починят форум, когда я перехожу на новую строчку и нажимаю первый раз на этой строчке на кнопку "стирать" у меня внезапно, мигающий курсор перемещается на начало строчки и строчка подымается на верх. (это уже вопрос риторический, просто не удобно набирать сообщение)
      что имеется.
      1) огромное желания
      2) ноутбук acer aspire v3 771g
      3) руки, паяльник и чуточку мозгов и много деталей.
      4) микроконтроллер Atmega 8PU
×
×
  • Create New...