Всем хай! Помогите плз, может кто встречался с проблемой. Купил переходник USB-UART, чтоб с мегой 328P общаться по нему, и в итоге наткнулся на то, что мк с ноутом друг другом вообще не понимают, а именно отсылаю один байт на мк, а он видит совсем другой. Сначала думал что в прошивке для мк что-то не то, частоту несколько раз проверил, но ничего не помогло. С переходника rx с tx замыкал, увидел что он отправляет на мк правильно. Попробовал мк с мк, байты верно передаются. Но вот с мк на ноут передается какая-то хрень, и наоборот тоже хрень. В чем может быть причина ?
Комментарии: 29
Anonim
причина в настройке UART: скорость, байты 7 или 8 или 9, биты четности
Kga
9600 8 бит 2 бита четности Проверял, менял, ничего не помогло
Anonim
еще, частота кварца
Kga
8 мгц от внутреннего, 8 мгц с внешнего кварца, результат один и тот же
Anonim
если кварц на другую частоту или контроллер тактируется по факту от другого источника, тоже может быть такое. себя он увидит нормально другой контроллер есть? ардуина может какая, чтобы был эталон, чтоб работал 100%
Kga
Неа, только две меги 328P
Kga
Я вообще сейчас на переходник думаю, может ли быть с ним что не так? С драйверами к примеру
Petr
Лог. анализатор есть?
Kga
Едет с али
Anonim
как ты проверял что частота у тебя именно 8 мгц? программатор для AVR-ов есть? чем прошиваешь?
Kga
USBasp все что могу сейчас, это поверить калькулятору фьюзов и протеусу, если им верить то у меня 8мгц ))
Anonim
норм. смотри, если ты фьюзы не трогал, они у тебя на внутренний RC щас сделаны на 1 МГц
Kga
я делитель убрал если че
Anonim
блин ты прошаренный так неинтересно :)
Kga
хи -хи)
Anonim
помигай диодиком 1 сек, будет видно та ли частота. только в исходнике дефайн должен быть тоже 8000000 FMCU 8000000
Anonim
вот поэтому их лучше тоже иметь два.
Petr
Наверняка на атмеге кварц/фьюзы не те
Anonim
нет это вряд ли +1
Anonim
поиграй частотами... сделай 1 стоп бит... какой терминал? рекомендую Terminal by Br@y
Kga
Ну битрейд я разве что не менял, терминалы Toolkit и Terminal v1.9b
Anonim
ну код давай тогда
Kga
я передавал с мк на мк байты раз в 0.5 сек, мигало нормально + просто отправлял всякую ерунду с мк на ноут через переходник рвз в секунду - тоже все норм было Если сюда код скину, то ниче? или в блокнотик лучше?
Anonim
cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) // clear bit sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) // set bit sbi(DDRB, DDB2); // red led output while(1){ cbi(PORTB, PORTB2); _delay_ms(1000); cbi(PORTB, PORTB2); _delay_ms(1000); }
Kga
сложна
Anonim
не знаю, можно в https://pastebin.com/ ну помигай как умеешь это как вариант просто
Kga
https://pastebin.com/H4nLUC4u
Anonim
у тебя в прерывании delay так низззя
Kga
ой ой не знал ))0))