Если кому надо, вот рабочий код под ATMega64C1 В окне терминала выбираем номер COM порта который занял ваш девайс и жмем connect. У меня сначала в диспетчере устройств был USB Serial Port (COM10), а у терминала 10й выбрать нельзя, поэтому я залез в "Свойства" USB Serial Port (COM10) и во вкладке "Параметры порта" нажал кнопку "Дополнительно", и там уже в выпадающем меню назначил "Номер COM-порта" в COM1 (нужно выбрать любой свободный номер от 1 до 5). В терминале бодрейт ставите 9600, стоповый бит 1 шт. Остальное все как у Владимира. #define F_CPU 16000000UL #include #include #include #include #include #define BAUD 9600
код рабочий ,проверил на ttl конверторе с чипом CH340 .Есть вариант использовать другой терминал от ардуино IDE ,заодно при установке этой IDE установятся драйвера на конвертер .Спасибо
Не понял одну вещь. Всё делал тоже самое, что показано в уроке. Только для Attiny 2313A. Отличие лишь в том, что нет у даного контроллера бита URSEL, а все остальные регистры такие же. При этом, при попытке сбора проекта выдаёт ошибку: если я в код вставляю функции, которые объявлены в файле 'usart.c' и прототипы которых объявлены в 'usart.h'. Не пойму, что сделал не так. Такое ощущение, что при сборке, компилятор не видит части файлов проекта... Установлена Atmel Studio 7.
нет FT232 под рукой. Делаю в протеусе. Соединил ножки TX контроллера и RX терминала. При симуляции терминал почему-то пуст. Будет ли вообще работать эта прошивка с протеусом?
Мой usb-uart преобразователь рабьтает на чипе CH340 я долго мучался с дровами на него (он выглядит в точности как переходник на PL2303, тут нужно быть внимательнее)
narod stream Не могли бы Вы выложить программу для приема и передачи данных отдельным архивом, а то ссылка в описании под 5 видеоуроком уже недействительна. И ещё вопрос: написав код в 5 уроке получил полнейшую дичь, дисплей при подключении или сбросе МК инициализируется дай Б-г каждый 10 раз, постоянно теряются символы при передаче, или вместо символов идёт кракозябра, с чем это может быть связано?
Связано это с несовпадением скоростей. Возможно у Вас контроллер работает не на той частоте, которая заявлена здесь #define F_CPU 8000000UL Если частота другая, то в регистр UBR заносится уже другая величина вот здесь //Зададим скорость работы USART 115200 UBRRH = (unsigned char)(ubrr>>8); UBRRL = (unsigned char)ubrr; Ссылку на гуглдок проверил - рабочая. Также ниже выложил архив всего проекта.
narod stream Насчёт ссылки я имел в виду вот эту перезалить www.mcu4you.ru/obnovlenie-terminal-v1-9b.html я скачал более новую программу и она похоже с ошибками, так как вместо строки 12345678901245678901234567890 передаёт стабильно 1234567890123456789123456780 (рассинхрон в 20 и 27 символах, причём проверка с передачей обратно в терминал показывает что данные тупо не доходят до мк, хотя все скорости настроенны верно)
Здравствуйте! Огромное спасибо за уроки! У меня в терминале вместо "Ок!" принимается "XJoy=" все в одну строку. Подключал логический анализатор, там все нормально, с микроконтроллера улетает "Ok!" с возвратом каретки и переносом. Передавал как на встроенный COM порт ноута, так и через преобразователь MOXA UPort-1150, пробовал другой терминал (COM Port Toolkit 4.0), менял настройки COM порта в диспетчере устройств, результат тот же - "XJoy=". Подскажите где еще копать?
1 Baud = 10 Bits ili odin "frame": start bit + 00010001 + stop bit. Toest' odin Byt moget sodergat' w sebe odin simwol ASCII. Drugimi slowami pri skorosti 9600 bps wozmogna peredaa 9600/10 = 960 simwolow w secundu. Ya prawil'no ponyal? eto wopros k wideo 14.1 kanal o4en' nrawitsya! Spasibo bol'shoe!
USB - UART в два клика делается в ардуино на 32u4 (Leonardo по кодификации arduino). Из UNO вообще без лишних телодвижений. А VisualStudio в ascii кодировке посылает символы? Как тогда кириллицу отправлять? Договариваться совместно с приемником об используемой таблице?
Олег Шалагин если Вы не про фьюзы то в макросе объявить 16000000L вместо 8000000L и в вызове функции инициализации выбрать 16 вместо 8. Есть же таблица в даташите. Ничего даже считать не нужно.
С прошедшими праздниками! Ничего не получилось, когда установил на 16, корректно стало отображаться только на скорости 14400, а когда ставлю 8 то на 28800... Что не так дела?
Не, это не то совсем. Вставьте открывающую и закрывающую фигурные скобки перед точкой с запятой, может пройдёт. Если нет, то тогда вставьте пустой такт (операцию NOP).
Также в терминале не появляется слово "OK!". В коде нет ошибок. Я использую "CH340G", Atmega32. Скачал новую версию "Terminal" поскольку ссылка на старую версию не работает. На компьютере установлена Windows 10.
Я немного не достоверную информацию предоставил Вам. В первый раз я использовал Atmega16 (проблемы с фьюзами), а во второй раз это была Atmega32 (но оповещение в терминале не появлялось по прежнему).
Адский труд. Сегодня сделал завтра уже забыл.
Спасибище тебе
Если кому надо, вот рабочий код под ATMega64C1
В окне терминала выбираем номер COM порта который занял ваш девайс и жмем connect. У меня сначала в диспетчере устройств был USB Serial Port (COM10), а у терминала 10й выбрать нельзя, поэтому я залез в "Свойства" USB Serial Port (COM10) и во вкладке "Параметры порта" нажал кнопку "Дополнительно", и там уже в выпадающем меню назначил "Номер COM-порта" в COM1 (нужно выбрать любой свободный номер от 1 до 5).
В терминале бодрейт ставите 9600, стоповый бит 1 шт. Остальное все как у Владимира.
#define F_CPU 16000000UL
#include
#include
#include
#include
#include
#define BAUD 9600
void USART_Init(void) {
LINCR=(18;
LINBRRL = (((F_CPU/BAUD)/32)-1);
LINCR = (1
код рабочий ,проверил на ttl конверторе с чипом CH340 .Есть вариант использовать другой терминал от ардуино IDE ,заодно при установке этой IDE установятся драйвера на конвертер .Спасибо
вот бы для протеуса инструкцию, мне рисует треугольники в терминале
СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Не понял одну вещь. Всё делал тоже самое, что показано в уроке. Только для Attiny 2313A. Отличие лишь в том, что нет у даного контроллера бита URSEL, а все остальные регистры такие же. При этом, при попытке сбора проекта выдаёт ошибку: если я в код вставляю функции, которые объявлены в файле 'usart.c' и прототипы которых объявлены в 'usart.h'. Не пойму, что сделал не так. Такое ощущение, что при сборке, компилятор не видит части файлов проекта... Установлена Atmel Studio 7.
нет FT232 под рукой. Делаю в протеусе. Соединил ножки TX контроллера и RX терминала. При симуляции терминал почему-то пуст. Будет ли вообще работать эта прошивка с протеусом?
Мой usb-uart преобразователь рабьтает на чипе CH340 я долго мучался с дровами на него (он выглядит в точности как переходник на PL2303, тут нужно быть внимательнее)
Такие в ардуино ставят, и много куда. В принципе по VID и PID все распознается.
narod stream
Ну я как-то по невнимательности упустил этот момент и долго не мог понять почему дрова не ставятся
narod stream
Не могли бы Вы выложить программу для приема и передачи данных отдельным архивом, а то ссылка в описании под 5 видеоуроком уже недействительна. И ещё вопрос: написав код в 5 уроке получил полнейшую дичь, дисплей при подключении или сбросе МК инициализируется дай Б-г каждый 10 раз, постоянно теряются символы при передаче, или вместо символов идёт кракозябра, с чем это может быть связано?
Связано это с несовпадением скоростей. Возможно у Вас контроллер работает не на той частоте, которая заявлена здесь
#define F_CPU 8000000UL
Если частота другая, то в регистр UBR заносится уже другая величина вот здесь
//Зададим скорость работы USART 115200
UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;
Ссылку на гуглдок проверил - рабочая. Также ниже выложил архив всего проекта.
narod stream
Насчёт ссылки я имел в виду вот эту перезалить www.mcu4you.ru/obnovlenie-terminal-v1-9b.html я скачал более новую программу и она похоже с ошибками, так как вместо строки 12345678901245678901234567890 передаёт стабильно 1234567890123456789123456780 (рассинхрон в 20 и 27 символах, причём проверка с передачей обратно в терминал показывает что данные тупо не доходят до мк, хотя все скорости настроенны верно)
Здравствуйте!
Огромное спасибо за уроки! У меня в терминале вместо "Ок!" принимается "XJoy=" все в одну строку. Подключал логический анализатор, там все нормально, с микроконтроллера улетает "Ok!" с возвратом каретки и переносом. Передавал как на встроенный COM порт ноута, так и через преобразователь MOXA UPort-1150, пробовал другой терминал (COM Port Toolkit 4.0), менял настройки COM порта в диспетчере устройств, результат тот же - "XJoy=". Подскажите где еще копать?
Если в программе МК байт перед записью в буфер передатчика сдвинуть влево на 1 бит и инвертировать - UDR = ~(data
Кажись понял. У COM порта логика +/-12 вольт, нужен преобразователь TTL, а я напрямую в Com шлю, но в наличии пока нет, проверить не могу.
1 Baud = 10 Bits ili odin "frame": start bit + 00010001 + stop bit.
Toest' odin Byt moget sodergat' w sebe odin simwol ASCII. Drugimi
slowami pri skorosti 9600 bps wozmogna peredaa 9600/10 = 960 simwolow w
secundu. Ya prawil'no ponyal? eto wopros k wideo 14.1
kanal o4en' nrawitsya! Spasibo bol'shoe!
Спасибо огромное за видео! Скажите, пожалуйста, а можно ли работать с USART не имея кварцевого резонатора.
Можно.
просмотрел несколько уроков и совсем запутался UDRE должен быть равен 1 чтобы можно было записывать UDR, верно?
while ( UCSRA & (1
Точка с запятой обозначает окончание команды
вместо Ok! почемуто Joe нет перевода на новую строку ,все посылки строго в одну строку можете подсказать причину-?
Что-то не так, перевод в коде есть. Терминальная программа такая же?
USB - UART в два клика делается в ардуино на 32u4 (Leonardo по кодификации arduino). Из UNO вообще без лишних телодвижений.
А VisualStudio в ascii кодировке посылает символы? Как тогда кириллицу отправлять? Договариваться совместно с приемником об используемой таблице?
Здравтсвуйте! Не могу разобраться как сделать инициализацию под кварц 16Мгц, что бы корректно отображало на скорости 115200?
Олег Шалагин если Вы не про фьюзы то в макросе объявить 16000000L вместо 8000000L и в вызове функции инициализации выбрать 16 вместо 8. Есть же таблица в даташите. Ничего даже считать не нужно.
С прошедшими праздниками! Ничего не получилось, когда установил на 16, корректно стало отображаться только на скорости 14400, а когда ставлю 8 то на 28800... Что не так дела?
Проверьте частоту с помощью мигания светодиода раз в секунду в бесконечном цикле
Ну все, разобрался я наконец то. Все дело во фьюзах, контроллер работал на 2МГц, поправил и щас все в норме) Спасибо.
Такая конструкция:
while (|(UCSRA&(1
Не, это не то совсем. Вставьте открывающую и закрывающую фигурные скобки перед точкой с запятой, может пройдёт. Если нет, то тогда вставьте пустой такт (операцию NOP).
То есть вот так : while (!(UCSRA&(1
Объясните пожалуйста, как передать массив из МК на ПК? Спасибо.
Еще не испытал в железе, но нашел у Вас в уроке по внутренней EEPROM.
Еще не испытал в железе, но ответ на вышепоставленный вопрос нашел у Вас в уроке по внутренней eeprom.
Урок 39.2
Время 10 минут 20 секунд.
Как раз мы такую функцию и написали.
Вопросы лучше задавать, когда просмотрите полностью весь цикл по AVR.
Добрый день.
Я поменял фьюзы как было сказано в видео, но теперь микроконтроллер выдаёт ошибку. Посоветуйте, как исправить данную проблему?
Подробнее, пожалуйста. Какую именно ошибку выдает микроконтроллер и каким образом он это делает?
Появляется окно со словом "Ошибка". Данное сообщение появляется после попытки чтения не говоря о других действиях.
Также в терминале не появляется слово "OK!". В коде нет ошибок. Я использую "CH340G", Atmega32. Скачал новую версию "Terminal" поскольку ссылка на старую версию не работает. На компьютере установлена Windows 10.
Я немного не достоверную информацию предоставил Вам. В первый раз я использовал Atmega16 (проблемы с фьюзами), а во второй раз это была Atmega32 (но оповещение в терминале не появлялось по прежнему).
Максим Пушкарёв Там другие фьюзы
все чітко, лайк!