Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

MCP2150 - Microchip се изложиха ама много....
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=2935
Страница 1 от 1

Автор:  velio [ Чет Сеп 21, 2006 5:09 pm ]
Заглавие:  MCP2150 - Microchip се изложиха ама много....

Надявам се да не съм сбъркал раздела. Все пак тоя МСР е просто PIC с ROM...
Та четейки документацията виждаме че тая ИС има UART буфер 64 байта. Това дали може да се пише в него се индицира от сигнал CTS. Каква е точно зависимостта на тоя сигнал от приетите данни не се казва... Това го пише в други два документа - AN927 и AN858.
В AN858 се споменава че има временен прозорец от 11,9ms, който е максималното време за което може да се пише в буфера. За скорост 9600 това са 12 байта (има табличка с другите скорости). CTS е 0 точно за 11,9ms или докато в буфера не се запишат 60 байта (което възникне първо).
Всичко добре си викам - четем CTS и ако е 0 тогава пишем в буфера. Да ама неее.... Част от данните се губят някъде, което означава че хоста предава когато CTS е 1 и всъщност се предават само тези които са успели да се проврат.
Викам си - явно нещо не се чете правилно CTS. Меря с осцилоскопа - 23ms. 8O 8O . Хм...
Четем AN927. Там на същата тема се споменават 22ms :? :? . А сега де...
Накрая проблема се реши така - четем CTS. Като стане 0, предаваме 12 байта и чакаме 1. Като стане 1, чакаме 0 и наново 12 байта...
Хамалогия... Цял ден с глупости се занимавам... :evil: :evil: :evil:

Автор:  ДедоБоре [ Чет Сеп 21, 2006 8:13 pm ]
Заглавие: 

нещо не схващам - от къде идва това ограничение 19..22мс? май не е от протокола, ако помня добре :roll:
вариацията явно идва от версиите на фърмуера.

Автор:  velio [ Чет Сеп 21, 2006 8:30 pm ]
Заглавие: 

ДедоБоре написа:
нещо не схващам - от къде идва това ограничение 19..22мс? май не е от протокола, ако помня добре :roll:


Амчи явно така са го решили микрочеповете, щото вероятно не могат да приемат по UART и да следят IR комуникацията едновременно. Там пише че IR е с предимство... Знам ли. То както и да е, ама защо не бачка както са го описали...
Както се оказва CTS е 0 за 22ms, а пък реално буфера е достъпен само 12ms... :? . Не съм сигурен че е точно така де, в понеделник ще тестваме пак (утре нали е празник). :)

Автор:  ДедоБоре [ Чет Сеп 21, 2006 8:36 pm ]
Заглавие: 

ти па :twisted:
сефте да са написали нещо и то да не работи както е написано.

аз съм ползвал само декодера/енцодера им.
работи, ама е такава куцня, че...
тия трабва да им раздават тиквени медали за всяка простотия, ма сигурно кял канзас само тикви ще трябва да отглежда

Автор:  velio [ Пон Окт 02, 2006 9:37 am ]
Заглавие: 

Ъпдейт по темата...

Оказа се че вината не е в Майкрочип (в случая..). Направих си опитна постановка с един PIC и се оказа че всичко си бачка както трябва. Явно програмиста ни бърка някъде...

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/