На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > Программирование контроллеров avr...
      Ув. сообщество, помогите, пожалуйста :rolleyes:
      Скажите с чего начать хоть, т.к. пока что - полный... Вот для начала дали мне ISP... Если бы ещё на с либо С#, а то планируется применение ассемблера...
      Дайте, пожалуйста, какие-нибудь ссылки с примерами программирования программаторов на ассемблере (AVR Studio). :rolleyes:
        Цитата Дмитрий @
        какие-нибудь ссылки с примерами программирования программаторов на ассемблере
        С чем? :blink:

        тыц
          Цитата
          тыц

          И де там примеры на ассемблере?

          Цитата
          Скажите с чего начать хоть, т.к. пока что - полный...

          А что собсно вы взялись за МК? Для общего развития?
          Сообщение отредактировано: Prince -
            Цитата Prince @
            И де там примеры на ассемблере?

            В даташитах:
            Цитата
            As an example, consider the initialization of the I/0 pins used for UART communication:
            .EQU ATmega128=1 ;Declares the symbol ATmega128
            ;EQU ATmega16=1 ;Declares the symbol ATmega16
            .EQU UART =0 ;UART0 or UART1
            .ifdef ATmega128
            .message "UART Module assembled for ATmega128."
            .if UART == 0
            .message "UART0 used."
            sbi DDRE, PE1 ;Configure TxD as output
            .elif UART == 1
            .message "UART0 used."
            sbi DDRD, PD3 ;Configure TxD as output
            .else
            .error "UART number not specified"
            .endif
            .elif ATmega16
            .message "UART Module
            Чем тебе не нравится? Или, к примеру, базовый даташит:
            Цитата
            Assembly Code Example(1)
            ...
            ; Define pull-ups and set outputs high
            ; Define directions for port pins
            ldi r16,(1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0)
            ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0)
            out PORTB,r16
            out DDRB,r17
            ; Insert nop for synchronization
            nop
            ; Read port pins
            in r16,PINB
            ...
            C Code Example(1)
            unsigned char i;
            ...
            /* Define pull-ups and set outputs high */
            /* Define directions for port pins */
            PORTB = (1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0);
            DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0);
            /* Insert nop for synchronization*/
            _NOP();
            /* Read port pins */
            i = PINB;
            ...
            Даже специально указали. :D

            Добавлено
            Цитата Дмитрий @
            Дайте, пожалуйста, какие-нибудь ссылки с примерами программирования программаторов

            Видишь ли, уважаемый, программаторов весьма большое количество. Всяких разных и даже параллельных. Но. Программатор, как устройство не программируется. Его задача - просто залить прошивку (оттранслированный в машинный код текстовый исходник программы). Или считать. Или проверить. И все. :D
              Цитата medved_68 @
              Программатор, как устройство не программируется.

              Ну почему?
              В случае с AVR не программируются только LPT/COM ногодрыгалки или адаптеры на FTDI-чипах.
              Все остальные вполне себе сначала кем-то программируются, потом другими используются.

              Цитата Prince @
              И де там примеры на ассемблере?

              Ну, например — апнота AVR910 по линку, данному trainer во втором сообщении.
              И ассемблер, и "программирование программатора"
                Цитата avreal @
                Все остальные вполне себе сначала кем-то программируются,

                :D Ну если так подходить, то:
                Цитата avreal @
                В случае с AVR не программируются только LPT/COM ногодрыгалки или адаптеры на FTDI-чипах.
                тоже "программируется". Ведь программу то, которая будет "ногодрыгалкой" управлять, тоже кто то написал, а кто то использует. :D
                  Цитата medved_68 @
                  Ведь программу то, которая будет "ногодрыгалкой" управлять, тоже кто то написал,

                  Ну что-что, а об этом я в курсе (см. ник и далее профиль :D).

                  Но всё же когда речь идёт о «программировании программатора» (или об отсутствии необходимости этого), то речь идёт не о «скачать программатор», а «спаять и так далее», тут AVR910 как раз в тему.
                    Цитата Prince @
                    И де там примеры на ассемблере?

                    Блин! Как быстро всё изменяется :(
                    Когда я впервые заинтересовался AVR, примеров на ассемблере было немало. В тех же Application Notes. А теперь их днём с огнём не сыщешь.
                      Уважаемые, мне дали AVR ISP v3.2 (как переходник USB-UART) и программатор ATMEL (я в него установил atmega). Вот сижу и смотрю на эту конструкцию, как ... :'( :blink: С AVR ISP v3.2 попробовал - установил заглушку Tx-Rx и попробовал обмен - работает. Подскажите, пожалуйста, как , для начало, организовать такой обмен уже с atmega? :rolleyes:

                      P.S. Прошу прощения, изначально вопрос задал по незнанию :oops:
                        Цитата Дмитрий @
                        мне дали AVR ISP v3.2 (как переходник USB-UART) и программатор ATMEL

                        Такой?
                          Цитата medved_68 @
                          Такой?

                          Да такой.
                          Не судите строго Когда работаешь с платами расширения - это одно...
                          У меня сейчас есть преобразователь USB-UART, программатор и платка: сокет для атмеги. Для меня нужно просто стартовая точка: стандартная прога или примеры, как прошить какие-то данные в атмегу, а затем я попытаюсь, соединив по UART плату атмеги и ATMEL AVR ISP v3.2, считать эти данные. :rolleyes: :rolleyes:
                          Сообщение отредактировано: Дмитрий -
                            Цитата Дмитрий @
                            Для меня нужно просто стартовая точка: стандартная прога или примеры, как прошить какие-то данные в атмегу, а затем я попытаюсь, соединив по UART плату атмеги и ATMEL AVR ISP v3.2, считать эти данные. :rolleyes: :rolleyes:

                            Ты ссылку до конца посмотрел? Вот это видел:
                            Цитата
                            Программатор AVR ISP v3.2
                            10-контакный кабель внутрисхемного программирования

                            Загружаемые материалы:
                            Диск с AVR Studio, драйверами, инструкцией и документацией
                            Слово "диск" - ссылка на архив. ;) Чем тебе не "просто стартовая точка"? :D
                              Не заметил :oops:...
                                Подскажите советом, пожалуйста, что не так?
                                Пытаюсь делать как в манулале:
                                - подсоединил AVR ISP v3.2 к программатору;
                                - на разъеме ISP/UART переставил перемычки к ISP;
                                и теперь в AVR Studio пытаюсь подключиться к порту - сбой подключения :unsure:
                                Дрова стоят...
                                Что я не так делаю?
                                  Цитата Дмитрий @
                                  Дрова стоят...

                                  И в студии ты пытаешься подключиться на тот COM порт, который появился после установки драйверов на программатор?
                                    Да: Студия->Tools->Program AVR->Connect. В мануале к AVR ISP, правда, пишется: "Выбрать <STK500 or AVR ISP>" в списке "Platform", но у меня этого элемента нет - выбираю AVRISP и соответствующий СОМ. :unsure: В результате ошибка соединения...
                                      Подскажите, пожалуйста, какие шаги надо делать дальше :rolleyes:? Я сформировал сформировал код на асм для ATmega8, откомпилировал его (avrasm32.exe) и на выходе получил файл *.obj.
                                      Как мне загрузить этот код в ATmega8 через программатор AVR ISP v3.2?
                                        Цитата Дмитрий @
                                        и на выходе получил файл *.obj


                                        Пилите дальше, на выходе должен быть *.hex
                                          Цитата Alexei @
                                          Цитата Дмитрий @
                                          и на выходе получил файл *.obj


                                          Пилите дальше, на выходе должен быть *.hex

                                          Не понял :unsure: :blink: А как сформировать *.hex-файл подскажите, пожалуйста :rolleyes:
                                            avrasm32.exe - консольная? должны быть ключи для компиляции в нужный формат.
                                              Цитата Дмитрий @
                                              А как сформировать *.hex-файл подскажите, пожалуйста :rolleyes:

                                              Цитата Дмитрий @
                                              и на выходе получил файл *.obj.
                                              Как мне загрузить этот код в ATmega8 через программатор AVR ISP v3.2?

                                              Второй шаг - необходимо отлинковать все файлы .obj, собранные в проекте в исполняемый файл .hex. Смотри в свойствах проекта - почему это не произошло автоматически (вполне возможно, что поставлена галочка компиляции библиотеки - в таком случае весь проект будет выдан как промежуточный объектник, для последующей линковки в другие проекты.) :D
                                              Сообщение отредактировано: medved_68 -
                                                medved_68, я не использовал атмел студию (ни 4, ни 6) - так и не понял как создать проект для ATmega8 (в плане: файлы накидал, но компильнуть не смог...). Со студии я взял компилятор (avrasm32.exe) и "m8def.inc", и просто скомпилировал *.acm - файл - получил *.obj....
                                                  Цитата Дмитрий @
                                                  и просто скомпилировал *.acm - файл - получил *.obj....

                                                  А параметры компиляции какие указывал?
                                                    не поленился и качнул avrasm
                                                    ExpandedWrap disabled
                                                      c:\temp\asm>avrasm32.exe -h
                                                      AVRASM: AVR macro assembler version 1.77.3 (Dec 20 2006 14:29:41)
                                                      Copyright (C) 1995-2005 ATMEL Corporation
                                                       
                                                      usage: avrasm32 [options] asmfile
                                                      Options:
                                                        -f [O|M|I|G] output file format:
                                                                   -fO Debug info for simulation in AVR Studio (default)
                                                                   -fM Motorola hex
                                                                   -fI Intel hex
                                                                   -fG Generic format
                                                        -o ofile   Put output in 'ofile'. Default is the same name as
                                                                   the input file, but with extension 'obj'.
                                                        -d dfile   Generate debug info for simulation in AVR Studio in 'dfile'. Can
                                                                   only be used with the -f [M|I|G] option.
                                                        -l lfile   Generate listing on 'lfile'
                                                        -m mfile   Generate map on 'mfile'
                                                        -e efile   Place EEPROM contents in 'efile'
                                                        -w         Relative jumps are allowed to wrap for program ROM
                                                                   up to 4k words in size
                                                        -I dir     Add 'dir' to include search path

                                                    как видно из списка ключей, нужный -fI
                                                      hot_ice, спасибо, что меня ткнули :D
                                                      Получил я файл *.hex. Как мне теперь прошить ATmega8?
                                                        Цитата Дмитрий @
                                                        Как мне теперь прошить ATmega8?

                                                        Подключаешь программатор к компьютеру, запускаешь программу программатора, указываешь порт (если она сама не обнаружит программатор), загружаешь в программу файл *.hex и записываешь в контроллер. Это один вариант. А второй вариант - из самой IDE, в настройках указываешь программатором свое устройство. :D
                                                          Цитата medved_68 @
                                                          Подключаешь программатор к компьютеру, запускаешь программу программатора
                                                          Подскажите, пожалуйста, что это за программа? На диске отсюда её нет :unsure:

                                                          Цитата medved_68 @
                                                          А второй вариант - из самой IDE, в настройках указываешь программатором свое устройство.
                                                          Если это делается так: avr studio ->Tools->Program AVR->Connect; в мануале к AVR ISP, правда, пишется: "Выбрать <STK500 or AVR ISP>" в списке "Platform", но у меня этого элемента нет - выбираю AVRISP и соответствующий СОМ. :unsure:, то в результате ошибка соединения...
                                                          Сообщение отредактировано: Дмитрий -
                                                            Цитата Дмитрий @
                                                            Подскажите, пожалуйста, что это за программа? На диске отсюда её нет :unsure:

                                                            Да. Отдельного программы-программатора на диске нет. Тогда остается второй путь:
                                                            Цитата Дмитрий @
                                                            но у меня этого элемента нет - выбираю AVRISP и соответствующий СОМ. :unsure:

                                                            вот это выполнено:
                                                            Цитата
                                                            Идем в «Мой компьютер – Свойства – Диспетчер устройств – Порты (СОМ и LPT)»
                                                            После успешной установки драйверов вы должны увидеть новый виртуальный СОМ-
                                                            порт (USB Serial Port). Внимание – вы должны установить номер этого порта в диапазоне
                                                            от 1 до 4 (AVR Studio по умолчанию обращается только к первым 4м портам. Установить
                                                            номер можно в дополнительных свойствах порта).
                                                            ??? Разумеется, я подразумеваю нормальную установку драйвера виртуального компорта по инструкции с диска. :D
                                                              Цитата medved_68 @
                                                              вот это выполнено:
                                                              Конечно.
                                                              У меня вот такая конструкция.
                                                              Прикреплённая картинка
                                                              Прикреплённая картинка

                                                              При прошивке (попытке прошить :( :blink: ) я джамперы выставил так:
                                                              Прикреплённая картинка
                                                              Прикреплённая картинка
                                                              Сообщение отредактировано: Дмитрий -
                                                                Подскажите, пожалуйста :rolleyes: , может есть какие-то настройки в avr studio 4, чтобы в списке "Platform" появился элемент "<STK500 or AVR ISP>"?
                                                                  Как-то у вас все сложно. У меня нет под рукой аврстудии. Могу посоветовать попробовать командную строку у STK500.
                                                                    Alexei, сложно потому, что я в этой области пока что "учиник первых классов" :D
                                                                    Объясните, пожалуйста :rolleyes:, подробнее о "командной строке у STK500.". Можно ли будит загрузить *.hex файл в мк через программатор, используя опции командной строки?
                                                                      Цитата Дмитрий @
                                                                      но у меня этого элемента нет - выбираю AVRISP и соответствующий СОМ. , то в результате ошибка соединения...

                                                                      А вы драйверы программатора с диска установили?


                                                                      Цитата Дмитрий @
                                                                      "учиник первых классов"


                                                                      Цитата Дмитрий @
                                                                      будит загрузить *.hex файл в мк через программатор, используя опции командной строки?

                                                                      Учиник, вы какую-нибудь докуметацию читаете? >:(
                                                                      AVR STK500 User Guide
                                                                      п. 5.4
                                                                      Если нет STK500 56mB
                                                                        Цитата Alexei @
                                                                        А вы драйверы программатора с диска установили?
                                                                        Установил, вернее винда сама определила устройство и установила его драйвера.

                                                                        Цитата Alexei @
                                                                        Учиник, вы какую-нибудь докуметацию читаете? >:(
                                                                        AVR STK500 User Guide
                                                                        У меня программатор AVR ISP v3.2 (картинка на предыдущей странице), а не STK500!
                                                                        Хохма вот в чём: на фирме использовали эл. списка "Platform" "<STK500 or AVR ISP>" в AVR Studio 4 (как описано в доке для SVR ISP). Установил у себя 4-ю студию (на "семёрке"), но там этого элемента ("<STK500 or AVR ISP>") нет :-? Что за ... ну .... /Может какие то настройки в студии надо установить? :unsure: :blink: А при использовании просто "AVR ISP" выдает ошибку соединения !!!
                                                                        Сообщение отредактировано: Дмитрий -
                                                                          Цитата Дмитрий @
                                                                          У меня программатор AVR ISP v3.2 (картинка на предыдущей странице), а не STK500!

                                                                          У меня тоже не.
                                                                          У меня "родной" атмеловский AVRISPmkII , так вот он у меня работает на семерке из командной строки , используя софт STK500(Ссылку на который я дал.) и батовкий файл.
                                                                          STK500 это вообще протокол.
                                                                          Сообщение отредактировано: Alexei -
                                                                            Alexei, спасибо :thanks: Попробую.
                                                                              Подскажите, пожалуйста, как правильно задать фьюзы при прошивке ATmega8, чтобы запустился внутренний генератор? :rolleyes:
                                                                                Цитата Дмитрий @
                                                                                Подскажите, пожалуйста, как правильно задать фьюзы при прошивке ATmega8, чтобы запустился внутренний генератор? :rolleyes:

                                                                                Немного внизу. :D
                                                                                  Цитата medved_68 @
                                                                                  Немного внизу
                                                                                  Спасибо :thanks:
                                                                                    Помогите, пожалуйста, понять, что я делаю не так :wall: :wall: :wall:
                                                                                    Взял простенькую прогу для проверки обмена по USART c ATmega8:
                                                                                    ExpandedWrap disabled
                                                                                      while (1)
                                                                                            {
                                                                                            // Place your code here
                                                                                                  if (UCSRA & (1<<RXC))
                                                                                              {
                                                                                                  c = UDR;
                                                                                       
                                                                                                  if ( c == 0x01)
                                                                                                                    _sendStr();          
                                                                                              }
                                                                                       
                                                                                       
                                                                                            }
                                                                                      }
                                                                                      ......
                                                                                      void _sendStr()
                                                                                      {
                                                                                          while ( !( UCSRA & (1<<UDRE)) )
                                                                                                      ;
                                                                                          UDR = 0x55;
                                                                                      }

                                                                                    С помощью конструктора CVAVR сформировал файл проги.
                                                                                    Установил фьюзы так:
                                                                                    CKSEL0=0 CKSEL1=0
                                                                                    CKSEL2=1 CKSEL3=0
                                                                                    SUT0=0 SUT1=1
                                                                                    BODEN=1 BODLEVEL=1
                                                                                    BOOTRST=1 BOOTSZ0=1
                                                                                    BOOTSZ1=1 EESAVE=1
                                                                                    CKOPT=0 SPIEN=0
                                                                                    WDTON=1
                                                                                    И RSTDISBL не трогал
                                                                                    Прошил flash....
                                                                                    Использую этот программатор AVR ISP v3.2, как преобразователь USB-USART (установил перемычки в USART, сделай перекрест TX и RX)
                                                                                    Посылаю запрос, но считать данные не удалось :blink: :(
                                                                                    Сообщение отредактировано: Дмитрий -
                                                                                      Цитата Дмитрий @
                                                                                      Посылаю запрос, но считать данные не удалось :blink: :(

                                                                                      А у тебя вообще контроллер запустился на выполнение твоей программы? Ты это как-нибудь проверил и убедился? Прежде чем мучать USART? :D
                                                                                        Дмитрий, имхо.
                                                                                        Вернитесь к AVR студии, разберитесь с подключением программатора. Если программатор поддерживает STK500, значит его можно использовать вместе со студией. Если не получается, попросите кого-нибудь, чтобы пришёл и всё настроил. Или сказал бы однозначно, что настроить невозможно. Сколько ж можно мучиться. Вы сможете отладить нормально программу, сразу прошить, и с фьюзами никаких проблем.
                                                                                          Цитата Дмитрий @
                                                                                          Взял простенькую прогу для проверки обмена

                                                                                          Может, для начала, просто помигать светодиодом?
                                                                                            Цитата Prince @
                                                                                            Дмитрий, имхо.
                                                                                            Вернитесь к AVR студии, разберитесь с подключением программатора. Если программатор поддерживает STK500, значит его можно использовать вместе со студией. Если не получается, попросите кого-нибудь, чтобы пришёл и всё настроил. Или сказал бы однозначно, что настроить невозможно. Сколько ж можно мучиться. Вы сможете отладить нормально программу, сразу прошить, и с фьюзами никаких проблем.

                                                                                            С прошивкой самого МК проблем нет! Ведь я, в стремлении к познанию :D, "успешно" сделал не пригодным на данный момент МК :crazy:, прошив бит RSTDISBL :D Запустил внешний кварц - это увидел на осцилографе. И залил эту прогу во Flesh. А вот считать данные по запросу не выходит :( :blink:

                                                                                            Добавлено
                                                                                            Цитата Alexei @
                                                                                            Может, для начала, просто помигать светодиодом?
                                                                                            Просто программа, с которой мне прийдётся работать, обменивается по USARTу. Да и чем эта небольшая прога не является исходной точкой?
                                                                                              Цитата
                                                                                              С прошивкой самого МК проблем нет!
                                                                                              делал не пригодным на данный момент МК , прошив бит RSTDISBL
                                                                                              И залил эту прогу во Flesh. А вот считать данные по запросу не выходит

                                                                                              Отсуствие проблем с прошивкой впечатляет.
                                                                                              Программу в студии отладили?

                                                                                              Цитата
                                                                                              Просто программа, с которой мне прийдётся работать, обменивается по USARTу. Да и чем эта небольшая прога не является исходной точкой

                                                                                              Тем, что она не работает, а вы не знаете, почему не работает и как это исправить? :scratch:
                                                                                              Сообщение отредактировано: Prince -
                                                                                                Цитата Prince @
                                                                                                Тем, что она не работает, а вы не знаете, почему не работает и как это исправить?
                                                                                                Вы правы, не знаю, пример из ДШ. Вот и обратился к Вам за советом :rolleyes: Что в вашем понимании "отладить прогу"?
                                                                                                  Цитата Дмитрий @
                                                                                                  Что в вашем понимании "отладить прогу"?

                                                                                                  Наверное то же, что и у других - например, убедиться, что программа выполняет именно то, что должна выполнять по замыслу автора и именно так, как хочет автор, а не так, как получилось. :D В твоем случае - это прогнать программу в отладчике и убедиться, к примеру, что необходимый байт команды загружается в регистр передатчика USART, передатчик при этом включен, у контроллера выставлены необходимые настроечные регистры (стоп бит/восьми битовая передача/нужная скорость) настройки каанла USART. После этого откомпилироать программу передачи, залить в контроллер и посмотреть осциллографом, что "пляшет" на порту TX контроллера при попытке передачи байта. Весьма хорошо наблюдать меандры при передаче байта 55Н - так очень четко видно как нули сменяют единицы. И только после этого начинать вторую часть проекта, т.е. прием от контроллера чего то, в ответ на посланный байт команды. :D
                                                                                                    Цитата
                                                                                                    Что в вашем понимании "отладить прогу"?

                                                                                                    В моём - взять и отладить.
                                                                                                    Насколько хорошо симулятор студии умеет обращаться с USART - вопрос открытый, но в принципе, как без предварительной(и последующей, в процессе работы) отладки можно написать работающую прошивку, не очень представляю.
                                                                                                    Вообще, как выглядел процесс написания вами программы: вы взяли кусочек кода из ДШ, скопипастили, компилятор не выдал ошибок(или выдал, и вы как-то их исправили), то, что получилось, залили в память МК?
                                                                                                    Ещё один интересный вопрос - подключение последовательного порта МК ... к чему-то. К компу? Как?
                                                                                                    Сообщение отредактировано: Prince -
                                                                                                      Цитата Prince @

                                                                                                      Вообще, как выглядел процесс написания вами программы: вы взяли кусочек кода из ДШ, скопипастили, компилятор не выдал ошибок(или выдал, и вы как-то их исправили), то, что получилось, залили в память МК?
                                                                                                      Ещё один интересный вопрос - подключение последовательного порта МК ... к чему-то. К компу? Как?

                                                                                                      Да Вы правы... :oops: Прошу не судите строго :rolleyes: Просто с МК я пытаюсь работать только месяц и это для меня ново....
                                                                                                      А что значит отладит? Пройти в режиме debug? И что это даст? Можно ли отладить эту прогу на действующем МК?

                                                                                                      А подключение показано на снимке: программатор AVR ISP можно использовать как преобразователь USB - USART.
                                                                                                      Прикреплённая картинка
                                                                                                      Прикреплённая картинка
                                                                                                      Сообщение отредактировано: Дмитрий -
                                                                                                        Цитата
                                                                                                        А что значит отладит? Пройти в режиме debug? И что это даст?

                                                                                                        Вы сишный код под Windows дебажили? Что это вам давало?
                                                                                                        Медвед достаточно подробно ответил на ваш вопрос по поводу отладчика, и вы тут же задаёте его снова.
                                                                                                        Цитата
                                                                                                        Можно ли отладить эту прогу на действующем МК?

                                                                                                        Если программатор и МК поддерживают JTAG/PDI. На atmega8 нельзя.
                                                                                                        Цитата
                                                                                                        А подключение показано на снимке: программатор AVR ISP можно использовать как преобразователь USB - USART.

                                                                                                        Убедитесь в том, что преобразователь работает с TTЛ уровнями и нужной вам полярностью сигналов.
                                                                                                          Цитата Дмитрий @
                                                                                                          А подключение показано на снимке

                                                                                                          Да, там просто масса информации! :D
                                                                                                          Дмитрий, вы можите похвастаться хоть одной работающей в МК программой?
                                                                                                            Цитата Alexei @
                                                                                                            Дмитрий, вы можите похвастаться хоть одной работающей в МК программой?

                                                                                                            Alexei, да ладно тебе... :unsure: Мы все с чего то начинали и как то учились... :D Дмитрий, поставь студию и прогони свой код в ней в режиме симулятора. В данном режиме нет необходимости в реальном подключении МК, достаточно выбрать тип контроллера и тактовую частоту. :D
                                                                                                              Цитата medved_68 @
                                                                                                              Alexei, да ладно тебе... Мы все с чего то начинали и как то учились

                                                                                                              Так, наверно,если таким же образом, то до сих пор задавали бы здесь теже вопросы.Мы начинали с чего по проще. Есть ли уверенность в том, что все простейшие действия выполняются? Что эта штука действительно USB - USART. Что она правильно подключена, ее драйвер правильно установился... Слишком много неизвестных!
                                                                                                              Начать был бы смысл с проверки ее самой на себя итд.
                                                                                                              .
                                                                                                                Цитата medved_68 @
                                                                                                                Дмитрий, поставь студию и прогони свой код в ней в режиме симулятора. В данном режиме нет необходимости в реальном подключении МК, достаточно выбрать тип контроллера и тактовую частоту.

                                                                                                                Конечно, я так и сделал: зациклил выдачу шахматки и прогнал в отладчике. Вот только не понятно: на 4-й итерации бит UDRE регистра UCSRA обнулился... :unsure:
                                                                                                                После прошивки проги на ноге TX я вижу миандр на осцилографе. Проблема - считать эти данные: операция считывания с СОМ вылетела по таймауту :unsure: :wall: :wall:

                                                                                                                Цитата Prince @
                                                                                                                Убедитесь в том, что преобразователь работает с TTЛ уровнями и нужной вам полярностью сигналов.
                                                                                                                Поясните, пожалуйста, как я могу это сделать?
                                                                                                                  Цитата Дмитрий @
                                                                                                                  операция считывания с СОМ вылетела по таймауту

                                                                                                                  Чем пытаешься считать?
                                                                                                                    Цитата medved_68 @
                                                                                                                    Чем пытаешься считать?
                                                                                                                    Средствами .net: port.ReadByte()
                                                                                                                      Цитата Дмитрий @
                                                                                                                      Средствами .net: port.ReadByte()

                                                                                                                      Т.е. ты наблюдаешь активность на передатчике контроллера, но до компа сия активность "не доходит", так?
                                                                                                                      Вариантов несколько:
                                                                                                                      1. Уровни ТТL (как говорил Prince). У преобразователя стандарт RS-232, у контроллера ТТL (а то и 2.6В, если питание 3В и ниже). Необходима микросхема преобразователь МАХ 232. :D
                                                                                                                      2. Неправильная настройка передающе-приемного канала (несовпадение скоростей/количества стоп битов/четности и.т.д. В контроллере смотри значения регистров управления USART, в net режимы открытия СОМ порта. Должно все совпадать. :D
                                                                                                                      3. Нерабочий переходник USB-COM. Проверка - замкнуть накоротко вывод RX с TX и средствами net открыть порт на чтение и передачу. Пробовать передавать байт, прием должен сработать. Если этого нет - смотри пристально на преобразователь. :D
                                                                                                                        Цитата medved_68 @
                                                                                                                        Т.е. ты наблюдаешь активность на передатчике контроллера, но до компа сия активность "не доходит", так?

                                                                                                                        Да именно :yes-sad:

                                                                                                                        Скажите, а может такое быть, что я просто в цикле без задержки гоню эту шахматку и сто и старт биты накладываються?
                                                                                                                          Цитата Дмитрий @
                                                                                                                          Скажите, а может такое быть, что я просто в цикле без задержки гоню эту шахматку и сто и старт биты накладываються?

                                                                                                                          Нет, так быть не может. :D Вот это:
                                                                                                                          Цитата Дмитрий @
                                                                                                                          Вот только не понятно: на 4-й итерации бит UDRE регистра UCSRA обнулился... :unsure:

                                                                                                                          говорит о том, что ты совершенно не проверяешь бит окончания передачи, а пихаешь данные в передатчик, совершенно наплевав на то, передал он или нет данные, справляется ли он или как. Так нельзя. :D
                                                                                                                            Цитата medved_68 @
                                                                                                                            ...говорит о том, что ты совершенно не проверяешь бит окончания передачи, а пихаешь данные в передатчик, совершенно наплевав на то, передал он или нет данные, справляется ли он или как. Так нельзя.
                                                                                                                            Та нет! Я его как раз и проверяю!
                                                                                                                            ExpandedWrap disabled
                                                                                                                              ...
                                                                                                                              while( !( UCSRA & (1<<UDRE)) )
                                                                                                                                          ;
                                                                                                                                      UDR = 0x55;
                                                                                                                              ...
                                                                                                                            А когда поставил задержкку между посылками 10 мс, на осцилографе увидил пакет USART, не просто меандр! И проблем с сбросом бита (на 4-й итерации бит UDRE регистра UCSRA обнулился) нет!
                                                                                                                            А вот когда ставлю задержку 5 мс, то эта проблема появляется... :unsure:
                                                                                                                            И переходник USB-COM работает - что послал, то принял...
                                                                                                                            Подскажите какую-нибудь стандартную прогу для обмена с СОМ.
                                                                                                                              Цитата Дмитрий @
                                                                                                                              Подскажите какую-нибудь стандартную прогу для обмена с СОМ.

                                                                                                                              Putty, Гипертерминал... :D
                                                                                                                                Цитата medved_68 @
                                                                                                                                Putty
                                                                                                                                "Молчит" PuTTY - после соединения чёрный экран.... :unsure:
                                                                                                                                  Цитата Дмитрий @
                                                                                                                                  "Молчит" PuTTY - после соединения чёрный экран.... :unsure:

                                                                                                                                  Для того, чтобы что то на зкране было - твое устройство должно это сформировать и отправить в канал. Это есть? :D
                                                                                                                                    Цитата medved_68 @
                                                                                                                                    Для того, чтобы что то на зкране было - твое устройство должно это сформировать и отправить в канал. Это есть?
                                                                                                                                    Не понял вопроса... :blink:
                                                                                                                                    МК выдаёт по USARTU данные? Конечно это сделано!

                                                                                                                                    Вообще ни чего не понимаю! :wall: :wall: :wall: Что за ... ... .... :blink: :(
                                                                                                                                      Цитата Дмитрий @
                                                                                                                                      МК выдаёт по USARTU данные?

                                                                                                                                      Да, выдает. :D Смотри, я принял из канала байты 08Н, 09Н, 0АН. Что мне необходимо сделать, что бы на экране отобразилось "Получена цепочка - 08 09 0А"? Или ты думаешь, что это все за тебя кто то/что то сделает? :lool:

                                                                                                                                      Добавлено
                                                                                                                                      И еще. Что бы тот же Putty что то начал отображать на экране - твое устройство должно общаться с ним в рамках стандартного протокола TELNET. Это слово тебе знакомо? Если да, то ты реализовал поддержку протокола в своем устройстве? Если нет - то что же ты хочешь? :-?
                                                                                                                                        Есть программа, называется - терминал. Моск не напрягает.
                                                                                                                                          Цитата medved_68 @
                                                                                                                                          что же ты хочешь
                                                                                                                                          Я хочу понять, почему не могу считать данные с МК через преобразователь USB - USART? :blink: :( :wall: :wall: При том, что когда кольцую TX и RX на нём, обмен проходит, а при стыковке к МК - обмена нет!!! :wall: :wall: :wall:
                                                                                                                                          Подскажите, пожалуйста, как проверить, что преобразователь работает с нужными TTЛ уровнями и полярностью сигналов?

                                                                                                                                          Цитата Alexei @
                                                                                                                                          Есть программа, называется - терминал
                                                                                                                                          Спасибо, Alexei,попробую.
                                                                                                                                            Цитата Дмитрий @
                                                                                                                                            При том, что когда кольцую TX и RX на нём, обмен проходит

                                                                                                                                            Значит дело не в преобразователе. Показывай схему подключения портов Rx и Tx подопытного контроллера. Как они подключены на кабель, который идет к преобразователю RS-232 <-> USB. :D
                                                                                                                                              medved_68, большое спасибо за помощь и участие :thanks:
                                                                                                                                              Схема проста: я соединил выход RX контроллера с TX на преобразователе, а TX с RX соответственно.
                                                                                                                                              Перемычки на преобразователе установил в UART.
                                                                                                                                                Цитата Дмитрий @
                                                                                                                                                Схема проста: я соединил выход RX контроллера с TX на преобразователе, а TX с RX соответственно.

                                                                                                                                                Тогда тебе необходимо вот это:
                                                                                                                                                Цитата medved_68 @
                                                                                                                                                1. Уровни ТТL (как говорил Prince). У преобразователя стандарт RS-232, у контроллера ТТL (а то и 2.6В, если питание 3В и ниже). Необходима микросхема преобразователь МАХ 232. :D


                                                                                                                                                Добавлено
                                                                                                                                                Цитата Дмитрий @
                                                                                                                                                Перемычки на преобразователе установил в UART.

                                                                                                                                                А еще в какое положение можно установить перемычки? :unsure:
                                                                                                                                                  Верхний график - ТТЛ, нижний - по стандартру RS-232. Измерить напряжение на выходе ТХ преобразователя, в отсутствие передачи, убедиться в том, что на выходе сигнал с ТТЛ уровнями. Если очень хочется, можно осциллографом посмотреть весь кадр при передаче чего-нибудь с компа, из гипертерминала.
                                                                                                                                                  user posted image
                                                                                                                                                    Prince, спасибо :thanks: сейчас проверю. Хотя, в AVR ISP v.3.2 встроена функция преобразование USB в UART TTL(ATMEL AVR ISP v3.2)...
                                                                                                                                                    Цитата medved_68 @
                                                                                                                                                    А еще в какое положение можно установить перемычки
                                                                                                                                                    AVR ISP v.3.2 имеет разъёмы е ISP/UART для работы как программатор или как преобразователь.
                                                                                                                                                      Большое всем спасибо, что оказываете мне помощь! :thanks:
                                                                                                                                                      Определилося (проклятые янки!!! >:( сколько я голов разбил :wall: :crazy: ), оказывается при работе программатора AVR ISP v3.2, как преобразователь USB - USART, сигналы TX и RX перекрещивать НЕ НАДО :blink: :crazy:
                                                                                                                                                      Если кто-то знал....
                                                                                                                                                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                                                                                                      0 пользователей:


                                                                                                                                                      Рейтинг@Mail.ru
                                                                                                                                                      [ Script execution time: 0,2309 ]   [ 20 queries used ]   [ Generated: 18.04.24, 07:46 GMT ]