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

terkin

Members
  • Постов

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

  • Посещение

Электроника

  • Стаж в электронике
    Менее года

Достижения terkin

Новичок

Новичок (1/14)

  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. terkin

    Uart И Atmega64A

    Все заработало. Спасибо snn_krs. Дело было в этом фьюзе. Ну точнее всем спасибо за участие, но самое большое спасибо snn_krs ;-) Да и на будущее, если кто-то будет мой пример использовать. То там частоту нужно менять. Она зависит от напряжения на источнике питания. Поэтому рассчитать трудно. Я напряжение уменьшил, только тогда нормально данные стали передаваться. До этого всякая ерунда шла даже на разных значениях UBRR.
  2. terkin

    Uart И Atmega64A

    Это из примера в даташите взял. По фьюзам показывает что на 1МГц настроен. Пробовал и для одного МГц рассчитать и пробовал в цикле перебирать все значения UBRR от нуля до 2000. Фьюз снят. Микросхема новая, я там ничего не менял в фьюзах все по умолчанию. CompMode = [X] WDTON = [ ] OCDEN = [ ] JTAGEN = [X] SPIEN = [X] EESAVE = [X] BOOTSZ = 4096W_7000 BOOTRST = [ ] CKOPT = [ ] BODLEVEL = 2V7 BODEN = [ ] SUT_CKSEL = INTRCOSC_1MHZ_6CK_64MS EXTENDED = 0xFD (valid) HIGH = 0x91 (valid) LOW = 0xE1 (valid) Схемка простая RX1 (27 pin), TX1 (28 pin) и масса от МК соединены с USB свистком. На МК подается внешнее питание 3,9V. на оба VCC (21 м 52 pin) и AVCC (64 pin). Вот и вся схема. Плюс программатор подключаю по SPI. Со схемой проблем не должно быть так как данные на свисток идут если отправлять не через UART, а просто ножки в программе менять с выхода на вход. Там видимо мусор накапливается на ножках и передается. Не внимательно прочитал сообщение. Я думал по умолчанию он снят. Там же все наоборот 0 - установлен, 1 снят. Я и запутался. Видимо в этом проблема, сейчас буду пробовать. Спасибо.
  3. terkin

    Uart И Atmega64A

    Перерыл кучу примеров в интернете и ни один не работает. Видимо что-то не так делаю. Взял USB-UART свисток, подсоединил его к ноуту, второй конец к ATmega64A. ATmegu запитал от внешнего мощного источника питания на 3.9V. Массы свистка и источника питания соединил, подключил программатор. Заливаю простой код для общения со свистком через UART и ничего через putty не вижу. Как только не извращался и скорость через цикл подбирал ничего не помогает. Максимум чего добился это если не инициализировать UART и просто менять порт с выхода на вход DDRD=0xFF; DDRD=0x0; то putty выводит всякую ерунду. Видимо схема и свисток рабочие. Но вот программа не работает. Хотя и прошивается в МК. Ниже код программы, комментариями закрыл те варианты, которые пробовал. #include <avr/io.h> #include <avr/interrupt.h> #define FOSC 1843200 // Clock Speed #define BAUD 9600 #define MYUBRR FOSC/16/BAUD-1 //#define MYUBRR 5 // 6 void UART1_Init( unsigned int ubrr) { UBRR1H = (unsigned char)(ubrr>>8); UBRR1L = (unsigned char)ubrr; //UCSR1A = (0<<RXC1)|(1<<TXC1)|(0<<UDRE1)|(0<<FE1)|(0<<DOR1)|(0<<UPE1)|(0<<U2X1)|(0<<MPCM1); //Регистр А управления и статуса УСАПП - UCSRnA //Разряд 7 - RXCn: Флаг завершения приема УСАПП //Разряд 6 - TXCn: Флаг завершения передачи УСАПП //Разряд 5 - UDREn: Флаг освобождения регистра данных УСАПП //Разряд 4 - FEn: Ошибка посылки //Разряд 3 - DORn: Флаг переполнения данных //Разряд 2 - UPEn: Ошибка паритета //Разряд 1 - U2Xn: Удвоение скорости связи УСАПП //Разряд 0 - MPCMn: Режим многопроцессорной связи UCSR1B = (1<<RXEN1)|(1<<TXEN1); //Разряд 7 - RXCIEn: Разрешение прерывания по завершению приема //Разряд 6 - TXCIE: Разрешение прерывания по завершению передачи //Разряд 5 - UDRIEn: Разрешение прерывания по освобождению регистра данных УСАПП //Разряд 4 - RXENn: Разрешение работы приемника //Разряд 3 - TXENn: Разрешение работы передатчика //Разряд 2 - UCSZn2: Формат данных //Разряд 1 - RXB8n: Значение 8-ого разряда принятых данных //Разряд 0 - TXB8n: 8-ой разряд передаваемых данных UCSR1C = (0<<UMSEL1)|(0<<UPM11)|(0<<UPM10)|(0<<USBS1)|(1<<UCSZ11)|(1<<UCSZ10)|(0<<UCPOL1); //Разряд 7 - Резервный бит //Разряд 6 - UMSELn: Выбор режима УСАПП //Разряды 5:4 - UPMn1:0: Режим паритета //Разряд 3 - USBSn: Выбор числа стоп-бит //Разряды 2:1 - UCSZn1:0: Формат данных //Разряд 0 - UCPOLn: Полярность синхронизации //PORTD=0x00; //DDRD=0xFF; //настройка порта D на вывод } int main(void) { //unsigned int i; UART1_Init(MYUBRR); while(1) { //for(i=0; i<200; i++) { //UART1_Init(i); //for (int j=0; j<=19; j++) { //UCSR1A = (0<<RXC1)|(1<<TXC1); while ( !( UCSR1A & (1<<UDRE1)) ); UDR1='F'; } } } } Может я фьюзы какие-то не прошил или что не так, кто-нибудь знает?
  4. В Википедии? Все равно не совсем понятно. Есть такое предположение. Мы подаем на кварц постоянный ток, кварц изгибается, в результате создается высокое сопротивление и ток пропадает в цепи. Кварц возвращается в исходное положение, сопротивление уменьшается и ток снова появляется. Есть второе предположение. Там написано про противо-ЭДС, то есть кварц накапливает заряды (энергию) и потом разряжается. Хоть одно из предположений правильное?
  5. А как сам генератор частоты подстраивается под кварцевый резонатор? Понятно что резонатор колеблется со своей частотой. Но генератор, который подает на него ток, изначально должен колебаться с любыми частотами и в момент включения настраиваться на частоту резонатора. Вот тут и интересует как именно он может колебаться на разных частотах и как может настраиваться на нужную частоту?
  6. Спасибо, заказал. Я их искал, но в АлиЭкспрессе глюк какой-то, даже просто копируешь часть названия вставляешь, пишет 0 результатов. Находил похожие за 8 тыс. и дороже, но в описании ничего не написано про Xmega. Как-то жалко было. А тут и не особо дорого и написано, что подходит для моего МК.
  7. Здравствуйте! Подскажите какой программатор можно купить для Xmega, если конкретней то собираюсь программировать ATxmega128A1. Нахожусь в Таиланде, поэтому хотелось бы купить на АлиЭкспрессе ну или где-то, где в Таиланд быстро доставляют. Ну и желательно недорогой. Вычитал данные микроконтроллеры поддерживают протоколы JTAG и PDI. У меня есть уже USB-Blaster он тоже по JTAG работает, то чреез USB, а ком порт не создает, поэтому как его привязать к какой-нибудь IDE я не нашел. Плюс заказал на том же Али вот такой программатор "Usb-загрузки программер эмулятор отладчик для AVR JTAG ICE Atmega AVR студия" вроде как должен работать через JTAG и поддерживается AtmelStudio, но до конца я не уверен, если кто знает подскажите плиз. Информации про программирование Xmega почти нет или я не так ищу.
×
×
  • Создать...