greg 0 23 апреля, 2007 Опубликовано 23 апреля, 2007 · Жалоба Есть Pic18LF4580, который тактируется вешним генератором 8MHz. Установлен режим осциллятора HSPLL, т.е. контроллер работает на частоте 32MHz. Программирую скорость обмена по CAN на 1MBit/s следующим образом:SJW1:SJW0=b'00 (т.е. 1xTq), SEG2PH2:SEG2PH0=b'101 (т.е. 6xTq), SEG1PH2:SEG1PH0=b'111 (т.е. 8xTq), PRSEG2:PRSEG0=b'000 (т.е. 1xTq), BRP5:BRP0=b'000000. При таких параметрах CAN входит в клинч, и на выходе даёт бессмысленный поток 0 и 1, т.е. не CAN последовательность. Как только устанавливаю делитель скорости BRP5:BRP0=b'010 - на выходе правильная CAN-последовательность со скоростью передачи 333kBit/s. Но мне нужна скорость обмена 1MBit/s. Может быть кто-нибудь сталкивался с подобным и поделится своими размышлениями... P.S. Такой же результат получается когда генерил код с помощью Microchip Application Maestro, ну и разумеется значения коэффициентов для прогаммирования скорости обмена проверял с помощью Microchip CAN Bit Time Calculator. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-KIT- 0 23 апреля, 2007 Опубликовано 23 апреля, 2007 · Жалоба У меня 258 работал нормально на 1Мит при частоте осцилятора 10 МГц и включенном PLL Вот настройки регистров : BRGCON1 = 0b00000001; // при Fosc = 40MHz bitrate = 1Mbit BRGCON2 = 0b10010010; BRGCON3 = 0b00000010; //---время кванта 0.1 мкс //---общее время бита - 10Tq, время синхронизации=1xTq, время распространения=3xTq, фаза1=3xTq, фаза2=3xTq, Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться